CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HijingHadronizer.h
Go to the documentation of this file.
1 #ifndef HijingHadronizer_h
2 #define HijingHadronizer_h
3 
6 #include "CLHEP/Random/RandomEngine.h"
7 
8 #include <map>
9 #include <string>
10 #include <vector>
11 #include <math.h>
12 
13 namespace HepMC {
14  class GenEvent;
15  class GenParticle;
16  class GenVertex;
17 }
18 
19 extern CLHEP::HepRandomEngine* hijRandomEngine;
20 
21 namespace gen
22 {
23  extern "C" {
24  double hijran_(int*);
25  }
26 
28  public:
30  virtual ~HijingHadronizer();
31 
33  bool hadronize();
34  bool decay();
35  bool residualDecay();
38  bool declareStableParticles( const std::vector<int> );
39  bool declareSpecialSettings( const std::vector<std::string> ) { return true; }
40 
41  void finalizeEvent();
42  void statistics();
43  const char* classname() const;
44 
45  private:
46 
47  void add_heavy_ion_rec(HepMC::GenEvent *evt);
48  HepMC::GenParticle* build_hijing( int index, int barcode );
49  HepMC::GenVertex* build_hijing_vertex(int i, int id);
50  bool get_particles(HepMC::GenEvent* evt);
51  bool call_hijset(double efrm, std::string frame, std::string proj,
52  std::string targ, int iap, int izp, int iat, int izt);
53  // inline double nuclear_radius() const;
54  void rotateEvtPlane();
55 
56  HepMC::GenEvent *evt;
58  double bmax_; // max impact param;
59  // units of nucl radius
60  double bmin_; // min impact param;
61  // units of nucl radius
62  double efrm_; // collision energy
63  std::string frame_;
64  std::string proj_;
65  std::string targ_;
66  int iap_;
67  int izp_;
68  int iat_;
69  int izt_;
70 
71 // unsigned int maxEventsToPrint_; // Events to print if verbosity
72 // unsigned int pythiaPylistVerbosity_; // pythia verbosity; def=1
73 
74  double phi0_; // Event plane angle
75  double sinphi0_;
76  double cosphi0_;
77  bool rotate_; // Switch to rotate event plane
78 
79  // unsigned int shadowingswitch_; // shadowing switcher
80  // 1-ON, 0-OFF
81  // double signn_; // inelastic nucleon nucleon cross section [mb]
82  // DEFAULT= 58 mb
83  // CLHEP::HepRandomEngine* fRandomEngine;
84 // Pythia6Service* pythia6Service_;
85  };
86 
87 } /*end namespace*/
88 
89 #endif
double hijran_(int *)
int i
Definition: DBlmapReader.cc:9
HepMC::GenEvent * evt
HepMC::GenParticle * build_hijing(int index, int barcode)
CLHEP::HepRandomEngine * hijRandomEngine
edm::ParameterSet pset_
bool declareSpecialSettings(const std::vector< std::string >)
void add_heavy_ion_rec(HepMC::GenEvent *evt)
bool declareStableParticles(const std::vector< int >)
HepMC::GenVertex * build_hijing_vertex(int i, int id)
HijingHadronizer(const edm::ParameterSet &)
bool initializeForExternalPartons()
const char * classname() const
bool get_particles(HepMC::GenEvent *evt)
bool call_hijset(double efrm, std::string frame, std::string proj, std::string targ, int iap, int izp, int iat, int izt)