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::GenEvent * decay (HepMC::GenEvent *)
 
 ExternalDecayDriver (const edm::ParameterSet &)
 
void init (const edm::EventSetup &)
 
const std::vector< int > & operatesOnParticles ()
 
const std::vector< std::string > & specialSettings ()
 
void statistics () const
 
 ~ExternalDecayDriver ()
 

Private Attributes

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

Detailed Description

Definition at line 18 of file ExternalDecayDriver.h.

Constructor & Destructor Documentation

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

Definition at line 21 of file ExternalDecayDriver.cc.

References gen::PhotosInterfaceBase::avoidTauLeptonicDecays(), gen::PhotosInterfaceBase::configureOnlyFor(), decayRandomEngine, edm::hlt::Exception, fEvtGenInterface, fPhotosInterface, fTauolaInterface, reco::get(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), hastauolapp, gen::TauolaInterfaceBase::SetDecayRandomEngine(), gen::PhotosInterfaceBase::SetDecayRandomEngine(), and gen::EvtGenInterfaceBase::SetPhotosDecayRandomEngine().

22  : hastauolapp(false),
23  fIsInitialized(false),
27 {
28 
29  std::vector<std::string> extGenNames = pset.getParameter< std::vector<std::string> >("parameterSets");
30 
32  if(!rng.isAvailable()) {
33  throw cms::Exception("Configuration")
34  << "The RandomNumberProducer module requires the RandomNumberGeneratorService\n"
35  "which appears to be absent. Please add that service to your configuration\n"
36  "or remove the modules that require it." << std::endl;
37  }
38  decayRandomEngine = &rng->getEngine();
39 
40  for (unsigned int ip=0; ip<extGenNames.size(); ++ip ){
41  std::string curSet = extGenNames[ip];
42  if ( curSet == "EvtGen" || curSet == "EvtGenLHC91"){
43  fEvtGenInterface = (EvtGenInterfaceBase*)(EvtGenFactory::get()->create("EvtGenLHC91", pset.getUntrackedParameter< ParameterSet >(curSet)));
45  }
46  if ( curSet == "Tauola" || curSet == "Tauola271215" ){
47  fTauolaInterface = (TauolaInterfaceBase*)(TauolaFactory::get()->create("Tauola271215", pset.getUntrackedParameter< ParameterSet >(curSet)));
49  }
50  if(curSet =="Tauolapp111a"){
51  fTauolaInterface = (TauolaInterfaceBase*)(TauolaFactory::get()->create("Tauolapp111a", pset.getUntrackedParameter< ParameterSet >(curSet)));
52  fPhotosInterface = (PhotosInterfaceBase*)(PhotosFactory::get()->create("Photos2155", pset.getUntrackedParameter< ParameterSet >(curSet)));
56  hastauolapp=true;
57  }
58  if ( curSet == "Photos" || curSet == "Photos2155Legacy"){
59  if ( !fPhotosInterface ){
60  fPhotosInterface = (PhotosInterfaceBase*)(PhotosFactory::get()->create("Photos2155Legacy", pset.getUntrackedParameter< ParameterSet >(curSet)));
62  }
63  }
64  if (curSet == "Photos2155"){
65  if ( !fPhotosInterface ){
68  }
69  }
70  }
71 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
virtual void SetDecayRandomEngine(CLHEP::HepRandomEngine *decayRandomEngine)
TauolaInterfaceBase * fTauolaInterface
CLHEP::HepRandomEngine * decayRandomEngine
PhotosInterfaceBase * fPhotosInterface
virtual void SetDecayRandomEngine(CLHEP::HepRandomEngine *decayRandomEngine)
virtual void configureOnlyFor(int)
virtual void SetPhotosDecayRandomEngine(CLHEP::HepRandomEngine *decayRandomEngine)
EvtGenInterfaceBase * fEvtGenInterface
virtual void avoidTauLeptonicDecays()
T get(const Candidate &c)
Definition: component.h:56
ExternalDecayDriver::~ExternalDecayDriver ( )

Definition at line 73 of file ExternalDecayDriver.cc.

References fEvtGenInterface, fPhotosInterface, and fTauolaInterface.

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

Member Function Documentation

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

Definition at line 79 of file ExternalDecayDriver.cc.

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

79  {
80 
81  if ( !fIsInitialized ) return evt;
82 
83  if ( fEvtGenInterface ){
84  evt = fEvtGenInterface->decay( evt );
85  if ( !evt ) return 0;
86  }
87 
88  if ( fTauolaInterface ){
89  evt = fTauolaInterface->decay( evt );
90  if ( !evt ) return 0;
91  }
92 
93  if ( fPhotosInterface ){
94  evt = fPhotosInterface->apply( evt );
95  if ( !evt ) return 0;
96  }
97 
98  return evt;
99 }
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)
void ExternalDecayDriver::init ( const edm::EventSetup es)

Definition at line 101 of file ExternalDecayDriver.cc.

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

101  {
102 
103  if ( fIsInitialized ) return;
104 
105  if ( fTauolaInterface ) {
106  fTauolaInterface->init( es );
107  for ( std::vector<int>::const_iterator i=fTauolaInterface->operatesOnParticles().begin();
108  i!=fTauolaInterface->operatesOnParticles().end(); i++ )
109  fPDGs.push_back( *i );
110  }
111  if ( fEvtGenInterface ){
113  for ( std::vector<int>::const_iterator i=fEvtGenInterface->operatesOnParticles().begin();
114  i!=fEvtGenInterface->operatesOnParticles().end(); i++ )
115  fPDGs.push_back( *i );
116  }
117 
118 
119  if( fPhotosInterface){
121  if(hastauolapp){
122  if ( fPhotosInterface ){
123  for ( unsigned int iss=0; iss<fPhotosInterface->specialSettings().size(); iss++ ){
125  }
126  }
127  }
128  }
129  // now put in hack for TauolaFortran settings
130  if(!hastauolapp){
131  if ( fPhotosInterface ){
132  fSpecialSettings.push_back( "QED-brem-off:all" );
133  }
134  if ( fTauolaInterface ){
135  // override !
136  fSpecialSettings.clear();
137  fSpecialSettings.push_back( "QED-brem-off:15" );
138  }
139  }
140  fIsInitialized = true;
141 
142  return;
143 }
int i
Definition: DBlmapReader.cc:9
TauolaInterfaceBase * fTauolaInterface
virtual void init(const edm::EventSetup &)
PhotosInterfaceBase * fPhotosInterface
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 26 of file ExternalDecayDriver.h.

References fPDGs.

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

Definition at line 27 of file ExternalDecayDriver.h.

References fSpecialSettings.

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

Definition at line 145 of file ExternalDecayDriver.cc.

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

146 {
148  // similar for EvtGen and/or Photos, if needs be
149  return;
150 }
TauolaInterfaceBase * fTauolaInterface

Member Data Documentation

EvtGenInterfaceBase* gen::ExternalDecayDriver::fEvtGenInterface
private

Definition at line 35 of file ExternalDecayDriver.h.

Referenced by decay(), ExternalDecayDriver(), init(), and ~ExternalDecayDriver().

bool gen::ExternalDecayDriver::fIsInitialized
private

Definition at line 33 of file ExternalDecayDriver.h.

Referenced by decay(), and init().

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

Definition at line 37 of file ExternalDecayDriver.h.

Referenced by init(), and operatesOnParticles().

PhotosInterfaceBase* gen::ExternalDecayDriver::fPhotosInterface
private

Definition at line 36 of file ExternalDecayDriver.h.

Referenced by decay(), ExternalDecayDriver(), init(), and ~ExternalDecayDriver().

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

Definition at line 38 of file ExternalDecayDriver.h.

Referenced by init(), and specialSettings().

TauolaInterfaceBase* gen::ExternalDecayDriver::fTauolaInterface
private
bool gen::ExternalDecayDriver::hastauolapp
private

Definition at line 32 of file ExternalDecayDriver.h.

Referenced by ExternalDecayDriver(), and init().