10#include <generators/modules/evtgeninput/EvtGenInputModule.h>
13#include <generators/evtgen/EvtGenInterface.h>
14#include <generators/evtgen/EvtGenUtilities.h>
17#include <framework/utilities/FileSystem.h>
18#include <framework/datastore/StoreArray.h>
19#include <mdst/dataobjects/MCParticleGraph.h>
37 setDescription(
"EvtGenInput module. The module is served as an interface for EvtGen Event Generator so that the EvtGen generator can store the generated particles into MCParticles. The users need to provide their own decay mode based on the standard DECAY.DEC.");
45 addParam(
"InclusiveType",
m_inclusiveType,
"inclusive decay type (0: generic, 1: inclusive, 2: inclusive (charge conjugate)", 0);
49 "particle from the beam energies which fits inside the mass window "
50 "before giving up", 100000);
81 B2FATAL(
"Could not create parent particle within mass window: "
82 <<
"minMass=" << minMass <<
" GeV, "
83 <<
"maxMass=" << maxMass <<
" GeV");
95 B2DEBUG(10,
"Starting event generation");
102 B2FATAL(
"EvtGenInputModule::event(): BeamParameters have changed within a job, this is not supported for EvtGen!");
124 B2DEBUG(10,
"EvtGen: generated event with " << nPart <<
" particles.");
136 <<
"' does not exist");
141 <<
"' does not exist");
This class contains the nominal beam parameters and the parameters used for smearing of the primary v...
int simulateEvent(MCInitialParticles initial, int inclusiveType, const std::string &inclusiveParticle)
Generate a single event.
int setup(const std::string &decayFileName, const std::string &parentParticle, const std::string &userFileName=std::string(""), bool coherentMixing=true)
Setup evtgen with the given decay files
static std::string findFile(const std::string &path, bool silent=false)
Search for given file or directory in local or central release directory, and return absolute path if...
The base module for generator modules, which sets the generator information as EventExtraInfo.
This class contains the initial state for the given event.
double getMass() const
Get the invariant mass of the collision (= energy in CMS)
void setDescription(const std::string &description)
Sets the description of the module.
void setPropertyFlags(unsigned int propertyFlags)
Sets the flags for the module properties.
@ c_Input
This module is an input module (reads data).
bool registerInDataStore(DataStore::EStoreFlags storeFlags=DataStore::c_WriteOut)
Register the object/array in the DataStore.
Accessor to arrays stored in the data store.
void addParam(const std::string &name, T ¶mVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module.
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
void initialize()
function to be executed on initialize()
MCInitialParticles & generate()
Generate a new event.
Abstract base class for different kinds of events.