thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
SimpleKTCut.h
1// -*- C++ -*-
2//
3// SimpleKTCut.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_SimpleKTCut_H
10#define THEPEG_SimpleKTCut_H
11//
12// This is the declaration of the SimpleKTCut class.
13//
14
15#include "ThePEG/Cuts/OneCutBase.h"
16
17namespace ThePEG {
18
29class SimpleKTCut: public OneCutBase {
30
31public:
32
37 : theMinKT(minKT), theMaxKT(Constants::MaxEnergy),
38 theMinEta(-Constants::MaxRapidity),
39 theMaxEta(Constants::MaxRapidity) {}
40
41public:
42
49 virtual Energy minKT(tcPDPtr p) const;
50
56 virtual double minEta(tcPDPtr p) const;
57
63 virtual double maxEta(tcPDPtr p) const;
64
70 virtual bool passCuts(tcCutsPtr parent,
71 tcPDPtr ptype, LorentzMomentum p) const;
73
77 virtual void describe() const;
78
79public:
80
88
94 void persistentInput(PersistentIStream & is, int version);
96
103 static void Init();
104
105protected:
106
113 virtual IBPtr clone() const;
114
119 virtual IBPtr fullclone() const;
121
122private:
123
128
133
137 double maxEtaMin() const;
138
142 double minEtaMax() const;
143
144private:
145
151
157
162 double theMinEta;
163
168 double theMaxEta;
169
175
176private:
177
183
188 SimpleKTCut & operator=(const SimpleKTCut &) = delete;
189
190};
191
192}
193
194#include "ThePEG/Utilities/ClassTraits.h"
195
196namespace ThePEG {
197
202template <>
203struct BaseClassTrait<SimpleKTCut,1> {
205 typedef OneCutBase NthBase;
206};
207
210template <>
211struct ClassTraits<SimpleKTCut>
212 : public ClassTraitsBase<SimpleKTCut> {
214 static string className() { return "ThePEG::SimpleKTCut"; }
218 static string library() { return "SimpleKTCut.so"; }
219};
220
223}
224
225#endif /* THEPEG_SimpleKTCut_H */
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
This class corresponds to a kinematical cut to be made on a single outgoing parton from a hard sub-pr...
Definition: OneCutBase.h:39
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 is a very simple concrete sub-class of OneCutbase simply requiring a minimum transverse momentum...
Definition: SimpleKTCut.h:29
Energy minKTMax() const
Helper function used by the interface.
double theMaxEta
The maximum allowed pseudo-rapidity of an outgoing parton.
Definition: SimpleKTCut.h:168
virtual Energy minKT(tcPDPtr p) const
Return the minimum allowed value of the transverse momentum of an outgoing parton.
double maxEtaMin() const
Helper function used by the interface.
virtual double minEta(tcPDPtr p) const
Return the minimum allowed pseudo-rapidity of an outgoing parton of the given type.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
double minEtaMax() const
Helper function used by the interface.
Energy theMaxKT
The maximum allowed value of the transverse momentum of an outgoing parton.
Definition: SimpleKTCut.h:156
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
static void Init()
The standard Init function used to initialize the interfaces.
virtual bool passCuts(tcCutsPtr parent, tcPDPtr ptype, LorentzMomentum p) const
Return true if a particle with type ptype and momentum p passes the cuts.
SimpleKTCut & operator=(const SimpleKTCut &)=delete
The assignment operator is private and must never be called.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Energy theMinKT
The minimum allowed value of the transverse momentum of an outgoing parton.
Definition: SimpleKTCut.h:150
PMPtr theMatcher
If non-null only particles matching this object will be affected by this cut.
Definition: SimpleKTCut.h:174
static ClassDescription< SimpleKTCut > initSimpleKTCut
The static object used to initialize the description of this class.
Definition: SimpleKTCut.h:182
virtual IBPtr clone() const
Make a simple clone of this object.
Energy maxKTMin() const
Helper function used by the interface.
virtual double maxEta(tcPDPtr p) const
Return the maximum allowed pseudo-rapidity of an outgoing parton of the given type.
double theMinEta
The minimum allowed pseudo-rapidity of an outgoing parton.
Definition: SimpleKTCut.h:162
SimpleKTCut(Energy minKT=10 *GeV)
The default constructor.
Definition: SimpleKTCut.h:36
virtual void describe() const
Describe the currently active cuts in the log file.
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