Skip to content

Commit 1ef7166

Browse files
committed
[PWGLF] Add generator for antideuterons in jets
1 parent 0bb9670 commit 1ef7166

3 files changed

Lines changed: 70 additions & 0 deletions

File tree

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[GeneratorExternal]
2+
fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator_pythia8_longlived_gaptriggered.C
3+
funcName=generateLongLivedGapTriggered("${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/antideuteron.gun", 2, false)
4+
5+
[GeneratorPythia8]
6+
config=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGGAJE/pythia8/generator/pythia8_jet.cfg
7+
includePartonEvent=false
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{1};
5+
6+
std::vector<int> injectedPDGs = {
7+
-1000010020 // anti-deuteron
8+
};
9+
10+
auto nInjection = injectedPDGs.size();
11+
12+
TFile file(path.c_str(), "READ");
13+
if (file.IsZombie()) {
14+
std::cerr << "Cannot open ROOT file " << path << "\n";
15+
return 1;
16+
}
17+
18+
auto tree = (TTree*)file.Get("o2sim");
19+
if (!tree) {
20+
std::cerr << "Cannot find tree o2sim in file " << path << "\n";
21+
return 1;
22+
}
23+
24+
std::vector<o2::MCTrack>* tracks{};
25+
tree->SetBranchAddress("MCTrack", &tracks);
26+
27+
std::vector<int> nSignal(nInjection, 0);
28+
29+
auto nEvents = tree->GetEntries();
30+
31+
for (int i = 0; i < nEvents; i++) {
32+
tree->GetEntry(i);
33+
34+
for (int idxMCTrack = 0; idxMCTrack < tracks->size(); ++idxMCTrack) {
35+
auto track = tracks->at(idxMCTrack);
36+
auto pdg = track.GetPdgCode();
37+
38+
auto it = std::find(injectedPDGs.begin(), injectedPDGs.end(), pdg);
39+
40+
if (it != injectedPDGs.end()) {
41+
int index = std::distance(injectedPDGs.begin(), it);
42+
nSignal[index]++;
43+
}
44+
}
45+
}
46+
47+
std::cout << "--------------------------------\n";
48+
std::cout << "# Events: " << nEvents << "\n";
49+
50+
for (int i = 0; i < nInjection; i++) {
51+
std::cout << "# Injected particles\n";
52+
std::cout << injectedPDGs[i] << ": " << nSignal[i] << "\n";
53+
54+
if (nSignal[i] == 0) {
55+
std::cerr << "No generated: " << injectedPDGs[i] << "\n";
56+
return 1;
57+
}
58+
}
59+
60+
return 0;
61+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# PDG N ptMin ptMax yMin yMax
2+
-1000010020 1 0.5 10 -1 1

0 commit comments

Comments
 (0)