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