Project
Loading...
Searching...
No Matches
o2::eventgen::Generator Class Referenceabstract

#include <Generator.h>

Inherits FairGenerator.

Inherited by o2::eventgen::BoxGenerator, o2::eventgen::GeneratorFromEventPool, o2::eventgen::GeneratorFromO2Kine, o2::eventgen::GeneratorHepMC, o2::eventgen::GeneratorHybrid, o2::eventgen::GeneratorPythia8, o2::eventgen::GeneratorTGenerator, and o2::eventgen::GeneratorTParticle.

Public Types

enum  ETriggerMode_t { kTriggerOFF , kTriggerOR , kTriggerAND }
 

Public Member Functions

 Generator ()
 
 Generator (const Char_t *name, const Char_t *title="ALICEo2 Generator")
 
 ~Generator () override=default
 
Bool_t Init () override
 
Bool_t ReadEvent (FairPrimaryGenerator *primGen) final
 
virtual Bool_t generateEvent ()=0
 
virtual Bool_t importParticles ()=0
 
virtual void updateHeader (o2::dataformats::MCEventHeader *eventHeader)
 
Bool_t triggerEvent ()
 
void setMomentumUnit (double val)
 
void setEnergyUnit (double val)
 
void setPositionUnit (double val)
 
void setTimeUnit (double val)
 
void setBoost (Double_t val)
 
void setTriggerMode (ETriggerMode_t val)
 
void addTrigger (Trigger trigger)
 
void addDeepTrigger (DeepTrigger trigger)
 
const std::vector< TParticle > & getParticles () const
 
void clearParticles ()
 
virtual void notifyEmbedding (const o2::dataformats::MCEventHeader *eventHeader)
 
void setTriggerOkHook (std::function< void(std::vector< TParticle > const &p, int eventCount)> f)
 
void setTriggerFalseHook (std::function< void(std::vector< TParticle > const &p, int eventCount)> f)
 

Static Public Member Functions

static void setTotalNEvents (unsigned int &n)
 
static unsigned int getTotalNEvents ()
 

Protected Member Functions

 Generator (const Generator &)
 
Generatoroperator= (const Generator &)
 
Bool_t addTracks (FairPrimaryGenerator *primGen)
 
Bool_t boostEvent ()
 
void addSubGenerator (int subGeneratorId, std::string const &subGeneratorDescription)
 
void notifySubGenerator (int subGeneratorId)
 

Protected Attributes

voidmInterface = nullptr
 
std::string mInterfaceName
 
ETriggerMode_t mTriggerMode = kTriggerOFF
 
std::vector< TriggermTriggers
 
std::vector< DeepTriggermDeepTriggers
 
std::function< void(std::vector< TParticle > const &p, int eventCount)> mTriggerOkHook = [](std::vector<TParticle> const& p, int eventCount) {}
 
std::function< void(std::vector< TParticle > const &p, int eventCount)> mTriggerFalseHook = [](std::vector<TParticle> const& p, int eventCount) {}
 
int mReadEventCounter = 0
 
double mMomentumUnit = 1.
 
double mEnergyUnit = 1.
 
double mPositionUnit = 0.1
 
double mTimeUnit = 3.3356410e-12
 
std::vector< TParticle > mParticles
 
Double_t mBoost
 
int mThisInstanceID = 0
 

Static Protected Attributes

static std::atomic< intInstanceCounter {0}
 

Detailed Description

Definition at line 46 of file Generator.h.

Member Enumeration Documentation

◆ ETriggerMode_t

Enumerator
kTriggerOFF 
kTriggerOR 
kTriggerAND 

Definition at line 50 of file Generator.h.

Constructor & Destructor Documentation

◆ Generator() [1/3]

o2::eventgen::Generator::Generator ( )

default constructor

default constructor

Definition at line 36 of file Generator.cxx.

◆ Generator() [2/3]

o2::eventgen::Generator::Generator ( const Char_t *  name,
const Char_t *  title = "ALICEo2 Generator" 
)

constructor

constructor

Definition at line 46 of file Generator.cxx.

◆ ~Generator()

o2::eventgen::Generator::~Generator ( )
overridedefault

destructor

◆ Generator() [3/3]

o2::eventgen::Generator::Generator ( const Generator )
protected

copy constructor

Member Function Documentation

◆ addDeepTrigger()

void o2::eventgen::Generator::addDeepTrigger ( DeepTrigger  trigger)
inline

Definition at line 87 of file Generator.h.

◆ addSubGenerator()

void o2::eventgen::Generator::addSubGenerator ( int  subGeneratorId,
std::string const &  subGeneratorDescription 
)
protected

to handle cocktail constituents

Definition at line 232 of file Generator.cxx.

◆ addTracks()

Bool_t o2::eventgen::Generator::addTracks ( FairPrimaryGenerator primGen)
protected

internal methods

add tracks

loop over particles

success

Definition at line 134 of file Generator.cxx.

◆ addTrigger()

void o2::eventgen::Generator::addTrigger ( Trigger  trigger)
inline

Definition at line 86 of file Generator.h.

◆ boostEvent()

Bool_t o2::eventgen::Generator::boostEvent ( )
protected

boost event

success

Definition at line 172 of file Generator.cxx.

◆ clearParticles()

void o2::eventgen::Generator::clearParticles ( )
inline

other

Definition at line 96 of file Generator.h.

◆ generateEvent()

◆ getParticles()

const std::vector< TParticle > & o2::eventgen::Generator::getParticles ( ) const
inline

getters

Definition at line 92 of file Generator.h.

◆ getTotalNEvents()

static unsigned int o2::eventgen::Generator::getTotalNEvents ( )
inlinestatic

Definition at line 93 of file Generator.h.

◆ importParticles()

◆ Init()

Bool_t o2::eventgen::Generator::Init ( )
override

Initialize the generator if needed

init

success

Definition at line 57 of file Generator.cxx.

◆ notifyEmbedding()

virtual void o2::eventgen::Generator::notifyEmbedding ( const o2::dataformats::MCEventHeader eventHeader)
inlinevirtual

notification methods

Definition at line 99 of file Generator.h.

◆ notifySubGenerator()

void o2::eventgen::Generator::notifySubGenerator ( int  subGeneratorId)
inlineprotected

Definition at line 116 of file Generator.h.

◆ operator=()

Generator & o2::eventgen::Generator::operator= ( const Generator )
protected

operator=

◆ ReadEvent()

Bool_t o2::eventgen::Generator::ReadEvent ( FairPrimaryGenerator primGen)
final

Abstract method ReadEvent must be implemented by any derived class. has to handle the generation of input tracks (reading from input file) and the handing of the tracks to the FairPrimaryGenerator. It is called from FairMCApplication.

Parameters
pStackThe stack
Returns
kTRUE if successful, kFALSE if not

read event

endless generate-and-trigger loop

clear particle vector

reset the sub-generator ID

generate event

import particles

trigger event

add tracks

update header

success

Definition at line 68 of file Generator.cxx.

◆ setBoost()

void o2::eventgen::Generator::setBoost ( Double_t  val)
inline

Definition at line 84 of file Generator.h.

◆ setEnergyUnit()

void o2::eventgen::Generator::setEnergyUnit ( double  val)
inline

Definition at line 81 of file Generator.h.

◆ setMomentumUnit()

void o2::eventgen::Generator::setMomentumUnit ( double  val)
inline

setters

Definition at line 80 of file Generator.h.

◆ setPositionUnit()

void o2::eventgen::Generator::setPositionUnit ( double  val)
inline

Definition at line 82 of file Generator.h.

◆ setTimeUnit()

void o2::eventgen::Generator::setTimeUnit ( double  val)
inline

Definition at line 83 of file Generator.h.

◆ setTotalNEvents()

static void o2::eventgen::Generator::setTotalNEvents ( unsigned int n)
inlinestatic

Definition at line 89 of file Generator.h.

◆ setTriggerFalseHook()

void o2::eventgen::Generator::setTriggerFalseHook ( std::function< void(std::vector< TParticle > const &p, int eventCount)>  f)
inline

Definition at line 102 of file Generator.h.

◆ setTriggerMode()

void o2::eventgen::Generator::setTriggerMode ( ETriggerMode_t  val)
inline

Definition at line 85 of file Generator.h.

◆ setTriggerOkHook()

void o2::eventgen::Generator::setTriggerOkHook ( std::function< void(std::vector< TParticle > const &p, int eventCount)>  f)
inline

Definition at line 101 of file Generator.h.

◆ triggerEvent()

Bool_t o2::eventgen::Generator::triggerEvent ( )

trigger event

check trigger presence

check trigger mode

loop over triggers

loop over deep triggers

return

Definition at line 183 of file Generator.cxx.

◆ updateHeader()

virtual void o2::eventgen::Generator::updateHeader ( o2::dataformats::MCEventHeader eventHeader)
inlinevirtual

Member Data Documentation

◆ InstanceCounter

std::atomic< int > o2::eventgen::Generator::InstanceCounter {0}
staticprotected

Definition at line 147 of file Generator.h.

◆ mBoost

Double_t o2::eventgen::Generator::mBoost
protected

lorentz boost data members

Definition at line 143 of file Generator.h.

◆ mDeepTriggers

std::vector<DeepTrigger> o2::eventgen::Generator::mDeepTriggers
protected

Definition at line 125 of file Generator.h.

◆ mEnergyUnit

double o2::eventgen::Generator::mEnergyUnit = 1.
protected

Definition at line 135 of file Generator.h.

◆ mInterface

void* o2::eventgen::Generator::mInterface = nullptr
protected

generator interface

Definition at line 119 of file Generator.h.

◆ mInterfaceName

std::string o2::eventgen::Generator::mInterfaceName
protected

Definition at line 120 of file Generator.h.

◆ mMomentumUnit

double o2::eventgen::Generator::mMomentumUnit = 1.
protected

conversion data members

Definition at line 134 of file Generator.h.

◆ mParticles

std::vector<TParticle> o2::eventgen::Generator::mParticles
protected

particle array

Definition at line 140 of file Generator.h.

◆ mPositionUnit

double o2::eventgen::Generator::mPositionUnit = 0.1
protected

Definition at line 136 of file Generator.h.

◆ mReadEventCounter

int o2::eventgen::Generator::mReadEventCounter = 0
protected

Definition at line 131 of file Generator.h.

◆ mThisInstanceID

int o2::eventgen::Generator::mThisInstanceID = 0
protected

Definition at line 148 of file Generator.h.

◆ mTimeUnit

double o2::eventgen::Generator::mTimeUnit = 3.3356410e-12
protected

Definition at line 137 of file Generator.h.

◆ mTriggerFalseHook

std::function<void(std::vector<TParticle> const& p, int eventCount)> o2::eventgen::Generator::mTriggerFalseHook = [](std::vector<TParticle> const& p, int eventCount) {}
protected

Definition at line 130 of file Generator.h.

◆ mTriggerMode

ETriggerMode_t o2::eventgen::Generator::mTriggerMode = kTriggerOFF
protected

trigger data members

Definition at line 123 of file Generator.h.

◆ mTriggerOkHook

std::function<void(std::vector<TParticle> const& p, int eventCount)> o2::eventgen::Generator::mTriggerOkHook = [](std::vector<TParticle> const& p, int eventCount) {}
protected

Definition at line 129 of file Generator.h.

◆ mTriggers

std::vector<Trigger> o2::eventgen::Generator::mTriggers
protected

Definition at line 124 of file Generator.h.


The documentation for this class was generated from the following files: