]>
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 | ||
90 | // acces to hep common block | |
91 | int GetNEVHEP () const; | |
92 | int GetNhep () const; | |
93 | int GetISTHEP (int i)const; | |
94 | int GetIDHEP (int i)const; | |
95 | int GetJMOHEP (int i, int j) const; | |
96 | int GetJDAHEP (int i, int j) const; | |
97 | double GetPHEP (int i, int j) const; | |
98 | double GetVHEP (int i, int j) const; | |
99 | int GetIPART1 () const; | |
100 | int GetIPART2 () const; | |
101 | char* GetPART1 () const; | |
102 | char* GetPART2 () const; | |
103 | double GetEBEAM1 () const; | |
104 | double GetEBEAM2 () const; | |
105 | double GetPBEAM1 () const; | |
106 | double GetPBEAM2 () const; | |
107 | int GetIPROC () const; | |
108 | int GetMAXEV () const; | |
109 | double GetQCDLAM () const; | |
110 | void SetQCDLAM (double q); | |
111 | double GetVQCUT () const; | |
112 | void SetVQCUT (double v); | |
113 | double GetVGCUT () const; | |
114 | void SetVGCUT (double v); | |
115 | double GetVPCUT () const; | |
116 | void SetVPCUT (double v); | |
117 | double GetCLMAX () const; | |
118 | void SetCLMAX (double c); | |
119 | double GetCLPOW () const; | |
120 | void SetCLPOW (double c); | |
121 | double GetPSPLT (int i) const; | |
122 | void SetPSPLT (int i, double p); | |
123 | double GetQDIQK () const; | |
124 | void SetQDIQK (double q); | |
125 | double GetPDIQK () const; | |
126 | void SetPDIQK (double p); | |
127 | double GetQSPAC () const; | |
128 | void SetQSPAC (double q); | |
129 | double GetPTRMS () const; | |
130 | void SetPTRMS (double p); | |
131 | double GetENSOF () const; | |
132 | void SetENSOF (double e); | |
133 | int GetIPRINT () const; | |
134 | void SetIPRINT (int i); | |
135 | int GetMODPDF (int i) const; | |
136 | void SetMODPDF (int i, int j); | |
137 | int GetNSTRU () const; | |
138 | void SetNSTRU (int i); | |
139 | char* GetAUTPDF (int i); | |
140 | void SetAUTPDF(int i,const char* s); | |
141 | char* GetBDECAY (); | |
142 | double GetAVWGT () const; | |
143 | int GetMAXPR () const; | |
144 | void SetMAXPR (int i); | |
145 | int GetMAXER () const; | |
146 | void SetMAXER (int i); | |
147 | int GetNRN (int i) const; | |
148 | void SetNRN (int i, int j); | |
149 | double GetEVWGT () const; | |
150 | ||
151 | int GetIDHW (int i) const; | |
152 | ||
153 | int GetIERROR () const; | |
154 | ||
155 | // /HWHARD/ | |
156 | double GetPTMIN () const; | |
157 | void SetPTMIN (double d); | |
158 | double GetPTMAX () const; | |
159 | void SetPTMAX (double d); | |
160 | double GetPTPOW () const; | |
161 | void SetPTPOW (double d); | |
162 | double GetYJMIN () const; | |
163 | void SetYJMIN (double d); | |
164 | double GetYJMAX () const; | |
165 | void SetYJMAX (double d); | |
166 | double GetQ2MIN () const; | |
167 | void SetQ2MIN (double d); | |
168 | double GetQ2MAX () const; | |
169 | void SetQ2MAX (double d); | |
170 | double GetYBMIN () const; | |
171 | void SetYBMIN (double d); | |
172 | double GetYBMAX () const; | |
173 | void SetYBMAX (double d); | |
174 | double GetZJMAX () const; | |
175 | void SetZJMAX (double d); | |
176 | int GetIHPRO () const; | |
177 | ||
178 | // /HWPROP/ | |
179 | double GetRMASS (int i) const; | |
180 | void SetRMASS (int i, double r); | |
181 | ||
182 | ||
183 | void GetRNAME (int i, char a[9]); | |
184 | ||
185 | // Herwig6 routines | |
186 | // the user would call | |
187 | // Initialize | |
188 | // change by himself the parameters s/he wants | |
189 | // Hwusta to make stable the particles s/he wants | |
190 | // PrepareRun | |
191 | // GenerateEvent as many times as wished | |
192 | // An example is given in SetupTest | |
193 | ||
194 | void GenerateEvent(); | |
195 | void Initialize(const char *beam, const char *target, double pbeam1, double pbeam2, int iproc); | |
196 | void InitializeJimmy(const char *beam, const char *target, double pbeam1, double pbeam2, int iproc); | |
197 | void PrepareRun(); | |
198 | void PrepareRunJimmy(); | |
199 | void OpenFortranFile(int lun, char* name); | |
200 | void CloseFortranFile(int lun); | |
201 | Int_t ImportParticles(TClonesArray *particles, Option_t *option=""); | |
202 | TObjArray *ImportParticles(Option_t *option=""); | |
203 | TObjArray *Particles() const { return fParticles; } | |
204 | void Hwigin(); | |
205 | void Hwuinc(); | |
206 | void Hwusta(const char * name); | |
207 | void Hweini(); | |
208 | void Hwuine(); | |
209 | void Hwepro(); | |
210 | void Hwbgen(); | |
211 | void Hwdhob(); | |
212 | void Hwcfor(); | |
213 | void Hwcdec(); | |
214 | void Hwdhad(); | |
215 | void Hwdhvy(); | |
216 | void Hwmevt(); | |
217 | void Hwufne(); | |
218 | void Hwefin(); | |
219 | void Hwiodk(int iopt); | |
220 | void SetupTest(); | |
221 | void PrintEvt(); | |
222 | // Jimmy subroutines: | |
223 | void Jminit(); | |
224 | void Jimmin(); | |
225 | void Jmefin(); | |
226 | protected: | |
227 | ClassDef(THerwig6,0) //Interface to Herwig6.1 Event Generator | |
228 | }; | |
229 | ||
230 | #endif |