CMS 3D CMS Logo

LesHouches.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Copyright (C) 1999-2007 Leif Lonnblad
4 //
5 // Modified by C.Saout
6 //
7 #ifndef SimDataFormats_GeneratorProducts_LesHouches_h
8 #define SimDataFormats_GeneratorProducts_LesHouches_h
9 
10 #include <utility>
11 #include <vector>
12 
13 namespace lhef {
14 
22 class HEPRUP {
23  public:
29  HEPRUP() : IDWTUP(0), NPRUP(0) {}
31 
32  public:
33  bool operator == (const HEPRUP &other) const
34  {
35  return IDBMUP == other.IDBMUP &&
36  EBMUP == other.EBMUP &&
37  PDFGUP == other.PDFGUP &&
38  PDFSUP == other.PDFSUP &&
39  IDWTUP == other.IDWTUP &&
40  NPRUP == other.NPRUP &&
41  XSECUP == other.XSECUP &&
42  XERRUP == other.XERRUP &&
43  XMAXUP == other.XMAXUP &&
44  LPRUP == other.LPRUP;
45  }
46 
52  void resize(int nrup)
53  {
54  NPRUP = nrup;
55  resize();
56  }
57 
63  void resize() {
64  XSECUP.resize(NPRUP);
65  XERRUP.resize(NPRUP);
66  XMAXUP.resize(NPRUP);
67  LPRUP.resize(NPRUP);
68  }
69 
73  std::pair<int, int> IDBMUP;
74 
78  std::pair<double, double> EBMUP;
79 
84  std::pair<int, int> PDFGUP;
85 
90  std::pair<int, int> PDFSUP;
91 
97  int IDWTUP;
98 
103  int NPRUP;
104 
108  std::vector<double> XSECUP;
109 
114  std::vector<double> XERRUP;
115 
119  std::vector<double> XMAXUP;
120 
124  std::vector<int> LPRUP;
125 };
126 
127 
135 class HEPEUP {
136  public:
142  HEPEUP() :
143  NUP(0), IDPRUP(0), XWGTUP(0.0), XPDWUP(0.0, 0.0),
144  SCALUP(0.0), AQEDUP(0.0), AQCDUP(0.0)
145  {}
147 
148  public:
149  struct FiveVector {
150  double operator [] (unsigned int i) const { return x[i]; }
151  double &operator [] (unsigned int i) { return x[i]; }
152 
153  double x[5];
154  };
155 
161  void resize(int nup)
162  {
163  NUP = nup;
164  resize();
165  }
166 
172  void resize()
173  {
174  IDUP.resize(NUP);
175  ISTUP.resize(NUP);
176  MOTHUP.resize(NUP);
177  ICOLUP.resize(NUP);
178  PUP.resize(NUP);
179  VTIMUP.resize(NUP);
180  SPINUP.resize(NUP);
181  }
182 
186  int NUP;
187 
191  int IDPRUP;
192 
196  double XWGTUP;
197 
204  std::pair<double, double> XPDWUP;
205 
210  double SCALUP;
211 
215  double AQEDUP;
216 
220  double AQCDUP;
221 
225  std::vector<int> IDUP;
226 
230  std::vector<int> ISTUP;
231 
236  std::vector< std::pair<int, int> > MOTHUP;
237 
242  std::vector< std::pair<int, int> > ICOLUP;
243 
248  std::vector<FiveVector> PUP;
249 
254  std::vector<double> VTIMUP;
255 
261  std::vector<double> SPINUP;
262 
263 };
264 
265 } // namespace lhef
266 
267 #endif // SimDataFormats_GeneratorProducts_LesHouches_h
void resize(int nrup)
Definition: LesHouches.h:52
void resize()
Definition: LesHouches.h:63
std::pair< double, double > EBMUP
Definition: LesHouches.h:78
std::vector< double > VTIMUP
Definition: LesHouches.h:254
std::pair< int, int > IDBMUP
Definition: LesHouches.h:73
bool operator==(const HEPRUP &other) const
Definition: LesHouches.h:33
std::pair< double, double > XPDWUP
Definition: LesHouches.h:204
std::pair< int, int > PDFGUP
Definition: LesHouches.h:84
void resize()
Definition: LesHouches.h:172
T x() const
Cartesian x coordinate.
std::vector< std::pair< int, int > > MOTHUP
Definition: LesHouches.h:236
void resize(int nup)
Definition: LesHouches.h:161
std::vector< FiveVector > PUP
Definition: LesHouches.h:248
std::vector< double > SPINUP
Definition: LesHouches.h:261
T operator[](int i) const
std::vector< int > ISTUP
Definition: LesHouches.h:230
std::vector< int > IDUP
Definition: LesHouches.h:225
std::vector< double > XERRUP
Definition: LesHouches.h:114
std::vector< double > XMAXUP
Definition: LesHouches.h:119
double AQCDUP
Definition: LesHouches.h:220
std::pair< int, int > PDFSUP
Definition: LesHouches.h:90
double AQEDUP
Definition: LesHouches.h:215
std::vector< double > XSECUP
Definition: LesHouches.h:108
double XWGTUP
Definition: LesHouches.h:196
std::vector< std::pair< int, int > > ICOLUP
Definition: LesHouches.h:242
std::vector< int > LPRUP
Definition: LesHouches.h:124
double SCALUP
Definition: LesHouches.h:210