14#ifndef ALICEO2_EVENTGEN_BOX
15#define ALICEO2_EVENTGEN_BOX
45 double phimax) : mPDG{pdgid}, mMult{mult}
59 void SetPRange(Double32_t pmin = 0, Double32_t pmax = 10)
76 mEtaRangeIsSet =
true;
86 for (
int i = 0;
i < mMult; ++
i) {
94 std::copy(mEvent.begin(), mEvent.end(), std::back_insert_iterator(
mParticles));
96 auto statusCode = particle.GetStatusCode();
110 eventHeader->
putInfo<std::string>(Key::generator,
"o2::eventgen::BoxGenerator");
115 double mPtMin{0.}, mPtMax{0.};
116 double mPhiMin{0.}, mPhiMax{360.};
117 double mEtaMin{0.}, mEtaMax{0.};
118 double mYMin{0.}, mYMax{0.};
119 double mPMin{0.}, mPMax{0.};
120 double mThetaMin{0.}, mThetaMax{0.};
121 double mEkinMin{0.}, mEkinMax{0.};
126 bool mEtaRangeIsSet{
false};
127 bool mYRangeIsSet{
false};
128 bool mThetaRangeIsSet{
false};
129 bool mCosThetaIsSet{
false};
131 bool mPtRangeIsSet{
false};
132 bool mPRangeIsSet{
false};
133 bool mEkinRangeIsSet{
false};
135 std::vector<TParticle> mEvent;
o2::monitoring::tags::Key Key
void updateHeader(o2::dataformats::MCEventHeader *eventHeader) override
TParticle sampleParticle() const
generates a single particle conforming to particle gun parameters
void SetEtaRange(double etamin=-5, double etamax=5)
bool generateEvent() override
implements the main O2 generator interfaces
void SetPRange(Double32_t pmin=0, Double32_t pmax=10)
bool importParticles() override
BoxGenerator(int pdgid, int mult, double etamin, double etamax, double pmin, double pmax, double phimin, double phimax)
void SetPhiRange(double phimin=0, double phimax=360)
BoxGenerator(int pdgid, int mult=1)
BoxGenerator(BoxGenConfig const &config)
std::vector< TParticle > mParticles
int getHepMCStatusCode(MCGenStatusEncoding enc)
bool isEncoded(MCGenStatusEncoding statusCode)