CMS 3D CMS Logo

Pythia6Hadronizer.h
Go to the documentation of this file.
1 #ifndef gen_Pythia6Hadronizer_h
2 #define gen_Pythia6Hadronizer_h
3 
4 // -*- C++ -*-
5 
6 // class Pythia6Hadronizer is an example of a class that models the
7 // Hadronizer concept.
8 
9 #include <memory>
10 #include <string>
11 #include <vector>
12 
14 
16 
17 namespace lhef {
18  class LHERunInfo;
19  class LHEEvent;
20 } // namespace lhef
21 
22 class LHEEventProduct;
23 
24 namespace HepMC {
25  class GenEvent;
26 }
27 
28 namespace CLHEP {
29  class HepRandomEngine;
30 }
31 
32 namespace gen {
33 
34  class Pythia6Service;
35  class JetMatching;
36 
38  public:
40  ~Pythia6Hadronizer() override;
41 
42  // bool generatePartons();
44  bool hadronize();
45  bool decay();
46  bool residualDecay();
47  bool readSettings(int);
50  bool declareStableParticles(const std::vector<int>&);
51  bool declareSpecialSettings(const std::vector<std::string>&);
52 
53  static JetMatching* getJetMatching() { return fJetMatching; }
54 
55  void finalizeEvent();
56 
57  void statistics();
58 
59  const char* classname() const;
60 
61  private:
62  // methods
63  //
64 
65  void doSetRandomEngine(CLHEP::HepRandomEngine* v) override;
66  std::vector<std::string> const& doSharedResources() const override { return theSharedResources; }
67 
68  void flushTmpStorage();
69  void fillTmpStorage();
70 
71  void imposeProperTime();
72 
73  // data members
74  //
75 
77 
78  // some of the following params are common for all generators(interfaces)
79  // probably better to wrap them up in a class and reuse ?
80  // (the event/run pointers are already moved to BaseHadronizer)
81  //
83 
84  int fInitialState; // pp, ppbar, e-e+, or e-p
85  double fCOMEnergy; // this one is irrelevant for setting py6 as hadronizer
86  // or if anything, it should be picked up from LHERunInfoProduct !
87  double fBeam1PZ;
88  double fBeam2PZ;
89 
91 
93  unsigned int fMaxEventsToPrint;
94 
95  // this is the only one specific to Pythia6
96  //
97  unsigned int fPythiaListVerbosity;
100 
101  // these two params control stop- and r-handron features,
102  // that are "custom" add-ons to Py6;
103  // I doubt they should drag along Py6Int main library...
104  //
107 
108  // this is a "trick" to generate enriched mu-samples and the likes
110 
111  // and final touch - conversion of Py6 PID's into PDG convension
113 
114  // tmp stuff, to deal with EvtGen corrupting pyjets
115  // int NPartsBeforeDecays;
116 
117  static const std::vector<std::string> theSharedResources;
118  };
119 } // namespace gen
120 
121 #endif
gen::Pythia6Hadronizer::PositronProton
Definition: Pythia6Hadronizer.h:82
gen::Pythia6Hadronizer::initializeForExternalPartons
bool initializeForExternalPartons()
Definition: Pythia6Hadronizer.cc:671
gen::Pythia6Hadronizer::readSettings
bool readSettings(int)
Definition: Pythia6Hadronizer.cc:660
gen::Pythia6Hadronizer::getJetMatching
static JetMatching * getJetMatching()
Definition: Pythia6Hadronizer.h:53
LHEEventProduct
Definition: LHEEventProduct.h:12
gen::Pythia6Hadronizer
Definition: Pythia6Hadronizer.h:37
gen::Pythia6Hadronizer::fJetMatching
static JetMatching * fJetMatching
Definition: Pythia6Hadronizer.h:90
BaseHadronizer.h
particlelevel_cff.LHERunInfo
LHERunInfo
Definition: particlelevel_cff.py:56
gen::Pythia6Hadronizer::PP
Definition: Pythia6Hadronizer.h:82
gen::Pythia6Hadronizer::fInitialState
int fInitialState
Definition: Pythia6Hadronizer.h:84
gen::Pythia6Hadronizer::fGluinoHadronsEnabled
bool fGluinoHadronsEnabled
Definition: Pythia6Hadronizer.h:106
gen::Pythia6Hadronizer::fPy6Service
Pythia6Service * fPy6Service
Definition: Pythia6Hadronizer.h:76
gen::BaseHadronizer
Definition: BaseHadronizer.h:46
gen::JetMatching
Definition: JetMatching.h:27
gen::Pythia6Hadronizer::theSharedResources
static const std::vector< std::string > theSharedResources
Definition: Pythia6Hadronizer.h:117
gen::Pythia6Hadronizer::decay
bool decay()
Definition: Pythia6Hadronizer.cc:509
gen::Pythia6Hadronizer::residualDecay
bool residualDecay()
Definition: Pythia6Hadronizer.cc:511
gen::Pythia6Hadronizer::flushTmpStorage
void flushTmpStorage()
Definition: Pythia6Hadronizer.cc:224
gen::Pythia6Hadronizer::fStopHadronsEnabled
bool fStopHadronsEnabled
Definition: Pythia6Hadronizer.h:105
gen::Pythia6Hadronizer::fHepMCVerbosity
bool fHepMCVerbosity
Definition: Pythia6Hadronizer.h:92
gen::Pythia6Hadronizer::fCOMEnergy
double fCOMEnergy
Definition: Pythia6Hadronizer.h:85
gen::Pythia6Hadronizer::fBeam1PZ
double fBeam1PZ
Definition: Pythia6Hadronizer.h:87
gen
Definition: PythiaDecays.h:13
CLHEP
Definition: CocoaGlobals.h:27
gen::Pythia6Hadronizer::fDisplayPythiaCards
bool fDisplayPythiaCards
Definition: Pythia6Hadronizer.h:99
edm::ParameterSet
Definition: ParameterSet.h:47
gen::Pythia6Hadronizer::hadronize
bool hadronize()
Definition: Pythia6Hadronizer.cc:444
gen::Pythia6Hadronizer::~Pythia6Hadronizer
~Pythia6Hadronizer() override
Definition: Pythia6Hadronizer.cc:215
gen::Pythia6Hadronizer::doSetRandomEngine
void doSetRandomEngine(CLHEP::HepRandomEngine *v) override
Definition: Pythia6Hadronizer.cc:222
lhef
Definition: ExhumeHadronizer.h:12
gen::Pythia6Hadronizer::classname
const char * classname() const
Definition: Pythia6Hadronizer.cc:910
gen::v
double v[5][pyjets_maxn]
Definition: Cascade2Hadronizer.cc:76
gen::Pythia6Hadronizer::fImposeProperTime
bool fImposeProperTime
Definition: Pythia6Hadronizer.h:109
gen::Pythia6Hadronizer::fMaxEventsToPrint
unsigned int fMaxEventsToPrint
Definition: Pythia6Hadronizer.h:93
gen::Pythia6Hadronizer::fPythiaListVerbosity
unsigned int fPythiaListVerbosity
Definition: Pythia6Hadronizer.h:97
gen::Pythia6Hadronizer::Pythia6Hadronizer
Pythia6Hadronizer(edm::ParameterSet const &ps)
Definition: Pythia6Hadronizer.cc:97
gen::Pythia6Hadronizer::PPbar
Definition: Pythia6Hadronizer.h:82
gen::Pythia6Hadronizer::ElectronPositron
Definition: Pythia6Hadronizer.h:82
gen::Pythia6Hadronizer::imposeProperTime
void imposeProperTime()
Definition: Pythia6Hadronizer.cc:832
gen::Pythia6Hadronizer::ElectronProton
Definition: Pythia6Hadronizer.h:82
gen::Pythia6Hadronizer::fBeam2PZ
double fBeam2PZ
Definition: Pythia6Hadronizer.h:88
gen::Pythia6Hadronizer::fConvertToPDG
bool fConvertToPDG
Definition: Pythia6Hadronizer.h:112
HepMC
Definition: GenParticle.h:15
ParameterSetfwd.h
gen::Pythia6Hadronizer::generatePartonsAndHadronize
bool generatePartonsAndHadronize()
Definition: Pythia6Hadronizer.cc:396
gen::Pythia6Hadronizer::initializeForInternalPartons
bool initializeForInternalPartons()
Definition: Pythia6Hadronizer.cc:720
gen::Pythia6Hadronizer::declareStableParticles
bool declareStableParticles(const std::vector< int > &)
Definition: Pythia6Hadronizer.cc:778
gen::Pythia6Service
Definition: Pythia6Service.h:24
gen::Pythia6Hadronizer::fillTmpStorage
void fillTmpStorage()
Definition: Pythia6Hadronizer.cc:237
gen::Pythia6Hadronizer::doSharedResources
std::vector< std::string > const & doSharedResources() const override
Definition: Pythia6Hadronizer.h:66
gen::Pythia6Hadronizer::statistics
void statistics()
Definition: Pythia6Hadronizer.cc:896
gen::Pythia6Hadronizer::fDisplayPythiaBanner
bool fDisplayPythiaBanner
Definition: Pythia6Hadronizer.h:98
gen::Pythia6Hadronizer::declareSpecialSettings
bool declareSpecialSettings(const std::vector< std::string > &)
Definition: Pythia6Hadronizer.cc:796
gen::Pythia6Hadronizer::finalizeEvent
void finalizeEvent()
Definition: Pythia6Hadronizer.cc:251