Skip to content

Commit

Permalink
Implemented GeneratorEPOS4 test
Browse files Browse the repository at this point in the history
  • Loading branch information
jackal1-66 committed Nov 8, 2024
1 parent c62c9fc commit e0b88b1
Showing 1 changed file with 64 additions and 0 deletions.
64 changes: 64 additions & 0 deletions MC/config/examples/ini/tests/GeneratorEPOS4.C
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
int External()
{
std::string path{"o2sim_Kine.root"};
// Check that file exists, can be opened and has the correct tree
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");
if (!tree)
{
std::cerr << "Cannot find tree o2sim in file " << path << "\n";
return 1;
}
std::vector<o2::MCTrack> *tracks{};
tree->SetBranchAddress("MCTrack", &tracks);

// Check if all events are filled
auto nEvents = tree->GetEntries();
for (Long64_t i = 0; i < nEvents; ++i)
{
tree->GetEntry(i);
if (tracks->empty())
{
std::cerr << "Empty entry found at event " << i << "\n";
return 1;
}
}
// Check if there are 100 events, as simulated in the o2dpg-test
if (nEvents != 100)
{
std::cerr << "Expected 100 events, got " << nEvents << "\n";
return 1;
}
// check if each event has two protons with 6800 GeV of energy
// exits if the particle is not a proton
for (int i = 0; i < nEvents; i++)
{
auto check = tree->GetEntry(i);
int count = 0;
for (int idxMCTrack = 0; idxMCTrack < tracks->size(); ++idxMCTrack)
{
auto track = tracks->at(idxMCTrack);
double energy = track.GetEnergy();
// Check if track energy is approximately equal to 6800 GeV (a tolerance of 65 keV is considered, straight equality does not work due to floating point precision)
if (std::abs(energy - 6800) < 1e-4)
{
if (track.GetPdgCode() != 2212){
std::cerr << "Found 6800 GeV particle with pdgID " << track.GetPdgCode() << "\n";
return 1;
}
count++;
}
}
if (count < 2)
{
std::cerr << "Event " << i << " has less than 2 protons at 6800 GeV\n";
return 1;
}
}
return 0;
}

0 comments on commit e0b88b1

Please sign in to comment.