14#ifndef ALICEO2_GENERATORFROMFILE_H_
15#define ALICEO2_GENERATORFROMFILE_H_
17#include "FairGenerator.h"
60 TFile* mEventFile =
nullptr;
61 int mEventCounter = 0;
62 int mEventsAvailable = 0;
63 bool mSkipNonTrackable =
true;
64 bool mFixOffShell =
true;
95 TFile* mEventFile =
nullptr;
96 TBranch* mEventBranch =
nullptr;
97 TBranch* mMCHeaderBranch =
nullptr;
98 int mEventCounter = 0;
99 int mEventsAvailable = 0;
100 bool mSkipNonTrackable =
true;
101 bool mContinueMode =
false;
102 bool mRoundRobin =
false;
103 bool mRandomize =
false;
104 unsigned int mRngSeed = 0;
105 bool mRandomPhi =
false;
106 TGrid* mAlienInstance =
nullptr;
107 std::unique_ptr<O2KineGenConfig> mConfig;
109 std::unique_ptr<o2::dataformats::MCEventHeader> mOrigMCEventHeader;
129 bool Init()
override;
134 return mO2KineGenerator->generateEvent();
138 mO2KineGenerator->clearParticles();
139 auto import_good = mO2KineGenerator->importParticles();
141 mParticles = mO2KineGenerator->getParticles();
142 auto original_header = mO2KineGenerator->getOrigMCEventHeader();
144 if (original_header) {
145 double vertex[3] = {original_header->GetX(), original_header->GetY(), original_header->GetZ()};
149 p.SetProductionVertex(p.Vx() -
vertex[0], p.Vy() -
vertex[1], p.Vz() -
vertex[2], p.T());
159 const double xyz[3] = {eventHeader->GetX(), eventHeader->GetY(), eventHeader->GetZ()};
160 mO2KineGenerator->updateHeader(eventHeader);
162 eventHeader->SetVertex(xyz[0], xyz[1], xyz[2]);
168 std::vector<std::string>
const&
getFileUniverse()
const {
return mPoolFilesAvailable; }
172 std::unique_ptr<o2::eventgen::GeneratorFromO2Kine> mO2KineGenerator =
nullptr;
173 std::vector<std::string> mPoolFilesAvailable;
174 std::string mFileChosen;
176 std::mt19937 mRandomEngine;
GeneratorFromEventPool()=default
static constexpr std::string_view eventpool_filename
static constexpr std::string_view alien_protocol_prefix
std::vector< std::string > setupFileUniverse(std::string const &path) const
bool generateEvent() override
bool importParticles() override
void updateHeader(o2::dataformats::MCEventHeader *eventHeader) override
std::vector< std::string > const & getFileUniverse() const
GeneratorFromFile()=default
void SetSkipNonTrackable(bool b)
void SetStartEvent(int start)
void setFixOffShell(bool b)
bool rejectOrFixKinematics(TParticle &p)
bool ReadEvent(FairPrimaryGenerator *primGen) override
void setContinueMode(bool val)
void SetStartEvent(int start)
bool generateEvent() override
const o2::dataformats::MCEventHeader * getOrigMCEventHeader() const
void updateHeader(o2::dataformats::MCEventHeader *eventHeader) override
bool importParticles() override
GeneratorFromO2Kine()=default
std::vector< TParticle > mParticles
GLuint const GLchar * name
GLboolean GLboolean GLboolean b
GLsizei const GLchar *const * path
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"