CMS 3D CMS Logo

AMPTHadronizer.h
Go to the documentation of this file.
1 #ifndef AMPTHadronizer_h
2 #define AMPTHadronizer_h
3 
6 
7 #include <map>
8 #include <string>
9 #include <vector>
10 #include <cmath>
11 
12 namespace HepMC {
13  class GenEvent;
14  class GenParticle;
15  class GenVertex;
16 } // namespace HepMC
17 
18 namespace CLHEP {
19  class HepRandomEngine;
20 }
21 
22 namespace gen {
23 
24  extern "C" {
25  float ranart_(int*);
26  }
27 
28  extern "C" {
29  float ran1_(int*);
30  }
31 
32  class AMPTHadronizer : public BaseHadronizer {
33  public:
35  ~AMPTHadronizer() override;
36 
38  bool hadronize();
39  bool decay();
40  bool residualDecay();
41  bool readSettings(int) { return true; }
44  bool declareStableParticles(const std::vector<int>&);
45  bool declareSpecialSettings(const std::vector<std::string>&) { return true; }
46 
47  void finalizeEvent();
48  void statistics();
49  const char* classname() const;
50 
51  private:
52  void doSetRandomEngine(CLHEP::HepRandomEngine* v) override;
53 
55  HepMC::GenParticle* build_ampt(int index, int barcode);
56  HepMC::GenVertex* build_ampt_vertex(int i, int id);
58  bool ampt_init(const edm::ParameterSet& pset);
59  bool call_amptset(
60  double efrm, std::string frame, std::string proj, std::string targ, int iap, int izp, int iat, int izt);
61  // inline double nuclear_radius() const;
62  void rotateEvtPlane();
63 
66  double bmax_; // max impact param;
67  // units of nucl radius
68  double bmin_; // min impact param;
69  // units of nucl radius
70  double efrm_; // collision energy
74  int iap_;
75  int izp_;
76  int iat_;
77  int izt_;
78  int amptmode_;
79  int ntmax_;
80  double dt_;
81  double stringFragA_;
82  double stringFragB_;
84  double popcornpar_;
87  double quenchingpar_;
88  double pthard_;
89  double mu_;
90  int izpc_;
91  double alpha_;
92  double dpcoal_;
93  double drcoal_;
94  bool ks0decay_;
95  bool phidecay_;
99  double minijetpt_;
100  int maxmiss_;
102  int ktkick_;
104  double diquarkpx_;
105  double diquarkpy_;
106  double diquarkx_;
107  double diquarky_;
108  int nsembd_;
109  double psembd_;
110  double tmaxembd_;
113  double phi0_; // Event plane angle
114  double sinphi0_;
115  double cosphi0_;
116  bool rotate_; // Switch to rotate event plane
117  };
118 } // namespace gen
119 
120 #endif
bool initializeForExternalPartons()
bool initializeForInternalPartons()
float ran1_(int *)
HepMC::GenEvent * evt
void add_heavy_ion_rec(HepMC::GenEvent *evt)
bool generatePartonsAndHadronize()
AMPTHadronizer(const edm::ParameterSet &)
double v[5][pyjets_maxn]
bool declareStableParticles(const std::vector< int > &)
float ranart_(int *)
bool call_amptset(double efrm, std::string frame, std::string proj, std::string targ, int iap, int izp, int iat, int izt)
~AMPTHadronizer() override
edm::ParameterSet pset_
const char * classname() const
bool declareSpecialSettings(const std::vector< std::string > &)
void doSetRandomEngine(CLHEP::HepRandomEngine *v) override
HepMC::GenParticle * build_ampt(int index, int barcode)
bool ampt_init(const edm::ParameterSet &pset)
HepMC::GenVertex * build_ampt_vertex(int i, int id)
bool get_particles(HepMC::GenEvent *evt)