20#include "FairPrimaryGenerator.h"
21#include <fairlogger/Logger.h>
23#include "TClonesArray.h"
32unsigned int Generator::gTotalNEvents = 0;
84 LOG(error) <<
"ReadEvent failed in generateEvent";
90 LOG(error) <<
"ReadEvent failed in importParticles";
94 if (mSubGeneratorsIdToDesc.empty() && mSubGeneratorId > -1) {
95 LOG(fatal) <<
"ReadEvent failed because no SubGenerator description given";
98 if (!mSubGeneratorsIdToDesc.empty() && mSubGeneratorId < 0) {
99 LOG(fatal) <<
"ReadEvent failed because SubGenerator description given but sub-generator not set";
113 LOG(error) <<
"ReadEvent failed in addTracks";
118 auto header = primGen->GetEvent();
121 LOG(fatal) <<
"MC event header is not a 'o2::dataformats::MCEventHeader' object";
125 updateSubGeneratorInformation(o2header);
140 LOG(fatal) <<
"PrimaryGenerator is not a o2::eventgen::PrimaryGenerator";
146 o2primGen->
AddTrack(particle.GetPdgCode(),
153 particle.GetMother(0),
154 particle.GetMother(1),
155 particle.GetDaughter(0),
156 particle.GetDaughter(1),
160 particle.GetWeight(),
161 (TMCProcess)particle.GetUniqueID(),
162 particle.GetStatusCode());
234 if (subGeneratorId < 0) {
235 LOG(fatal) <<
"Sub-generator IDs must be >= 0, instead, passed value is " << subGeneratorId;
237 mSubGeneratorsIdToDesc.insert({subGeneratorId, subGeneratorDescription});
244 if (mSubGeneratorId < 0) {
ClassImp(o2::eventgen::Generator)
virtual void updateHeader(o2::dataformats::MCEventHeader *eventHeader)
std::string mInterfaceName
Bool_t ReadEvent(FairPrimaryGenerator *primGen) final
static std::atomic< int > InstanceCounter
std::vector< Trigger > mTriggers
std::function< void(std::vector< TParticle > const &p, int eventCount)> mTriggerOkHook
virtual Bool_t generateEvent()=0
std::vector< DeepTrigger > mDeepTriggers
std::function< void(std::vector< TParticle > const &p, int eventCount)> mTriggerFalseHook
void addSubGenerator(int subGeneratorId, std::string const &subGeneratorDescription)
ETriggerMode_t mTriggerMode
Bool_t addTracks(FairPrimaryGenerator *primGen)
std::vector< TParticle > mParticles
virtual Bool_t importParticles()=0
void AddTrack(Int_t pdgid, Double_t px, Double_t py, Double_t pz, Double_t vx, Double_t vy, Double_t vz, Int_t mother1=-1, Int_t mother2=-1, Int_t daughter1=-1, Int_t daughter2=-1, Bool_t wanttracking=true, Double_t e=-9e9, Double_t tof=0., Double_t weight=0., TMCProcess proc=kPPrimary, Int_t generatorStatus=0)
static constexpr Property SUBGENERATORID
static constexpr Property SUBGENERATORDESCRIPTIONMAP
GLuint const GLchar * name
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"