CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/SimDataFormats/GeneratorProducts/interface/LesHouches.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // Copyright (C) 1999-2007 Leif Lonnblad
00004 //
00005 // Modified by C.Saout
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 } // namespace lhef
00266 
00267 #endif // SimDataFormats_GeneratorProducts_LesHouches_h