11int External ()
22{
33 std ::string path {"o2sim_Kine.root" };
4- int numberOfInjectedSignalsPerEvent {10 };
5- std ::vector < int > injectedPDGs = {1010000030 , -1010000030 };
4+ std ::vector < int > possiblePDGs = {1010000030 , -1010000030 };
65
7- auto nInjection = injectedPDGs .size ();
6+ int nPossiblePDGs = possiblePDGs .size ();
87
98 TFile file (path .c_str (), "READ ");
109 if (file .IsZombie ())
@@ -22,11 +21,7 @@ int External()
2221 std ::vector < o2 ::MCTrack > * tracks {};
2322 tree -> SetBranchAddress ("MCTrack" , & tracks );
2423
25- std ::vector < int > nSignal ;
26- for (int i = 0 ; i < nInjection ; i ++ )
27- {
28- nSignal .push_back (0 );
29- }
24+ std ::vector < int > injectedPDGs ;
3025
3126 auto nEvents = tree -> GetEntries ();
3227 for (int i = 0 ; i < nEvents ; i ++ )
@@ -36,26 +31,23 @@ int External()
3631 {
3732 auto track = tracks -> at (idxMCTrack );
3833 auto pdg = track .GetPdgCode ();
39- auto it = std ::find (injectedPDGs .begin (), injectedPDGs .end (), pdg );
40- int index = std ::distance (injectedPDGs .begin (), it ); // index of injected PDG
41- if (it != injectedPDGs .end ()) // found
34+ auto it = std ::find (possiblePDGs .begin (), possiblePDGs .end (), pdg );
35+ if (it != possiblePDGs .end () && track .isPrimary ()) // found
4236 {
43- // count signal PDG
44- nSignal [index ]++ ;
37+ injectedPDGs .push_back (pdg );
4538 }
4639 }
4740 }
4841 std ::cout << "--------------------------------\n" ;
4942 std ::cout << "# Events: " << nEvents << "\n" ;
50- for (int i = 0 ; i < nInjection ; i ++ )
43+ if (injectedPDGs .empty ()){
44+ std ::cerr << "No injected particles\n" ;
45+ return 1 ; // At least one of the injected particles should be generated
46+ }
47+ for (int i = 0 ; i < nPossiblePDGs ; i ++ )
5148 {
5249 std ::cout << "# Injected nuclei \n" ;
53- std ::cout << injectedPDGs [i ] << ": " << nSignal [i ] << "\n" ;
54- if (nSignal [i ] == 0 )
55- {
56- std ::cerr << "No generated: " << injectedPDGs [i ] << "\n" ;
57- return 1 ; // At least one of the injected particles should be generated
58- }
50+ std ::cout << possiblePDGs [i ] << ": " << std ::count (injectedPDGs .begin (), injectedPDGs .end (), possiblePDGs [i ]) << "\n" ;
5951 }
6052 return 0 ;
6153}
0 commit comments