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");
90 // acces to hep common block
91 int GetNEVHEP () 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);
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;
151 int GetIDHW (int i) const;
153 int GetIERROR () const;
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;
179 double GetRMASS (int i) const;
180 void SetRMASS (int i, double r);
183 void GetRNAME (int i, char a[9]);
186 // the user would call
188 // change by himself the parameters s/he wants
189 // Hwusta to make stable the particles s/he wants
191 // GenerateEvent as many times as wished
192 // An example is given in SetupTest
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);
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; }
206 void Hwusta(const char * name);
219 void Hwiodk(int iopt);
222 // Jimmy subroutines:
227 ClassDef(THerwig6,0) //Interface to Herwig6.1 Event Generator