Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions MC/config/PWGGAJE/ini/hook_prompt_gamma_gap3.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[GeneratorExternal]
fileName = ${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGGAJE/external/generator/generator_pythia8_gaptrigger_promptphotons_hook.C
funcName = getGeneratorPythia8GapGenJEPhoton(3,"${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGGAJE/pythia8/generator/pythia8_minbias.cfg","${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGGAJE/pythia8/generator/pythia8_promptphoton.cfg")

[GeneratorPythia8]
config=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGGAJE/pythia8/generator/pythia8_promptphoton.cfg
includePartonEvent=true
7 changes: 7 additions & 0 deletions MC/config/PWGGAJE/ini/hook_prompt_gamma_gap5.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[GeneratorExternal]
fileName = ${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGGAJE/external/generator/generator_pythia8_gaptrigger_promptphotons_hook.C
funcName = getGeneratorPythia8GapGenJEPhoton(5,"${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGGAJE/pythia8/generator/pythia8_minbias.cfg","${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGGAJE/pythia8/generator/pythia8_promptphoton.cfg")

[GeneratorPythia8]
config=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGGAJE/pythia8/generator/pythia8_promptphoton.cfg
includePartonEvent=true
7 changes: 7 additions & 0 deletions MC/config/PWGGAJE/ini/hook_prompt_gamma_gap7.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[GeneratorExternal]
fileName = ${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGGAJE/external/generator/generator_pythia8_gaptrigger_promptphotons_hook.C
funcName = getGeneratorPythia8GapGenJEPhoton(7,"${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGGAJE/pythia8/generator/pythia8_minbias.cfg","${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGGAJE/pythia8/generator/pythia8_promptphoton.cfg")

[GeneratorPythia8]
config=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGGAJE/pythia8/generator/pythia8_promptphoton.cfg
includePartonEvent=true
7 changes: 7 additions & 0 deletions MC/config/PWGGAJE/ini/hook_prompt_gamma_gap9.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[GeneratorExternal]
fileName = ${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGGAJE/external/generator/generator_pythia8_gaptrigger_promptphotons_hook.C
funcName = getGeneratorPythia8GapGenJEPhoton(9,"${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGGAJE/pythia8/generator/pythia8_minbias.cfg","${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGGAJE/pythia8/generator/pythia8_promptphoton.cfg")

[GeneratorPythia8]
config=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGGAJE/pythia8/generator/pythia8_promptphoton.cfg
includePartonEvent=true
71 changes: 71 additions & 0 deletions MC/config/PWGGAJE/ini/tests/hook_prompt_gamma_gap3.C
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
int External() {
std::string path{"o2sim_Kine.root"};

float ratioTrigger = 1./3; // one event triggered out of 3


TFile file(path.c_str(), "READ");
if (file.IsZombie()) {
std::cerr << "Cannot open ROOT file " << path << "\n";
return 1;
}

auto tree = (TTree *)file.Get("o2sim");
std::vector<o2::MCTrack> *tracks{};
tree->SetBranchAddress("MCTrack", &tracks);
o2::dataformats::MCEventHeader *eventHeader = nullptr;
tree->SetBranchAddress("MCEventHeader.", &eventHeader);

int nEventsMB{}, nEventsJetJet{};
float sumWeightsMB{}, sumWeightsJetJet{};
int sumTracks{};
auto nEvents = tree->GetEntries();

for (int i = 0; i < nEvents; i++) {
tree->GetEntry(i);

// check subgenerator information and event weights
if (eventHeader->hasInfo(o2::mcgenid::GeneratorProperty::SUBGENERATORID)) {
bool isValid = false;
int subGeneratorId = eventHeader->getInfo<int>(o2::mcgenid::GeneratorProperty::SUBGENERATORID, isValid);
if (eventHeader->hasInfo(o2::dataformats::MCInfoKeys::weight)) {
float weight = eventHeader->getInfo<float>(o2::dataformats::MCInfoKeys::weight,isValid);
if (subGeneratorId == 0) {
nEventsMB++;
sumWeightsMB += weight;
}
else if (subGeneratorId == 1) {
nEventsJetJet++;
sumWeightsJetJet += weight;
}
}
}
sumTracks += tracks->size();
}

std::cout << "--------------------------------\n";
std::cout << "# Events: " << nEvents << "\n";
std::cout << "# MB events: " << nEventsMB << "\n";
std::cout << " sum of weights for MB events: " << sumWeightsMB << "\n";
std::cout << "# prompt_photon events " << nEventsJetJet << "\n";
std::cout << " sum of weights prompt_photon events: " << sumWeightsJetJet << "\n";
std::cout << "# tracks summed over all events (prompt_photon + MB): " << sumTracks << "\n";

if (nEventsMB < nEvents * (1 - ratioTrigger) * 0.95 || nEventsMB > nEvents * (1 - ratioTrigger) * 1.05) { // we put some tolerance since the number of generated events is small
std::cerr << "Number of generated MB events different than expected\n";
return 1;
}
if (nEventsJetJet < nEvents * ratioTrigger * 0.95 || nEventsJetJet > nEvents * ratioTrigger * 1.05) {
std::cerr << "Number of prompt_photon generated events different than expected\n";
return 1;
}
if(nEventsMB < sumWeightsMB * 0.95 || nEventsMB > sumWeightsMB * 1.05) {
std::cerr << "Weights of MB events do not = 1 as expected\n";
return 1;
}
if(sumTracks < 1) {
std::cerr << "No tracks in simulated events\n";
return 1;
}
return 0;
}
71 changes: 71 additions & 0 deletions MC/config/PWGGAJE/ini/tests/hook_prompt_gamma_gap5.C
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
int External() {
std::string path{"o2sim_Kine.root"};

float ratioTrigger = 1./5; // one event triggered out of 5


TFile file(path.c_str(), "READ");
if (file.IsZombie()) {
std::cerr << "Cannot open ROOT file " << path << "\n";
return 1;
}

auto tree = (TTree *)file.Get("o2sim");
std::vector<o2::MCTrack> *tracks{};
tree->SetBranchAddress("MCTrack", &tracks);
o2::dataformats::MCEventHeader *eventHeader = nullptr;
tree->SetBranchAddress("MCEventHeader.", &eventHeader);

int nEventsMB{}, nEventsJetJet{};
float sumWeightsMB{}, sumWeightsJetJet{};
int sumTracks{};
auto nEvents = tree->GetEntries();

for (int i = 0; i < nEvents; i++) {
tree->GetEntry(i);

// check subgenerator information and event weights
if (eventHeader->hasInfo(o2::mcgenid::GeneratorProperty::SUBGENERATORID)) {
bool isValid = false;
int subGeneratorId = eventHeader->getInfo<int>(o2::mcgenid::GeneratorProperty::SUBGENERATORID, isValid);
if (eventHeader->hasInfo(o2::dataformats::MCInfoKeys::weight)) {
float weight = eventHeader->getInfo<float>(o2::dataformats::MCInfoKeys::weight,isValid);
if (subGeneratorId == 0) {
nEventsMB++;
sumWeightsMB += weight;
}
else if (subGeneratorId == 1) {
nEventsJetJet++;
sumWeightsJetJet += weight;
}
}
}
sumTracks += tracks->size();
}

std::cout << "--------------------------------\n";
std::cout << "# Events: " << nEvents << "\n";
std::cout << "# MB events: " << nEventsMB << "\n";
std::cout << " sum of weights for MB events: " << sumWeightsMB << "\n";
std::cout << "# prompt_photon events " << nEventsJetJet << "\n";
std::cout << " sum of weights prompt_photon events: " << sumWeightsJetJet << "\n";
std::cout << "# tracks summed over all events (prompt_photon + MB): " << sumTracks << "\n";

if (nEventsMB < nEvents * (1 - ratioTrigger) * 0.95 || nEventsMB > nEvents * (1 - ratioTrigger) * 1.05) { // we put some tolerance since the number of generated events is small
std::cerr << "Number of generated MB events different than expected\n";
return 1;
}
if (nEventsJetJet < nEvents * ratioTrigger * 0.95 || nEventsJetJet > nEvents * ratioTrigger * 1.05) {
std::cerr << "Number of prompt_photon generated events different than expected\n";
return 1;
}
if(nEventsMB < sumWeightsMB * 0.95 || nEventsMB > sumWeightsMB * 1.05) {
std::cerr << "Weights of MB events do not = 1 as expected\n";
return 1;
}
if(sumTracks < 1) {
std::cerr << "No tracks in simulated events\n";
return 1;
}
return 0;
}
71 changes: 71 additions & 0 deletions MC/config/PWGGAJE/ini/tests/hook_prompt_gamma_gap7.C
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
int External() {
std::string path{"o2sim_Kine.root"};

float ratioTrigger = 1./7; // one event triggered out of 7


TFile file(path.c_str(), "READ");
if (file.IsZombie()) {
std::cerr << "Cannot open ROOT file " << path << "\n";
return 1;
}

auto tree = (TTree *)file.Get("o2sim");
std::vector<o2::MCTrack> *tracks{};
tree->SetBranchAddress("MCTrack", &tracks);
o2::dataformats::MCEventHeader *eventHeader = nullptr;
tree->SetBranchAddress("MCEventHeader.", &eventHeader);

int nEventsMB{}, nEventsJetJet{};
float sumWeightsMB{}, sumWeightsJetJet{};
int sumTracks{};
auto nEvents = tree->GetEntries();

for (int i = 0; i < nEvents; i++) {
tree->GetEntry(i);

// check subgenerator information and event weights
if (eventHeader->hasInfo(o2::mcgenid::GeneratorProperty::SUBGENERATORID)) {
bool isValid = false;
int subGeneratorId = eventHeader->getInfo<int>(o2::mcgenid::GeneratorProperty::SUBGENERATORID, isValid);
if (eventHeader->hasInfo(o2::dataformats::MCInfoKeys::weight)) {
float weight = eventHeader->getInfo<float>(o2::dataformats::MCInfoKeys::weight,isValid);
if (subGeneratorId == 0) {
nEventsMB++;
sumWeightsMB += weight;
}
else if (subGeneratorId == 1) {
nEventsJetJet++;
sumWeightsJetJet += weight;
}
}
}
sumTracks += tracks->size();
}

std::cout << "--------------------------------\n";
std::cout << "# Events: " << nEvents << "\n";
std::cout << "# MB events: " << nEventsMB << "\n";
std::cout << " sum of weights for MB events: " << sumWeightsMB << "\n";
std::cout << "# prompt_photon events " << nEventsJetJet << "\n";
std::cout << " sum of weights prompt_photon events: " << sumWeightsJetJet << "\n";
std::cout << "# tracks summed over all events (prompt_photon + MB): " << sumTracks << "\n";

if (nEventsMB < nEvents * (1 - ratioTrigger) * 0.95 || nEventsMB > nEvents * (1 - ratioTrigger) * 1.05) { // we put some tolerance since the number of generated events is small
std::cerr << "Number of generated MB events different than expected\n";
return 1;
}
if (nEventsJetJet < nEvents * ratioTrigger * 0.95 || nEventsJetJet > nEvents * ratioTrigger * 1.05) {
std::cerr << "Number of prompt_photon generated events different than expected\n";
return 1;
}
if(nEventsMB < sumWeightsMB * 0.95 || nEventsMB > sumWeightsMB * 1.05) {
std::cerr << "Weights of MB events do not = 1 as expected\n";
return 1;
}
if(sumTracks < 1) {
std::cerr << "No tracks in simulated events\n";
return 1;
}
return 0;
}
71 changes: 71 additions & 0 deletions MC/config/PWGGAJE/ini/tests/hook_prompt_gamma_gap9.C
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
int External() {
std::string path{"o2sim_Kine.root"};

float ratioTrigger = 1./9; // one event triggered out of 9


TFile file(path.c_str(), "READ");
if (file.IsZombie()) {
std::cerr << "Cannot open ROOT file " << path << "\n";
return 1;
}

auto tree = (TTree *)file.Get("o2sim");
std::vector<o2::MCTrack> *tracks{};
tree->SetBranchAddress("MCTrack", &tracks);
o2::dataformats::MCEventHeader *eventHeader = nullptr;
tree->SetBranchAddress("MCEventHeader.", &eventHeader);

int nEventsMB{}, nEventsJetJet{};
float sumWeightsMB{}, sumWeightsJetJet{};
int sumTracks{};
auto nEvents = tree->GetEntries();

for (int i = 0; i < nEvents; i++) {
tree->GetEntry(i);

// check subgenerator information and event weights
if (eventHeader->hasInfo(o2::mcgenid::GeneratorProperty::SUBGENERATORID)) {
bool isValid = false;
int subGeneratorId = eventHeader->getInfo<int>(o2::mcgenid::GeneratorProperty::SUBGENERATORID, isValid);
if (eventHeader->hasInfo(o2::dataformats::MCInfoKeys::weight)) {
float weight = eventHeader->getInfo<float>(o2::dataformats::MCInfoKeys::weight,isValid);
if (subGeneratorId == 0) {
nEventsMB++;
sumWeightsMB += weight;
}
else if (subGeneratorId == 1) {
nEventsJetJet++;
sumWeightsJetJet += weight;
}
}
}
sumTracks += tracks->size();
}

std::cout << "--------------------------------\n";
std::cout << "# Events: " << nEvents << "\n";
std::cout << "# MB events: " << nEventsMB << "\n";
std::cout << " sum of weights for MB events: " << sumWeightsMB << "\n";
std::cout << "# prompt_photon events " << nEventsJetJet << "\n";
std::cout << " sum of weights prompt_photon events: " << sumWeightsJetJet << "\n";
std::cout << "# tracks summed over all events (prompt_photon + MB): " << sumTracks << "\n";

if (nEventsMB < nEvents * (1 - ratioTrigger) * 0.90 || nEventsMB > nEvents * (1 - ratioTrigger) * 1.10) { // we put some tolerance since the number of generated events is small
std::cerr << "Number of generated MB events different than expected\n";
return 1;
}
if (nEventsJetJet < nEvents * ratioTrigger * 0.90 || nEventsJetJet > nEvents * ratioTrigger * 1.10) {
std::cerr << "Number of prompt_photon generated events different than expected\n";
return 1;
}
if(nEventsMB < sumWeightsMB * 0.90 || nEventsMB > sumWeightsMB * 1.10) {
std::cerr << "Weights of MB events do not = 1 as expected\n";
return 1;
}
if(sumTracks < 1) {
std::cerr << "No tracks in simulated events\n";
return 1;
}
return 0;
}
Loading