00001
00002
00003
00004
00005
00006
00007
00008
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
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
00039
00040
00041
00042 if(emint)
00043 thePDT->addInteractor(emint);
00044 if(hadint)
00045 thePDT->addInteractor(hadint);
00046
00047
00048
00049
00050
00051
00052
00053 INTERACT("electromagnetic");
00054
00055
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
00066
00067
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
00117 PART("H0", 99999, 0, 0, 300*GeV, 1*GeV);
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127 thePDT->addDecayer(new PhaseSpace("PhaseSpace") );
00128 thePDT->addDecayer(new SageDecayer("Sage"));
00129
00130
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
00197 DECAY("Z0", 1.0, "PhaseSpace", "mu+", "mu-");
00198 DECAY("H0", 1.0, "PhaseSpace", "Z0", "Z0");
00199
00200 return thePDT;
00201 }
00202
00203