5#ifndef GENERATORMODULES_PARTICLEDECAYER_H
6#define GENERATORMODULES_PARTICLEDECAYER_H
9#include "CLHEP/Vector/LorentzVector.h"
17 class ParticleDataTable;
21 class HepRandomEngine;
35 StatusCode
fillEvt(HepMC::GenEvent*);
84 double cosgen(CLHEP::HepRandomEngine* engine,
int itype);
89 StatusCode
getDecayProducts( CLHEP::HepRandomEngine* engine, CLHEP::HepLorentzVector,
double, std::vector<CLHEP::HepLorentzVector>&,
int decayType = 0);
GenModule(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
CLHEP::HepLorentzVector m_posLV2
double getParticleMass(int pdgID)
bool m_doExponentialDecay
StatusCode changeMass(HepMC::GenParticlePtr, double)
CLHEP::HepLorentzVector m_boostLV
bool m_expDecayDoVariableLifetime
HepPDT::ParticleDataTable * m_particleTable
StatusCode DFTwoBodyDecay(CLHEP::HepRandomEngine *engine, HepMC::GenParticlePtr, int)
StatusCode getDecayProducts(CLHEP::HepRandomEngine *engine, CLHEP::HepLorentzVector, double, std::vector< CLHEP::HepLorentzVector > &, int decayType=0)
StatusCode setDecayPosition(CLHEP::HepRandomEngine *engine, HepMC::GenParticlePtr, HepMC::GenEvent *, bool doScalarDecay=false)
double rnd_DoubleRange(CLHEP::HepRandomEngine *engine, double a, double b)
std::string m_truthParticleContainerName
void addParticle(HepMC::GenVertexPtr, int pdg, HepMC::FourVector, int statusCode)
ParticleDecayer(const std::string &name, ISvcLocator *pSvcLocator)
double m_particleLifeTime
CLHEP::HepLorentzVector m_posLV
bool m_oppositePolarization
CLHEP::HepLorentzVector m_posLV1
double m_thetaEndCapBarrel
double cosgen(CLHEP::HepRandomEngine *engine, int itype)
~ParticleDecayer()=default
int m_particlePolarization
double m_expDecayFractionToKeep
StatusCode fillEvt(HepMC::GenEvent *)
For filling the HepMC event object.
bool m_expDecayDoTruncateLongDecays
StatusCode genInitialize()
For initializing the generator, if required.
double rnd_ExpLifetime(CLHEP::HepRandomEngine *engine, double ct)
HepMC::GenVertex * GenVertexPtr
GenParticle * GenParticlePtr