|
|
|||
File indexing completed on 2026-08-06 09:38:27
0001 // -*- C++ -*- 0002 // 0003 // LesHouches.h is a part of ThePEG - Toolkit for HEP Event Generation 0004 // Copyright (C) 1999-2019 Leif Lonnblad 0005 // 0006 // ThePEG is licenced under version 3 of the GPL, see COPYING for details. 0007 // Please respect the MCnet academic guidelines, see GUIDELINES for details. 0008 // 0009 #ifndef THEPEG_LesHouches_H 0010 #define THEPEG_LesHouches_H 0011 // 0012 // This is the declaration of the LesHouches class. 0013 // 0014 0015 #include "ThePEG/Config/ThePEG.h" 0016 0017 namespace ThePEG { 0018 0019 /** 0020 * The HEPRUP class is a simple container corresponding to the Les 0021 * Houches accord (hep-ph/0109068) common block with the same 0022 * name. The members are named in the same way as in the common 0023 * block. However, fortran arrays are represented by vectors, except 0024 * for the arrays of length two which are represented by pair objects. 0025 */ 0026 class HEPRUP { 0027 0028 public: 0029 0030 /** @name Standard constructors and destructors. */ 0031 //@{ 0032 /** 0033 * Default constructor. 0034 */ 0035 HEPRUP() : IDWTUP(0), NPRUP(0) {} 0036 //@} 0037 0038 public: 0039 0040 /** 0041 * Set the NPRUP variable, corresponding to the number of 0042 * sub-processes, to \a nrup, and resize all relevant vectors 0043 * accordingly. 0044 */ 0045 void resize(int nrup) { 0046 NPRUP = nrup; 0047 resize(); 0048 } 0049 0050 /** 0051 * Assuming the NPRUP variable, corresponding to the number of 0052 * sub-processes, is correctly set, resize the relevant vectors 0053 * accordingly. 0054 */ 0055 void resize() { 0056 XSECUP.resize(NPRUP); 0057 XERRUP.resize(NPRUP); 0058 XMAXUP.resize(NPRUP); 0059 LPRUP.resize(NPRUP); 0060 } 0061 0062 /** 0063 * PDG id's of beam particles. (first/second is in +/-z direction). 0064 */ 0065 pair<long,long> IDBMUP; 0066 0067 /** 0068 * Energy of beam particles given in GeV. 0069 */ 0070 pair<double,double> EBMUP; 0071 0072 /** 0073 * The author group for the PDF used for the beams according to the 0074 * PDFLib specification. 0075 */ 0076 pair<int,int> PDFGUP; 0077 0078 /** 0079 * The id number the PDF used for the beams according to the 0080 * PDFLib specification. 0081 */ 0082 pair<int,int> PDFSUP; 0083 0084 /** 0085 * Master switch indicating how the ME generator envisages the 0086 * events weights should be interpreted according to the Les Houches 0087 * accord. 0088 */ 0089 int IDWTUP; 0090 0091 /** 0092 * The number of different subprocesses in this file (should 0093 * typically be just one) 0094 */ 0095 int NPRUP; 0096 0097 /** 0098 * The cross sections for the different subprocesses in pb. 0099 */ 0100 vector<double> XSECUP; 0101 0102 /** 0103 * The statistical error in the cross sections for the different 0104 * subprocesses in pb. 0105 */ 0106 vector<double> XERRUP; 0107 0108 /** 0109 * The maximum event weights (in XWGTUP) for different subprocesses. 0110 */ 0111 vector<double> XMAXUP; 0112 0113 /** 0114 * The subprocess code for the different subprocesses. 0115 */ 0116 vector<int> LPRUP; 0117 0118 }; 0119 0120 0121 /** 0122 * The HEPEUP class is a simple container corresponding to the Les 0123 * Houches accord (hep-ph/0109068) common block with the same 0124 * name. The members are named in the same way as in the common 0125 * block. However, fortran arrays are represented by vectors, except 0126 * for the arrays of length two which are represented by pair objects. 0127 */ 0128 class HEPEUP { 0129 0130 public: 0131 0132 /** @name Standard constructors and destructors. */ 0133 //@{ 0134 /** 0135 * Default constructor. 0136 */ 0137 HEPEUP() 0138 : NUP(0), IDPRUP(0), XWGTUP(0.0), XPDWUP(0.0, 0.0), 0139 SCALUP(0.0), AQEDUP(0.0), AQCDUP(0.0) {} 0140 //@} 0141 0142 public: 0143 0144 /** 0145 * Set the NUP variable, corresponding to the number of particles in 0146 * the current event, to \a nup, and resize all relevant vectors 0147 * accordingly. 0148 */ 0149 void resize(int nup) { 0150 NUP = nup; 0151 resize(); 0152 } 0153 0154 /** 0155 * Assuming the NUP variable, corresponding to the number of 0156 * particles in the current event, is correctly set, resize the 0157 * relevant vectors accordingly. 0158 */ 0159 void resize() { 0160 IDUP.resize(NUP); 0161 ISTUP.resize(NUP); 0162 MOTHUP.resize(NUP); 0163 ICOLUP.resize(NUP); 0164 PUP.resize(NUP); 0165 VTIMUP.resize(NUP); 0166 SPINUP.resize(NUP); 0167 } 0168 0169 /** 0170 * The number of particle entries in the current event. 0171 */ 0172 int NUP; 0173 0174 /** 0175 * The subprocess code for this event (as given in LPRUP). 0176 */ 0177 int IDPRUP; 0178 0179 /** 0180 * The weight for this event. 0181 */ 0182 double XWGTUP; 0183 0184 /** 0185 * The PDF weights for the two incoming partons. Note that this 0186 * variable is not present in the current LesHouches accord 0187 * (hep-ph/0109068), hopefully it will be present in a future 0188 * accord. 0189 */ 0190 pair<double,double> XPDWUP; 0191 0192 /** 0193 * The scale in GeV used in the calculation of the PDF's in this 0194 * event. 0195 */ 0196 double SCALUP; 0197 0198 /** 0199 * The value of the QED coupling used in this event. 0200 */ 0201 double AQEDUP; 0202 0203 /** 0204 * The value of the QCD coupling used in this event. 0205 */ 0206 double AQCDUP; 0207 0208 /** 0209 * The PDG id's for the particle entries in this event. 0210 */ 0211 vector<long> IDUP; 0212 0213 /** 0214 * The status codes for the particle entries in this event. 0215 */ 0216 vector<int> ISTUP; 0217 0218 /** 0219 * Indices for the first and last mother for the particle entries in 0220 * this event. 0221 */ 0222 vector< pair<int,int> > MOTHUP; 0223 0224 /** 0225 * The colour-line indices (first(second) is (anti)colour) for the 0226 * particle entries in this event. 0227 */ 0228 vector< pair<int,int> > ICOLUP; 0229 0230 /** 0231 * Lab frame momentum (Px, Py, Pz, E and M in GeV) for the particle 0232 * entries in this event. 0233 */ 0234 vector< array<double,5> > PUP; 0235 0236 /** 0237 * Invariant lifetime (c*tau, distance from production to decay im 0238 * mm) for the particle entries in this event. 0239 */ 0240 vector<double> VTIMUP; 0241 0242 /** 0243 * Spin info for the particle entries in this event given as the 0244 * cosine of the angle between the spin vector of a particle and the 0245 * 3-momentum of the decaying particle, specified in the lab frame. 0246 */ 0247 vector<double> SPINUP; 0248 0249 }; 0250 0251 } 0252 0253 #endif /* THEPEG_LesHouches_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|