CMS 3D CMS Logo

ReggeGribovPartonMCHadronizer.h
Go to the documentation of this file.
1 #ifndef REGGEGRIBOVPARTONMCHADRONIZER_H
2 #define REGGEGRIBOVPARTONMCHADRONIZER_H
3 
7 
8 #include <map>
9 #include <string>
10 #include <vector>
11 #include <cmath>
12 
13 namespace HepMC {
14  class GenEvent;
15  class GenParticle;
16  class GenVertex;
17 } // namespace HepMC
18 
19 namespace CLHEP {
20  class HepRandomEngine;
21 }
22 
23 extern "C" {
24 //iout,ievent,noutpart,impactpar,outpart,outpx,outpy,outpz,oute,outm,outstat
25 void crmc_f_(int&, int&, int&, double&, int&, double&, double&, double&, double&, double&, int&);
26 
27 //iEvent,iSeed,pproj,ptarg,ipart,itarg,imodel,itab,iout,output,param
28 void crmc_set_f_(int&, int&, double&, double&, int&, int&, int&, int&, int&, const char*, const char*);
29 
30 //iEvent,iSeed,pproj,ptarg,ipart,itarg,imodel,itab,iout,output,param
31 void crmc_init_f_();
32 }
33 
34 #define nmxhep 99990
35 
36 extern "C" {
37 /* extern struct
38  {
39  int nevhep;
40  int nhep;
41 
42  int isthep[nmxhep];
43  int idhep[nmxhep];
44  int jmohep[nmxhep][2];
45  int jdahep[nmxhep][2];
46  double phep[nmxhep][5];
47  double vhep[nmxhep][5];
48  } hepcom_; //epos.inc*/
49 
50 extern struct {
51  float sigtot; // ........ total cross section
52  float sigcut;
53  float sigela;
54  float sloela;
55  float sigsd;
56  float sigine;
57  float sigdif;
58  float sigineaa;
59  float sigtotaa;
60  float sigelaaa;
61  float sigcutaa;
62 } hadr5_; //epos.inc
63 
64 extern struct {
65  float phievt; // ........ angle of impact parameter
66  int nevt; // ........ error code. 1=valid event, 0=invalid event
67  float bimevt; // ........ absolute value of impact parameter
68  int kolevt; // ........ number of collisions
69  int koievt; // ........ number of inelastic collisions
70  float pmxevt; // ........ reference momentum
71  float egyevt; // ........ pp cm energy (hadron) or string energy (lepton)
72  int npjevt; // ........ number of primary projectile participants
73  int ntgevt; // ........ number of primary target participants
74  int npnevt; // ........ number of primary projectile neutron spectators
75  int nppevt; // ........ number of primary projectile proton spectators
76  int ntnevt; // ........ number of primary target neutron spectators
77  int ntpevt; // ........ number of primary target proton spectators
78  int jpnevt; // ........ number of absolute projectile neutron spectators
79  int jppevt; // ........ number of absolute projectile proton spectators
80  int jtnevt; // ........ number of absolute target neutron spectators
81  int jtpevt; // ........ number of absolute target proton spectators
82  float xbjevt; // ........ bjorken x for dis
83  float qsqevt; // ........ q**2 for dis
84  int nglevt; // ........ number of collisions acc to Glauber
85  float zppevt; // ........ average Z-parton-proj
86  float zptevt; // ........ average Z-parton-targ
87  int minfra; //
88  int maxfra; //
89  int kohevt; // ........ number of hard collisions
90 } cevt_; //epos.inc
91 
92 extern struct {
93  int ng1evt; // ........ number of collisions acc to Glauber
94  int ng2evt; // ........ number of Glauber participants with at least two IAs
95  float rglevt; // ........
96  float sglevt; // ........
97  float eglevt; // ........
98  float fglevt; // ........
99  int ikoevt; // ........ number of elementary parton-parton scatterings
100  float typevt; // ........ type of event (1=Non Diff, 2=Double Diff, 3=Single Diff)
101 } c2evt_; //epos.inc
102 
103 extern struct {
104  float bmaxim;
105  float bminim;
106  float phimax;
107  float phimin;
108 } nucl2_; //epos.inc
109 }
110 
111 extern "C" {
112 extern struct {
113  char fnch[500];
114  char fnhi[500];
115  char fndt[500];
116  char fnii[500];
117  char fnid[500];
118  char fnie[500];
119  char fnrj[500];
120  char fnmt[500];
121  char fngrv[500];
122  char fncp[500];
123  char fnnx[500];
124  char fncs[500];
125  char fndr[500];
126  char fnhpf[500];
127 } fname_; //epos.inc
128 
129 extern struct {
130  int nfnch;
131  int nfnhi;
132  int nfndt;
133  int nfnii;
134  int nfnid;
135  int nfnie;
136  int nfnrj;
137  int nfnmt;
138  int nfngrv;
139  int nfncp;
140  int nfnnx;
141  int nfncs;
142  int nfndr;
143  int nfnhpf;
144 } nfname_; //epos.inc
145 
146 extern struct {
147  char fndat[500];
148  char fnncs[500];
149  int ifdat;
150  int ifncs;
151 } qgsfname_; //epos-bas.f
152 
153 extern struct {
154  int nfndat;
155  int nfnncs;
156 } qgsnfname_; //epos-bas.f
157 
158 extern struct {
159  char fniidat[500];
160  char fniincs[500];
161  int ifiidat;
162  int ifiincs;
163 } qgsiifname_; //epos-bas.f
164 
165 extern struct {
166  int nfniidat;
167  int nfniincs;
168 } qgsiinfname_; //epos-bas.f
169 }
170 
171 namespace gen {
172  extern "C" {
173  float rangen_();
174  }
175 
176  extern "C" {
177  double drangen_(int*);
178  }
179 
180  class ReggeGribovPartonMCHadronizer : public BaseHadronizer {
181  public:
184 
186  bool hadronize();
187  bool decay();
188  bool residualDecay();
189  bool readSettings(int) { return true; }
190  bool initializeForExternalPartons() { return true; }
192  bool declareStableParticles(const std::vector<int>&);
193  bool declareSpecialSettings(const std::vector<std::string>&) { return true; }
194  bool initializeTablePaths();
195 
196  void finalizeEvent();
197  void statistics();
198  const char* classname() const;
199 
200  private:
201  void doSetRandomEngine(CLHEP::HepRandomEngine* v) override;
202 
206  int m_BeamID;
209  double m_bMin;
210  double m_bMax;
213  int m_NEvent;
214 
218  double m_PartPx[nmxhep];
219  double m_PartPy[nmxhep];
220  double m_PartPz[nmxhep];
224 
226  };
227 
228 } // namespace gen
229 
230 #endif //ifndef REGGEGRIBOVPARTONMCHADRONIZER_H
gen::ReggeGribovPartonMCHadronizer::ReggeGribovPartonMCHadronizer
ReggeGribovPartonMCHadronizer(const edm::ParameterSet &)
Definition: ReggeGribovPartonMCHadronizer.cc:58
fnch
char fnch[500]
Definition: ReggeGribovPartonMCHadronizer.h:113
sigineaa
float sigineaa
Definition: ReggeGribovPartonMCHadronizer.h:58
maxfra
int maxfra
Definition: ReggeGribovPartonMCHadronizer.h:88
egyevt
float egyevt
Definition: ReggeGribovPartonMCHadronizer.h:71
fnii
char fnii[500]
Definition: ReggeGribovPartonMCHadronizer.h:116
fniincs
char fniincs[500]
Definition: ReggeGribovPartonMCHadronizer.h:160
gen::ReggeGribovPartonMCHadronizer::m_PartPz
double m_PartPz[99990]
Definition: ReggeGribovPartonMCHadronizer.h:220
gen::ReggeGribovPartonMCHadronizer::m_PartID
int m_PartID[99990]
Definition: ReggeGribovPartonMCHadronizer.h:217
nfnie
int nfnie
Definition: ReggeGribovPartonMCHadronizer.h:135
phievt
float phievt
Definition: ReggeGribovPartonMCHadronizer.h:65
gen::ReggeGribovPartonMCHadronizer::statistics
void statistics()
Definition: ReggeGribovPartonMCHadronizer.cc:208
sigtotaa
float sigtotaa
Definition: ReggeGribovPartonMCHadronizer.h:59
eglevt
float eglevt
Definition: ReggeGribovPartonMCHadronizer.h:97
crmc_f_
void crmc_f_(int &, int &, int &, double &, int &, double &, double &, double &, double &, double &, int &)
qgsiifname_
struct @750 qgsiifname_
gen::ReggeGribovPartonMCHadronizer::m_bMax
double m_bMax
Definition: ReggeGribovPartonMCHadronizer.h:210
gen::ReggeGribovPartonMCHadronizer::m_ImpactParameter
double m_ImpactParameter
Definition: ReggeGribovPartonMCHadronizer.h:216
npnevt
int npnevt
Definition: ReggeGribovPartonMCHadronizer.h:74
nmxhep
#define nmxhep
Definition: ReggeGribovPartonMCHadronizer.h:34
npjevt
int npjevt
Definition: ReggeGribovPartonMCHadronizer.h:72
fniidat
char fniidat[500]
Definition: ReggeGribovPartonMCHadronizer.h:159
crmc_init_f_
void crmc_init_f_()
gen::drangen_
double drangen_(int *)
Definition: ReggeGribovPartonMCHadronizer.cc:52
phimin
float phimin
Definition: ReggeGribovPartonMCHadronizer.h:107
gen::ReggeGribovPartonMCHadronizer::m_PartPx
double m_PartPx[99990]
Definition: ReggeGribovPartonMCHadronizer.h:218
gen::ReggeGribovPartonMCHadronizer::m_NEvent
int m_NEvent
Definition: ReggeGribovPartonMCHadronizer.h:213
BaseHadronizer.h
fndat
char fndat[500]
Definition: ReggeGribovPartonMCHadronizer.h:147
gen::ReggeGribovPartonMCHadronizer::initializeTablePaths
bool initializeTablePaths()
Definition: ReggeGribovPartonMCHadronizer.cc:223
gen::ReggeGribovPartonMCHadronizer::declareStableParticles
bool declareStableParticles(const std::vector< int > &)
Definition: ReggeGribovPartonMCHadronizer.cc:212
gen::ReggeGribovPartonMCHadronizer::m_SkipNuclFrag
bool m_SkipNuclFrag
Definition: ReggeGribovPartonMCHadronizer.h:212
ng2evt
int ng2evt
Definition: ReggeGribovPartonMCHadronizer.h:94
nfnhpf
int nfnhpf
Definition: ReggeGribovPartonMCHadronizer.h:143
sglevt
float sglevt
Definition: ReggeGribovPartonMCHadronizer.h:96
qgsnfname_
struct @749 qgsnfname_
koievt
int koievt
Definition: ReggeGribovPartonMCHadronizer.h:69
sigcut
float sigcut
Definition: ReggeGribovPartonMCHadronizer.h:52
ikoevt
int ikoevt
Definition: ReggeGribovPartonMCHadronizer.h:99
ifdat
int ifdat
Definition: ReggeGribovPartonMCHadronizer.h:149
nfnhi
int nfnhi
Definition: ReggeGribovPartonMCHadronizer.h:131
fnie
char fnie[500]
Definition: ReggeGribovPartonMCHadronizer.h:118
jtpevt
int jtpevt
Definition: ReggeGribovPartonMCHadronizer.h:81
nfndat
int nfndat
Definition: ReggeGribovPartonMCHadronizer.h:154
xbjevt
float xbjevt
Definition: ReggeGribovPartonMCHadronizer.h:82
typevt
float typevt
Definition: ReggeGribovPartonMCHadronizer.h:100
GenParticle
Definition: GenParticle.py:1
gen::ReggeGribovPartonMCHadronizer::finalizeEvent
void finalizeEvent()
Definition: ReggeGribovPartonMCHadronizer.cc:206
crmc_set_f_
void crmc_set_f_(int &, int &, double &, double &, int &, int &, int &, int &, int &, const char *, const char *)
bmaxim
float bmaxim
Definition: ReggeGribovPartonMCHadronizer.h:104
gen::ReggeGribovPartonMCHadronizer::m_ParamFileName
edm::FileInPath m_ParamFileName
Definition: ReggeGribovPartonMCHadronizer.h:211
FileInPath.h
pmxevt
float pmxevt
Definition: ReggeGribovPartonMCHadronizer.h:70
gen::ReggeGribovPartonMCHadronizer::hadronize
bool hadronize()
Definition: ReggeGribovPartonMCHadronizer.cc:200
nfnnx
int nfnnx
Definition: ReggeGribovPartonMCHadronizer.h:140
edm::FileInPath
Definition: FileInPath.h:64
gen::ReggeGribovPartonMCHadronizer::~ReggeGribovPartonMCHadronizer
~ReggeGribovPartonMCHadronizer() override
Definition: ReggeGribovPartonMCHadronizer.cc:100
fngrv
char fngrv[500]
Definition: ReggeGribovPartonMCHadronizer.h:121
ng1evt
int ng1evt
Definition: ReggeGribovPartonMCHadronizer.h:93
qsqevt
float qsqevt
Definition: ReggeGribovPartonMCHadronizer.h:83
nfncp
int nfncp
Definition: ReggeGribovPartonMCHadronizer.h:139
fndr
char fndr[500]
Definition: ReggeGribovPartonMCHadronizer.h:125
fglevt
float fglevt
Definition: ReggeGribovPartonMCHadronizer.h:98
nfnch
int nfnch
Definition: ReggeGribovPartonMCHadronizer.h:130
kohevt
int kohevt
Definition: ReggeGribovPartonMCHadronizer.h:89
nfniidat
int nfniidat
Definition: ReggeGribovPartonMCHadronizer.h:166
hadr5_
struct @742 hadr5_
fnid
char fnid[500]
Definition: ReggeGribovPartonMCHadronizer.h:117
gen::ReggeGribovPartonMCHadronizer::pset_
edm::ParameterSet pset_
Definition: ReggeGribovPartonMCHadronizer.h:203
nfnid
int nfnid
Definition: ReggeGribovPartonMCHadronizer.h:134
sigelaaa
float sigelaaa
Definition: ReggeGribovPartonMCHadronizer.h:60
gen::ReggeGribovPartonMCHadronizer::m_NParticles
int m_NParticles
Definition: ReggeGribovPartonMCHadronizer.h:215
gen::ReggeGribovPartonMCHadronizer::m_PartEnergy
double m_PartEnergy[99990]
Definition: ReggeGribovPartonMCHadronizer.h:221
gen::rangen_
float rangen_()
Definition: ReggeGribovPartonMCHadronizer.cc:47
nppevt
int nppevt
Definition: ReggeGribovPartonMCHadronizer.h:75
nfnmt
int nfnmt
Definition: ReggeGribovPartonMCHadronizer.h:137
ntgevt
int ntgevt
Definition: ReggeGribovPartonMCHadronizer.h:73
gen
Definition: PythiaDecays.h:13
jpnevt
int jpnevt
Definition: ReggeGribovPartonMCHadronizer.h:78
nfndr
int nfndr
Definition: ReggeGribovPartonMCHadronizer.h:142
jppevt
int jppevt
Definition: ReggeGribovPartonMCHadronizer.h:79
kolevt
int kolevt
Definition: ReggeGribovPartonMCHadronizer.h:68
fncs
char fncs[500]
Definition: ReggeGribovPartonMCHadronizer.h:124
sigdif
float sigdif
Definition: ReggeGribovPartonMCHadronizer.h:57
CLHEP
Definition: CocoaGlobals.h:27
gen::ReggeGribovPartonMCHadronizer::doSetRandomEngine
void doSetRandomEngine(CLHEP::HepRandomEngine *v) override
Definition: ReggeGribovPartonMCHadronizer.cc:105
nfnncs
int nfnncs
Definition: ReggeGribovPartonMCHadronizer.h:155
qgsiinfname_
struct @751 qgsiinfname_
fncp
char fncp[500]
Definition: ReggeGribovPartonMCHadronizer.h:122
rglevt
float rglevt
Definition: ReggeGribovPartonMCHadronizer.h:95
edm::ParameterSet
Definition: ParameterSet.h:47
nucl2_
struct @745 nucl2_
fnncs
char fnncs[500]
Definition: ReggeGribovPartonMCHadronizer.h:148
sigela
float sigela
Definition: ReggeGribovPartonMCHadronizer.h:53
ifncs
int ifncs
Definition: ReggeGribovPartonMCHadronizer.h:150
bimevt
float bimevt
Definition: ReggeGribovPartonMCHadronizer.h:67
gen::ReggeGribovPartonMCHadronizer::m_PartMass
double m_PartMass[99990]
Definition: ReggeGribovPartonMCHadronizer.h:222
sigine
float sigine
Definition: ReggeGribovPartonMCHadronizer.h:56
gen::ReggeGribovPartonMCHadronizer::readSettings
bool readSettings(int)
Definition: ReggeGribovPartonMCHadronizer.h:189
gen::v
double v[5][pyjets_maxn]
Definition: Cascade2Hadronizer.cc:76
fnhpf
char fnhpf[500]
Definition: ReggeGribovPartonMCHadronizer.h:126
gen::ReggeGribovPartonMCHadronizer::residualDecay
bool residualDecay()
Definition: ReggeGribovPartonMCHadronizer.cc:204
nfniincs
int nfniincs
Definition: ReggeGribovPartonMCHadronizer.h:167
sigtot
float sigtot
Definition: ReggeGribovPartonMCHadronizer.h:51
nfncs
int nfncs
Definition: ReggeGribovPartonMCHadronizer.h:141
bminim
float bminim
Definition: ReggeGribovPartonMCHadronizer.h:105
gen::ReggeGribovPartonMCHadronizer::initializeForExternalPartons
bool initializeForExternalPartons()
Definition: ReggeGribovPartonMCHadronizer.h:190
fname_
struct @746 fname_
nfngrv
int nfngrv
Definition: ReggeGribovPartonMCHadronizer.h:138
fnhi
char fnhi[500]
Definition: ReggeGribovPartonMCHadronizer.h:114
ifiincs
int ifiincs
Definition: ReggeGribovPartonMCHadronizer.h:162
gen::ReggeGribovPartonMCHadronizer::m_bMin
double m_bMin
Definition: ReggeGribovPartonMCHadronizer.h:209
fndt
char fndt[500]
Definition: ReggeGribovPartonMCHadronizer.h:115
fnmt
char fnmt[500]
Definition: ReggeGribovPartonMCHadronizer.h:120
nfname_
struct @747 nfname_
ifiidat
int ifiidat
Definition: ReggeGribovPartonMCHadronizer.h:161
cevt_
struct @743 cevt_
jtnevt
int jtnevt
Definition: ReggeGribovPartonMCHadronizer.h:80
gen::ReggeGribovPartonMCHadronizer::decay
bool decay()
Definition: ReggeGribovPartonMCHadronizer.cc:202
qgsfname_
struct @748 qgsfname_
gen::ReggeGribovPartonMCHadronizer::initializeForInternalPartons
bool initializeForInternalPartons()
Definition: ReggeGribovPartonMCHadronizer.cc:214
zppevt
float zppevt
Definition: ReggeGribovPartonMCHadronizer.h:85
gen::ReggeGribovPartonMCHadronizer::m_TargetMomentum
double m_TargetMomentum
Definition: ReggeGribovPartonMCHadronizer.h:205
phimax
float phimax
Definition: ReggeGribovPartonMCHadronizer.h:106
nevt
int nevt
Definition: ReggeGribovPartonMCHadronizer.h:66
fnrj
char fnrj[500]
Definition: ReggeGribovPartonMCHadronizer.h:119
sigsd
float sigsd
Definition: ReggeGribovPartonMCHadronizer.h:55
sloela
float sloela
Definition: ReggeGribovPartonMCHadronizer.h:54
zptevt
float zptevt
Definition: ReggeGribovPartonMCHadronizer.h:86
gen::ReggeGribovPartonMCHadronizer::generatePartonsAndHadronize
bool generatePartonsAndHadronize()
Definition: ReggeGribovPartonMCHadronizer.cc:108
HepMC
Definition: GenParticle.h:15
sigcutaa
float sigcutaa
Definition: ReggeGribovPartonMCHadronizer.h:61
minfra
int minfra
Definition: ReggeGribovPartonMCHadronizer.h:87
gen::ReggeGribovPartonMCHadronizer::m_BeamMomentum
double m_BeamMomentum
Definition: ReggeGribovPartonMCHadronizer.h:204
nfnii
int nfnii
Definition: ReggeGribovPartonMCHadronizer.h:133
nfnrj
int nfnrj
Definition: ReggeGribovPartonMCHadronizer.h:136
ParameterSet.h
c2evt_
struct @744 c2evt_
ntpevt
int ntpevt
Definition: ReggeGribovPartonMCHadronizer.h:77
gen::ReggeGribovPartonMCHadronizer::m_HEModel
int m_HEModel
Definition: ReggeGribovPartonMCHadronizer.h:208
nfndt
int nfndt
Definition: ReggeGribovPartonMCHadronizer.h:132
ntnevt
int ntnevt
Definition: ReggeGribovPartonMCHadronizer.h:76
gen::ReggeGribovPartonMCHadronizer::classname
const char * classname() const
Definition: ReggeGribovPartonMCHadronizer.cc:210
gen::ReggeGribovPartonMCHadronizer::declareSpecialSettings
bool declareSpecialSettings(const std::vector< std::string > &)
Definition: ReggeGribovPartonMCHadronizer.h:193
gen::ReggeGribovPartonMCHadronizer::m_PartPy
double m_PartPy[99990]
Definition: ReggeGribovPartonMCHadronizer.h:219
gen::ReggeGribovPartonMCHadronizer::m_IsInitialized
bool m_IsInitialized
Definition: ReggeGribovPartonMCHadronizer.h:225
nglevt
int nglevt
Definition: ReggeGribovPartonMCHadronizer.h:84
gen::ReggeGribovPartonMCHadronizer::m_TargetID
int m_TargetID
Definition: ReggeGribovPartonMCHadronizer.h:207
fnnx
char fnnx[500]
Definition: ReggeGribovPartonMCHadronizer.h:123
gen::ReggeGribovPartonMCHadronizer::m_BeamID
int m_BeamID
Definition: ReggeGribovPartonMCHadronizer.h:206
gen::ReggeGribovPartonMCHadronizer::m_PartStatus
int m_PartStatus[99990]
Definition: ReggeGribovPartonMCHadronizer.h:223