56 if ( getenv(
"EVTINFO" ) ) {
61EvtGen::EvtGen(
const std::string& decayName,
const std::string& pdtTableName,
63 const std::list<EvtDecayBase*>* extraModels,
int mixingType,
66 std::ifstream pdtIn( pdtTableName );
69 <<
"Could not open:" << pdtTableName <<
"EvtPDL" << endl;
72 initialize( decayName, pdtIn, randomEngine, isrEngine, extraModels,
79 const std::list<EvtDecayBase*>* extraModels,
int mixingType,
82 initialize( decayName, pdtTableData, randomEngine, isrEngine, extraModels,
88 const std::list<EvtDecayBase*>* extraModels,
89 int mixingType,
bool useXml )
93 if ( !randomEngine ) {
97 <<
"No random engine given in "
98 <<
"EvtGen::EvtGen constructor, "
99 <<
"will use default EvtSimpleRandomEngine." << endl;
108 <<
"Main decay file name :" << decayName << endl;
120 <<
"Mixing type integer set to " <<
m_mixingType << endl;
125 if ( isrEngine !=
nullptr ) {
142 if ( uDecayName.size() == 0 ) {
144 <<
"Is not reading a user decay file!" << endl;
146 indec.open( uDecayName );
155 <<
"Can not find UDECAY file '" << uDecayName <<
"'. Stopping"
168 if ( spinDensity ==
nullptr ) {
197 for (
size_t ii = 0; ii < p->
getNDaug(); ii++ ) {
205 if ( times == 10000 ) {
207 <<
"Your event has been rejected 10000 times!" << endl;
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=nullptr)
static EvtCPUtil * getInstance()
void setMixingType(int mixingType)
void readXMLDecayFile(const std::string dec_name, bool verbose=true)
void printSummary() const
static EvtDecayTable & getInstance()
void readDecayFile(const std::string dec_name, bool verbose=true)
void readUDecay(const std::string &udecay_name, bool useXml=false)
void initialize(const std::string &decayName, std::istream &pdtTable, EvtRandomEngine *randomEngine=nullptr, EvtAbsRadCorr *isrEngine=nullptr, const std::list< EvtDecayBase * > *extraModels=nullptr, int mixingType=1, bool useXml=false)
EvtHepMCEvent * generateDecay(int PDGid, EvtVector4R refFrameP4, EvtVector4R translation, EvtSpinDensity *spinDensity=nullptr)
EvtGen(const std::string &decayName, const std::string &pdtTableName, EvtRandomEngine *randomEngine=nullptr, EvtAbsRadCorr *isrEngine=nullptr, const std::list< EvtDecayBase * > *extraModels=nullptr, int mixingType=1, bool useXml=false)
void constructEvent(EvtParticle *baseParticle)
static void readPDT(std::istream &data)
static EvtId evtIdFromStdHep(int stdhep)
static EvtParticle * particleFactory(EvtSpinType::spintype spinType)
EvtParticle * getDaug(const int i)
static void setRadCorrEngine(EvtAbsRadCorr *fsrEngine)
static void setRandomEngine(EvtRandomEngine *randomEngine)
static void initRejectFlag()
static int getRejectFlag()