Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007 #ifndef SimDataFormats_GeneratorProducts_LesHouches_h
00008 #define SimDataFormats_GeneratorProducts_LesHouches_h
00009
00010 #include <utility>
00011 #include <vector>
00012
00013 namespace lhef {
00014
00022 class HEPRUP {
00023 public:
00029 HEPRUP() : IDWTUP(0), NPRUP(0) {}
00031
00032 public:
00033 bool operator == (const HEPRUP &other) const
00034 {
00035 return IDBMUP == other.IDBMUP &&
00036 EBMUP == other.EBMUP &&
00037 PDFGUP == other.PDFGUP &&
00038 PDFSUP == other.PDFSUP &&
00039 IDWTUP == other.IDWTUP &&
00040 NPRUP == other.NPRUP &&
00041 XSECUP == other.XSECUP &&
00042 XERRUP == other.XERRUP &&
00043 XMAXUP == other.XMAXUP &&
00044 LPRUP == other.LPRUP;
00045 }
00046
00052 void resize(int nrup)
00053 {
00054 NPRUP = nrup;
00055 resize();
00056 }
00057
00063 void resize() {
00064 XSECUP.resize(NPRUP);
00065 XERRUP.resize(NPRUP);
00066 XMAXUP.resize(NPRUP);
00067 LPRUP.resize(NPRUP);
00068 }
00069
00073 std::pair<int, int> IDBMUP;
00074
00078 std::pair<double, double> EBMUP;
00079
00084 std::pair<int, int> PDFGUP;
00085
00090 std::pair<int, int> PDFSUP;
00091
00097 int IDWTUP;
00098
00103 int NPRUP;
00104
00108 std::vector<double> XSECUP;
00109
00114 std::vector<double> XERRUP;
00115
00119 std::vector<double> XMAXUP;
00120
00124 std::vector<int> LPRUP;
00125 };
00126
00127
00135 class HEPEUP {
00136 public:
00142 HEPEUP() :
00143 NUP(0), IDPRUP(0), XWGTUP(0.0), XPDWUP(0.0, 0.0),
00144 SCALUP(0.0), AQEDUP(0.0), AQCDUP(0.0)
00145 {}
00147
00148 public:
00149 struct FiveVector {
00150 double operator [] (unsigned int i) const { return x[i]; }
00151 double &operator [] (unsigned int i) { return x[i]; }
00152
00153 double x[5];
00154 };
00155
00161 void resize(int nup)
00162 {
00163 NUP = nup;
00164 resize();
00165 }
00166
00172 void resize()
00173 {
00174 IDUP.resize(NUP);
00175 ISTUP.resize(NUP);
00176 MOTHUP.resize(NUP);
00177 ICOLUP.resize(NUP);
00178 PUP.resize(NUP);
00179 VTIMUP.resize(NUP);
00180 SPINUP.resize(NUP);
00181 }
00182
00186 int NUP;
00187
00191 int IDPRUP;
00192
00196 double XWGTUP;
00197
00204 std::pair<double, double> XPDWUP;
00205
00210 double SCALUP;
00211
00215 double AQEDUP;
00216
00220 double AQCDUP;
00221
00225 std::vector<int> IDUP;
00226
00230 std::vector<int> ISTUP;
00231
00236 std::vector< std::pair<int, int> > MOTHUP;
00237
00242 std::vector< std::pair<int, int> > ICOLUP;
00243
00248 std::vector<FiveVector> PUP;
00249
00254 std::vector<double> VTIMUP;
00255
00261 std::vector<double> SPINUP;
00262
00263 };
00264
00265 }
00266
00267 #endif // SimDataFormats_GeneratorProducts_LesHouches_h