thepeg
is hosted by
Hepforge
,
IPPP Durham
ThePEG
2.2.1
LesHouches
MadGraphTwoCut.h
1
// -*- C++ -*-
2
//
3
// MadGraphTwoCut.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_MadGraphTwoCut_H
10
#define THEPEG_MadGraphTwoCut_H
11
//
12
// This is the declaration of the MadGraphTwoCut class.
13
//
14
15
#include "ThePEG/Cuts/TwoCutBase.h"
16
17
namespace
ThePEG
{
18
28
class
MadGraphTwoCut
:
public
TwoCutBase
{
29
30
public
:
31
35
enum class
Cut
{
36
INVMASS
,
37
DELTAR
39
};
40
44
enum class
P
{
45
JET,
46
LEP,
47
PHO,
48
BOT,
49
NOT
50
};
51
55
enum class
PP
{
56
JETJET,
57
LEPLEP,
59
PHOPHO,
60
BOTBOT,
61
BOTJET,
63
PHOJET,
65
JETLEP,
67
PHOBOT,
68
BOTLEP,
69
PHOLEP
70
};
71
72
public
:
73
79
MadGraphTwoCut
()
80
:
cutType
(
Cut
::DELTAR),
pairType
(
PP
::JETJET),
theCut
(0.0) {}
81
88
MadGraphTwoCut
(
Cut
t,
PP
p,
double
c)
89
:
cutType
(t),
pairType
(p),
theCut
(c) {}
90
92
93
public
:
94
101
virtual
Energy2
minSij
(
tcPDPtr
pi,
tcPDPtr
pj)
const
;
102
108
virtual
Energy2
minTij
(
tcPDPtr
pi,
tcPDPtr
po)
const
;
109
115
virtual
double
minDeltaR
(
tcPDPtr
pi,
tcPDPtr
pj)
const
;
116
127
virtual
Energy
minKTClus
(
tcPDPtr
pi,
tcPDPtr
pj)
const
;
128
135
virtual
double
minDurham
(
tcPDPtr
pi,
tcPDPtr
pj)
const
;
136
143
virtual
bool
passCuts
(tcCutsPtr parent,
tcPDPtr
pitype,
tcPDPtr
pjtype,
144
LorentzMomentum
pi,
LorentzMomentum
pj,
145
bool
inci =
false
,
bool
incj =
false
)
const
;
147
148
protected
:
149
154
bool
checkType
(
tcPDPtr
pi,
tcPDPtr
pj)
const
;
155
159
P
getType
(
tcPDPtr
p)
const
;
160
161
public
:
162
169
void
persistentOutput
(
PersistentOStream
& os)
const
;
170
176
void
persistentInput
(
PersistentIStream
& is,
int
version);
178
185
static
void
Init
();
186
187
protected
:
188
195
virtual
IBPtr
clone
()
const
;
196
201
virtual
IBPtr
fullclone
()
const
;
203
204
private
:
205
209
Cut
cutType
;
210
214
PP
pairType
;
215
219
double
theCut
;
220
221
private
:
222
227
static
ClassDescription<MadGraphTwoCut>
initMadGraphTwoCut
;
228
233
MadGraphTwoCut
&
operator=
(
const
MadGraphTwoCut
&) =
delete
;
234
235
};
236
237
}
238
239
#include "ThePEG/Utilities/ClassTraits.h"
240
241
namespace
ThePEG
{
242
247
template
<>
248
struct
BaseClassTrait
<MadGraphTwoCut,1> {
250
typedef
TwoCutBase
NthBase;
251
};
252
255
template
<>
256
struct
ClassTraits
<MadGraphTwoCut>
257
:
public
ClassTraitsBase
<MadGraphTwoCut> {
259
static
string
className() {
return
"ThePEG::MadGraphTwoCut"
; }
263
static
string
library() {
return
"MadGraphReader.so"
; }
264
};
265
268
}
269
270
#endif
/* THEPEG_MadGraphTwoCut_H */
ThePEG::MadGraphTwoCut::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
ThePEG::MadGraphTwoCut::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
ThePEG::PersistentIStream
PersistentIStream is used to read persistent objects from a stream where they were previously written...
Definition:
PersistentIStream.h:48
ThePEG::MadGraphTwoCut::operator=
MadGraphTwoCut & operator=(const MadGraphTwoCut &)=delete
The assignment operator is private and must never be called.
ThePEG::LorentzVector< Energy >
ThePEG::MadGraphTwoCut::initMadGraphTwoCut
static ClassDescription< MadGraphTwoCut > initMadGraphTwoCut
The static object used to initialize the description of this class.
Definition:
MadGraphTwoCut.h:227
ThePEG::ClassDescription
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
Definition:
ClassDescription.h:339
ThePEG::PersistentOStream
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
Definition:
PersistentOStream.h:51
ThePEG::MadGraphTwoCut::cutType
Cut cutType
The type of this cut.
Definition:
MadGraphTwoCut.h:209
ThePEG::MadGraphTwoCut::MadGraphTwoCut
MadGraphTwoCut(Cut t, PP p, double c)
The constructor used by the MadGraphReader.
Definition:
MadGraphTwoCut.h:88
ThePEG::Pointer::TransientConstRCPtr
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition:
RCPtr.h:696
ThePEG::MadGraphTwoCut::minKTClus
virtual Energy minKTClus(tcPDPtr pi, tcPDPtr pj) const
Return the minimum allowed value of the longitudinally invariant -algorithms distance measure...
ThePEG::MadGraphTwoCut::Init
static void Init()
The standard Init function used to initialize the interfaces.
ThePEG::MadGraphTwoCut::theCut
double theCut
The value of the cut to be applied.
Definition:
MadGraphTwoCut.h:219
ThePEG
This is the main namespace within which all identifiers in ThePEG are declared.
Definition:
FactoryBase.h:28
ThePEG::MadGraphTwoCut::MadGraphTwoCut
MadGraphTwoCut()
The default constructor.
Definition:
MadGraphTwoCut.h:79
ThePEG::MadGraphTwoCut::Cut
Cut
Enumerate the different kinds of cuts made by MadGraph.
Definition:
MadGraphTwoCut.h:35
ThePEG::MadGraphTwoCut
Objects of the MadGraphTwoCut class can be created automatically by the MadGraphReader class when sca...
Definition:
MadGraphTwoCut.h:28
ThePEG::MadGraphTwoCut::minDeltaR
virtual double minDeltaR(tcPDPtr pi, tcPDPtr pj) const
Return the minimum allowed value of of two outgoing partons of type pi and pj.
ThePEG::TwoCutBase
This class corresponds to a kinematical cut to be made on a pair of particles in a hard sub-process...
Definition:
TwoCutBase.h:35
ThePEG::MadGraphTwoCut::clone
virtual IBPtr clone() const
Make a simple clone of this object.
ThePEG::Pointer::RCPtr
RCPtr is a reference counted (smart) pointer.
Definition:
RCPtr.h:60
ThePEG::MadGraphTwoCut::PP
PP
Enumerate the types of particles pairs the cut is made on.
Definition:
MadGraphTwoCut.h:55
ThePEG::MadGraphTwoCut::Cut::INVMASS
The minimum invariant mass of two particles.
ThePEG::MadGraphTwoCut::checkType
bool checkType(tcPDPtr pi, tcPDPtr pj) const
Returns true if cut should be applied to pair of particles of type pi and pj.
ThePEG::MadGraphTwoCut::pairType
PP pairType
The type of particle pairs this cut applies to.
Definition:
MadGraphTwoCut.h:214
ThePEG::ClassTraits
The default concrete implementation of ClassTraitsBase.
Definition:
ClassTraits.h:134
ThePEG::MadGraphTwoCut::minSij
virtual Energy2 minSij(tcPDPtr pi, tcPDPtr pj) const
Return the minimum allowed squared invariant mass of two outgoing partons of type pi and pj...
ThePEG::Qty< 0, 2, 0 >
ThePEG::MadGraphTwoCut::getType
P getType(tcPDPtr p) const
Get the type of particle p.
ThePEG::MadGraphTwoCut::passCuts
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...
ThePEG::MadGraphTwoCut::minTij
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 ...
ThePEG::MadGraphTwoCut::minDurham
virtual double minDurham(tcPDPtr pi, tcPDPtr pj) const
Return the minimum allowed value of the Durham -algorithms distance measure.
ThePEG::BaseClassTrait
BaseClassTraits describes the base classes of the templated class.
Definition:
ClassTraits.h:156
ThePEG::MadGraphTwoCut::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
ThePEG::MadGraphTwoCut::P
P
Enumerate the types of particles the cut is made on.
Definition:
MadGraphTwoCut.h:44
ThePEG::ClassTraitsBase
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition:
ClassTraits.h:52
ThePEG::MadGraphTwoCut::Cut::DELTAR
The minimum pseudo-rapidity–azimuth-angle distance between two particles.
Generated on Sat Apr 11 2020 14:31:17 for ThePEG by
1.8.13