herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
MatchboxDeltaRCut.h
1 // -*- C++ -*-
2 //
3 // MatchboxDeltaRCut.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4 // Copyright (C) 2002-2019 The Herwig Collaboration
5 //
6 // Herwig 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 Herwig_MatchboxDeltaRCut_H
10 #define Herwig_MatchboxDeltaRCut_H
11 //
12 // This is the declaration of the MatchboxDeltaRCut class.
13 //
14 
15 #include "ThePEG/Cuts/TwoCutBase.h"
16 #include "ThePEG/PDT/MatcherBase.h"
17 
18 namespace Herwig {
19 
20 using namespace ThePEG;
21 
32 
33 public:
34 
41 
45  virtual ~MatchboxDeltaRCut();
47 
48 public:
49 
62  virtual Energy minDeltaMeasureCuts(tcPDPtr , tcPDPtr ) const { return ZERO; }
63  // virtual Energy minDeltaMeasureCuts(tcPDPtr pi, tcPDPtr pj) const { return ZERO; }
64 
69  virtual Energy minKTClus(tcPDPtr , tcPDPtr ) const { return ZERO; }
70  // virtual Energy minKTClus(tcPDPtr pi, tcPDPtr pj) const { return ZERO; }
71 
76  virtual Energy2 minSij(tcPDPtr , tcPDPtr ) const { return ZERO; }
77  // virtual Energy2 minSij(tcPDPtr pi, tcPDPtr pj) const { return ZERO; }
78 
84  virtual Energy2 minTij(tcPDPtr , tcPDPtr ) const { return ZERO; }
85  // virtual Energy2 minTij(tcPDPtr pi, tcPDPtr po) const { return ZERO; }
86 
92  virtual double minDeltaR(tcPDPtr , tcPDPtr ) const { return ZERO; }
93  // virtual double minDeltaR(tcPDPtr pi, tcPDPtr pj) const { return ZERO; }
94 
101  virtual double minDurham(tcPDPtr , tcPDPtr ) const { return 0.0; }
102  // virtual double minDurham(tcPDPtr pi, tcPDPtr pj) const { return 0.0; }
103 
110  virtual bool passCuts(tcCutsPtr parent, tcPDPtr pitype, tcPDPtr pjtype,
111  LorentzMomentum pi, LorentzMomentum pj,
112  bool inci = false, bool incj = false) const;
113 
117  virtual void describe() const;
119 
120 public:
121 
125  double deltaRMin() const { return theDeltaRMin; }
126  double deltaRMax() const { return theDeltaRMax; }
127 
131  double deltaYMin() const { return theDeltaYMin; }
132  double deltaYMax() const { return theDeltaYMax; }
133 
137  double deltaPhiMin() const { return theDeltaPhiMin; }
138  double deltaPhiMax() const { return theDeltaPhiMax; }
139 
144  Ptr<MatcherBase>::tptr firstMatcher() const { return theFirstMatcher; }
145  Ptr<MatcherBase>::tptr secondMatcher() const { return theSecondMatcher; }
146 
147 public:
148 
155  void persistentOutput(PersistentOStream & os) const;
156 
162  void persistentInput(PersistentIStream & is, int version);
164 
171  static void Init();
172 
173 protected:
174 
181  virtual IBPtr clone() const;
182 
187  virtual IBPtr fullclone() const;
189 
190 
191 // If needed, insert declarations of virtual function defined in the
192 // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
193 
194 private:
195 
199  double theDeltaRMin;
200  double theDeltaRMax;
201 
205  double theDeltaYMin;
206  double theDeltaYMax;
207 
212  double theDeltaPhiMax;
213 
219  Ptr<MatcherBase>::ptr theSecondMatcher;
220 
221 private:
222 
227  MatchboxDeltaRCut & operator=(const MatchboxDeltaRCut &) = delete;
228 
229 };
230 
231 }
232 
233 #endif /* Herwig_MatchboxDeltaRCut_H */
virtual Energy2 minTij(tcPDPtr, tcPDPtr) const
Return the minimum allowed value of the negative of the squared invariant mass of an incoming parton ...
virtual double minDeltaR(tcPDPtr, tcPDPtr) const
Return the minimum allowed value of of two outgoing partons of type pi and pj.
transient_pointer tptr
double theDeltaPhiMin
The minimum and maximum allowed azimuthal separation.
double theDeltaRMin
The minimum and maximum allowed legoplot separation.
virtual Energy minKTClus(tcPDPtr, tcPDPtr) const
Return the minimum allowed value of the longitudinally invariant -algorithms distance measure...
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
constexpr double pi
virtual Energy minDeltaMeasureCuts(tcPDPtr, tcPDPtr) const
Return the minimum allowed value of the longitudinally invariant -algorithms distance measure...
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
double deltaYMin() const
Return the minimum and maximum allowed rapidity separation.
Ptr< MatcherBase >::ptr theFirstMatcher
Matchers for a pair of particles to cut on.
Ptr< MatcherBase >::tptr firstMatcher() const
Return the matchers for a pair of particles to cut on.
virtual Energy2 minSij(tcPDPtr, tcPDPtr) const
Return the minimum allowed squared invariant mass of two outgoing partons of type pi and pj...
-*- C++ -*-
virtual double minDurham(tcPDPtr, tcPDPtr) const
Return the minimum allowed value of the Durham -algorithms distance measure.
double deltaRMin() const
Return the minimum and maximum allowed legoplot separation.
MatchboxDeltaRCut implements cuts related to the separation in the legoplot plane.
double theDeltaYMin
The minimum and maximum allowed rapidity separation.
constexpr ZeroUnit ZERO
double deltaPhiMin() const
Return the minimum and maximum allowed azimuthal separation.