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  float hijran_(int*);
25  }
26 
28  public:
30  virtual ~HijingHadronizer();
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 
48  void add_heavy_ion_rec(HepMC::GenEvent *evt);
49  HepMC::GenParticle* build_hijing( int index, int barcode );
50  HepMC::GenVertex* build_hijing_vertex(int i, int id);
51  bool get_particles(HepMC::GenEvent* evt);
52  bool call_hijset(double efrm, std::string frame, std::string proj,
53  std::string targ, int iap, int izp, int iat, int izt);
54  // inline double nuclear_radius() const;
55  void rotateEvtPlane();
56 
57  HepMC::GenEvent *evt;
59  double bmax_; // max impact param;
60  // units of nucl radius
61  double bmin_; // min impact param;
62  // units of nucl radius
63  double efrm_; // collision energy
64  std::string frame_;
65  std::string proj_;
66  std::string targ_;
67  int iap_;
68  int izp_;
69  int iat_;
70  int izt_;
71 
72 // unsigned int maxEventsToPrint_; // Events to print if verbosity
73 // unsigned int pythiaPylistVerbosity_; // pythia verbosity; def=1
74 
75  double phi0_; // Event plane angle
76  double sinphi0_;
77  double cosphi0_;
78  bool rotate_; // Switch to rotate event plane
79 
80  // unsigned int shadowingswitch_; // shadowing switcher
81  // 1-ON, 0-OFF
82  // double signn_; // inelastic nucleon nucleon cross section [mb]
83  // DEFAULT= 58 mb
84  // CLHEP::HepRandomEngine* fRandomEngine;
85 // Pythia6Service* pythia6Service_;
86  };
87 
88 } /*end namespace*/
89 
90 #endif
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)
float hijran_(int *)