ThePEG  1.8.0
OneCutBase.h
1 // -*- C++ -*-
2 //
3 // OneCutBase.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_OneCutBase_H
10 #define THEPEG_OneCutBase_H
11 //
12 // This is the declaration of the OneCutBase class.
13 //
14 
15 #include "ThePEG/Interface/Interfaced.h"
16 #include "OneCutBase.fh"
17 #include "Cuts.fh"
18 
19 namespace ThePEG {
20 
39 class OneCutBase: public Interfaced {
40 
41 public:
42 
49 
53  virtual ~OneCutBase();
55 
56 public:
57 
64  virtual Energy minKT(tcPDPtr p) const = 0;
65 
71  virtual double minEta(tcPDPtr p) const = 0;
72 
78  virtual double maxEta(tcPDPtr p) const = 0;
79 
85  virtual double minRapidityMax(tcPDPtr p) const;
86 
92  virtual double maxRapidityMin(tcPDPtr p) const;
93 
99  virtual Energy minMaxKT(tcPDPtr p) const;
100 
107  virtual double minMaxEta(tcPDPtr p) const;
108 
115  virtual double maxMinEta(tcPDPtr p) const;
116 
122  virtual bool passCuts(tcCutsPtr parent,
123  tcPDPtr ptype, LorentzMomentum p) const;
124 
130  bool passCuts(tcCutsPtr parent, tcPPtr p) const;
132 
136  virtual void describe() const;
137 
138 public:
139 
146  static void Init();
147 
148 private:
149 
155 
160  OneCutBase & operator=(const OneCutBase &);
161 
162 };
163 
164 }
165 
166 #include "ThePEG/Utilities/ClassTraits.h"
167 
168 namespace ThePEG {
169 
174 template <>
175 struct BaseClassTrait<OneCutBase,1> {
177  typedef Interfaced NthBase;
178 };
179 
182 template <>
183 struct ClassTraits<OneCutBase>
184  : public ClassTraitsBase<OneCutBase> {
186  static string className() { return "ThePEG::OneCutBase"; }
187 };
188 
191 }
192 
193 #endif /* THEPEG_OneCutBase_H */
static AbstractNoPIOClassDescription< OneCutBase > initOneCutBase
The static object used to initialize the description of this class.
Definition: OneCutBase.h:154
virtual double minRapidityMax(tcPDPtr p) const
Return the minimum allowed rapidity of an outgoing parton of the given type.
virtual double minMaxEta(tcPDPtr p) const
Return the minimum allowed pseudo-rapidity of the outgoing parton of the given type with the maximum ...
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:681
virtual Energy minKT(tcPDPtr p) const =0
Return the minimum allowed value of the transverse momentum of an outgoing parton.
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
QTY< 0, 1, 0 >::Type Energy
Energy.
Definition: Unitsystem.h:34
A concreate implementation of ClassDescriptionBase describing an abstract class without persistent da...
virtual ~OneCutBase()
The destructor.
virtual Energy minMaxKT(tcPDPtr p) const
Return the minimum allowed value of the transverse momentum of the outgoing parton with the lagrest t...
virtual void describe() const
Describe the currently active cuts in the log file.
OneCutBase()
The default constructor.
Definition: OneCutBase.h:48
virtual double minEta(tcPDPtr p) const =0
Return the minimum allowed pseudo-rapidity of an outgoing parton of the given type.
virtual bool passCuts(tcCutsPtr parent, tcPDPtr ptype, LorentzMomentum p) const
Return true if a particle with type ptype and momentum p passes the cuts.
The Interfaced class is derived from the InterfacedBase class adding a couple of things particular to...
Definition: Interfaced.h:38
virtual double maxEta(tcPDPtr p) const =0
Return the maximum allowed pseudo-rapidity of an outgoing parton of the given type.
OneCutBase & operator=(const OneCutBase &)
The assignment operator is private and must never be called.
virtual double maxMinEta(tcPDPtr p) const
Return the maximum allowed pseudo-rapidity of the outgoing parton of the given type with the minimum ...
static string className()
Return the name of class T.
Definition: ClassTraits.h:66
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
Definition: ClassTraits.h:161
virtual double maxRapidityMin(tcPDPtr p) const
Return the maximum allowed rapidity of an outgoing parton of the given type.
This class corresponds to a kinematical cut to be made on a single outgoing parton from a hard sub-pr...
Definition: OneCutBase.h:39
static void Init()
The standard Init function used to initialize the interfaces.