thepeg
is hosted by
Hepforge
,
IPPP Durham
ThePEG
2.3.0
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::ClassDescription
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
Definition:
ClassDescription.h:333
ThePEG::LorentzVector< Energy >
ThePEG::MadGraphTwoCut
Objects of the MadGraphTwoCut class can be created automatically by the MadGraphReader class when sca...
Definition:
MadGraphTwoCut.h:28
ThePEG::MadGraphTwoCut::clone
virtual IBPtr clone() const
Make a simple clone of this object.
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::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::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::P
P
Enumerate the types of particles the cut is made on.
Definition:
MadGraphTwoCut.h:44
ThePEG::MadGraphTwoCut::P::NOT
@ NOT
Other types not cut on.
ThePEG::MadGraphTwoCut::P::LEP
@ LEP
Leptons.
ThePEG::MadGraphTwoCut::P::PHO
@ PHO
Photons.
ThePEG::MadGraphTwoCut::P::BOT
@ BOT
Bottom quarks.
ThePEG::MadGraphTwoCut::P::JET
@ JET
Coloured particles (jets).
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::theCut
double theCut
The value of the cut to be applied.
Definition:
MadGraphTwoCut.h:219
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::MadGraphTwoCut::Init
static void Init()
The standard Init function used to initialize the interfaces.
ThePEG::MadGraphTwoCut::Cut
Cut
Enumerate the different kinds of cuts made by MadGraph.
Definition:
MadGraphTwoCut.h:35
ThePEG::MadGraphTwoCut::Cut::DELTAR
@ DELTAR
The minimum pseudo-rapidity–azimuth-angle distance between two particles.
ThePEG::MadGraphTwoCut::Cut::INVMASS
@ INVMASS
The minimum invariant mass of two particles.
ThePEG::MadGraphTwoCut::cutType
Cut cutType
The type of this cut.
Definition:
MadGraphTwoCut.h:209
ThePEG::MadGraphTwoCut::pairType
PP pairType
The type of particle pairs this cut applies to.
Definition:
MadGraphTwoCut.h:214
ThePEG::MadGraphTwoCut::getType
P getType(tcPDPtr p) const
Get the type of particle p.
ThePEG::MadGraphTwoCut::initMadGraphTwoCut
static ClassDescription< MadGraphTwoCut > initMadGraphTwoCut
The static object used to initialize the description of this class.
Definition:
MadGraphTwoCut.h:227
ThePEG::MadGraphTwoCut::minDurham
virtual double minDurham(tcPDPtr pi, tcPDPtr pj) const
Return the minimum allowed value of the Durham -algorithms distance measure.
ThePEG::MadGraphTwoCut::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
ThePEG::MadGraphTwoCut::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
ThePEG::MadGraphTwoCut::operator=
MadGraphTwoCut & operator=(const MadGraphTwoCut &)=delete
The assignment operator is private and must never be called.
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::MadGraphTwoCut::PP
PP
Enumerate the types of particles pairs the cut is made on.
Definition:
MadGraphTwoCut.h:55
ThePEG::MadGraphTwoCut::PP::PHOPHO
@ PHOPHO
The cut applies only to pairs photons.
ThePEG::MadGraphTwoCut::PP::PHOBOT
@ PHOBOT
The cut applies only to a photon paired with a bottom quark.
ThePEG::MadGraphTwoCut::PP::PHOLEP
@ PHOLEP
The cut applies only to a photon paired with a lepton.
ThePEG::MadGraphTwoCut::PP::PHOJET
@ PHOJET
The cut applies only to a photon paired with a coloured particle (jet).
ThePEG::MadGraphTwoCut::PP::BOTJET
@ BOTJET
The cut applies only to bottom quarks paired with another coloured particle (jet).
ThePEG::MadGraphTwoCut::PP::JETLEP
@ JETLEP
The cut applies only to a coloured particle (jet) paired with a lepton.
ThePEG::MadGraphTwoCut::PP::LEPLEP
@ LEPLEP
The cut applies only to lepton pairs (in case of INVMASS lepton–anti-lepton pairs of same flavour).
ThePEG::MadGraphTwoCut::PP::BOTLEP
@ BOTLEP
The cut applies only to bottom quarks paired with a lepton.
ThePEG::MadGraphTwoCut::PP::BOTBOT
@ BOTBOT
The cut applies only to pairs of bottom quarks.
ThePEG::MadGraphTwoCut::PP::JETJET
@ JETJET
The cut applies only to pairs of coloured particles (jets).
ThePEG::MadGraphTwoCut::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
ThePEG::MadGraphTwoCut::MadGraphTwoCut
MadGraphTwoCut()
The default constructor.
Definition:
MadGraphTwoCut.h:79
ThePEG::MadGraphTwoCut::MadGraphTwoCut
MadGraphTwoCut(Cut t, PP p, double c)
The constructor used by the MadGraphReader.
Definition:
MadGraphTwoCut.h:88
ThePEG::PersistentIStream
PersistentIStream is used to read persistent objects from a stream where they were previously written...
Definition:
PersistentIStream.h:48
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::Pointer::RCPtr
RCPtr is a reference counted (smart) pointer.
Definition:
RCPtr.h:60
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::Qty< 0, 2, 0 >
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
This is the main namespace within which all identifiers in ThePEG are declared.
Definition:
FactoryBase.h:28
ThePEG::BaseClassTrait::NthBase
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
Definition:
ClassTraits.h:161
ThePEG::ClassTraitsBase::className
static string className()
Return the name of class T.
Definition:
ClassTraits.h:66
ThePEG::ClassTraitsBase::library
static string library()
The name of a file containing the dynamic library where the class T is implemented.
Definition:
ClassTraits.h:85
Generated on Thu Jun 20 2024 14:47:00 for ThePEG by
1.9.6