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