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
 
Bool_t Init () override
 
Bool_t ReadEvent (FairPrimaryGenerator *primGen) final
 
virtual Bool_t generateEvent ()=0
 
virtual Bool_t importParticles ()=0
 
Bool_t finalizeEvent ()
 
virtual void updateHeader (o2::dataformats::MCEventHeader *eventHeader)
 
Bool_t triggerEvent ()
 
void setMomentumUnit (double val)
 
double getMomentumUnit () const
 
void setEnergyUnit (double val)
 
double getEnergyUnit () const
 
void setPositionUnit (double val)
 
double getPositionUnit () const
 
void setTimeUnit (double val)
 
double getTimeUnit () const
 
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 48 of file Generator.h.

Member Enumeration Documentation

◆ ETriggerMode_t

Enumerator
kTriggerOFF 
kTriggerOR 
kTriggerAND 

Definition at line 52 of file Generator.h.

Constructor & Destructor Documentation

◆ Generator() [1/3]

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

default constructor

default constructor

Definition at line 45 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 74 of file Generator.cxx.

◆ ~Generator()

o2::eventgen::Generator::~Generator ( )
override

destructor

destructor

Definition at line 103 of file Generator.cxx.

◆ 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 94 of file Generator.h.

◆ addSubGenerator()

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

to handle cocktail constituents

Definition at line 435 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 337 of file Generator.cxx.

◆ addTrigger()

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

Definition at line 93 of file Generator.h.

◆ boostEvent()

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

boost event

success

Definition at line 375 of file Generator.cxx.

◆ clearParticles()

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

other

Definition at line 103 of file Generator.h.

◆ finalizeEvent()

Bool_t o2::eventgen::Generator::finalizeEvent ( )

Definition at line 230 of file Generator.cxx.

◆ generateEvent()

◆ getEnergyUnit()

double o2::eventgen::Generator::getEnergyUnit ( ) const
inline

Definition at line 86 of file Generator.h.

◆ getMomentumUnit()

double o2::eventgen::Generator::getMomentumUnit ( ) const
inline

Definition at line 84 of file Generator.h.

◆ getParticles()

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

getters

Definition at line 99 of file Generator.h.

◆ getPositionUnit()

double o2::eventgen::Generator::getPositionUnit ( ) const
inline

Definition at line 88 of file Generator.h.

◆ getTimeUnit()

double o2::eventgen::Generator::getTimeUnit ( ) const
inline

Definition at line 90 of file Generator.h.

◆ getTotalNEvents()

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

Definition at line 100 of file Generator.h.

◆ importParticles()

◆ Init()

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

Initialize the generator if needed

init

success

Definition at line 219 of file Generator.cxx.

◆ notifyEmbedding()

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

notification methods

Definition at line 106 of file Generator.h.

◆ notifySubGenerator()

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

Definition at line 123 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

Event finalization

trigger event

add tracks

update header

success

Definition at line 265 of file Generator.cxx.

◆ setBoost()

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

Definition at line 91 of file Generator.h.

◆ setEnergyUnit()

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

Definition at line 85 of file Generator.h.

◆ setMomentumUnit()

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

setters

Definition at line 83 of file Generator.h.

◆ setPositionUnit()

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

Definition at line 87 of file Generator.h.

◆ setTimeUnit()

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

Definition at line 89 of file Generator.h.

◆ setTotalNEvents()

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

Definition at line 96 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 109 of file Generator.h.

◆ setTriggerMode()

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

Definition at line 92 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 108 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 386 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 154 of file Generator.h.

◆ mBoost

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

lorentz boost data members

Definition at line 150 of file Generator.h.

◆ mDeepTriggers

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

Definition at line 132 of file Generator.h.

◆ mEnergyUnit

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

Definition at line 142 of file Generator.h.

◆ mInterface

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

generator interface

Definition at line 126 of file Generator.h.

◆ mInterfaceName

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

Definition at line 127 of file Generator.h.

◆ mMomentumUnit

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

conversion data members

Definition at line 141 of file Generator.h.

◆ mParticles

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

particle array

Definition at line 147 of file Generator.h.

◆ mPositionUnit

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

Definition at line 143 of file Generator.h.

◆ mReadEventCounter

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

Definition at line 138 of file Generator.h.

◆ mThisInstanceID

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

Definition at line 155 of file Generator.h.

◆ mTimeUnit

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

Definition at line 144 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 137 of file Generator.h.

◆ mTriggerMode

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

trigger data members

Definition at line 130 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 136 of file Generator.h.

◆ mTriggers

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

Definition at line 131 of file Generator.h.


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