Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

CreateDefault.cxx

Go to the documentation of this file.
00001 // -*- C++ -*-  $Id: CreateDefault.cxx,v 1.2 2000/01/17 23:37:28 burnett Exp $
00002 //
00003 // This file is part of Gismo 2
00004 //
00005 // This is the implementation of PDT::createDefault
00006 //
00007 //
00008 // Create a default PDT, using wired-in data.
00009 
00010 #include "gismo/PDT.h"
00011 
00012 #include "gismo/PhaseSpace.h"
00013 #include "gismo/SageDecayer.h"
00014 #include "gismo/Interactor.h"
00015 #include "gismo/Units.h"
00016 #ifdef _MSC_VER
00017 # pragma warning(disable: 4305)
00018 #endif
00019 
00020 #define PART  thePDT->addParticle
00021 #define DECAY thePDT->addDecay
00022 #define INTERACT thePDT->setInteraction
00023 
00024 PDT*
00025 PDT::createDefault(Interactor* emint, Interactor* hadint)
00026 {
00027    PDT* thePDT = new PDT();
00028 
00029    // define local unit factors
00030    float GeV = Units::fromMeV(1000.f);
00031    float MeV = Units::fromMeV(1.f);
00032    float keV = Units::fromKeV(1.f);
00033    float hbarc = Units::hbarc();
00034    float cm= Units::fromMeters(0.01f);
00035    float m = Units::fromMeters(1.0f);
00036 
00037  //--------------------------------------------------------------------------
00038  //                     I n t e r a c t i o n s
00039  //--------------------------------------------------------------------------
00040    // set  interactions as desired.
00041 
00042    if(emint)
00043      thePDT->addInteractor(emint);
00044    if(hadint)
00045      thePDT->addInteractor(hadint);
00046 
00047    // ( other interactions are default: E-loss only )
00048 
00049  //--------------------------------------------------------------------------
00050  //                     P a r t i c l e s
00051  //--------------------------------------------------------------------------
00052 
00053  INTERACT("electromagnetic");
00054 
00055    //  name   (anti) id 2J  Q   mass          width or hbarc/ctau
00056    //  ----   ------ --  -  -   ----          -------------------
00057  PART("gamma",       22, 2, 0,  0.);
00058  PART("e-",  "e+",   11, 1,-1,  511.0*keV);
00059 
00060  INTERACT("weak");
00061 
00062  PART("nu_e",        12, 1, 0,  0.);
00063  PART("nu_mu",       14, 1, 0,  0.);
00064 
00065 // PJH
00066 //THB--until understand behavior INTERACT("muonic");
00067 // PJH - end
00068 
00069  PART("mu-", "mu+",  13, 1,-1,  105.658*MeV,  hbarc/(658.65*m)  );
00070 
00071  INTERACT("hadronic");
00072 
00073  PART("pi+", "pi-", 211, 0, 1,  139.5675*MeV, hbarc/(7.804*m)   );
00074  PART("pi0",        111, 0, 0,  134.9739*MeV, hbarc/(2.5E-6*cm) );
00075  PART("K+",  "K-",  321, 1, 1,  493.646*MeV,  hbarc/(379.9*cm)  );
00076 
00077  PART("K0_S",       310, 0, 0,  497.671*MeV,  hbarc/(2.675*cm)  );
00078  PART("K0_L",       130, 0, 0,  497.671*MeV,  hbarc/(1.550*m)   );
00079 
00080  PART("rho+","rho-",213, 2, 1,  768.3*MeV,     149.*MeV         );
00081  PART("rho0",       113, 2, 0,  768.3*MeV,     149.*MeV         );
00082  PART("omega",      223, 2, 0,  781.95*MeV,    8.43*MeV         );
00083  PART("phi",        333, 2, 0, 1019.412*MeV,   4.41*MeV         );
00084 
00085  PART("p", "p_bar",2212, 1, 1,  938.272*MeV);
00086  PART("n", "n_bar",2112, 1, 0,  939.566*MeV);
00087  PART("J/psi" ,     444, 2, 0,   3097.*MeV,    0.07*MeV         );
00088 
00089  PART("lamda","lamda_bar",   3122, 1, 0,  1115.63*MeV, hbarc/(7.89*cm));
00090  PART("sigma+","sigma+_bar", 3222, 1, 1,  1189.37*MeV, hbarc/(2.40*cm));
00091  PART("sigma0","sigma0_bar", 3212, 1, 0,  1192.55*MeV, hbarc/(2.2e-9*cm));
00092  PART("sigma-","sigma-_bar", 3112, 1,-1,  1197.43*MeV, hbarc/(4.43*cm));
00093  PART("xi0","xi0_bar",       3322, 1, 0,  1314.9*MeV, hbarc/(8.69*cm));
00094  PART("xi-","xi-_bar",       3314, 1,-1,  1321.32*MeV, hbarc/(4.91*cm));
00095  PART("omega-","omega-_bar",   3334, 3,-1,  1672.43*MeV, hbarc/(2.46*cm));
00096 
00097  PART("D+", "D-",   421, 0, 1, 1869.3*MeV,  hbarc/Units::fromMeters(320e-6));
00098  PART("D0","D0-bar",411, 0, 0, 1864.5*MeV,  hbarc/Units::fromMeters(125.9e-6));
00099  PART("D*+","D*-",  423, 1, 1, 2010.1*MeV,    0.5*MeV);
00100  PART("D*0","D*0-bar",413,1,0, 2007.1*MeV,    0.5*MeV);
00101  PART("D(s)+","D(s)-",431,0,1, 1968.8*MeV,    1.46E-12*GeV);
00102  PART("D(s)*+","D(s)*-",433,0, 0, 2110.3*MeV);
00103 
00104  PART("B+","B-",    521, 0, 1, 5278.6*MeV,    hbarc/Units::fromMeters(387e-6));
00105  PART("B0","B0-bar",511, 0, 0, 5278.7*MeV,    hbarc/Units::fromMeters(387e-6));
00106 
00107  PART("upsilon(4S)",70553L, 2, 0, 10.5800*GeV, 23.8*MeV);
00108 
00109  INTERACT("heavy");
00110 
00111  PART("deutron", 10002,  1, 1,   1876.01*MeV);
00112  PART("triton",  10003,  2, 1,   2809.26*MeV);
00113  PART("alpha",   20001,  0, 2,   3728.17*MeV);
00114 
00115  PART("Z0",      33,     2, 0,   91.187*GeV, 2.490*GeV);
00116  //( for fun)
00117  PART("H0",   99999,  0, 0,   300*GeV, 1*GeV);
00118 
00119  //--------------------------------------------------------------------------
00120  //                     D e c a y s
00121  //--------------------------------------------------------------------------
00122 
00123  // Create the default phase-space decayers. Note that anti-particle decays
00124  // are defined automatically, and that the branching fractions do not have
00125  // to add up to one
00126 
00127  thePDT->addDecayer(new PhaseSpace("PhaseSpace") );
00128  thePDT->addDecayer(new SageDecayer("Sage"));
00129 
00130  //     parent  bf   method      ------- daughters -------------
00131  //     ------  --   ------
00132  DECAY("mu-",  1.0,  "PhaseSpace",     "e-",    "nu_e",   "nu_mu");
00133  DECAY("pi+",  1.0,  "PhaseSpace",  "mu+",   "nu_mu", "");
00134 
00135  DECAY("pi0",  1.0,  "PhaseSpace",  "gamma", "gamma");
00136  DECAY("K0_S", 1.0,  "PhaseSpace",  "pi+",   "pi-", "");
00137  DECAY("K0_L", 1.0,  "PhaseSpace",     "pi+",   "pi-",    "pi0");
00138  DECAY("K+",   0.635,"PhaseSpace",  "mu+",   "nu_mu");
00139  DECAY("K+",   0.212,"PhaseSpace",  "pi+",   "pi0");
00140  DECAY("rho0", 1.0,  "PhaseSpace",  "pi+",   "pi-");
00141  DECAY("rho+", 1.0,  "PhaseSpace",  "pi+",   "pi0");
00142  DECAY("omega",1.0,  "PhaseSpace",     "pi+",   "pi0",    "pi-");
00143  DECAY("phi",  0.495,"PhaseSpace",  "K+",    "K-");
00144  DECAY("phi",  0.344,"PhaseSpace",  "K0_L",  "K0_S");
00145  DECAY("phi",  0.129/3.,"PhaseSpace", "rho0",   "pi0");
00146  DECAY("phi",  0.129/3.,"PhaseSpace", "rho+",   "pi-");
00147  DECAY("phi",  0.129/3.,"PhaseSpace", "rho-",   "pi+");
00148 
00149  DECAY("D+",   0.026/2, "PhaseSpace", "K0_S", "pi+");
00150  DECAY("D+",   0.026/2, "PhaseSpace", "K0_L", "pi+");
00151  DECAY("D+",   0.080,   "PhaseSpace",    "K-",   "pi+",  "pi+");
00152 
00153  DECAY("D0",   0.021/2, "PhaseSpace", "K0_S", "pi0");
00154  DECAY("D0",   0.021/2, "PhaseSpace", "K0_L", "pi0");
00155  DECAY("D0",   0.054/2, "PhaseSpace",    "K0_S",  "pi+",  "pi-");
00156  DECAY("D0",   0.054/2, "PhaseSpace",    "K0_L",  "pi+",  "pi-");
00157 
00158  DECAY("D*+",  0.55,    "PhaseSpace", "D0",    "pi+");
00159  DECAY("D*+",  0.272,   "PhaseSpace", "D+",    "pi0");
00160  DECAY("D*+",  0.18,    "PhaseSpace", "D+",    "gamma");
00161 
00162  DECAY("D*0",  0.55,    "PhaseSpace", "D0",    "pi0");
00163  DECAY("D*0",  0.45,    "PhaseSpace", "D0",    "gamma");
00164 
00165  DECAY("J/psi", 1.0,    "PhaseSpace",  "mu+",   "mu-");
00166 
00167  DECAY("B+",   0.0038,   "PhaseSpace",  "D0-bar", "pi+");
00168  DECAY("B+",   0.013,    "PhaseSpace",  "D0-bar", "rho+");
00169  DECAY("B+",   0.005,    "Sage",     "D0-bar", "pi+", "pi+", "pi-");
00170  DECAY("B+",   0.010,    "PhaseSpace",  "D*0",    "rho+");
00171  DECAY("B+",   0.018,    "Sage",     "D*-",    "pi+", "pi+", "pi0");
00172 
00173  DECAY("B0",   0.0032,   "PhaseSpace",  "D-", "pi+");
00174  DECAY("B0",   0.009,    "PhaseSpace",  "D-", "rho+");
00175  DECAY("B0",   0.0032,   "PhaseSpace",  "D*-","pi+");
00176  DECAY("B0",   0.008,    "Sage",     "D-", "pi+", "pi+", "pi-");
00177 
00178  DECAY("upsilon(4S)",0.5,"PhaseSpace",  "B0", "B0-bar");
00179  DECAY("upsilon(4S)",0.5,"PhaseSpace",  "B+", "B-");
00180 
00181  DECAY("lamda",   0.64,  "PhaseSpace",  "p", "pi-");
00182  DECAY("lamda",   0.36,  "PhaseSpace",  "n", "pi0");
00183 
00184  DECAY("sigma+",  0.52,  "PhaseSpace",  "p", "pi0");
00185  DECAY("sigma+",  0.48,  "PhaseSpace",  "n", "pi+");
00186  DECAY("sigma0",  1.00,  "PhaseSpace",  "lamda", "gamma");
00187  DECAY("sigma-",  1.00,  "PhaseSpace",  "n", "pi-");
00188 
00189  DECAY("xi0",     1.00,  "PhaseSpace",  "lamda", "pi0");
00190  DECAY("xi-",     1.00,  "PhaseSpace",  "lamda", "pi-");
00191 
00192  DECAY("omega-",   .678,  "PhaseSpace",  "lamda", "K-");
00193  DECAY("omega-",   .236,  "PhaseSpace",  "xi0",   "pi-");
00194  DECAY("omega-",   .086,  "PhaseSpace",  "xi-",   "pi0");
00195 
00196  // these for fun
00197  DECAY("Z0",      1.0,    "PhaseSpace",  "mu+",   "mu-");
00198  DECAY("H0",      1.0,    "PhaseSpace",  "Z0",    "Z0");
00199 
00200  return thePDT;
00201 }
00202 
00203 

Generated at Wed Nov 21 12:20:25 2001 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000