thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
SimpleDISCut.h
1 // -*- C++ -*-
2 //
3 // SimpleDISCut.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_SimpleDISCut_H
10 #define THEPEG_SimpleDISCut_H
11 //
12 // This is the declaration of the SimpleDISCut class.
13 //
14 
15 #include "ThePEG/Cuts/TwoCutBase.h"
16 
17 namespace ThePEG {
18 
27 class SimpleDISCut: public TwoCutBase {
28 
29 public:
30 
35  : theMinQ2(1.0*GeV2), theMaxQ2(100.0*GeV2),theMiny(0.0), theMaxy(1.0),
36  theMinW2(100.0*GeV2), theMaxW2(1000000.0*GeV2), chargedCurrent(false) {}
37 
38 public:
39 
46  virtual Energy2 minSij(tcPDPtr pi, tcPDPtr pj) const;
47 
54  virtual Energy2 minTij(tcPDPtr pi, tcPDPtr po) const;
55 
61  virtual double minDeltaR(tcPDPtr pi, tcPDPtr pj) const;
62 
73  virtual Energy minKTClus(tcPDPtr pi, tcPDPtr pj) const;
74 
81  virtual double minDurham(tcPDPtr pi, tcPDPtr pj) const;
82 
89  virtual bool passCuts(tcCutsPtr parent, tcPDPtr pitype, tcPDPtr pjtype,
91  bool inci = false, bool incj = false) const;
93 
97  virtual void describe() const;
98 
99 protected:
100 
105  bool check(long idi, long ido) const;
106 
107 public:
108 
115  void persistentOutput(PersistentOStream & os) const;
116 
122  void persistentInput(PersistentIStream & is, int version);
124 
131  static void Init();
132 
133 protected:
134 
141  virtual IBPtr clone() const;
142 
147  virtual IBPtr fullclone() const;
149 
150 private:
151 
155  double maxMiny() const;
156 
160  double minMaxy() const;
161 
165  Energy2 maxMinQ2() const;
166 
170  Energy2 minMaxQ2() const;
171 
175  Energy2 maxMinW2() const;
176 
180  Energy2 minMaxW2() const;
181 
182 private:
183 
188 
193 
197  double theMiny;
198 
202  double theMaxy;
203 
204 
205 
210 
215 
221 
222 private:
223 
229 
234  SimpleDISCut & operator=(const SimpleDISCut &) = delete;
235 
236 };
237 
238 }
239 
240 #include "ThePEG/Utilities/ClassTraits.h"
241 
242 namespace ThePEG {
243 
248 template <>
249 struct BaseClassTrait<SimpleDISCut,1> {
251  typedef TwoCutBase NthBase;
252 };
253 
256 template <>
257 struct ClassTraits<SimpleDISCut>
258  : public ClassTraitsBase<SimpleDISCut> {
260  static string className() { return "ThePEG::SimpleDISCut"; }
264  static string library() { return "SimpleDISCut.so"; }
265 };
266 
269 }
270 
271 #endif /* THEPEG_SimpleDISCut_H */
bool check(long idi, long ido) const
Check that the types of the incoming and outgoing particle types matches a DIS event.
Energy2 theMinQ2
The minimum .
Definition: SimpleDISCut.h:187
double minMaxy() const
Helper function used by the interface.
PersistentIStream is used to read persistent objects from a stream where they were previously written...
static void Init()
The standard Init function used to initialize the interfaces.
bool chargedCurrent
If true the cut is applied to charged current events, otherwise it is applied to neutral current even...
Definition: SimpleDISCut.h:220
virtual void describe() const
Describe the currently active cuts in the log file.
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
Energy2 theMaxW2
The maximum .
Definition: SimpleDISCut.h:214
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
virtual double minDeltaR(tcPDPtr pi, tcPDPtr pj) const
Return the minimum allowed value of of two outgoing partons of type pi and pj.
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:696
Energy2 minMaxW2() const
Helper function used by the interface.
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
double theMiny
The minimum .
Definition: SimpleDISCut.h:197
double theMaxy
The maximum .
Definition: SimpleDISCut.h:202
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Energy2 theMaxQ2
The maximum .
Definition: SimpleDISCut.h:192
Energy2 maxMinW2() const
Helper function used by the interface.
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 minDurham(tcPDPtr pi, tcPDPtr pj) const
Return the minimum allowed value of the Durham -algorithms distance measure.
virtual Energy2 minSij(tcPDPtr pi, tcPDPtr pj) const
Return the minimum allowed squared invariant mass of two outgoing partons of type pi and pj...
virtual IBPtr clone() const
Make a simple clone of this object.
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
virtual Energy minKTClus(tcPDPtr pi, tcPDPtr pj) const
Return the minimum allowed value of the longitudinally invariant -algorithms distance measure...
Energy2 minMaxQ2() const
Helper function used by the interface.
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 ...
static ClassDescription< SimpleDISCut > initSimpleDISCut
The static object used to initialize the description of this class.
Definition: SimpleDISCut.h:228
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
SimpleDISCut & operator=(const SimpleDISCut &)=delete
The assignment operator is private and must never be called.
SimpleDISCut()
The default constructor.
Definition: SimpleDISCut.h:34
Energy2 maxMinQ2() const
Helper function used by the interface.
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...
Energy2 theMinW2
The minimum .
Definition: SimpleDISCut.h:209
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
SimpleDISCut inherits from TwoCutBase and omplements a simple cut on the a scattered lepton...
Definition: SimpleDISCut.h:27
double maxMiny() const
Helper function used by the interface.