CMS 3D CMS Logo

HijingHadronizer.h
Go to the documentation of this file.
1 #ifndef HijingHadronizer_h
2 #define HijingHadronizer_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  extern "C" {
24  float hijran_(int*);
25  }
26 
28  public:
30  ~HijingHadronizer() override;
31 
33  bool hadronize();
34  bool decay();
35  bool residualDecay();
36  bool readSettings(int) { return true; }
39  bool declareStableParticles(const std::vector<int>&);
40  bool declareSpecialSettings(const std::vector<std::string>&) { return true; }
41 
42  void finalizeEvent();
43  void statistics();
44  const char* classname() const;
45 
46  private:
47  void doSetRandomEngine(CLHEP::HepRandomEngine* v) override;
48  std::vector<std::string> const& doSharedResources() const override { return theSharedResources; }
49 
51  HepMC::GenParticle* build_hijing(int index, int barcode);
52  HepMC::GenVertex* build_hijing_vertex(int i, int id);
54  bool call_hijset(
55  double efrm, std::string frame, std::string proj, std::string targ, int iap, int izp, int iat, int izt);
56  // inline double nuclear_radius() const;
57  void rotateEvtPlane();
58 
61  double bmax_; // max impact param;
62  // units of nucl radius
63  double bmin_; // min impact param;
64  // units of nucl radius
65  double efrm_; // collision energy
69  int iap_;
70  int izp_;
71  int iat_;
72  int izt_;
73 
74  // unsigned int maxEventsToPrint_; // Events to print if verbosity
75  // unsigned int pythiaPylistVerbosity_; // pythia verbosity; def=1
76 
77  double phi0_; // Event plane angle
78  double sinphi0_;
79  double cosphi0_;
80  bool rotate_; // Switch to rotate event plane
81 
82  static const std::vector<std::string> theSharedResources;
83 
84  // unsigned int shadowingswitch_; // shadowing switcher
85  // 1-ON, 0-OFF
86  // double signn_; // inelastic nucleon nucleon cross section [mb]
87  // DEFAULT= 58 mb
88  // CLHEP::HepRandomEngine* fRandomEngine;
89  // Pythia6Service* pythia6Service_;
90  };
91 
92 } // namespace gen
93 
94 #endif
HepMC::GenEvent * evt
HepMC::GenParticle * build_hijing(int index, int barcode)
float hijran_(int *)
double v[5][pyjets_maxn]
edm::ParameterSet pset_
void add_heavy_ion_rec(HepMC::GenEvent *evt)
HepMC::GenVertex * build_hijing_vertex(int i, int id)
HijingHadronizer(const edm::ParameterSet &)
bool initializeForExternalPartons()
static const std::vector< std::string > theSharedResources
std::vector< std::string > const & doSharedResources() const override
bool get_particles(HepMC::GenEvent *evt)
void doSetRandomEngine(CLHEP::HepRandomEngine *v) override
bool declareSpecialSettings(const std::vector< std::string > &)
bool call_hijset(double efrm, std::string frame, std::string proj, std::string targ, int iap, int izp, int iat, int izt)
bool declareStableParticles(const std::vector< int > &)
const char * classname() const