7 case 22: mctxt+=
"#gamma" ;
break;
8 case 11: mctxt+=
"e^{-}" ;
break;
9 case -11: mctxt+=
"e^{+}" ;
break;
10 case 13: mctxt+=
"#mu^{-}" ;
break;
11 case -13: mctxt+=
"#mu^{+}" ;
break;
12 case 111: mctxt+=
"#pi^{0}" ;
break;
13 case 211: mctxt+=
"#pi^{+}" ;
break;
14 case -211: mctxt+=
"#pi^{-}" ;
break;
15 case 310: mctxt+=
"K^{0}_{S}" ;
break;
16 case 130: mctxt+=
"K^{0}_{L}" ;
break;
17 case 321: mctxt+=
"K^{+}" ;
break;
18 case -321: mctxt+=
"K^{-}" ;
break;
20 case 12: mctxt+=
"#nu_{e}";
break;
21 case 14: mctxt+=
"#nu_{#mu}";
break;
22 case -12: mctxt+=
"#bar{#nu}_{e}";
break;
23 case -14: mctxt+=
"#bar{#nu}_{#mu}";
break;
25 case 2112: mctxt+=
"n" ;
break;
26 case 2212: mctxt+=
"p" ;
break;
28 case 3122: mctxt+=
"#Lambda";
break;
29 case 3124: mctxt+=
"#Lambda(1520)";
break;
30 case 13122: mctxt+=
"#Lambda(1405)";
break;
32 case 3222: mctxt+=
"#Sigma^{+}";
break;
33 case 3224: mctxt+=
"#Sigma^{*+}";
break;
34 case 3212: mctxt+=
"#Sigma^{0}";
break;
35 case 3214: mctxt+=
"#Sigma^{*0}";
break;
36 case 3112: mctxt+=
"#Sigma^{-}";
break;
37 case 3114: mctxt+=
"#Sigma^{*-}";
break;
39 case 3312: mctxt+=
"#Xi^{-}";
break;
40 case 3322: mctxt+=
"#Xi^{0}";
break;
41 case 3314: mctxt+=
"#Xi^{*-}";
break;
42 case 3324: mctxt+=
"#Xi^{*0}";
break;
44 case 3334: mctxt+=
"#Omega^{-}";
break;
46 case -2112: mctxt+=
"#bar{n}" ;
break;
47 case -2212: mctxt+=
"#bar{p}" ;
break;
49 case -3122: mctxt+=
"#bar{#Lambda}";
break;
50 case -3124: mctxt+=
"#bar{#Lambda}(1520)";
break;
51 case -13122: mctxt+=
"#bar{#Lambda}(1405)";
break;
53 case -3222: mctxt+=
"#bar{#Sigma}^{-}";
break;
54 case -3224: mctxt+=
"#bar{#Sigma}^{*-}";
break;
55 case -3212: mctxt+=
"#bar{#Sigma}^{0}";
break;
56 case -3214: mctxt+=
"#bar{#Sigma}^{*0}";
break;
57 case -3112: mctxt+=
"#bar{#Sigma}^{+}";
break;
58 case -3114: mctxt+=
"#bar{#Sigma}^{*+}";
break;
60 case -3312: mctxt+=
"#bar{#Xi}^{+}";
break;
61 case -3322: mctxt+=
"#bar{#Xi}^{0}";
break;
62 case -3314: mctxt+=
"#bar{#Xi}^{*+}";
break;
63 case -3324: mctxt+=
"#bar{#Xi}^{*0}";
break;
65 case -3334: mctxt+=
"#bar{#Omega}^{+}";
break;
67 case 443: mctxt+=
"J/#Psi";
break;
68 case 100443: mctxt+=
"#Psi(2S)";
break;
69 case 441: mctxt+=
"#eta_c(1S)";
break;
70 case 10441: mctxt+=
"#xi_{c0}(1P)";
break;
71 case 20443: mctxt+=
"#xi_{c1}(1P)";
break;
72 case 445: mctxt+=
"#xi_{c2}(1P)";
break;
73 case 100441: mctxt+=
"#eta_c(2S)";
break;
74 case 10443: mctxt+=
"h_c(1P)";
break;
76 default: mctxt+=
"?" ;
break;
86 TLorentzVector sum, tmp;
89 if(
id<0)
return "none";
95 for(Int_t
i=0;
i<mctrack_array->GetEntries();
i++){
112 if( sum.P()>1e-4 || sum.E()>1e-4){
125 if(
fabs(sum.P()-tmp.P())>1e-4 ||
fabs(sum.E()-tmp.E())>1e-4){
126 cout <<
"Check id "<<
id<<
": "<<mctxt<<
" : "<<
136 cout <<
"Missing Energy/Momentum detected... decay tree might be corrupted!"<<endl;
149 cout <<
"-------------------------------------------------"<<endl
150 <<
"This macro checks the decay tree stored by QAmacro evtgen_1"<<endl
151 <<
"in file qa_evtgen1.root"<<endl
152 <<
"It checks all particles decayed by the EvtGen if the"<<endl
153 <<
"energy and momentum of the daughter particles sums up"<<endl
154 <<
"to the initial particle."<<endl
155 <<
"It fails if more than 100keV is missing."<<endl
156 <<
"-----------------------------------------------"<<endl;
163 TChain *abc=
new TChain(
"pndsim");
164 abc->Add(
"qa_evtgen1.root");
167 abc->SetBranchAddress(
"MCTrack",&mctrack_array);
169 Int_t
ncounts = abc->GetEntries();
170 if(ncounts<1) fTest=kFALSE;
172 for(
int k = 0; k <
ncounts; k++){
175 cout <<
"====== Evt "<<k<<
" ======="<<endl;
176 for(Int_t
i=0;
i<mctrack_array->GetEntries();
i++){
182 cout <<
"==================="<<endl;
187 cout <<
" Test Passed" << endl;
188 cout <<
" All Ok " << endl;
190 cout <<
" Test Failed" << endl;
191 cout <<
" Not Ok " << endl;
196 printf(
"RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
TLorentzVector Get4Momentum() const
void add_mccode(TString &mctxt, Int_t id)
Bool_t propagate_mclist(Int_t id, TClonesArray *mctrack_array)
friend F32vec4 fabs(const F32vec4 &a)
Int_t GetSecondMotherID() const
TClonesArray * mctrack_array
Int_t GetMotherID() const