CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HydjetHadronizer.h
Go to the documentation of this file.
1 #ifndef HydjetHadronizer_h
2 #define HydjetHadronizer_h
3 
4 
13 #define PYCOMP pycomp_
14 
17 
18 #include <map>
19 #include <string>
20 #include <vector>
21 #include <math.h>
22 
23 namespace CLHEP {
24  class HepRandomEngine;
25 }
26 
27 namespace HepMC {
28  class GenEvent;
29  class GenParticle;
30  class GenVertex;
31 }
32 
33 namespace gen
34 {
35  class Pythia6Service;
36 
38  public:
40  virtual ~HydjetHadronizer();
41 
43  bool hadronize();
44  bool decay();
45  bool residualDecay();
46  bool readSettings( int );
49  bool declareStableParticles( const std::vector<int>& );
50  bool declareSpecialSettings( const std::vector<std::string>& ) { return true; }
51 
52  void finalizeEvent();
53  void statistics();
54  const char* classname() const;
55 
56  private:
57 
58  virtual void doSetRandomEngine(CLHEP::HepRandomEngine* v) override;
59  virtual std::vector<std::string> const& doSharedResources() const override { return theSharedResources; }
60 
61  static const std::vector<std::string> theSharedResources;
62 
63  void add_heavy_ion_rec(HepMC::GenEvent *evt);
64  HepMC::GenParticle* build_hyjet( int index, int barcode );
65  HepMC::GenVertex* build_hyjet_vertex(int i, int id);
66  bool get_particles(HepMC::GenEvent* evt);
67  bool call_hyinit(double energy, double a, int ifb, double bmin,
68  double bmax,double bfix,int nh);
69  bool hydjet_init(const edm::ParameterSet &pset);
70  inline double nuclear_radius() const;
71  void rotateEvtPlane();
72 
73  HepMC::GenEvent *evt;
75  double abeamtarget_; // beam/target atomic mass number
76  double bfixed_; // fixed impact param (fm); valid only if cflag_=0
77  double bmax_; // max impact param;
78  // units of nucl radius
79  double bmin_; // min impact param;
80  // units of nucl radius
81  int cflag_; // centrality flag
82  // = 0 fixed impact param,
83  // <> 0 between bmin and bmax
84  bool embedding_; // Switch for embedding mode
85  double comenergy; // collision energy
88  double fracsoftmult_; // fraction of soft hydro induced hadronic multiplicity
89  // proportional to no of nucleon participants
90  // (1-fracsoftmult_)--- fraction of soft
91  // multiplicity proportional to the numebr
92  // of nucleon-nucleon binary collisions
93  // DEFAULT=1., allowed range [0.01,1]
94  double hadfreeztemp_; // hadron freez-out temperature
95  // DEFAULT=0.14MeV, allowed ranges [0.08,0.2]MeV
96  std::string hymode_; // Hydjet running mode
97  unsigned int maxEventsToPrint_; // Events to print if verbosity
98  double maxlongy_; // max longitudinal collective rapidity:
99  // controls width of eta-spectra
100  // DEFAULT=4, allowed range [0.01,7.0]
101  double maxtrany_; // max transverse collective rapidity:
102  // controls slope of low-pt spectra
103  // DEFAULT=1.5, allowed range [0.01,3.0]
104  int nsub_; // number of sub-events
105  int nhard_; // multiplicity of PYTHIA(+PYQUEN)-induced particles in event
106  int nmultiplicity_; // mean soft multiplicity in central PbPb
107  // automatically calculated for other centralitie and beams
108  int nsoft_; // multiplicity of HYDRO-induced particles in event
109  unsigned int nquarkflavor_;
110  unsigned int pythiaPylistVerbosity_; // pythia verbosity; def=1
112  double qgpt0_; // initial temperature of QGP
113  // DEFAULT = 1GeV; allowed range [0.2,2.0]GeV;
114  double qgptau0_; // proper time of QGP formation
115  // DEFAULT = 0.1 fm/c; allowed range [0.01,10.0]fm/
116 
117  double phi0_; // Event plane angle
118  double sinphi0_;
119  double cosphi0_;
120  bool rotate_; // Switch to rotate event plane
121 
122  unsigned int shadowingswitch_; // shadowing switcher
123  // 1-ON, 0-OFF
124  double signn_; // inelastic nucleon nucleon cross section [mb]
125  // DEFAULT= 58 mb
126 
129  };
130 
132  {
133  // Return the nuclear radius derived from the
134  // beam/target atomic mass number.
135 
136  return 1.15 * pow((double)abeamtarget_, 1./3.);
137  }
138 } /*end namespace*/
139 #endif
int i
Definition: DBlmapReader.cc:9
virtual void doSetRandomEngine(CLHEP::HepRandomEngine *v) override
HepMC::GenEvent * evt
bool docollisionalenloss_
DEFAULT = true.
HydjetHadronizer(const edm::ParameterSet &)
bool hydjet_init(const edm::ParameterSet &pset)
void add_heavy_ion_rec(HepMC::GenEvent *evt)
virtual std::vector< std::string > const & doSharedResources() const override
double v[5][pyjets_maxn]
bool initializeForExternalPartons()
const char * classname() const
unsigned int maxEventsToPrint_
HepMC::GenParticle * build_hyjet(int index, int barcode)
Pythia6Service * pythia6Service_
bool declareSpecialSettings(const std::vector< std::string > &)
double fracsoftmult_
DEFAULT = true.
HepMC::GenVertex * build_hyjet_vertex(int i, int id)
double nuclear_radius() const
bool call_hyinit(double energy, double a, int ifb, double bmin, double bmax, double bfix, int nh)
unsigned int pythiaPylistVerbosity_
double a
Definition: hdecay.h:121
edm::ParameterSet pset_
unsigned int shadowingswitch_
bool declareStableParticles(const std::vector< int > &)
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
static const std::vector< std::string > theSharedResources
bool get_particles(HepMC::GenEvent *evt)