thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
DeltaMeasureCuts.h
1 // -*- C++ -*-
2 //
3 // DeltaMeasureCuts.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_DeltaMeasureCuts_H
10 #define THEPEG_DeltaMeasureCuts_H
11 //
12 // This is the declaration of the DeltaMeasureCuts class.
13 //
14 
15 #include "ThePEG/Cuts/TwoCutBase.h"
16 #include "ThePEG/PDT/MatcherBase.h"
17 
18 namespace ThePEG {
19 
27 
28 public:
29 
37 
38 public:
39 
52  virtual Energy minDeltaMeasureCuts(tcPDPtr pi, tcPDPtr pj) const;
53 
58  virtual Energy minKTClus(tcPDPtr pi, tcPDPtr pj) const;
59 
60 
65  virtual Energy2 minSij(tcPDPtr pi, tcPDPtr pj) const;
66 
72  virtual Energy2 minTij(tcPDPtr pi, tcPDPtr po) const;
73 
79  virtual double minDeltaR(tcPDPtr pi, tcPDPtr pj) const;
80 
87  virtual double minDurham(tcPDPtr pi, tcPDPtr pj) const;
88 
95  virtual bool passCuts(tcCutsPtr parent, tcPDPtr pitype, tcPDPtr pjtype,
97  bool inci = false, bool incj = false) const;
99 
103  virtual void describe() const;
104 
105 public:
106 
113  void persistentOutput(PersistentOStream & os) const;
114 
120  void persistentInput(PersistentIStream & is, int version);
122 
129  static void Init();
130 
131 protected:
132 
139  virtual IBPtr clone() const;
140 
145  virtual IBPtr fullclone() const;
147 
148 private:
149 
153  double theMinDeltaR;
154 
159 
165 
166 private:
167 
173 
178  DeltaMeasureCuts & operator=(const DeltaMeasureCuts &) = delete;
179 
180 };
181 
182 }
183 
184 #include "ThePEG/Utilities/ClassTraits.h"
185 
186 namespace ThePEG {
187 
192 template <>
193 struct BaseClassTrait<DeltaMeasureCuts,1> {
195  typedef TwoCutBase NthBase;
196 };
197 
200 template <>
201 struct ClassTraits<DeltaMeasureCuts>
202  : public ClassTraitsBase<DeltaMeasureCuts> {
204  static string className() { return "ThePEG::DeltaMeasureCuts"; }
208  static string library() { return "DeltaMeasureCuts.so"; }
209 };
210 
213 }
214 
215 #endif /* THEPEG_DeltaMeasureCuts_H */
static void Init()
The standard Init function used to initialize the interfaces.
PersistentIStream is used to read persistent objects from a stream where they were previously written...
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
virtual Energy minKTClus(tcPDPtr pi, tcPDPtr pj) const
Return the minimum allowed value of the longitudinally invariant -algorithms distance measure...
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:696
DeltaMeasureCuts & operator=(const DeltaMeasureCuts &)=delete
The assignment operator is private and must never be called.
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
virtual Energy2 minTij(tcPDPtr pi, tcPDPtr po) const
Return the minimum allowed value of the negative of the squared invariant mass of an incoming parton ...
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...
virtual Energy minDeltaMeasureCuts(tcPDPtr pi, tcPDPtr pj) const
Return the minimum allowed value of the longitudinally invariant -algorithms distance measure...
virtual void describe() const
Describe the currently active cuts in the log file.
DeltaMeasureCuts()
The default constructor.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
This class implements a cuts on legoplot and rapidity separation.
This class corresponds to a kinematical cut to be made on a pair of particles in a hard sub-process...
Definition: TwoCutBase.h:35
virtual double minDeltaR(tcPDPtr pi, tcPDPtr pj) const
Return the minimum allowed value of of two outgoing partons of type pi and pj.
virtual Energy2 minSij(tcPDPtr pi, tcPDPtr pj) const
Return the minimum allowed squared invariant mass of two outgoing partons of type pi and pj...
double theMinDeltaEta
The minimum allowed rapidity separation.
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
virtual double minDurham(tcPDPtr pi, tcPDPtr pj) const
Return the minimum allowed value of the Durham -algorithms distance measure.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
double theMinDeltaR
The minimum allowed legoplot separation.
static ClassDescription< DeltaMeasureCuts > initDeltaMeasureCuts
The static object used to initialize the description of this class.
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
virtual IBPtr clone() const
Make a simple clone of this object.
PMPtr theMatcher
If non-null only particles matching this object will be affected by this cut.
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