thepeg
is hosted by
Hepforge
,
IPPP Durham
ThePEG
2.3.0
Cuts
TwoCutBase.h
1
// -*- C++ -*-
2
//
3
// TwoCutBase.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_TwoCutBase_H
10
#define THEPEG_TwoCutBase_H
11
//
12
// This is the declaration of the TwoCutBase class.
13
//
14
15
#include "ThePEG/Interface/Interfaced.h"
16
#include "TwoCutBase.fh"
17
#include "Cuts.fh"
18
19
namespace
ThePEG
{
20
35
class
TwoCutBase
:
public
Interfaced
{
36
37
public
:
38
42
TwoCutBase
() {}
43
44
public
:
45
52
virtual
Energy2
minSij
(
tcPDPtr
pi,
tcPDPtr
pj)
const
= 0;
53
59
virtual
Energy2
minTij
(
tcPDPtr
pi,
tcPDPtr
po)
const
= 0;
60
66
virtual
double
minDeltaR
(
tcPDPtr
pi,
tcPDPtr
pj)
const
= 0;
67
78
virtual
Energy
minKTClus
(
tcPDPtr
pi,
tcPDPtr
pj)
const
= 0;
79
86
virtual
double
minDurham
(
tcPDPtr
pi,
tcPDPtr
pj)
const
= 0;
87
94
virtual
bool
passCuts
(tcCutsPtr parent,
tcPDPtr
pitype,
tcPDPtr
pjtype,
95
LorentzMomentum
pi,
LorentzMomentum
pj,
96
bool
inci =
false
,
bool
incj =
false
)
const
;
97
103
bool
passCuts
(tcCutsPtr parent,
tcPPtr
pi,
tcPPtr
pj,
104
bool
inci =
false
,
bool
incj =
false
)
const
;
106
110
virtual
void
describe
()
const
;
111
112
public
:
113
120
static
void
Init
();
121
122
private
:
123
128
static
AbstractNoPIOClassDescription<TwoCutBase>
initTwoCutBase
;
129
134
TwoCutBase
&
operator=
(
const
TwoCutBase
&) =
delete
;
135
136
};
137
138
}
139
140
#include "ThePEG/Utilities/ClassTraits.h"
141
142
namespace
ThePEG
{
143
148
template
<>
149
struct
BaseClassTrait<TwoCutBase,1> {
151
typedef
Interfaced
NthBase
;
152
};
153
156
template
<>
157
struct
ClassTraits<TwoCutBase>
158
:
public
ClassTraitsBase<TwoCutBase> {
160
static
string
className
() {
return
"ThePEG::TwoCutBase"
; }
161
};
162
165
}
166
167
#endif
/* THEPEG_TwoCutBase_H */
ThePEG::AbstractNoPIOClassDescription
A concreate implementation of ClassDescriptionBase describing an abstract class without persistent da...
Definition:
ClassDescription.h:417
ThePEG::Interfaced
The Interfaced class is derived from the InterfacedBase class adding a couple of things particular to...
Definition:
Interfaced.h:38
ThePEG::LorentzVector< Energy >
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::TwoCutBase::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::TwoCutBase::initTwoCutBase
static AbstractNoPIOClassDescription< TwoCutBase > initTwoCutBase
The static object used to initialize the description of this class.
Definition:
TwoCutBase.h:128
ThePEG::TwoCutBase::minDeltaR
virtual double minDeltaR(tcPDPtr pi, tcPDPtr pj) const =0
Return the minimum allowed value of of two outgoing partons of type pi and pj.
ThePEG::TwoCutBase::minSij
virtual Energy2 minSij(tcPDPtr pi, tcPDPtr pj) const =0
Return the minimum allowed squared invariant mass of two outgoing partons of type pi and pj.
ThePEG::TwoCutBase::operator=
TwoCutBase & operator=(const TwoCutBase &)=delete
The assignment operator is private and must never be called.
ThePEG::TwoCutBase::describe
virtual void describe() const
Describe the currently active cuts in the log file.
ThePEG::TwoCutBase::minTij
virtual Energy2 minTij(tcPDPtr pi, tcPDPtr po) const =0
Return the minimum allowed value of the negative of the squared invariant mass of an incoming parton ...
ThePEG::TwoCutBase::passCuts
bool passCuts(tcCutsPtr parent, tcPPtr pi, tcPPtr pj, bool inci=false, bool incj=false) const
Return true if the given pair of particles passes the cuts.
ThePEG::TwoCutBase::Init
static void Init()
The standard Init function used to initialize the interfaces.
ThePEG::TwoCutBase::TwoCutBase
TwoCutBase()
The default constructor.
Definition:
TwoCutBase.h:42
ThePEG::TwoCutBase::minDurham
virtual double minDurham(tcPDPtr pi, tcPDPtr pj) const =0
Return the minimum allowed value of the Durham -algorithms distance measure.
ThePEG::TwoCutBase::minKTClus
virtual Energy minKTClus(tcPDPtr pi, tcPDPtr pj) const =0
Return the minimum allowed value of the longitudinally invariant -algorithms distance measure.
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
Generated on Thu Jun 20 2024 14:47:00 for ThePEG by
1.9.6