thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
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
18namespace ThePEG {
19
27
28public:
29
37
38public:
39
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
105public:
106
114
120 void persistentInput(PersistentIStream & is, int version);
122
129 static void Init();
130
131protected:
132
139 virtual IBPtr clone() const;
140
145 virtual IBPtr fullclone() const;
147
148private:
149
154
159
165
166private:
167
173
179
180};
181
182}
183
184#include "ThePEG/Utilities/ClassTraits.h"
185
186namespace ThePEG {
187
192template <>
193struct BaseClassTrait<DeltaMeasureCuts,1> {
195 typedef TwoCutBase NthBase;
196};
197
200template <>
201struct 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 */
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
This class implements a cuts on legoplot and rapidity separation.
virtual void describe() const
Describe the currently active cuts in the log file.
static ClassDescription< DeltaMeasureCuts > initDeltaMeasureCuts
The static object used to initialize the description of this class.
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...
PMPtr theMatcher
If non-null only particles matching this object will be affected by this cut.
virtual IBPtr clone() const
Make a simple clone of this object.
double theMinDeltaR
The minimum allowed legoplot separation.
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 ...
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual Energy minDeltaMeasureCuts(tcPDPtr pi, tcPDPtr pj) const
Return the minimum allowed value of the longitudinally invariant -algorithms distance measure.
double theMinDeltaEta
The minimum allowed rapidity separation.
virtual double minDeltaR(tcPDPtr pi, tcPDPtr pj) const
Return the minimum allowed value of of two outgoing partons of type pi and pj.
virtual Energy minKTClus(tcPDPtr pi, tcPDPtr pj) const
Return the minimum allowed value of the longitudinally invariant -algorithms distance measure.
DeltaMeasureCuts()
The default constructor.
virtual Energy2 minSij(tcPDPtr pi, tcPDPtr pj) const
Return the minimum allowed squared invariant mass of two outgoing partons of type pi and pj.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual double minDurham(tcPDPtr pi, tcPDPtr pj) const
Return the minimum allowed value of the Durham -algorithms distance measure.
DeltaMeasureCuts & operator=(const DeltaMeasureCuts &)=delete
The assignment operator is private and must never be called.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
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...
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:696
This class corresponds to a kinematical cut to be made on a pair of particles in a hard sub-process.
Definition: TwoCutBase.h:35
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
Definition: ClassTraits.h:161
static string className()
Return the name of class T.
Definition: ClassTraits.h:66
static string library()
The name of a file containing the dynamic library where the class T is implemented.
Definition: ClassTraits.h:85