CMS 3D CMS Logo

HydjetHadronizer.h
Go to the documentation of this file.
1 #ifndef HydjetHadronizer_h
2 #define HydjetHadronizer_h
3 
11 #define PYCOMP pycomp_
12 
15 
20 
21 #include <map>
22 #include <string>
23 #include <vector>
24 #include <cmath>
25 
26 namespace CLHEP {
27  class HepRandomEngine;
28 }
29 
30 namespace HepMC {
31  class GenEvent;
32  class GenParticle;
33  class GenVertex;
34  class FourVector;
35 } // namespace HepMC
36 
37 namespace gen {
38  class Pythia6Service;
39 
41  public:
43  ~HydjetHadronizer() override;
44 
46  bool hadronize();
47  bool decay();
48  bool residualDecay();
49  bool readSettings(int);
52  bool declareStableParticles(const std::vector<int>&);
53  bool declareSpecialSettings(const std::vector<std::string>&) { return true; }
54 
55  void finalizeEvent();
56  void statistics();
57  const char* classname() const;
58 
59  private:
60  void doSetRandomEngine(CLHEP::HepRandomEngine* v) override;
61  std::vector<std::string> const& doSharedResources() const override { return theSharedResources; }
62 
63  static const std::vector<std::string> theSharedResources;
64 
66  HepMC::GenParticle* build_hyjet(int index, int barcode);
67  HepMC::GenVertex* build_hyjet_vertex(int i, int id);
69  bool call_hyinit(double energy, double a, int ifb, double bmin, double bmax, double bfix, int nh);
70  bool hydjet_init(const edm::ParameterSet& pset);
71  inline double nuclear_radius() const;
72  void rotateEvtPlane();
73  int convertStatus(int st);
74 
77  double abeamtarget_;
79  double bfixed_;
80  double bmax_;
81  double bmin_;
83  int cflag_;
85  bool embedding_;
88  double comenergy;
91  double fracsoftmult_;
92  double hadfreeztemp_;
100  unsigned int maxEventsToPrint_;
101  double maxlongy_;
102  double maxtrany_;
105  int nsub_;
108  int nhard_;
110  int nsoft_;
112  unsigned int nquarkflavor_;
113  unsigned int pythiaPylistVerbosity_;
115  double qgpt0_;
116  double qgptau0_;
118 
120  double phi0_;
121  double sinphi0_;
122  double cosphi0_;
123  bool rotate_;
124 
125  unsigned int shadowingswitch_;
126  double signn_;
128  HepMC::FourVector* fVertex_;
130  std::vector<double> signalVtx_;
131 
134  };
135 
140  double HydjetHadronizer::nuclear_radius() const { return 1.15 * pow((double)abeamtarget_, 1. / 3.); }
141 } // namespace gen
142 #endif
double bfixed_
fixed impact param (fm); valid only if cflag_=0
void doSetRandomEngine(CLHEP::HepRandomEngine *v) override
HepMC::GenEvent * evt
bool docollisionalenloss_
DEFAULT = true.
bool hydjet_init(const edm::ParameterSet &pset)
void add_heavy_ion_rec(HepMC::GenEvent *evt)
double comenergy
collision energy
double v[5][pyjets_maxn]
double nuclear_radius() const
bool embedding_
Switch for embedding mode.
std::string hymode_
Hydjet running mode.
int nsoft_
multiplicity of HYDRO-induced particles in event
bool initializeForExternalPartons()
const char * classname() const
unsigned int maxEventsToPrint_
Events to print if verbosity.
uint32_t nh
HepMC::GenParticle * build_hyjet(int index, int barcode)
Pythia6Service * pythia6Service_
bool declareSpecialSettings(const std::vector< std::string > &)
int nsub_
number of sub-events
std::vector< double > signalVtx_
Pset double vector to set event signal vertex.
int nhard_
multiplicity of PYTHIA(+PYQUEN)-induced particles in event
HepMC::GenVertex * build_hyjet_vertex(int i, int id)
bool call_hyinit(double energy, double a, int ifb, double bmin, double bmax, double bfix, int nh)
unsigned int pythiaPylistVerbosity_
pythia verbosity; def=1
double abeamtarget_
beam/target atomic mass number
edm::EDGetTokenT< CrossingFrame< edm::HepMCProduct > > src_
double a
Definition: hdecay.h:121
edm::ParameterSet pset_
unsigned int shadowingswitch_
bool doradiativeenloss_
DEFAULT = true.
HydjetHadronizer(const edm::ParameterSet &, edm::ConsumesCollector &&)
int angularspecselector_
angular emitted gluon spectrum selection
bool declareStableParticles(const std::vector< int > &)
bool rotate_
Switch to rotate event plane.
double phi0_
Event plane angle.
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29
HepMC::FourVector * fVertex_
Event signal vertex.
static const std::vector< std::string > theSharedResources
bool get_particles(HepMC::GenEvent *evt)
std::vector< std::string > const & doSharedResources() const override