herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
PDT
StandardMatchers.h
1
// -*- C++ -*-
2
//
3
// StandardMatchers.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4
// Copyright (C) 2002-2019 The Herwig Collaboration
5
//
6
// Herwig 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 Herwig_StandardMatchers_H
10
#define Herwig_StandardMatchers_H
11
// This is the declaration of the AnyMatcher,
12
13
14
#include "ThePEG/PDT/Matcher.h"
15
#include "ThePEG/Repository/CurrentGenerator.h"
16
#include "ThePEG/PDF/BeamParticleData.h"
17
#include "ThePEG/PDT/EnumParticles.h"
18
19
namespace
Herwig
{
20
using namespace
ThePEG
;
21
37
struct
PhotonMatcher
:
public
MatcherType
{
39
typedef
PhotonMatcher
CC
;
42
static
bool
Check
(
const
ParticleData
& pd) {
43
return
pd.
id
()==
ParticleID::gamma
;
44
}
46
static
string
className
() {
return
"Photon"
; }
47
};
48
52
typedef
Matcher<PhotonMatcher>
MatchPhoton
;
53
57
struct
TopMatcher
:
public
MatcherType
{
59
typedef
TopMatcher
CC
;
62
static
bool
Check
(
const
ParticleData
& pd) {
63
return
abs(pd.
id
())==
ParticleID::t
;
64
}
66
static
string
className
() {
return
"Top"
; }
67
};
68
72
typedef
Matcher<TopMatcher>
MatchTop
;
73
77
struct
BottomMatcher
:
public
MatcherType
{
79
typedef
BottomMatcher
CC
;
82
static
bool
Check
(
const
ParticleData
& pd) {
83
return
abs(pd.
id
())==
ParticleID::b
;
84
}
86
static
string
className
() {
return
"Bottom"
; }
87
};
88
92
typedef
Matcher<BottomMatcher>
MatchBottom
;
93
97
struct
HadronMatcher
:
public
MatcherType
{
99
typedef
HadronMatcher
CC
;
102
static
bool
Check
(
const
ParticleData
& pd) {
103
if
(pd.
id
() !=
ParticleID::gamma
)
return
Check
(pd.
id
());
104
else
{
105
Ptr<BeamParticleData>::const_pointer beam =
106
dynamic_ptr_cast< Ptr<BeamParticleData>::const_pointer>(&pd);
107
return
beam && beam->pdf();
108
}
109
}
112
static
bool
Check
(
long
id
) {
113
bool
hadron = (
id
/10)%10 && (
id
/100)%10;
114
if
(hadron)
return
true
;
115
// special for gamma when acting like a hadron
116
if
(
id
!=
ParticleID::gamma
)
return
false
;
117
tcPDPtr
gamma =
CurrentGenerator::current
().
getParticleData
(
ParticleID::gamma
);
118
Ptr<BeamParticleData>::const_pointer beam =
119
dynamic_ptr_cast< Ptr<BeamParticleData>::const_pointer>(gamma);
120
return
beam && beam->pdf();
121
}
123
static
string
className
() {
return
"Hadron"
; }
124
};
126
typedef
Matcher<HadronMatcher>
MatchHadron
;
127
131
struct
WBosonMatcher
:
public
MatcherType
{
133
typedef
WBosonMatcher
CC
;
136
static
bool
Check
(
const
ParticleData
& pd) {
137
return
abs(pd.
id
())==
ParticleID::Wplus
;
138
}
140
static
string
className
() {
return
"WBoson"
; }
141
};
142
146
typedef
Matcher<WBosonMatcher>
MatchWBoson
;
147
151
struct
ZBosonMatcher
:
public
MatcherType
{
153
typedef
ZBosonMatcher
CC
;
156
static
bool
Check
(
const
ParticleData
& pd) {
157
return
abs(pd.
id
())==
ParticleID::Z0
;
158
}
160
static
string
className
() {
return
"ZBoson"
; }
161
};
162
166
typedef
Matcher<ZBosonMatcher>
MatchZBoson
;
167
171
struct
HiggsBosonMatcher
:
public
MatcherType
{
173
typedef
HiggsBosonMatcher
CC
;
176
static
bool
Check
(
const
ParticleData
& pd) {
177
return
abs(pd.
id
())==
ParticleID::h0
;
178
}
180
static
string
className
() {
return
"HiggsBoson"
; }
181
};
182
186
typedef
Matcher<HiggsBosonMatcher>
MatchHiggsBoson
;
187
191
struct
ChargedLeptonMatcher
:
public
MatcherType
{
193
typedef
ChargedLeptonMatcher
CC
;
196
static
bool
Check
(
const
ParticleData
& pd) {
197
return
Check
(pd.
id
());
198
}
199
static
bool
Check
(
long
id
) {
200
return
abs(
id
) > 10 && abs(
id
) <= 20 && abs(
id
)%2!=0;
201
}
202
204
static
string
className
() {
return
"ChargedLepton"
; }
205
};
207
typedef
Matcher<ChargedLeptonMatcher>
MatchChargedLepton
;
208
212
struct
LightParticleMatcher
:
public
MatcherType
{
214
typedef
LightParticleMatcher
CC
;
217
static
bool
Check
(
const
ParticleData
& pd) {
218
return
pd.
id
()!=22 && abs(pd.
id
()) > 6 && abs(pd.
id
())!=11 &&
219
abs(pd.
id
())!=13 && abs(pd.
id
())!=15 && abs(pd.
mass
())<=GeV;
220
}
222
static
string
className
() {
return
"LightParticle"
; }
223
};
224
228
typedef
Matcher<LightParticleMatcher>
MatchLightParticle
;
229
230
}
231
#endif
/* Herwig_StandardMatchers_H */
ThePEG::CurrentGenerator::current
static EventGenerator & current()
ThePEG::EventGenerator::getParticleData
PDPtr getParticleData(PID id) const
ThePEG::Matcher
ThePEG::ParticleData
ThePEG::ParticleData::id
long id() const
ThePEG::ParticleData::mass
Energy mass(Energy)
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Herwig::MatchLightParticle
Matcher< LightParticleMatcher > MatchLightParticle
Gives a MatcherBase class based on LightParticleatcher.
Definition:
StandardMatchers.h:228
Herwig::MatchZBoson
Matcher< ZBosonMatcher > MatchZBoson
Gives a MatcherBase class based on ZBosonMatcher.
Definition:
StandardMatchers.h:166
Herwig::MatchBottom
Matcher< BottomMatcher > MatchBottom
Gives a MatcherBase class based on BottomMatcher.
Definition:
StandardMatchers.h:92
Herwig::MatchWBoson
Matcher< WBosonMatcher > MatchWBoson
Gives a MatcherBase class based on WBosonMatcher.
Definition:
StandardMatchers.h:146
Herwig::MatchChargedLepton
Matcher< ChargedLeptonMatcher > MatchChargedLepton
Gives a MatcherBase class based on ChargedLeptonMatcher.
Definition:
StandardMatchers.h:207
Herwig::MatchTop
Matcher< TopMatcher > MatchTop
Gives a MatcherBase class based on TopMatcher.
Definition:
StandardMatchers.h:72
Herwig::MatchHadron
Matcher< HadronMatcher > MatchHadron
Gives a MatcherBase class based on HadronMatcher.
Definition:
StandardMatchers.h:126
Herwig::MatchHiggsBoson
Matcher< HiggsBosonMatcher > MatchHiggsBoson
Gives a MatcherBase class based on HiggsBosonMatcher.
Definition:
StandardMatchers.h:186
Herwig::MatchPhoton
Matcher< PhotonMatcher > MatchPhoton
Gives a MatcherBase class based on PhotonMatcher.
Definition:
StandardMatchers.h:52
ThePEG::ParticleID::Z0
Z0
ThePEG::ParticleID::gamma
gamma
ThePEG::ParticleID::b
b
ThePEG::ParticleID::h0
h0
ThePEG::ParticleID::t
t
ThePEG::ParticleID::Wplus
Wplus
ThePEG
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
Herwig::BottomMatcher
A Matcher class which matches bottom quarks.
Definition:
StandardMatchers.h:77
Herwig::BottomMatcher::className
static string className()
A simplified but unique class name.
Definition:
StandardMatchers.h:86
Herwig::BottomMatcher::Check
static bool Check(const ParticleData &pd)
The main static function to check if a given particle type pd matches.
Definition:
StandardMatchers.h:82
Herwig::BottomMatcher::CC
BottomMatcher CC
Typedef the class matching the complex conjugate particles.
Definition:
StandardMatchers.h:79
Herwig::ChargedLeptonMatcher
A Matcher class which matches any charged lepton.
Definition:
StandardMatchers.h:191
Herwig::ChargedLeptonMatcher::className
static string className()
A simplified but unique class name.
Definition:
StandardMatchers.h:204
Herwig::ChargedLeptonMatcher::Check
static bool Check(const ParticleData &pd)
The main static function to check if a given particle type pd matches.
Definition:
StandardMatchers.h:196
Herwig::ChargedLeptonMatcher::CC
ChargedLeptonMatcher CC
Typedef the class matching the complex conjugate particles.
Definition:
StandardMatchers.h:193
Herwig::HadronMatcher
A Matcher class which matches any hadron.
Definition:
StandardMatchers.h:97
Herwig::HadronMatcher::Check
static bool Check(const ParticleData &pd)
The main static function to check if a given particle type pd matches.
Definition:
StandardMatchers.h:102
Herwig::HadronMatcher::className
static string className()
A simplified but unique class name.
Definition:
StandardMatchers.h:123
Herwig::HadronMatcher::CC
HadronMatcher CC
Typedef the class matching the complex conjugate particles.
Definition:
StandardMatchers.h:99
Herwig::HadronMatcher::Check
static bool Check(long id)
The main static function to check if a given particle with type id matches.
Definition:
StandardMatchers.h:112
Herwig::HiggsBosonMatcher
A Matcher class which matches Higgs bosons.
Definition:
StandardMatchers.h:171
Herwig::HiggsBosonMatcher::CC
HiggsBosonMatcher CC
Typedef the class matching the complex conjugate particles.
Definition:
StandardMatchers.h:173
Herwig::HiggsBosonMatcher::className
static string className()
A simplified but unique class name.
Definition:
StandardMatchers.h:180
Herwig::HiggsBosonMatcher::Check
static bool Check(const ParticleData &pd)
The main static function to check if a given particle type pd matches.
Definition:
StandardMatchers.h:176
Herwig::LightParticleMatcher
A Matcher class which matches any light (<1GeV) particles other than the photon.
Definition:
StandardMatchers.h:212
Herwig::LightParticleMatcher::Check
static bool Check(const ParticleData &pd)
The main static function to check if a given particle type pd matches.
Definition:
StandardMatchers.h:217
Herwig::LightParticleMatcher::CC
LightParticleMatcher CC
Typedef the class matching the complex conjugate particles.
Definition:
StandardMatchers.h:214
Herwig::LightParticleMatcher::className
static string className()
A simplified but unique class name.
Definition:
StandardMatchers.h:222
Herwig::PhotonMatcher
This file declare a set of standard matcher classes in addition to those defined in ThePEG.
Definition:
StandardMatchers.h:37
Herwig::PhotonMatcher::Check
static bool Check(const ParticleData &pd)
The main static function to check if a given particle type pd matches.
Definition:
StandardMatchers.h:42
Herwig::PhotonMatcher::className
static string className()
A simplified but unique class name.
Definition:
StandardMatchers.h:46
Herwig::PhotonMatcher::CC
PhotonMatcher CC
Typedef the class matching the complex conjugate particles.
Definition:
StandardMatchers.h:39
Herwig::TopMatcher
A Matcher class which matches top quarks.
Definition:
StandardMatchers.h:57
Herwig::TopMatcher::CC
TopMatcher CC
Typedef the class matching the complex conjugate particles.
Definition:
StandardMatchers.h:59
Herwig::TopMatcher::Check
static bool Check(const ParticleData &pd)
The main static function to check if a given particle type pd matches.
Definition:
StandardMatchers.h:62
Herwig::TopMatcher::className
static string className()
A simplified but unique class name.
Definition:
StandardMatchers.h:66
Herwig::WBosonMatcher
A Matcher class which matches W bosons.
Definition:
StandardMatchers.h:131
Herwig::WBosonMatcher::CC
WBosonMatcher CC
Typedef the class matching the complex conjugate particles.
Definition:
StandardMatchers.h:133
Herwig::WBosonMatcher::className
static string className()
A simplified but unique class name.
Definition:
StandardMatchers.h:140
Herwig::WBosonMatcher::Check
static bool Check(const ParticleData &pd)
The main static function to check if a given particle type pd matches.
Definition:
StandardMatchers.h:136
Herwig::ZBosonMatcher
A Matcher class which matches Z bosons.
Definition:
StandardMatchers.h:151
Herwig::ZBosonMatcher::className
static string className()
A simplified but unique class name.
Definition:
StandardMatchers.h:160
Herwig::ZBosonMatcher::Check
static bool Check(const ParticleData &pd)
The main static function to check if a given particle type pd matches.
Definition:
StandardMatchers.h:156
Herwig::ZBosonMatcher::CC
ZBosonMatcher CC
Typedef the class matching the complex conjugate particles.
Definition:
StandardMatchers.h:153
ThePEG::MatcherType
Generated on Thu Jun 20 2024 17:50:53 for Herwig by
1.9.6