modified histo ranges
[u/mrichter/AliRoot.git] / THerwig / THerwig6.h
CommitLineData
884ccf6a 1#ifndef THERWIG6_H
2#define THERWIG6_H
2d8d4543 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
13C-----------------------------------------------------------------------
14C H E R W I G
15C
16C a Monte Carlo event generator for simulating
17C +---------------------------------------------------+
18C | Hadron Emission Reactions With Interfering Gluons |
19C +---------------------------------------------------+
20C I.G. Knowles(*), G. Marchesini(+), M.H. Seymour($) and B.R. Webber(#)
21C-----------------------------------------------------------------------
22C with Minimal Supersymmetric Standard Model Matrix Elements by
23C S. Moretti($) and K. Odagiri($)
24C-----------------------------------------------------------------------
25C R parity violating Supersymmetric Decays and Matrix Elements by
26C P. Richardson(&)
27C-----------------------------------------------------------------------
28C matrix element corrections to top decay and Drell-Yan type processes
29C by G. Corcella(+)
30C-----------------------------------------------------------------------
31C Deep Inelastic Scattering and Heavy Flavour Electroproduction by
32C G. Abbiendi(@) and L. Stanco(%)
33C-----------------------------------------------------------------------
34C and Jet Photoproduction in Lepton-Hadron Collisions by J. Chyla(~)
35C-----------------------------------------------------------------------
36C(*) Department of Physics & Astronomy, University of Edinburgh
37C(+) Dipartimento di Fisica, Universita di Milano
38C($) Rutherford Appleton Laboratory
39C(#) Cavendish Laboratory, Cambridge
40C(&) Department of Physics, University of Oxford
41C(@) Dipartimento di Fisica, Universita di Bologna
42C(%) Dipartimento di Fisica, Universita di Padova
43C(~) Institute of Physics, Prague
44C-----------------------------------------------------------------------
45C Version 6.100 - 16th December 1999
46C-----------------------------------------------------------------------
47C Main reference:
48C G.Marchesini, B.R.Webber, G.Abbiendi, I.G.Knowles, M.H.Seymour,
49C and L.Stanco, Computer Physics Communications 67 (1992) 465.
50C-----------------------------------------------------------------------
51C Please send e-mail about this program to one of the authors at the
52C following Internet addresses:
53C I.Knowles@ed.ac.uk Giuseppe.Marchesini@mi.infn.it
54C M.Seymour@rl.ac.uk webber@hep.phy.cam.ac.uk
55C-----------------------------------------------------------------------
56*/
57
58/* declarations from ROOT */
59#include "TGenerator.h"
e2054d85 60
61typedef enum
62{
7677b281 63 kHwCharm = 1704,
e2054d85 64 kHwBeauty = 1705,
65 kHwCharmMCATNLO = -1704,
7677b281 66 kHwBeautyMCATNLO = -1705,
67 kHwJetsMCATNLO = -1396
e2054d85 68} Process_t;
69
884ccf6a 70class TObjArray;
2d8d4543 71
2d8d4543 72
73
74
75/* THerwig6 class declaration */
76class THerwig6 : public TGenerator {
2d8d4543 77//----------------------------------------------------------------------------
78// functions:
79//----------------------------------------------------------------------------
80public:
81 // ****** constructors and destructor
82 THerwig6();
2d654757 83 THerwig6(const THerwig6 & source);
884ccf6a 84 THerwig6 & operator=(const THerwig6 & /*source*/) {
85 Fatal("THerwig6","Assignment operator not implemented yet");
86 return *this;
87 }
2d8d4543 88 virtual ~THerwig6();
89
90 // acces to hep common block
455f128d 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;
7677b281 154
2d8d4543 155 // /HWHARD/
455f128d 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);
aa9da500 176 int GetIHPRO () const;
177
2d8d4543 178 // /HWPROP/
455f128d 179 double GetRMASS (int i) const;
180 void SetRMASS (int i, double r);
2d8d4543 181
2d8d4543 182
455f128d 183 void GetRNAME (int i, char a[9]);
2d8d4543 184
7677b281 185 // Herwig6 routines
186 // the user would call
2d8d4543 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);
7677b281 196 void InitializeJimmy(const char *beam, const char *target, double pbeam1, double pbeam2, int iproc);
2d8d4543 197 void PrepareRun();
7677b281 198 void PrepareRunJimmy();
2d8d4543 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="");
a6e0ebfe 203 TObjArray *Particles() const { return fParticles; }
2d8d4543 204 void Hwigin();
205 void Hwuinc();
a6e0ebfe 206 void Hwusta(const char * name);
2d8d4543 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();
e2054d85 219 void Hwiodk(int iopt);
2d8d4543 220 void SetupTest();
455f128d 221 void PrintEvt();
7677b281 222 // Jimmy subroutines:
223 void Jminit();
224 void Jimmin();
225 void Jmefin();
884ccf6a 226protected:
2d8d4543 227 ClassDef(THerwig6,0) //Interface to Herwig6.1 Event Generator
228};
229
230#endif