00001 // -*- C++ -*- 00002 // 00003 // LastXCombInfo.h is a part of ThePEG - Toolkit for HEP Event Generation 00004 // Copyright (C) 1999-2007 Leif Lonnblad 00005 // 00006 // ThePEG is licenced under version 2 of the GPL, see COPYING for details. 00007 // Please respect the MCnet academic guidelines, see GUIDELINES for details. 00008 // 00009 #ifndef ThePEG_LastXCombInfo_H 00010 #define ThePEG_LastXCombInfo_H 00011 // This is the declaration of the LastXCombInfo class. 00012 00013 #include "ThePEG/Config/ThePEG.h" 00014 #include "ThePEG/Cuts/Cuts.fh" 00015 #include "XComb.h" 00016 00017 namespace ThePEG { 00018 00031 template <typename XC = XComb> 00032 class LastXCombInfo { 00033 00034 public: 00035 00036 ThePEG_DECLARE_TEMPLATE_POINTERS(XC,XCPtr); 00037 00038 public: 00039 00045 const XC & lastXComb() const { return *theLastXComb; } 00046 00050 tXCPtr lastXCombPtr() const { return theLastXComb; } 00052 00058 const EventHandler & lastEventHandler() const { return lastXComb().eventHandler(); } 00059 00063 tPExtrPtr lastExtractor() const { return lastXComb().pExtractor(); } 00064 00070 template <typename PDFT> 00071 PDFT pdf(tcPPtr parton) const { return PDFT(lastExtractor()->partonBinInstance(parton)); } 00072 00076 const Cuts & lastCuts() const { return *lastXComb().cuts(); } 00077 00081 tCutsPtr lastCutsPtr() const { return lastXComb().cuts(); } 00082 00084 00090 const PPair & lastParticles() const { return lastXComb().lastParticles(); } 00091 00095 Energy2 lastS() const { return lastXComb().lastS(); } 00096 00100 const PPair & lastPartons() const { return lastXComb().lastPartons(); } 00101 00105 Energy2 lastSHat() const { return lastXComb().lastSHat(); } 00106 00110 double lastTau() const { return lastXComb().lastTau(); } 00111 00115 double lastY() const { return lastXComb().lastY(); } 00116 00121 double lastP1() const { return lastXComb().lastP1(); } 00122 00127 double lastP2() const { return lastXComb().lastP2(); } 00128 00133 double lastL1() const { return lastXComb().lastL1(); } 00134 00139 double lastL2() const { return lastXComb().lastL2(); } 00140 00145 double lastX1() const { return lastXComb().lastX1(); } 00146 00151 double lastX2() const { return lastXComb().lastX2(); } 00152 00157 double lastE1() const { return lastXComb().lastE1(); } 00158 00163 double lastE2() const { return lastXComb().lastE2(); } 00164 00169 double lastFL1L2() const { return lastXComb().lastFL1L2(); } 00171 00177 Energy2 lastScale() const { return lastXComb().lastScale(); } 00178 00183 double lastAlphaS() const { return lastXComb().lastAlphaS(); } 00184 00189 double lastAlphaEM() const { return lastXComb().lastAlphaEM(); } 00190 00196 const vector<Lorentz5Momentum> & meMomenta() const { return lastXComb().meMomenta(); } 00197 00202 tSubProPtr subProcess() const { return lastXComb().subProcess(); } 00203 00209 const cPDVector & mePartonData() const { return lastXComb().mePartonData(); } 00211 00212 protected: 00213 00217 XCPtr theLastXComb; 00218 }; 00219 00220 } 00221 00222 #endif /* ThePEG_LastXCombInfo_H */