thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
TwoCutBase.h
1 // -*- C++ -*-
2 //
3 // TwoCutBase.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_TwoCutBase_H
10 #define THEPEG_TwoCutBase_H
11 //
12 // This is the declaration of the TwoCutBase class.
13 //
14 
15 #include "ThePEG/Interface/Interfaced.h"
16 #include "TwoCutBase.fh"
17 #include "Cuts.fh"
18 
19 namespace ThePEG {
20 
35 class TwoCutBase: public Interfaced {
36 
37 public:
38 
45 
49  virtual ~TwoCutBase();
51 
52 public:
53 
60  virtual Energy2 minSij(tcPDPtr pi, tcPDPtr pj) const = 0;
61 
67  virtual Energy2 minTij(tcPDPtr pi, tcPDPtr po) const = 0;
68 
74  virtual double minDeltaR(tcPDPtr pi, tcPDPtr pj) const = 0;
75 
86  virtual Energy minKTClus(tcPDPtr pi, tcPDPtr pj) const = 0;
87 
94  virtual double minDurham(tcPDPtr pi, tcPDPtr pj) const = 0;
95 
102  virtual bool passCuts(tcCutsPtr parent, tcPDPtr pitype, tcPDPtr pjtype,
104  bool inci = false, bool incj = false) const;
105 
111  bool passCuts(tcCutsPtr parent, tcPPtr pi, tcPPtr pj,
112  bool inci = false, bool incj = false) const;
114 
118  virtual void describe() const;
119 
120 public:
121 
128  static void Init();
129 
130 private:
131 
137 
142  TwoCutBase & operator=(const TwoCutBase &) = delete;
143 
144 };
145 
146 }
147 
148 #include "ThePEG/Utilities/ClassTraits.h"
149 
150 namespace ThePEG {
151 
156 template <>
157 struct BaseClassTrait<TwoCutBase,1> {
159  typedef Interfaced NthBase;
160 };
161 
164 template <>
165 struct ClassTraits<TwoCutBase>
166  : public ClassTraitsBase<TwoCutBase> {
168  static string className() { return "ThePEG::TwoCutBase"; }
169 };
170 
173 }
174 
175 #endif /* THEPEG_TwoCutBase_H */
TwoCutBase & operator=(const TwoCutBase &)=delete
The assignment operator is private and must never be called.
static AbstractNoPIOClassDescription< TwoCutBase > initTwoCutBase
The static object used to initialize the description of this class.
Definition: TwoCutBase.h:136
virtual ~TwoCutBase()
The destructor.
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:696
virtual double minDurham(tcPDPtr pi, tcPDPtr pj) const =0
Return the minimum allowed value of the Durham -algorithms distance measure.
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
virtual bool passCuts(tcCutsPtr parent, tcPDPtr pitype, tcPDPtr pjtype, LorentzMomentum pi, LorentzMomentum pj, bool inci=false, bool incj=false) const
Return true if a pair of particles with type pitype and pjtype and momenta pi and pj respectively pas...
A concreate implementation of ClassDescriptionBase describing an abstract class without persistent da...
TwoCutBase()
The default constructor.
Definition: TwoCutBase.h:44
This class corresponds to a kinematical cut to be made on a pair of particles in a hard sub-process...
Definition: TwoCutBase.h:35
The Interfaced class is derived from the InterfacedBase class adding a couple of things particular to...
Definition: Interfaced.h:38
virtual void describe() const
Describe the currently active cuts in the log file.
virtual double minDeltaR(tcPDPtr pi, tcPDPtr pj) const =0
Return the minimum allowed value of of two outgoing partons of type pi and pj.
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
virtual Energy2 minSij(tcPDPtr pi, tcPDPtr pj) const =0
Return the minimum allowed squared invariant mass of two outgoing partons of type pi and pj...
virtual Energy minKTClus(tcPDPtr pi, tcPDPtr pj) const =0
Return the minimum allowed value of the longitudinally invariant -algorithms distance measure...
static void Init()
The standard Init function used to initialize the interfaces.
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52
virtual Energy2 minTij(tcPDPtr pi, tcPDPtr po) const =0
Return the minimum allowed value of the negative of the squared invariant mass of an incoming parton ...