thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
OneCutBase.h
1 // -*- C++ -*-
2 //
3 // OneCutBase.h is a part of ThePEG - Toolkit for HEP Event Generation
4 // Copyright (C) 1999-2019 Leif Lonnblad
5 //
6 // ThePEG is licenced under version 3 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 &) = delete;
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
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:696
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
virtual double maxRapidityMin(tcPDPtr p) const
Return the maximum allowed rapidity of an outgoing parton of the given type.
OneCutBase & operator=(const OneCutBase &)=delete
The assignment operator is private and must never be called.
A concreate implementation of ClassDescriptionBase describing an abstract class without persistent da...
virtual ~OneCutBase()
The destructor.
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.
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.
virtual Energy minMaxKT(tcPDPtr p) const
Return the minimum allowed value of the transverse momentum of the outgoing parton with the lagrest t...
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 default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
virtual void describe() const
Describe the currently active cuts in the log file.
virtual double maxMinEta(tcPDPtr p) const
Return the maximum allowed pseudo-rapidity of the outgoing parton of the given type with the minimum ...
virtual double minMaxEta(tcPDPtr p) const
Return the minimum allowed pseudo-rapidity of the outgoing parton of the given type with the maximum ...
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
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.
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52
virtual double minRapidityMax(tcPDPtr p) const
Return the minimum allowed rapidity of an outgoing parton of the given type.