5 #ifndef particleTypeH_INCLUDED
6 #define particleTypeH_INCLUDED
132 if(p==80)
return Rho0;
133 if(p==81)
return omega;
148 return (
char*)
"Unknown";
150 return (
char*)
"Photon";
152 return (
char*)
"Positron";
154 return (
char*)
"Electron";
156 return (
char*)
"Neutrino";
158 return (
char*)
"Muon+";
160 return (
char*)
"Muon-";
168 return (
char*)
"KLong";
174 return (
char*)
"Neutron";
176 return (
char*)
"Proton";
178 return (
char*)
"AntiProton";
180 return (
char*)
"KShort";
184 return (
char*)
"Lambda";
186 return (
char*)
"Sigma+";
188 return (
char*)
"Sigma0";
190 return (
char*)
"Sigma-";
196 return (
char*)
"Omega-";
198 return (
char*)
"AntiNeutron";
200 return (
char*)
"AntiLambda";
202 return (
char*)
"AntiSigma-";
204 return (
char*)
"AntiSigma0";
206 return (
char*)
"AntiSigma+";
208 return (
char*)
"AntiXi0";
210 return (
char*)
"AntiXi+";
212 return (
char*)
"AntiOmega+";
214 return (
char*)
"Geantino";
216 return (
char*)
"Rho0";
218 return (
char*)
"Rho+";
220 return (
char*)
"Rho-";
222 return (
char*)
"Omega";
224 return (
char*)
"EtaPrime";
228 return (
char*)
"a0(980)";
230 return (
char*)
"f0(980)";
232 return (
char*)
"K*(892)0";
234 return (
char*)
"K*(892)+";
236 return (
char*)
"K*(892)-";
238 return (
char*)
"antiK*(892)0";
240 return (
char*)
"K1(1400)+";
242 return (
char*)
"K1(1400)-";
244 return (
char*)
"b1(1235)+";
246 return (
char*)
"Sigma(1385)-";
248 return (
char*)
"Sigma(1385)0";
250 return (
char*)
"Sigma(1385)+";
252 return (
char*)
"Deuteron";
254 return (
char*)
"Triton";
256 return (
char*)
"Helium";
258 return (
char*)
"Helium-3";
260 return (
char*)
"Pb208";
262 return (
char*)
"Delta++";
264 return (
char*)
"Jpsi";
266 return (
char*)
"EtaC";
268 return (
char*)
"ChiC0";
270 return (
char*)
"ChiC1";
272 return (
char*)
"ChiC2";
274 return (
char*)
"Psi(2S)";
278 return (
char*)
"AntiD0";
286 return (
char*)
"LambdaC";
288 return (
char*)
"Unknown";
299 return (
char*)
"Unknown";
301 return (
char*)
"Gamma";
303 return (
char*)
"Positron";
305 return (
char*)
"Electron";
307 return (
char*)
"Neutrino";
309 return (
char*)
"MuonPlus";
311 return (
char*)
"MuonMinus";
315 return (
char*)
"PiPlus";
317 return (
char*)
"PiMinus";
319 return (
char*)
"KLong";
321 return (
char*)
"KPlus";
323 return (
char*)
"KMinus";
325 return (
char*)
"Neutron";
327 return (
char*)
"Proton";
329 return (
char*)
"AntiProton";
331 return (
char*)
"KShort";
335 return (
char*)
"Lambda";
337 return (
char*)
"SigmaPlus";
339 return (
char*)
"Sigma0";
341 return (
char*)
"SigmaMinus";
345 return (
char*)
"XiMinus";
347 return (
char*)
"OmegaMinus";
349 return (
char*)
"AntiNeutron";
351 return (
char*)
"AntiLambda";
353 return (
char*)
"AntiSigmaMinus";
355 return (
char*)
"AntiSigma0";
357 return (
char*)
"AntiSigmaPlus";
359 return (
char*)
"AntiXi0";
361 return (
char*)
"AntiXiPlus";
363 return (
char*)
"AntiOmegaPlus";
365 return (
char*)
"Geantino";
367 return (
char*)
"Rho0";
369 return (
char*)
"RhoPlus";
371 return (
char*)
"RhoMinus";
373 return (
char*)
"omega";
375 return (
char*)
"EtaPrime";
377 return (
char*)
"phiMeson";
379 return (
char*)
"a0_980";
381 return (
char*)
"f0_980";
383 return (
char*)
"KStar_892_0";
385 return (
char*)
"KStar_892_Plus";
387 return (
char*)
"KStar_892_Minus";
389 return (
char*)
"AntiKStar_892_0";
391 return (
char*)
"K1_1400_Plus";
393 return (
char*)
"K1_1400_Minus";
395 return (
char*)
"b1_1235_Plus";
397 return (
char*)
"Sigma_1385_Minus";
399 return (
char*)
"Sigma_1385_0";
401 return (
char*)
"Sigma_1385_Plus";
403 return (
char*)
"Deuteron";
405 return (
char*)
"Triton";
407 return (
char*)
"Helium";
409 return (
char*)
"Helium-3";
411 return (
char*)
"Pb208";
413 return (
char*)
"DeltaPlusPlus";
415 return (
char*)
"Jpsi";
417 return (
char*)
"Eta_c";
419 return (
char*)
"Chi_c0";
421 return (
char*)
"Chi_c1";
423 return (
char*)
"Chi_c2";
425 return (
char*)
"Psi2s";
429 return (
char*)
"AntiD0";
431 return (
char*)
"DPlus";
433 return (
char*)
"Dstar0";
435 return (
char*)
"DstarPlus";
437 return (
char*)
"Lambda_c";
439 return (
char*)
"Unknown";
478 return (
char*)
"prot";
480 return (
char*)
"antip";
486 return (
char*)
"lamb";
488 return (
char*)
"sigp";
490 return (
char*)
"sig0";
492 return (
char*)
"sigm";
498 return (
char*)
"omegam";
500 return (
char*)
"antin";
502 return (
char*)
"antilamb";
504 return (
char*)
"antisigm";
506 return (
char*)
"antisig0";
508 return (
char*)
"antisigp";
510 return (
char*)
"antixi0";
512 return (
char*)
"antixip";
514 return (
char*)
"antiomegap";
516 return (
char*)
"geant";
518 return (
char*)
"omega";
520 return (
char*)
"etapr";
532 return (
char*)
"pb208";
534 return (
char*)
"jpsi";
536 return (
char*)
"etac";
538 return (
char*)
"chic0";
540 return (
char*)
"chic1";
542 return (
char*)
"chic2";
544 return (
char*)
"psi2s";
548 return (
char*)
"antid0";
556 return (
char*)
"lambc";
560 return (
char*)
"Rho0";
562 return (
char*)
"RhoPlus";
564 return (
char*)
"RhoMinus";
566 return (
char*)
"a0_980";
568 return (
char*)
"f0_980";
570 return (
char*)
"KStar_892_0";
572 return (
char*)
"KStar_892_Plus";
574 return (
char*)
"KStar_892_Minus";
576 return (
char*)
"AntiKStar_892_0";
578 return (
char*)
"K1_1400_Plus";
580 return (
char*)
"K1_1400_Minus";
582 return (
char*)
"b1_1235_Plus";
584 return (
char*)
"Sigma_1385_Minus";
586 return (
char*)
"Sigma_1385_0";
588 return (
char*)
"Sigma_1385_Plus";
590 return (
char*)
"DeltaPlusPlus";
599 if(strcmp(locParticleName,
"Unknown") == 0)
601 else if(strcmp(locParticleName,
"Photon") == 0)
603 else if(strcmp(locParticleName,
"Positron") == 0)
605 else if(strcmp(locParticleName,
"Electron") == 0)
607 else if(strcmp(locParticleName,
"Neutrino") == 0)
609 else if(strcmp(locParticleName,
"Muon+") == 0)
611 else if(strcmp(locParticleName,
"Muon-") == 0)
613 else if(strcmp(locParticleName,
"Pi0") == 0)
615 else if(strcmp(locParticleName,
"Pi+") == 0)
617 else if(strcmp(locParticleName,
"Pi-") == 0)
619 else if(strcmp(locParticleName,
"KLong") == 0)
621 else if(strcmp(locParticleName,
"K+") == 0)
623 else if(strcmp(locParticleName,
"K-") == 0)
625 else if(strcmp(locParticleName,
"Neutron") == 0)
627 else if(strcmp(locParticleName,
"Proton") == 0)
629 else if(strcmp(locParticleName,
"AntiProton") == 0)
631 else if(strcmp(locParticleName,
"KShort") == 0)
633 else if(strcmp(locParticleName,
"Eta") == 0)
635 else if(strcmp(locParticleName,
"Lambda") == 0)
637 else if(strcmp(locParticleName,
"Sigma+") == 0)
639 else if(strcmp(locParticleName,
"Sigma0") == 0)
641 else if(strcmp(locParticleName,
"Sigma-") == 0)
643 else if(strcmp(locParticleName,
"Xi0") == 0)
645 else if(strcmp(locParticleName,
"Xi-") == 0)
647 else if(strcmp(locParticleName,
"Omega-") == 0)
649 else if(strcmp(locParticleName,
"AntiNeutron") == 0)
651 else if(strcmp(locParticleName,
"AntiLambda") == 0)
653 else if(strcmp(locParticleName,
"AntiSigma-") == 0)
655 else if(strcmp(locParticleName,
"AntiSigma0") == 0)
657 else if(strcmp(locParticleName,
"AntiSigma+") == 0)
659 else if(strcmp(locParticleName,
"AntiXi0") == 0)
661 else if(strcmp(locParticleName,
"AntiXi+") == 0)
663 else if(strcmp(locParticleName,
"AntiOmega+") == 0)
665 else if(strcmp(locParticleName,
"Geantino") == 0)
667 else if(strcmp(locParticleName,
"Rho0") == 0)
669 else if(strcmp(locParticleName,
"Rho+") == 0)
671 else if(strcmp(locParticleName,
"Rho-") == 0)
673 else if(strcmp(locParticleName,
"Omega") == 0)
675 else if(strcmp(locParticleName,
"EtaPrime") == 0)
677 else if(strcmp(locParticleName,
"Phi") == 0)
679 else if(strcmp(locParticleName,
"a0(980)") == 0)
681 else if(strcmp(locParticleName,
"f0(980)") == 0)
683 else if(strcmp(locParticleName,
"K*(892)0") == 0)
685 else if(strcmp(locParticleName,
"K*(892)+") == 0)
687 else if(strcmp(locParticleName,
"K*(892)-") == 0)
689 else if(strcmp(locParticleName,
"antiK*(892)0") == 0)
691 else if(strcmp(locParticleName,
"K1(1400)+") == 0)
693 else if(strcmp(locParticleName,
"K1(1400)-") == 0)
695 else if(strcmp(locParticleName,
"b1(1235)+") == 0)
697 else if(strcmp(locParticleName,
"Sigma(1385)-") == 0)
699 else if(strcmp(locParticleName,
"Sigma(1385)0") == 0)
701 else if(strcmp(locParticleName,
"Sigma(1385)+") == 0)
703 else if(strcmp(locParticleName,
"Deuteron") == 0)
705 else if(strcmp(locParticleName,
"Triton") == 0)
707 else if(strcmp(locParticleName,
"Helium") == 0)
709 else if(strcmp(locParticleName,
"Helium-3") == 0)
711 else if(strcmp(locParticleName,
"Pb208") == 0)
713 else if(strcmp(locParticleName,
"Delta++") == 0)
715 else if(strcmp(locParticleName,
"Jpsi") == 0)
717 else if(strcmp(locParticleName,
"EtaC") == 0)
719 else if(strcmp(locParticleName,
"ChiC0") == 0)
721 else if(strcmp(locParticleName,
"ChiC1") == 0)
723 else if(strcmp(locParticleName,
"ChiC2") == 0)
725 else if(strcmp(locParticleName,
"Psi(2S)") == 0)
727 else if(strcmp(locParticleName,
"D0") == 0)
729 else if(strcmp(locParticleName,
"AntiD0") == 0)
731 else if(strcmp(locParticleName,
"D+") == 0)
733 else if(strcmp(locParticleName,
"D*0") == 0)
735 else if(strcmp(locParticleName,
"D*+") == 0)
737 else if(strcmp(locParticleName,
"LambdaC") == 0)
747 case Gamma:
return 1;
757 case KLong:
return 1;
758 case KPlus:
return 1;
785 case Pb208:
return 1;
791 case Psi2s:
return 1;
794 case DPlus:
return 1;
826 case KLong:
return 1;
827 case KPlus:
return 1;
859 return (
char*)
"#gamma";
861 return (
char*)
"e^{#plus}";
863 return (
char*)
"e^{#minus}";
867 return (
char*)
"#mu^{#plus}";
869 return (
char*)
"#mu^{#minus}";
871 return (
char*)
"#pi^{0}";
873 return (
char*)
"#pi^{#plus}";
875 return (
char*)
"#pi^{#minus}";
877 return (
char*)
"K^{0}_{L}";
879 return (
char*)
"K^{#plus}";
881 return (
char*)
"K^{#minus}";
887 return (
char*)
"#bar{p}";
889 return (
char*)
"K^{0}_{S}";
891 return (
char*)
"#eta";
893 return (
char*)
"#Lambda";
895 return (
char*)
"#Sigma^{#plus}";
897 return (
char*)
"#Sigma^{0}";
899 return (
char*)
"#Sigma^{#minus}";
901 return (
char*)
"#Xi^{0}";
903 return (
char*)
"#Xi^{#minus}";
905 return (
char*)
"#Omega^{#minus}";
907 return (
char*)
"#bar^{n}";
909 return (
char*)
"#bar^{#Lambda}";
911 return (
char*)
"#bar{#Sigma}^{#minus}";
913 return (
char*)
"#bar{#Sigma}^{0}";
915 return (
char*)
"#bar{#Sigma}^{#plus}";
917 return (
char*)
"#bar{#Xi}^{0}";
919 return (
char*)
"#bar{#Xi}^{#plus}";
921 return (
char*)
"#bar{#Omega}^{#plus}";
923 return (
char*)
"geantino";
925 return (
char*)
"#rho^{0}";
927 return (
char*)
"#rho^{#plus}";
929 return (
char*)
"#rho^{#minus}";
931 return (
char*)
"#omega";
933 return (
char*)
"#eta'";
935 return (
char*)
"#phi";
937 return (
char*)
"a_{0}(980)";
939 return (
char*)
"f_{0}(980)";
941 return (
char*)
"K*(892)^{0}";
943 return (
char*)
"K*(892)^{#plus}";
945 return (
char*)
"K*(892)^{#minus}";
947 return (
char*)
"#bar{K*}(892)^{0}";
949 return (
char*)
"K_{1}(1400)^{#plus}";
951 return (
char*)
"K_{1}(1400)^{#minus}";
953 return (
char*)
"b_{1}(1235)^{#plus}";
963 return (
char*)
"Pb^{208}";
965 return (
char*)
"#Sigma(1385)^{#minus}";
967 return (
char*)
"#Sigma(1385)^{0}";
969 return (
char*)
"#Sigma(1385)^{#plus}";
971 return (
char*)
"#Delta(1232)^{#plus#plus}";
973 return (
char*)
"J/#psi";
975 return (
char*)
"#eta_{c}";
977 return (
char*)
"#chi_{c0}";
979 return (
char*)
"#chi_{c1}";
981 return (
char*)
"#chi_{c2}";
983 return (
char*)
"#psi(2S)";
985 return (
char*)
"D^{0}";
987 return (
char*)
"#bar{D^{0}}";
989 return (
char*)
"D{^+}";
991 return (
char*)
"D^{*0}";
993 return (
char*)
"D^{*+}";
995 return (
char*)
"#Lambda_{c}";
1007 case Unknown:
return HUGE_VAL;
1008 case Gamma:
return 0;
1009 case Positron:
return 0.000510998928;
1010 case Electron:
return 0.000510998928;
1012 case MuonPlus:
return 0.1056583715;
1014 case Pi0:
return 0.1349766;
1015 case PiPlus:
return 0.13957018;
1016 case PiMinus:
return 0.13957018;
1017 case KShort:
return 0.497614;
1018 case KLong:
return 0.497614;
1019 case KPlus:
return 0.493677;
1020 case KMinus:
return 0.493677;
1021 case Neutron:
return 0.939565379;
1022 case Proton:
return 0.938272046;
1024 case Eta:
return 0.547862;
1025 case Lambda:
return 1.115683;
1027 case Sigma0:
return 1.192642;
1029 case Xi0:
return 1.31486;
1041 case Rho0:
return 0.7690;
1044 case omega:
return 0.78265;
1047 case a0_980:
return 0.980;
1048 case f0_980:
return 0.990;
1057 case Triton:
return 2.808921004;
1058 case Helium:
return 3.727379238;
1059 case He3:
return 2.809413498;
1060 case Pb208:
return 193.72899;
1065 case Jpsi:
return 3.069916;
1066 case Eta_c:
return 2.9836;
1067 case Chi_c0:
return 3.41475;
1068 case Chi_c1:
return 3.51066;
1069 case Chi_c2:
return 3.55620;
1070 case Psi2s:
return 3.686109;
1071 case D0:
return 1.86484;
1072 case AntiD0:
return 1.86484;
1073 case DPlus:
return 1.86961;
1074 case Dstar0:
return 2.01026;
1078 fprintf(stderr,
"ParticleMass: Error: Unknown particle type %d,",p);
1079 fprintf(stderr,
" returning HUGE_VAL...\n");
1090 case Gamma:
return 0;
1100 case KLong:
return 0;
1101 case KPlus:
return +1;
1123 case Rho0:
return 0;
1126 case omega:
return 0;
1142 case Pb208:
return 82;
1147 case Jpsi:
return 0;
1148 case Eta_c:
return 0;
1152 case Psi2s:
return 0;
1155 case DPlus:
return 1;
1161 fprintf(stderr,
"ParticleCharge: Error: Unknown particle type %d,",p);
1162 fprintf(stderr,
" returning 0...\n");
1173 case Gamma:
return 22;
1179 case Pi0:
return 111;
1183 case KLong:
return 130;
1184 case KPlus:
return 321;
1185 case KMinus:
return -321;
1187 case Proton:
return 2212;
1189 case Eta:
return 221;
1190 case Lambda:
return 3122;
1192 case Sigma0:
return 3212;
1194 case Xi0:
return 3322;
1206 case Rho0:
return 113;
1209 case omega:
return 223;
1212 case a0_980:
return 9000110;
1213 case f0_980:
return 9010221;
1224 case He3:
return 49;
1228 case Pb208:
return 1000822080;
1230 case Jpsi:
return 443;
1231 case Eta_c:
return 441;
1232 case Chi_c0:
return 10441;
1233 case Chi_c1:
return 20443;
1235 case Psi2s:
return 100443;
1236 case D0:
return 421;
1237 case AntiD0:
return -421;
1238 case DPlus:
return 411;
1248 switch (locPDG_PID) {
1250 case 22:
return Gamma;
1256 case 111:
return Pi0;
1260 case 130:
return KLong;
1261 case 321:
return KPlus;
1262 case -321:
return KMinus;
1264 case 2212:
return Proton;
1266 case 221:
return Eta;
1267 case 3122:
return Lambda;
1269 case 3212:
return Sigma0;
1271 case 3322:
return Xi0;
1282 case 113:
return Rho0;
1285 case 223:
return omega;
1288 case 9000110:
return a0_980;
1289 case 9010221:
return f0_980;
1300 case 49:
return He3;
1304 case 1000822080:
return Pb208;
1306 case 443:
return Jpsi;
1307 case 441:
return Eta_c;
1308 case 10441:
return Chi_c0;
1309 case 20443:
return Chi_c1;
1311 case 100443:
return Psi2s;
1312 case 421:
return D0;
1313 case -421:
return AntiD0;
1314 case 411:
return DPlus;
1326 case Gamma:
return 1;
1334 case KLong:
return 1;
1335 case KPlus:
return 1;
1345 case Pb208:
return 1;
1360 return (
char*)
"neut";
1362 return (
char*)
"mup";
1364 return (
char*)
"mum";
1366 return (
char*)
"pi0";
1368 return (
char*)
"pip";
1370 return (
char*)
"pim";
1382 return (
char*)
"pbar";
1386 return (
char*)
"eta";
1389 return (
char*)
"lamb";
1391 return (
char*)
"sigp";
1393 return (
char*)
"sig0";
1395 return (
char*)
"sigm";
1397 return (
char*)
"xi0";
1399 return (
char*)
"xim";
1401 return (
char*)
"omgm";
1404 return (
char*)
"nbar";
1406 return (
char*)
"lbar";
1408 return (
char*)
"sigmbar";
1410 return (
char*)
"sig0bar";
1412 return (
char*)
"sigpbar";
1414 return (
char*)
"xi0bar";
1416 return (
char*)
"xipbar";
1418 return (
char*)
"omgpbar";
1421 return (
char*)
"omg";
1423 return (
char*)
"etap";
1425 return (
char*)
"phi";
1430 return (
char*)
"tri";
1434 return (
char*)
"he3";
1439 return (
char*)
"jpsi";
1441 return (
char*)
"etac";
1443 return (
char*)
"chic0";
1445 return (
char*)
"chic1";
1447 return (
char*)
"chic2";
1449 return (
char*)
"psi2S";
1453 return (
char*)
"d0bar";
1457 return (
char*)
"lambc";
1460 return (
char*)
"Unknown";
1471 case Gamma:
return 0;
1480 case KLong:
return 9;
1481 case KPlus:
return 10;
1506 case Rho0:
return 17;
1509 case omega:
return 20;
1525 case Jpsi:
return 36;
1526 case Eta_c:
return 37;
1530 case Psi2s:
return 41;
1532 case DPlus:
return 43;
1544 if(locIsDecayingFlag == 0)
1548 case 0:
return Gamma;
1557 case 9:
return KLong;
1558 case 10:
return KPlus;
1588 case 17:
return Rho0;
1591 case 20:
return omega;
1607 case 36:
return Jpsi;
1608 case 37:
return Eta_c;
1612 case 41:
return Psi2s;
1614 case 43:
return DPlus;
1640 return (locIntCharge == 0);
1642 return (locIntCharge > 0);
1644 return (locIntCharge < 0);
1646 return (locIntCharge != 0);
1657 float locMassTolerance = 0.010;
1658 if (locCharge > 0.1)
1666 else if(locCharge < -0.1)
static char * ParticleName_ROOT(Particle_t p)
static Particle_t ParticleEnum(const char *locParticleName)
static Particle_t RemapParticleID(Particle_t p)
static unsigned short int IsResonance(Particle_t p)
static Particle_t PDGtoPType(int locPDG_PID)
static unsigned short int IsDetachedVertex(Particle_t p)
static char * ParticleType(Particle_t p)
static int ParticleMultiplexPower(Particle_t locPID)
static int ParticleCharge(Particle_t p)
static int PDGtype(Particle_t p)
static Particle_t DemultiplexPID(int locBit, int locIsDecayingFlag)
static unsigned short int IsFixedMass(Particle_t p)
static char * Get_ShortName(Particle_t locPID)
static int IsLepton(Particle_t p)
static int Is_FinalStateParticle(Particle_t locPID)
static int Is_CorrectCharge(Particle_t locPID, Charge_t locCharge)
static double ParticleMass(Particle_t p)
static char * ShortName(Particle_t locPID)
static char * EnumString(Particle_t p)
static Particle_t IDTrack(float locCharge, float locMass)