forked from alisw/AliRoot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTHerwig6.h
232 lines (212 loc) · 8.94 KB
/
THerwig6.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
#ifndef THERWIG6_H
#define THERWIG6_H
// declaration of c++ Class THerwig6 to be used in ROOT
// this is a c++ interface to the F77 Herwig6 program
// author: j. g. contreras [email protected]
// date: december 22, 2000
/*
Class THerwig6 is an interface to the Herwig program
C-----------------------------------------------------------------------
C H E R W I G
C
C a Monte Carlo event generator for simulating
C +---------------------------------------------------+
C | Hadron Emission Reactions With Interfering Gluons |
C +---------------------------------------------------+
C I.G. Knowles(*), G. Marchesini(+), M.H. Seymour($) and B.R. Webber(#)
C-----------------------------------------------------------------------
C with Minimal Supersymmetric Standard Model Matrix Elements by
C S. Moretti($) and K. Odagiri($)
C-----------------------------------------------------------------------
C R parity violating Supersymmetric Decays and Matrix Elements by
C P. Richardson(&)
C-----------------------------------------------------------------------
C matrix element corrections to top decay and Drell-Yan type processes
C by G. Corcella(+)
C-----------------------------------------------------------------------
C Deep Inelastic Scattering and Heavy Flavour Electroproduction by
C G. Abbiendi(@) and L. Stanco(%)
C-----------------------------------------------------------------------
C and Jet Photoproduction in Lepton-Hadron Collisions by J. Chyla(~)
C-----------------------------------------------------------------------
C(*) Department of Physics & Astronomy, University of Edinburgh
C(+) Dipartimento di Fisica, Universita di Milano
C($) Rutherford Appleton Laboratory
C(#) Cavendish Laboratory, Cambridge
C(&) Department of Physics, University of Oxford
C(@) Dipartimento di Fisica, Universita di Bologna
C(%) Dipartimento di Fisica, Universita di Padova
C(~) Institute of Physics, Prague
C-----------------------------------------------------------------------
C Version 6.100 - 16th December 1999
C-----------------------------------------------------------------------
C Main reference:
C G.Marchesini, B.R.Webber, G.Abbiendi, I.G.Knowles, M.H.Seymour,
C and L.Stanco, Computer Physics Communications 67 (1992) 465.
C-----------------------------------------------------------------------
C Please send e-mail about this program to one of the authors at the
C following Internet addresses:
C-----------------------------------------------------------------------
*/
/* declarations from ROOT */
#include "TGenerator.h"
typedef enum
{
kHwCharm = 1704,
kHwBeauty = 1705,
kHwCharmMCATNLO = -1704,
kHwBeautyMCATNLO = -1705,
kHwJetsMCATNLO = -1396
} HerwigProcess_t;
class TObjArray;
/* THerwig6 class declaration */
class THerwig6 : public TGenerator {
//----------------------------------------------------------------------------
// functions:
//----------------------------------------------------------------------------
public:
// ****** constructors and destructor
THerwig6();
THerwig6(const THerwig6 & source);
THerwig6 & operator=(const THerwig6 & /*source*/) {
Fatal("THerwig6","Assignment operator not implemented yet");
return *this;
}
virtual ~THerwig6();
static THerwig6 *Instance();
// acces to hep common block
int GetNEVHEP () const;
int GetNhep () const;
int GetISTHEP (int i)const;
int GetIDHEP (int i)const;
int GetJMOHEP (int i, int j) const;
int GetJDAHEP (int i, int j) const;
double GetPHEP (int i, int j) const;
double GetVHEP (int i, int j) const;
int GetIPART1 () const;
int GetIPART2 () const;
char* GetPART1 () const;
char* GetPART2 () const;
double GetEBEAM1 () const;
double GetEBEAM2 () const;
double GetPBEAM1 () const;
double GetPBEAM2 () const;
int GetIPROC () const;
int GetMAXEV () const;
double GetQCDLAM () const;
void SetQCDLAM (double q) const;
double GetVQCUT () const;
void SetVQCUT (double v) const;
double GetVGCUT () const;
void SetVGCUT (double v) const;
double GetVPCUT () const;
void SetVPCUT (double v) const;
double GetCLMAX () const;
void SetCLMAX (double c) const;
double GetCLPOW () const;
void SetCLPOW (double c) const;
double GetPSPLT (int i) const;
void SetPSPLT (int i, double p) const;
double GetQDIQK () const;
void SetQDIQK (double q) const;
double GetPDIQK () const;
void SetPDIQK (double p) const;
double GetQSPAC () const;
void SetQSPAC (double q) const;
double GetPTRMS () const;
void SetPTRMS (double p) const;
double GetENSOF () const;
void SetENSOF (double e) const;
int GetIPRINT () const;
void SetIPRINT (int i) const;
int GetMODPDF (int i) const;
void SetMODPDF (int i, int j) const;
int GetNSTRU () const;
void SetNSTRU (int i) const;
char* GetAUTPDF (int i) const;
void SetAUTPDF(int i,const char* s) const;
char* GetBDECAY () const;
double GetAVWGT () const;
int GetMAXPR () const;
void SetMAXPR (int i) const;
int GetMAXER () const;
void SetMAXER (int i) const;
int GetNRN (int i) const;
void SetNRN (int i, int j) const;
double GetEVWGT () const;
void SetNOWEIGHTED(int j) const;
int GetIDHW (int i) const;
int GetIERROR () const;
// /HWHARD/
double GetPTMIN () const;
void SetPTMIN (double d) const;
double GetPTMAX () const;
void SetPTMAX (double d) const;
double GetPTPOW () const;
void SetPTPOW (double d) const;
double GetYJMIN () const;
void SetYJMIN (double d) const;
double GetYJMAX () const;
void SetYJMAX (double d) const;
double GetQ2MIN () const;
void SetQ2MIN (double d) const;
double GetQ2MAX () const;
void SetQ2MAX (double d) const;
double GetYBMIN () const;
void SetYBMIN (double d) const;
double GetYBMAX () const;
void SetYBMAX (double d) const;
double GetZJMAX () const;
void SetZJMAX (double d) const;
int GetIHPRO () const;
// /HWPROP/
double GetRMASS (int i) const;
void SetRMASS (int i, double r) const;
void GetRNAME (int i, char a[9]) const;
// Herwig6 routines
// the user would call
// Initialize
// change by himself the parameters s/he wants
// Hwusta to make stable the particles s/he wants
// PrepareRun
// GenerateEvent as many times as wished
// An example is given in SetupTest
void GenerateEvent();
void Initialize(const char *beam, const char *target, double pbeam1, double pbeam2, int iproc);
void InitializeJimmy(const char *beam, const char *target, double pbeam1, double pbeam2, int iproc);
void PrepareRun();
void PrepareRunJimmy();
void OpenFortranFile(int lun, char* name);
void CloseFortranFile(int lun);
Int_t ImportParticles(TClonesArray *particles, Option_t *option="");
TObjArray *ImportParticles(Option_t *option="");
TObjArray *Particles() const { return fParticles; }
void Hwigin();
void Hwuinc();
void Hwusta(const char * name);
void Hweini();
void Hwuine();
void Hwepro();
void Hwbgen();
void Hwdhob();
void Hwcfor();
void Hwcdec();
void Hwdhad();
void Hwdhvy();
void Hwmevt();
void Hwufne();
void Hwefin();
void Hwiodk(int iopt);
void SetupTest();
void PrintEvt();
// Jimmy subroutines:
void Jminit();
void Jimmin();
void Jmefin();
protected:
static THerwig6 *fgInstance; // Singlet instance
ClassDef(THerwig6,0) //Interface to Herwig6.1 Event Generator
};
#endif