ThePEG  1.8.0
KTRapidityCut.h
1 // -*- C++ -*-
2 #ifndef THEPEG_KTRapidityCut_H
3 #define THEPEG_KTRapidityCut_H
4 //
5 // This is the declaration of the KTRapidityCut class.
6 //
7 
8 #include "ThePEG/Cuts/OneCutBase.h"
9 
10 namespace ThePEG {
11 
23 class KTRapidityCut: public OneCutBase {
24 
25 public:
26 
33  : theMinKT(minKT), theMaxKT(Constants::MaxEnergy),
34  theMinRapidity(-Constants::MaxRapidity),
35  theMaxRapidity(Constants::MaxRapidity) {}
36 
40  virtual ~KTRapidityCut();
42 
43 public:
44 
51  virtual Energy minKT(tcPDPtr p) const;
52 
58  virtual double minEta(tcPDPtr p) const;
59 
65  virtual double maxEta(tcPDPtr p) const;
66 
72  virtual bool passCuts(tcCutsPtr parent,
73  tcPDPtr ptype, LorentzMomentum p) const;
75 
79  virtual void describe() const;
80 
81 public:
82 
89  void persistentOutput(PersistentOStream & os) const;
90 
96  void persistentInput(PersistentIStream & is, int version);
98 
105  static void Init();
106 
107 protected:
108 
115  virtual IBPtr clone() const;
116 
121  virtual IBPtr fullclone() const;
123 
124 private:
125 
129  Energy maxKTMin() const;
130 
134  Energy minKTMax() const;
135 
139  double maxRapidityMin() const;
140 
144  double minRapidityMax() const;
145 
151  virtual double minRapidityMax(tcPDPtr p) const;
152 
158  virtual double maxRapidityMin(tcPDPtr p) const;
159 
160 private:
161 
167 
173 
179 
185 
191 
192 private:
193 
199 
205 
206 };
207 
208 }
209 
210 #include "ThePEG/Utilities/ClassTraits.h"
211 
212 namespace ThePEG {
213 
218 template <>
219 struct BaseClassTrait<KTRapidityCut,1> {
221  typedef OneCutBase NthBase;
222 };
223 
226 template <>
227 struct ClassTraits<KTRapidityCut>
228  : public ClassTraitsBase<KTRapidityCut> {
230  static string className() { return "ThePEG::KTRapidityCut"; }
238  static string library() { return "KTRapidityCut.so"; }
239 };
240 
243 }
244 
245 #endif /* THEPEG_KTRapidityCut_H */