ThePEG  1.8.0
PDFCuts.h
1 // -*- C++ -*-
2 //
3 // PDFCuts.h is a part of ThePEG - Toolkit for HEP Event Generation
4 // Copyright (C) 1999-2011 Leif Lonnblad
5 //
6 // ThePEG is licenced under version 2 of the GPL, see COPYING for details.
7 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
8 //
9 #ifndef ThePEG_PDFCuts_H
10 #define ThePEG_PDFCuts_H
11 // This is the declaration of the PDFCuts class.
12 
13 #include "ThePEG/Config/ThePEG.h"
14 #include "ThePEG/Utilities/Interval.h"
15 #include "ThePEG/Cuts/Cuts.fh"
16 
17 namespace ThePEG {
18 
27 class PDFCuts {
28 
29 public:
30 
36  PDFCuts() : theSMax() {}
37 
41  PDFCuts(const Interval<double> & newL,
42  const SInterval & newScale, const Energy2 & newSMax)
43  : theL(newL), theScale(newScale), theSMax(newSMax) {}
44 
49  PDFCuts(const Cuts &, bool first, const SInterval & S,
50  const SInterval & sHat);
51 
56  PDFCuts(const Cuts &, bool first, Energy maxEnergy);
58 
59 public:
60 
66  double lMin() const { return theL.lower(); }
67 
68 
72  double lMax() const { return theL.upper(); }
73 
77  double xMin() const { return exp(-lMax()); }
78 
79 
83  double xMax() const { return exp(-lMin()); }
84 
85 
89  Energy2 scaleMin() const { return theScale.lower(); }
90 
91 
95  Energy2 scaleMax() const { return theScale.upper(); }
96 
97 
101  Energy2 scaleMax(double x) const { return min(scaleMax(), sMax()*x); }
102 
103 
107  Energy2 scaleMaxL(double l) const { return scaleMax(exp(-l)); }
108 
109 
113  Energy2 sMax() const { return theSMax; }
114 
115 
117 
118 private:
119 
124 
129 
133  Energy2 theSMax;
134 
135 };
136 
137 }
138 
139 #endif /* ThePEG_PDFCuts_H */