Skip to content

Commit 33a84c4

Browse files
committed
add GeneratorLnnPbPb.C
1 parent 3a6f38a commit 33a84c4

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
int External()
2+
{
3+
std::string path{"o2sim_Kine.root"};
4+
int numberOfInjectedSignalsPerEvent{10};
5+
std::vector<int> injectedPDGs = {1010000030, -1010000030};
6+
7+
auto nInjection = injectedPDGs.size();
8+
9+
TFile file(path.c_str(), "READ");
10+
if (file.IsZombie())
11+
{
12+
std::cerr << "Cannot open ROOT file " << path << "\n";
13+
return 1;
14+
}
15+
16+
auto tree = (TTree *)file.Get("o2sim");
17+
if (!tree)
18+
{
19+
std::cerr << "Cannot find tree o2sim in file " << path << "\n";
20+
return 1;
21+
}
22+
std::vector<o2::MCTrack> *tracks{};
23+
tree->SetBranchAddress("MCTrack", &tracks);
24+
25+
std::vector<int> nSignal;
26+
for (int i = 0; i < nInjection; i++)
27+
{
28+
nSignal.push_back(0);
29+
}
30+
31+
auto nEvents = tree->GetEntries();
32+
for (int i = 0; i < nEvents; i++)
33+
{
34+
auto check = tree->GetEntry(i);
35+
for (int idxMCTrack = 0; idxMCTrack < tracks->size(); ++idxMCTrack)
36+
{
37+
auto track = tracks->at(idxMCTrack);
38+
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
42+
{
43+
// count signal PDG
44+
nSignal[index]++;
45+
}
46+
}
47+
}
48+
std::cout << "--------------------------------\n";
49+
std::cout << "# Events: " << nEvents << "\n";
50+
for (int i = 0; i < nInjection; i++)
51+
{
52+
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+
}
59+
}
60+
return 0;
61+
}

0 commit comments

Comments
 (0)