CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups 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 &, edm::ConsumesCollector)
 
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
 
std::unique_ptr
< EvtGenInterfaceBase
fEvtGenInterface
 
bool fIsInitialized
 
std::vector< int > fPDGs
 
std::unique_ptr
< PhotosInterfaceBase
fPhotosInterface
 
std::vector< std::string > fSpecialSettings
 
std::unique_ptr
< TauolaInterfaceBase
fTauolaInterface
 

Detailed Description

Definition at line 29 of file ExternalDecayDriver.h.

Constructor & Destructor Documentation

ExternalDecayDriver::ExternalDecayDriver ( const edm::ParameterSet pset,
edm::ConsumesCollector  iCollector 
)

Definition at line 23 of file ExternalDecayDriver.cc.

References exSharedResources, fEvtGenInterface, fPhotosInterface, fTauolaInterface, 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.

24  : fIsInitialized(false) {
25  std::vector<std::string> extGenNames = pset.getParameter<std::vector<std::string> >("parameterSets");
26 
27  for (unsigned int ip = 0; ip < extGenNames.size(); ++ip) {
28  std::string curSet = extGenNames[ip];
29  if (curSet == "EvtGen") {
30  fEvtGenInterface = std::unique_ptr<EvtGenInterfaceBase>(
31  EvtGenFactory::get()->create("EvtGen", pset.getUntrackedParameter<ParameterSet>(curSet)));
35  } else if (curSet == "EvtGen1" || curSet == "EvtGen130") {
36  fEvtGenInterface = std::unique_ptr<EvtGenInterfaceBase>(
37  EvtGenFactory::get()->create("EvtGen130", pset.getUntrackedParameter<ParameterSet>(curSet)));
43  } else if (curSet == "Tauola" || curSet == "Tauolapp" || curSet == "Tauolapp114") {
44  fTauolaInterface = std::unique_ptr<TauolaInterfaceBase>(
45  TauolaFactory::get()->create("Tauolapp114", pset.getUntrackedParameter<ParameterSet>(curSet), iCollector));
46  fPhotosInterface = std::unique_ptr<PhotosInterfaceBase>(
47  PhotosFactory::get()->create("Photos2155", pset.getUntrackedParameter<ParameterSet>(curSet)));
48  fPhotosInterface->configureOnlyFor(15);
49  fPhotosInterface->avoidTauLeptonicDecays();
52  } else if (curSet == "Photos" || curSet == "Photos2155") {
53  if (!fPhotosInterface) {
54  fPhotosInterface = std::unique_ptr<PhotosInterfaceBase>(
55  PhotosFactory::get()->create("Photos2155", pset.getUntrackedParameter<ParameterSet>(curSet)));
57  }
58  } else if (curSet == "Photospp" || curSet == "Photospp356") {
59  if (!fPhotosInterface) {
60  fPhotosInterface = std::unique_ptr<PhotosInterfaceBase>(
61  PhotosFactory::get()->create("Photospp356", pset.getUntrackedParameter<ParameterSet>(curSet)));
63  }
64  }
65  }
66 }
T getUntrackedParameter(std::string const &, T const &) const
std::unique_ptr< 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
std::unique_ptr< EvtGenInterfaceBase > fEvtGenInterface
std::unique_ptr< TauolaInterfaceBase > fTauolaInterface
static const std::string kFortranInstance
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
#define get
static const std::string kPythia8
ExternalDecayDriver::~ExternalDecayDriver ( )
default

Member Function Documentation

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

Definition at line 76 of file ExternalDecayDriver.cc.

References fEvtGenInterface, fIsInitialized, fPhotosInterface, and fTauolaInterface.

Referenced by decay().

76  {
77  if (!fIsInitialized)
78  return evt;
79 
80  if (fEvtGenInterface) {
81  evt = fEvtGenInterface->decay(evt);
82  if (!evt)
83  return nullptr;
84  }
85 
86  if (fTauolaInterface) {
87  evt = fTauolaInterface->decay(evt);
88  if (!evt)
89  return nullptr;
90  }
91 
92  if (fPhotosInterface) {
93  evt = fPhotosInterface->apply(evt);
94  if (!evt)
95  return nullptr;
96  }
97 
98  return evt;
99 }
std::unique_ptr< PhotosInterfaceBase > fPhotosInterface
std::unique_ptr< EvtGenInterfaceBase > fEvtGenInterface
std::unique_ptr< TauolaInterfaceBase > fTauolaInterface
HepMC::GenEvent * ExternalDecayDriver::decay ( HepMC::GenEvent evt,
lhef::LHEEvent lheEvent 
)

Definition at line 70 of file ExternalDecayDriver.cc.

References decay(), and fTauolaInterface.

70  {
71  if (fTauolaInterface)
72  fTauolaInterface->SetLHE(lheEvent);
73  return decay(evt);
74 }
std::unique_ptr< TauolaInterfaceBase > fTauolaInterface
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, and mps_fire::i.

101  {
102  if (fIsInitialized)
103  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();
109  i++)
110  fPDGs.push_back(*i);
111  }
112 
113  if (fEvtGenInterface) {
114  fEvtGenInterface->init();
115  for (std::vector<int>::const_iterator i = fEvtGenInterface->operatesOnParticles().begin();
116  i != fEvtGenInterface->operatesOnParticles().end();
117  i++)
118  fPDGs.push_back(*i);
119  for (unsigned int iss = 0; iss < fEvtGenInterface->specialSettings().size(); iss++) {
120  fSpecialSettings.push_back(fEvtGenInterface->specialSettings()[iss]);
121  }
122  }
123 
124  if (fPhotosInterface) {
125  fPhotosInterface->init();
126  // for tauola++
127  if (fPhotosInterface) {
128  for (unsigned int iss = 0; iss < fPhotosInterface->specialSettings().size(); iss++) {
129  fSpecialSettings.push_back(fPhotosInterface->specialSettings()[iss]);
130  }
131  }
132  }
133 
134  fIsInitialized = true;
135 
136  return;
137 }
std::unique_ptr< PhotosInterfaceBase > fPhotosInterface
std::unique_ptr< EvtGenInterfaceBase > fEvtGenInterface
std::vector< std::string > fSpecialSettings
std::unique_ptr< TauolaInterfaceBase > fTauolaInterface
const std::vector<int>& gen::ExternalDecayDriver::operatesOnParticles ( )
inline

Definition at line 37 of file ExternalDecayDriver.h.

References fPDGs.

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

Definition at line 148 of file ExternalDecayDriver.cc.

References fEvtGenInterface, fPhotosInterface, and fTauolaInterface.

148  {
149  if (fTauolaInterface)
150  fTauolaInterface->setRandomEngine(v);
151  if (fEvtGenInterface)
152  fEvtGenInterface->setRandomEngine(v);
153  if (fPhotosInterface)
154  fPhotosInterface->setRandomEngine(v);
155 }
std::unique_ptr< PhotosInterfaceBase > fPhotosInterface
double v[5][pyjets_maxn]
std::unique_ptr< EvtGenInterfaceBase > fEvtGenInterface
std::unique_ptr< TauolaInterfaceBase > fTauolaInterface
std::vector<std::string> const& gen::ExternalDecayDriver::sharedResources ( ) const
inline

Definition at line 46 of file ExternalDecayDriver.h.

References exSharedResources.

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

Definition at line 38 of file ExternalDecayDriver.h.

References fSpecialSettings.

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

Definition at line 139 of file ExternalDecayDriver.cc.

References fPhotosInterface, and fTauolaInterface.

139  {
140  if (fTauolaInterface)
141  fTauolaInterface->statistics();
142  if (fPhotosInterface)
143  fPhotosInterface->statistics();
144  // similar for EvtGen if needed
145  return;
146 }
std::unique_ptr< PhotosInterfaceBase > fPhotosInterface
std::unique_ptr< TauolaInterfaceBase > fTauolaInterface

Member Data Documentation

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

Definition at line 56 of file ExternalDecayDriver.h.

Referenced by ExternalDecayDriver(), and sharedResources().

std::unique_ptr<EvtGenInterfaceBase> gen::ExternalDecayDriver::fEvtGenInterface
private

Definition at line 51 of file ExternalDecayDriver.h.

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

bool gen::ExternalDecayDriver::fIsInitialized
private

Definition at line 49 of file ExternalDecayDriver.h.

Referenced by decay(), and init().

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

Definition at line 53 of file ExternalDecayDriver.h.

Referenced by init(), and operatesOnParticles().

std::unique_ptr<PhotosInterfaceBase> gen::ExternalDecayDriver::fPhotosInterface
private

Definition at line 52 of file ExternalDecayDriver.h.

Referenced by decay(), ExternalDecayDriver(), init(), setRandomEngine(), and statistics().

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

Definition at line 54 of file ExternalDecayDriver.h.

Referenced by init(), and specialSettings().

std::unique_ptr<TauolaInterfaceBase> gen::ExternalDecayDriver::fTauolaInterface
private

Definition at line 50 of file ExternalDecayDriver.h.

Referenced by decay(), ExternalDecayDriver(), init(), setRandomEngine(), and statistics().