thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
MadGraphOneCut.h
1// -*- C++ -*-
2//
3// MadGraphOneCut.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_MadGraphOneCut_H
10#define THEPEG_MadGraphOneCut_H
11//
12// This is the declaration of the MadGraphOneCut class.
13//
14
15#include "ThePEG/Cuts/OneCutBase.h"
16
17namespace ThePEG {
18
29
30public:
31
35 enum class Cut {
36 PT,
37 ETA,
38 XPT
40 };
41
45 enum class P {
46 JET,
47 LEP,
48 PHO,
49 BOT
50 };
51
52public:
53
60
67 MadGraphOneCut(Cut t, P p, double c)
68 : cutType(t), particleType(p), theCut(c) {}
70
71public:
72
79 virtual Energy minKT(tcPDPtr p) const;
80
86 virtual double minEta(tcPDPtr p) const;
87
93 virtual double maxEta(tcPDPtr p) const;
94
100 virtual Energy minMaxKT(tcPDPtr p) const;
101
107 virtual bool passCuts(tcCutsPtr parent,
108 tcPDPtr ptype, LorentzMomentum p) const;
110
111protected:
112
116 bool checkType(tcPDPtr p) const;
117
118public:
119
127
133 void persistentInput(PersistentIStream & is, int version);
135
142 static void Init();
143
144protected:
145
152 virtual IBPtr clone() const;
153
158 virtual IBPtr fullclone() const;
160
161private:
162
167
172
176 double theCut;
177
178private:
179
185
191
192};
193
194}
195
196#include "ThePEG/Utilities/ClassTraits.h"
197
198namespace ThePEG {
199
204template <>
205struct BaseClassTrait<MadGraphOneCut,1> {
207 typedef OneCutBase NthBase;
208};
209
212template <>
213struct ClassTraits<MadGraphOneCut>
214 : public ClassTraitsBase<MadGraphOneCut> {
216 static string className() { return "ThePEG::MadGraphOneCut"; }
220 static string library() { return "MadGraphReader.so"; }
221};
222
225}
226
227#endif /* THEPEG_MadGraphOneCut_H */
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
Objects of the MadGraphOneCut class can be created automatically by the MadGraphReader class when sca...
double theCut
The value of the cut to be applied.
virtual IBPtr clone() const
Make a simple clone of this object.
Cut
Enumerate the different kinds of cuts made by MadGraph.
@ PT
The minimum transverse momentum of a particle.
@ ETA
The maximum (absolute value of) pseudo-rapidity of a particle.
@ XPT
The minimum transverse momentum of the particle with largest transverse momentum.
virtual bool passCuts(tcCutsPtr parent, tcPDPtr ptype, LorentzMomentum p) const
Return true if a particle with type ptype and momentum p passes the cuts.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual Energy minMaxKT(tcPDPtr p) const
Return the minimum allowed value of the transverse momentum of the outgoing parton with the lagrest t...
virtual double maxEta(tcPDPtr p) const
Return the maximum allowed pseudo-rapidity of an outgoing parton of the given type.
MadGraphOneCut()
The default constructor.
MadGraphOneCut & operator=(const MadGraphOneCut &)=delete
The assignment operator is private and must never be called.
P
Enumerate the types of particles the cut is made on.
@ LEP
The cut applies only to leptons.
@ PHO
The cut applies only to photons.
@ BOT
The cut applies only to bottom quarks.
@ JET
The cut applies only to coloured particles.
MadGraphOneCut(Cut t, P p, double c)
The constructor used by the MadGraphReader.
static ClassDescription< MadGraphOneCut > initMadGraphOneCut
The static object used to initialize the description of this class.
virtual double minEta(tcPDPtr p) const
Return the minimum allowed pseudo-rapidity of an outgoing parton of the given type.
bool checkType(tcPDPtr p) const
Returns true if cut should be applied to a particle of type p.
virtual Energy minKT(tcPDPtr p) const
Return the minimum allowed value of the transverse momentum of an outgoing parton.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
P particleType
The type of particles this cut applies to.
Cut cutType
The type of this cut.
static void Init()
The standard Init function used to initialize the interfaces.
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 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