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)
void add_mccode(TString &mctxt, Int_t id)
TLorentzVector Get4Momentum() const 
friend F32vec4 fabs(const F32vec4 &a)
Int_t GetSecondMotherID() const 
TClonesArray * mctrack_array
Int_t GetMotherID() const 
void propagate_mclist(Int_t id, TClonesArray *mctrack_array, Double_t x, Double_t y)