CMS 3D CMS Logo

PyquenHadronizer.h
Go to the documentation of this file.
1 #ifndef Pyquen_Hadronizer_h
2 #define Pyquen_Hadronizer_h
3 
16 
17 #include <map>
18 #include <string>
19 #include <vector>
20 
21 #include "HepMC/GenEvent.h"
22 
23 namespace CLHEP {
24  class HepRandomEngine;
25 }
26 
27 namespace gen {
28  class Pythia6Service;
29 
31  public:
33  ~PyquenHadronizer() override;
34 
35  bool generatePartonsAndHadronize();
36  bool hadronize();
37  bool decay();
38  bool residualDecay();
39  bool readSettings(int);
40  bool initializeForExternalPartons();
41  bool initializeForInternalPartons();
42  bool declareStableParticles(const std::vector<int>&);
43  bool declareSpecialSettings(const std::vector<std::string>&) { return true; }
44  bool select(HepMC::GenEvent* evtTry) const override { return selector_->filter(evtTry); }
45  void finalizeEvent();
46  void statistics();
47  const char* classname() const;
48 
49  private:
50  void doSetRandomEngine(CLHEP::HepRandomEngine* v) override;
51  std::vector<std::string> const& doSharedResources() const override { return theSharedResources; }
52 
53  static const std::vector<std::string> theSharedResources;
54 
55  void add_heavy_ion_rec(HepMC::GenEvent* evt);
56 
57  bool pyqpythia_init(const edm::ParameterSet& pset);
58  bool pyquen_init(const edm::ParameterSet& pset);
59  const char* nucleon();
60  void rotateEvtPlane(HepMC::GenEvent* evt, double angle);
61 
63  double abeamtarget_;
64  unsigned int angularspecselector_;
65  double bmin_;
69  double bmax_;
70  double bfixed_;
71  int cflag_;
72  double comenergy;
73  bool doquench_;
76  bool doIsospin_;
78  bool embedding_;
79  double evtPlane_;
80  double pfrac_;
81 
82  unsigned int nquarkflavor_;
83  double qgpt0_;
85  double qgptau0_;
87  unsigned int maxEventsToPrint_;
90  unsigned int pythiaPylistVerbosity_;
91 
92  // CLHEP::HepRandomEngine* fRandomEngine;
97  };
98 } // namespace gen
99 
100 #endif
bool select(HepMC::GenEvent *evtTry) const override
bool doradiativeenloss_
if true perform quenching (default = true)
bool docollisionalenloss_
DEFAULT = true.
std::vector< std::string > const & doSharedResources() const override
double bmax_
min impact param (fm); valid only if cflag_!=0
bool declareSpecialSettings(const std::vector< std::string > &)
int cflag_
fixed impact param (fm); valid only if cflag_=0
unsigned int pythiaPylistVerbosity_
HepMC verbosity flag.
bool doIsospin_
DEFAULT = true.
unsigned int angularspecselector_
beam/target atomic mass number
edm::InputTag src_
Pythia PYLIST Verbosity flag.
Pythia6Service * pythia6Service_
edm::ParameterSet pset_
unsigned int nquarkflavor_
Proton fraction in the nucleus.
bool doquench_
collision energy
double comenergy
centrality flag =0 fixed impact param, <>0 minbias
bool pythiaHepMCVerbosity_
Events to print if verbosity.
static const std::vector< std::string > theSharedResources
BaseHiGenEvtSelector * selector_
double bfixed_
max impact param (fm); valid only if cflag_!=0
int protonSide_
Run n&p with proper ratios; if false, only p+p collisions.
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
Definition: angle.h:11