00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef ThePEG_PDFCuts_H
00010 #define ThePEG_PDFCuts_H
00011
00012
00013 #include "ThePEG/Config/ThePEG.h"
00014 #include "ThePEG/Utilities/Interval.h"
00015 #include "ThePEG/Cuts/Cuts.fh"
00016
00017 namespace ThePEG {
00018
00027 class PDFCuts {
00028
00029 public:
00030
00036 PDFCuts() : theSMax() {}
00037
00041 PDFCuts(const Interval<double> & newL,
00042 const SInterval & newScale, const Energy2 & newSMax)
00043 : theL(newL), theScale(newScale), theSMax(newSMax) {}
00044
00049 PDFCuts(const Cuts &, bool first, const SInterval & S,
00050 const SInterval & sHat);
00051
00056 PDFCuts(const Cuts &, bool first, Energy maxEnergy);
00058
00059 public:
00060
00066 double lMin() const { return theL.lower(); }
00067
00068
00072 double lMax() const { return theL.upper(); }
00073
00077 double xMin() const { return exp(-lMax()); }
00078
00079
00083 double xMax() const { return exp(-lMin()); }
00084
00085
00089 Energy2 scaleMin() const { return theScale.lower(); }
00090
00091
00095 Energy2 scaleMax() const { return theScale.upper(); }
00096
00097
00101 Energy2 scaleMax(double x) const { return min(scaleMax(), sMax()*x); }
00102
00103
00107 Energy2 scaleMaxL(double l) const { return scaleMax(exp(-l)); }
00108
00109
00113 Energy2 sMax() const { return theSMax; }
00114
00115
00117
00118 private:
00119
00123 Interval<double> theL;
00124
00128 SInterval theScale;
00129
00133 Energy2 theSMax;
00134
00135 };
00136
00137 }
00138
00139 #endif