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
11 Class THerwig6 is an interface to the Herwig program
13 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
27 C-----------------------------------------------------------------------
28 C matrix element corrections to top decay and Drell-Yan type processes
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-----------------------------------------------------------------------
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-----------------------------------------------------------------------
58 /* declarations from ROOT */
59 #include "TGenerator.h"
65 kHwCharmMCATNLO = -1704,
66 kHwBeautyMCATNLO = -1705,
67 kHwJetsMCATNLO = -1396
75 /* THerwig6 class declaration */
76 class THerwig6 : public TGenerator {
77 //----------------------------------------------------------------------------
79 //----------------------------------------------------------------------------
81 // ****** constructors and destructor
83 THerwig6(const THerwig6 & source);
84 THerwig6 & operator=(const THerwig6 & /*source*/) {
85 Fatal("THerwig6","Assignment operator not implemented yet");
89 static THerwig6 *Instance();
91 // acces to hep common block
92 int GetNEVHEP () 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) const;
112 double GetVQCUT () const;
113 void SetVQCUT (double v) const;
114 double GetVGCUT () const;
115 void SetVGCUT (double v) const;
116 double GetVPCUT () const;
117 void SetVPCUT (double v) const;
118 double GetCLMAX () const;
119 void SetCLMAX (double c) const;
120 double GetCLPOW () const;
121 void SetCLPOW (double c) const;
122 double GetPSPLT (int i) const;
123 void SetPSPLT (int i, double p) const;
124 double GetQDIQK () const;
125 void SetQDIQK (double q) const;
126 double GetPDIQK () const;
127 void SetPDIQK (double p) const;
128 double GetQSPAC () const;
129 void SetQSPAC (double q) const;
130 double GetPTRMS () const;
131 void SetPTRMS (double p) const;
132 double GetENSOF () const;
133 void SetENSOF (double e) const;
134 int GetIPRINT () const;
135 void SetIPRINT (int i) const;
136 int GetMODPDF (int i) const;
137 void SetMODPDF (int i, int j) const;
138 int GetNSTRU () const;
139 void SetNSTRU (int i) const;
140 char* GetAUTPDF (int i) const;
141 void SetAUTPDF(int i,const char* s) const;
142 char* GetBDECAY () const;
143 double GetAVWGT () const;
144 int GetMAXPR () const;
145 void SetMAXPR (int i) const;
146 int GetMAXER () const;
147 void SetMAXER (int i) const;
148 int GetNRN (int i) const;
149 void SetNRN (int i, int j) const;
150 double GetEVWGT () const;
152 int GetIDHW (int i) const;
154 int GetIERROR () const;
157 double GetPTMIN () const;
158 void SetPTMIN (double d) const;
159 double GetPTMAX () const;
160 void SetPTMAX (double d) const;
161 double GetPTPOW () const;
162 void SetPTPOW (double d) const;
163 double GetYJMIN () const;
164 void SetYJMIN (double d) const;
165 double GetYJMAX () const;
166 void SetYJMAX (double d) const;
167 double GetQ2MIN () const;
168 void SetQ2MIN (double d) const;
169 double GetQ2MAX () const;
170 void SetQ2MAX (double d) const;
171 double GetYBMIN () const;
172 void SetYBMIN (double d) const;
173 double GetYBMAX () const;
174 void SetYBMAX (double d) const;
175 double GetZJMAX () const;
176 void SetZJMAX (double d) const;
177 int GetIHPRO () const;
180 double GetRMASS (int i) const;
181 void SetRMASS (int i, double r) const;
184 void GetRNAME (int i, char a[9]) const;
187 // the user would call
189 // change by himself the parameters s/he wants
190 // Hwusta to make stable the particles s/he wants
192 // GenerateEvent as many times as wished
193 // An example is given in SetupTest
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);
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; }
207 void Hwusta(const char * name);
220 void Hwiodk(int iopt);
223 // Jimmy subroutines:
228 static THerwig6 *fgInstance; // Singlet instance
229 ClassDef(THerwig6,0) //Interface to Herwig6.1 Event Generator