CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
gen::ExternalDecayDriver Class Reference

#include <ExternalDecayDriver.h>

Public Member Functions

HepMC::GenEventdecay (HepMC::GenEvent *evt)
 
HepMC::GenEventdecay (HepMC::GenEvent *evt, lhef::LHEEvent *lheEvent)
 
 ExternalDecayDriver (const edm::ParameterSet &)
 
void init (const edm::EventSetup &)
 
const std::vector< int > & operatesOnParticles ()
 
void setRandomEngine (CLHEP::HepRandomEngine *)
 
std::vector< std::string > const & sharedResources () const
 
const std::vector< std::string > & specialSettings ()
 
void statistics () const
 
 ~ExternalDecayDriver ()
 

Private Attributes

std::vector< std::string > exSharedResources
 
EvtGenInterfaceBasefEvtGenInterface
 
bool fIsInitialized
 
std::vector< int > fPDGs
 
PhotosInterfaceBasefPhotosInterface
 
std::vector< std::string > fSpecialSettings
 
TauolaInterfaceBasefTauolaInterface
 

Detailed Description

Definition at line 30 of file ExternalDecayDriver.h.

Constructor & Destructor Documentation

ExternalDecayDriver::ExternalDecayDriver ( const edm::ParameterSet pset)

Definition at line 25 of file ExternalDecayDriver.cc.

References gen::PhotosInterfaceBase::avoidTauLeptonicDecays(), gen::PhotosInterfaceBase::configureOnlyFor(), exSharedResources, fEvtGenInterface, fPhotosInterface, fTauolaInterface, reco::get(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), edm::SharedResourceNames::kEvtGen, gen::FortranInstance::kFortranInstance, edm::SharedResourceNames::kPhotos, edm::SharedResourceNames::kPythia6, edm::SharedResourceNames::kPythia8, edm::SharedResourceNames::kTauola, and AlCaHLTBitMon_QueryRunRegistry::string.

26  : fIsInitialized(false),
30 {
31  std::vector<std::string> extGenNames =
32  pset.getParameter< std::vector<std::string> >("parameterSets");
33 
34  for (unsigned int ip=0; ip<extGenNames.size(); ++ip ){
35  std::string curSet = extGenNames[ip];
36  if ( curSet == "EvtGen"){
41  }
42  else if( curSet == "EvtGen130"){
49  }
50  else if ( curSet == "Tauola" || curSet == "Tauolapp114" ){
51  fTauolaInterface = (TauolaInterfaceBase*)(TauolaFactory::get()->create("Tauolapp114", pset.getUntrackedParameter< ParameterSet >(curSet)));
52  fPhotosInterface = (PhotosInterfaceBase*)(PhotosFactory::get()->create("Photos2155", pset.getUntrackedParameter< ParameterSet >(curSet)));
57  }
58  else if ( curSet == "Photos" || curSet == "Photos2155" ){
59  if ( !fPhotosInterface ){
62  }
63  }
64  else if (curSet == "Photospp" || curSet == "Photospp356" ){
65  if ( !fPhotosInterface ){
66  fPhotosInterface = (PhotosInterfaceBase*)(PhotosFactory::get()->create("Photospp356", pset.getUntrackedParameter< ParameterSet>(curSet)));
68  }
69  }
70  }
71 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
virtual void configureOnlyFor(int)=0
TauolaInterfaceBase * fTauolaInterface
PhotosInterfaceBase * fPhotosInterface
static const std::string kTauola
static const std::string kPhotos
static const std::string kPythia6
static const std::string kEvtGen
std::vector< std::string > exSharedResources
static const std::string kFortranInstance
EvtGenInterfaceBase * fEvtGenInterface
static const std::string kPythia8
T get(const Candidate &c)
Definition: component.h:55
virtual void avoidTauLeptonicDecays()=0
ExternalDecayDriver::~ExternalDecayDriver ( )

Definition at line 73 of file ExternalDecayDriver.cc.

References fEvtGenInterface, fPhotosInterface, and fTauolaInterface.

74 {
75  if ( fEvtGenInterface ) delete fEvtGenInterface;
76  if ( fTauolaInterface ) delete fTauolaInterface;
77  if ( fPhotosInterface ) delete fPhotosInterface;
78 }
TauolaInterfaceBase * fTauolaInterface
PhotosInterfaceBase * fPhotosInterface
EvtGenInterfaceBase * fEvtGenInterface

Member Function Documentation

HepMC::GenEvent * ExternalDecayDriver::decay ( HepMC::GenEvent evt)

Definition at line 85 of file ExternalDecayDriver.cc.

References gen::PhotosInterfaceBase::apply(), gen::EvtGenInterfaceBase::decay(), gen::TauolaInterfaceBase::decay(), fEvtGenInterface, fIsInitialized, fPhotosInterface, and fTauolaInterface.

Referenced by decay().

86 {
87  if ( !fIsInitialized ) return evt;
88 
89  if ( fEvtGenInterface ){
90  evt = fEvtGenInterface->decay( evt );
91  if ( !evt ) return 0;
92  }
93 
94  if ( fTauolaInterface ){
95  evt = fTauolaInterface->decay( evt );
96  if ( !evt ) return 0;
97  }
98 
99  if ( fPhotosInterface ){
100  evt = fPhotosInterface->apply( evt );
101  if ( !evt ) return 0;
102  }
103 
104  return evt;
105 }
TauolaInterfaceBase * fTauolaInterface
PhotosInterfaceBase * fPhotosInterface
virtual HepMC::GenEvent * apply(HepMC::GenEvent *evt)
EvtGenInterfaceBase * fEvtGenInterface
virtual HepMC::GenEvent * decay(HepMC::GenEvent *evt)
virtual HepMC::GenEvent * decay(HepMC::GenEvent *evt)
HepMC::GenEvent * ExternalDecayDriver::decay ( HepMC::GenEvent evt,
lhef::LHEEvent lheEvent 
)

Definition at line 81 of file ExternalDecayDriver.cc.

References decay(), fTauolaInterface, and gen::TauolaInterfaceBase::SetLHE().

81  {
83  return decay(evt);
84 }
TauolaInterfaceBase * fTauolaInterface
HepMC::GenEvent * decay(HepMC::GenEvent *evt)
virtual void SetLHE(lhef::LHEEvent *l)
void ExternalDecayDriver::init ( const edm::EventSetup es)

Definition at line 107 of file ExternalDecayDriver.cc.

References fEvtGenInterface, fIsInitialized, fPDGs, fPhotosInterface, fSpecialSettings, fTauolaInterface, i, gen::EvtGenInterfaceBase::init(), gen::PhotosInterfaceBase::init(), gen::TauolaInterfaceBase::init(), gen::EvtGenInterfaceBase::operatesOnParticles(), gen::TauolaInterfaceBase::operatesOnParticles(), gen::PhotosInterfaceBase::specialSettings(), and gen::EvtGenInterfaceBase::specialSettings().

108 {
109 
110  if ( fIsInitialized ) return;
111 
112  if ( fTauolaInterface ){
113  fTauolaInterface->init( es );
114  for ( std::vector<int>::const_iterator i=fTauolaInterface->operatesOnParticles().begin();
115  i!=fTauolaInterface->operatesOnParticles().end(); i++ )
116  fPDGs.push_back( *i );
117  }
118 
119  if ( fEvtGenInterface ){
121  for ( std::vector<int>::const_iterator i=fEvtGenInterface->operatesOnParticles().begin();
122  i!=fEvtGenInterface->operatesOnParticles().end(); i++ )
123  fPDGs.push_back( *i );
124  for ( unsigned int iss=0; iss<fEvtGenInterface->specialSettings().size(); iss++ ){
126  }
127 
128  }
129 
130 
131  if ( fPhotosInterface ){
133  // for tauola++
134  if ( fPhotosInterface ){
135  for ( unsigned int iss=0; iss<fPhotosInterface->specialSettings().size(); iss++ ){
137  }
138  }
139  }
140 
141  fIsInitialized = true;
142 
143  return;
144 }
int i
Definition: DBlmapReader.cc:9
virtual void init()=0
TauolaInterfaceBase * fTauolaInterface
virtual void init(const edm::EventSetup &)
PhotosInterfaceBase * fPhotosInterface
virtual const std::vector< std::string > & specialSettings()
virtual const std::vector< int > & operatesOnParticles()
std::vector< std::string > fSpecialSettings
EvtGenInterfaceBase * fEvtGenInterface
virtual const std::vector< std::string > & specialSettings()
virtual const std::vector< int > & operatesOnParticles()
const std::vector<int>& gen::ExternalDecayDriver::operatesOnParticles ( )
inline

Definition at line 39 of file ExternalDecayDriver.h.

References fPDGs.

39 { return fPDGs; }
void ExternalDecayDriver::setRandomEngine ( CLHEP::HepRandomEngine *  v)

Definition at line 154 of file ExternalDecayDriver.cc.

References decayRandomEngine, fEvtGenInterface, fPhotosInterface, fTauolaInterface, gen::EvtGenInterfaceBase::setRandomEngine(), gen::PhotosInterfaceBase::setRandomEngine(), gen::TauolaInterfaceBase::setRandomEngine(), and gen::v.

155 {
160 }
TauolaInterfaceBase * fTauolaInterface
CLHEP::HepRandomEngine * decayRandomEngine
PhotosInterfaceBase * fPhotosInterface
double v[5][pyjets_maxn]
virtual void setRandomEngine(CLHEP::HepRandomEngine *decayRandomEngine)=0
EvtGenInterfaceBase * fEvtGenInterface
virtual void setRandomEngine(CLHEP::HepRandomEngine *v)=0
virtual void setRandomEngine(CLHEP::HepRandomEngine *v)=0
std::vector<std::string> const& gen::ExternalDecayDriver::sharedResources ( ) const
inline

Definition at line 48 of file ExternalDecayDriver.h.

References exSharedResources.

48 { return exSharedResources; }
std::vector< std::string > exSharedResources
const std::vector<std::string>& gen::ExternalDecayDriver::specialSettings ( )
inline

Definition at line 40 of file ExternalDecayDriver.h.

References fSpecialSettings.

40 { return fSpecialSettings; }
std::vector< std::string > fSpecialSettings
void ExternalDecayDriver::statistics ( ) const

Definition at line 146 of file ExternalDecayDriver.cc.

References fPhotosInterface, fTauolaInterface, gen::PhotosInterfaceBase::statistics(), and gen::TauolaInterfaceBase::statistics().

147 {
150  // similar for EvtGen if needed
151  return;
152 }
TauolaInterfaceBase * fTauolaInterface
PhotosInterfaceBase * fPhotosInterface

Member Data Documentation

std::vector<std::string> gen::ExternalDecayDriver::exSharedResources
private

Definition at line 58 of file ExternalDecayDriver.h.

Referenced by ExternalDecayDriver(), and sharedResources().

EvtGenInterfaceBase* gen::ExternalDecayDriver::fEvtGenInterface
private
bool gen::ExternalDecayDriver::fIsInitialized
private

Definition at line 51 of file ExternalDecayDriver.h.

Referenced by decay(), and init().

std::vector<int> gen::ExternalDecayDriver::fPDGs
private

Definition at line 55 of file ExternalDecayDriver.h.

Referenced by init(), and operatesOnParticles().

PhotosInterfaceBase* gen::ExternalDecayDriver::fPhotosInterface
private
std::vector<std::string> gen::ExternalDecayDriver::fSpecialSettings
private

Definition at line 56 of file ExternalDecayDriver.h.

Referenced by init(), and specialSettings().

TauolaInterfaceBase* gen::ExternalDecayDriver::fTauolaInterface
private