herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
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
18namespace Herwig {
19
20using namespace ThePEG;
21
32
33public:
34
39
40public:
41
54 virtual Energy minDeltaMeasureCuts(tcPDPtr , tcPDPtr ) const { return ZERO; }
55 // virtual Energy minDeltaMeasureCuts(tcPDPtr pi, tcPDPtr pj) const { return ZERO; }
56
61 virtual Energy minKTClus(tcPDPtr , tcPDPtr ) const { return ZERO; }
62 // virtual Energy minKTClus(tcPDPtr pi, tcPDPtr pj) const { return ZERO; }
63
68 virtual Energy2 minSij(tcPDPtr , tcPDPtr ) const { return ZERO; }
69 // virtual Energy2 minSij(tcPDPtr pi, tcPDPtr pj) const { return ZERO; }
70
76 virtual Energy2 minTij(tcPDPtr , tcPDPtr ) const { return ZERO; }
77 // virtual Energy2 minTij(tcPDPtr pi, tcPDPtr po) const { return ZERO; }
78
84 virtual double minDeltaR(tcPDPtr , tcPDPtr ) const { return ZERO; }
85 // virtual double minDeltaR(tcPDPtr pi, tcPDPtr pj) const { return ZERO; }
86
93 virtual double minDurham(tcPDPtr , tcPDPtr ) const { return 0.0; }
94 // virtual double minDurham(tcPDPtr pi, tcPDPtr pj) const { return 0.0; }
95
102 virtual bool passCuts(tcCutsPtr parent, tcPDPtr pitype, tcPDPtr pjtype,
103 LorentzMomentum pi, LorentzMomentum pj,
104 bool inci = false, bool incj = false) const;
105
109 virtual void describe() const;
111
112public:
113
117 double deltaRMin() const { return theDeltaRMin; }
118 double deltaRMax() const { return theDeltaRMax; }
119
123 double deltaYMin() const { return theDeltaYMin; }
124 double deltaYMax() const { return theDeltaYMax; }
125
129 double deltaPhiMin() const { return theDeltaPhiMin; }
130 double deltaPhiMax() const { return theDeltaPhiMax; }
131
136 Ptr<MatcherBase>::tptr firstMatcher() const { return theFirstMatcher; }
137 Ptr<MatcherBase>::tptr secondMatcher() const { return theSecondMatcher; }
138
139public:
140
148
154 void persistentInput(PersistentIStream & is, int version);
156
163 static void Init();
164
165protected:
166
173 virtual IBPtr clone() const;
174
179 virtual IBPtr fullclone() const;
181
182
183// If needed, insert declarations of virtual function defined in the
184// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
185
186private:
187
192 double theDeltaRMax;
193
198 double theDeltaYMax;
199
204 double theDeltaPhiMax;
205
210 Ptr<MatcherBase>::ptr theFirstMatcher;
211 Ptr<MatcherBase>::ptr theSecondMatcher;
212
213private:
214
220
221};
222
223}
224
225#endif /* Herwig_MatchboxDeltaRCut_H */
MatchboxDeltaRCut implements cuts related to the separation in the legoplot plane.
double theDeltaYMin
The minimum and maximum allowed rapidity separation.
Ptr< MatcherBase >::ptr theFirstMatcher
Matchers for a pair of particles to cut on.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
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.
double theDeltaPhiMin
The minimum and maximum allowed azimuthal separation.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
double deltaPhiMin() const
Return the minimum and maximum allowed azimuthal separation.
MatchboxDeltaRCut()
The default constructor.
MatchboxDeltaRCut & operator=(const MatchboxDeltaRCut &)=delete
The assignment operator is private and must never be called.
virtual double minDeltaR(tcPDPtr, tcPDPtr) const
Return the minimum allowed value of of two outgoing partons of type pi and pj.
static void Init()
The standard Init function used to initialize the interfaces.
virtual Energy2 minSij(tcPDPtr, tcPDPtr) const
Return the minimum allowed squared invariant mass of two outgoing partons of type pi and pj.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
double deltaRMin() const
Return the minimum and maximum allowed legoplot separation.
double deltaYMin() const
Return the minimum and maximum allowed rapidity separation.
virtual double minDurham(tcPDPtr, tcPDPtr) const
Return the minimum allowed value of the Durham -algorithms distance measure.
virtual void describe() const
Describe the currently active cuts in the log file.
virtual Energy minDeltaMeasureCuts(tcPDPtr, tcPDPtr) const
Return the minimum allowed value of the longitudinally invariant -algorithms distance measure.
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 Energy2 minTij(tcPDPtr, tcPDPtr) const
Return the minimum allowed value of the negative of the squared invariant mass of an incoming parton ...
Ptr< MatcherBase >::tptr firstMatcher() const
Return the matchers for a pair of particles to cut on.
virtual IBPtr clone() const
Make a simple clone of this object.
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
constexpr ZeroUnit ZERO
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr