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 }
17 
18 namespace CLHEP {
19  class HepRandomEngine;
20 }
21 
22 namespace gen
23 {
24 
25  extern "C" {
26  float ranart_(int*);
27  }
28 
29  extern "C" {
30  float ran1_(int*);
31  }
32 
33  class AMPTHadronizer : public BaseHadronizer {
34  public:
36  ~AMPTHadronizer() override;
37 
38  bool generatePartonsAndHadronize();
39  bool hadronize();
40  bool decay();
41  bool residualDecay();
42  bool readSettings( int ) { return true; }
43  bool initializeForExternalPartons();
44  bool initializeForInternalPartons();
45  bool declareStableParticles( const std::vector<int>& );
46  bool declareSpecialSettings( const std::vector<std::string>& ) { return true; }
47 
48  void finalizeEvent();
49  void statistics();
50  const char* classname() const;
51 
52  private:
53 
54  void doSetRandomEngine(CLHEP::HepRandomEngine* v) override;
55 
56  void add_heavy_ion_rec(HepMC::GenEvent *evt);
57  HepMC::GenParticle* build_ampt( int index, int barcode );
58  HepMC::GenVertex* build_ampt_vertex(int i, int id);
59  bool get_particles(HepMC::GenEvent* evt);
60  bool ampt_init(const edm::ParameterSet &pset);
61  bool call_amptset(double efrm, std::string frame, std::string proj, std::string targ, int iap, int izp, int iat, int izt);
62  // inline double nuclear_radius() const;
63  void rotateEvtPlane();
64 
67  double bmax_; // max impact param;
68  // units of nucl radius
69  double bmin_; // min impact param;
70  // units of nucl radius
71  double efrm_; // collision energy
75  int iap_;
76  int izp_;
77  int iat_;
78  int izt_;
79  int amptmode_;
80  int ntmax_;
81  double dt_;
82  double stringFragA_;
83  double stringFragB_;
85  double popcornpar_;
88  double quenchingpar_;
89  double pthard_;
90  double mu_;
91  int izpc_;
92  double alpha_;
93  double dpcoal_;
94  double drcoal_;
95  bool ks0decay_;
96  bool phidecay_;
100  double minijetpt_;
101  int maxmiss_;
103  int ktkick_;
105  double diquarkpx_;
106  double diquarkpy_;
107  double diquarkx_;
108  double diquarky_;
109  int nsembd_;
110  double psembd_;
111  double tmaxembd_;
114  double phi0_; // Event plane angle
115  double sinphi0_;
116  double cosphi0_;
117  bool rotate_; // Switch to rotate event plane
118  };
119 } /*end namespace*/
120 
121 #endif
float ran1_(int *)
HepMC::GenEvent * evt
edm::ParameterSet pset_
float ranart_(int *)
bool declareSpecialSettings(const std::vector< std::string > &)