|
ATLAS Offline Software
|
Go to the documentation of this file.
21 #ifndef GENERATORMODULESEVTDECAYINCLUSIVE_H
22 #define GENERATORMODULESEVTDECAYINCLUSIVE_H
27 #include "HepPDT/ParticleDataTable.hh"
29 #include "EvtGenBase/EvtParticle.hh"
30 #include "EvtGen/EvtGen.hh"
31 #include "EvtGenBase/EvtRandomEngine.hh"
35 #include "GaudiKernel/ISvcLocator.h"
41 class HepRandomEngine;
71 CLHEP::HepRandomEngine*
getRandomEngine(
const std::string&
streamName,
unsigned long int randomSeedOffset,
const EventContext& ctx)
const;
78 std::set<HepMC::GenVertexPtr>& visited,
79 std::set<HepMC::GenParticlePtr>& toBeDecayed);
83 std::set<HepMC::GenVertexPtr>& visited,
84 std::set<int>& toBeDecayed);
89 EvtParticle* evtPart, EvtVector4R treeStart,
double momentumScaleFactor = 1.0);
100 void printHepMC(HepMC::GenEvent* hepMC, std::set<HepMC::GenParticlePtr>* barcodeList =
nullptr);
104 void printHepMC(HepMC::GenEvent* hepMC, std::set<int>* barcodeList =
nullptr);
106 int level, std::set<int>* barcodeList = 0);
114 IntegerProperty
m_dsid{
this,
"Dsid", 999999};
117 IntegerProperty
m_randomSeed{
this,
"RandomSeed", 1234567,
"Random seed for the built-in random engine"};
bool isDefaultB(const int pId) const
std::string m_randomStreamName
bool m_allowDefaultBDecays
std::vector< int > m_whiteList
bool m_allowAllKnownDecays
std::vector< int > m_blackList
double m_userSelMinDimuMass
std::map< int, long > m_noDecayChannels
std::set< int > m_blackListSet
void reseedRandomEngine(const std::string &streamName, const EventContext &ctx)
void decayParticle(HepMC::GenEvent *hepMC, HepMC::GenParticlePtr p)
GenParticle * GenParticlePtr
bool passesUserSelection(HepMC::GenEvent *hepMC)
bool m_applyUserSelection
CLHEP::HepRandomEngine * getRandomEngineDuringInitialize(const std::string &streamName, unsigned long int randomSeedOffset, unsigned int conditionsRun=1, unsigned int lbn=1) const
std::string m_userDecayFile
bool isToBeDecayed(HepMC::ConstGenParticlePtr p, bool doCrossChecks)
bool m_printHepMCHighLightTopLevelDecays
double m_userSelMu2MaxEta
EvtInclusiveAtRndmGen * m_evtAtRndmGen
bool m_printHepMCHighlighted
CLHEP::HepRandomEngine * getEngine()
bool m_printHepMCAfterEvtGen
void addEvtGenDecayTree(HepMC::GenEvent *hepMC, HepMC::GenParticlePtr part, EvtParticle *evtPart, EvtVector4R treeStart, double momentumScaleFactor=1.0)
Base class for common behaviour of MC truth algorithms.
double invMass(HepMC::ConstGenParticlePtr p1, HepMC::ConstGenParticlePtr p2)
CLHEP::HepRandomEngine * getRandomEngine(const std::string &streamName, unsigned long int randomSeedOffset, const EventContext &ctx) const
::StatusCode StatusCode
StatusCode definition for legacy code.
bool m_checkDecayChannels
void removeDecayTree(HepMC::GenEvent *hepMC, HepMC::GenParticlePtr p)
virtual ~EvtInclusiveAtRndmGen()=default
double m_userSelMu1MaxEta
StatusCode traverseDecayTree(HepMC::GenParticlePtr p, bool isToBeRemoved, std::set< HepMC::GenVertexPtr > &visited, std::set< int > &toBeDecayed)
IntegerProperty m_randomSeed
Seed for random number engine.
void printHepMC(HepMC::GenEvent *hepMC, std::set< int > *barcodeList=nullptr)
This defines the McEventCollection, which is really just an ObjectVector of McEvent objects.
bool m_userSelRequireOppositeSignedMu
const GenParticle * ConstGenParticlePtr
unsigned int printTree(HepMC::GenParticlePtr p, std::set< HepMC::GenVertexPtr > &visited, int level, std::set< int > *barcodeList=0)
bool m_prohibitFinalStateDecay
std::string pdgName(HepMC::ConstGenParticlePtr p, bool statusHighlighting=false, std::set< int > *barcodeList=nullptr)
EvtInclusiveAtRndmGen(CLHEP::HepRandomEngine *engine)
bool m_prohibitRemoveSelfDecay
ServiceHandle< IAthRNGSvc > m_rndmSvc
EvtInclusiveDecay(const std::string &name, ISvcLocator *pSvcLocator)
McEventCollection * m_mcEvtColl
CLHEP::HepRandomEngine * m_engine
std::string xmlpath(void)
bool m_setVMtransversePol
bool m_printHepMCBeforeEvtGen
std::string m_outputKeyName
double m_userSelMaxDimuMass
std::string m_inputKeyName
virtual ~EvtInclusiveDecay()
std::set< int > m_whiteListSet