Loading [MathJax]/jax/output/SVG/config.js
ATLAS Offline Software
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Properties
Related Functions
:
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
v
w
x
z
Files
File List
File Members
All
$
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Variables
$
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Enumerations
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
v
x
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
GitLab
LXR
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
Pages
PhysicsAnalysis
TruthParticleID
McParticleEventTPCnv
src
McEtIsolVisitor.h
Go to the documentation of this file.
1
3
/*
4
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
5
*/
6
7
// McEtIsolVisitor.h
8
// Header file for class McEtIsolVisitor
9
// Author: S.Binet<binet@cern.ch>
11
#ifndef MCPARTICLEEVENTTPCNV_MCETISOLVISITOR_H
12
#define MCPARTICLEEVENTTPCNV_MCETISOLVISITOR_H
13
14
// STL includes
15
#include <stdexcept>
16
17
// Gaudi includes
18
#include "GaudiKernel/MsgStream.h"
19
20
// McParticleKernel includes
21
#include "
McParticleKernel/ITruthParticleVisitor.h
"
22
23
// McParticleEvent includes
24
#include "
McParticleEvent/TruthEtIsolations.h
"
25
26
// Forward declaration
27
28
template
<
class
TruthParticleContainer_pX>
29
class
McEtIsolVisitor
:
public
ITruthParticleVisitor
30
{
31
33
// Public methods:
35
public
:
36
39
McEtIsolVisitor
(
const
McEtIsolVisitor
& rhs ) :
40
ITruthParticleVisitor
(rhs),
41
m_msg
( rhs.
m_msg
),
42
m_persObj
( rhs.
m_persObj
),
43
m_etIsols
( rhs.
m_etIsols
)
44
{}
45
48
McEtIsolVisitor
(
const
TruthParticleContainer_pX& persObj,
49
TruthEtIsolations
* etIsols,
50
MsgStream&
msg
) :
51
ITruthParticleVisitor
(),
52
m_msg
( &
msg
),
53
m_persObj
( persObj ),
54
m_etIsols
( etIsols )
55
{}
56
59
virtual
~McEtIsolVisitor
();
60
62
// Const methods:
64
68
virtual
void
visit
(
TruthParticle
* truthParticle )
const
;
69
71
// Non-const methods:
73
75
// Protected methods:
77
protected
:
78
81
McEtIsolVisitor
();
82
85
McEtIsolVisitor
&
operator=
(
const
McEtIsolVisitor
& rhs );
86
88
// Private data:
90
private
:
91
92
MsgStream*
m_msg
;
93
const
TruthParticleContainer_pX&
m_persObj
;
94
95
TruthEtIsolations
*
m_etIsols
;
96
};
97
99
// Inline methods:
101
102
template
<
class
TruthParticleContainer_pX>
103
McEtIsolVisitor<TruthParticleContainer_pX>::~McEtIsolVisitor
()
104
{}
105
106
template
<
class
TruthParticleContainer_pX>
107
void
108
McEtIsolVisitor<TruthParticleContainer_pX>::visit
(
TruthParticle
*
mc
)
const
109
{
110
if
( 0 ==
mc
) {
111
return
;
112
}
113
114
const
int
barcode
=
mc
->barcode();
115
try
{
116
const
std::vector<float>& etIsolations = m_persObj.etIsol(
barcode
);
117
if
( etIsolations.empty() ) {
118
// do nothing: no particle will be registered in the TruthEtIsolations.
119
}
else
{
120
const
HepMC::GenParticle
* hepMcPart =
mc
->genParticle();
121
for
( std::size_t j = 0;
122
j !=
static_cast<
std::size_t
>
(
TruthParticleParameters::NbrOfCones
);
123
++j ) {
124
m_etIsols->setEtIsol( hepMcPart,
125
static_cast<
TruthParticleParameters::ConeSize
>
(j),
126
etIsolations[j] );
127
128
}
129
}
130
}
catch
(std::out_of_range&
e
) {
131
*m_msg << MSG::WARNING
132
<<
"Caught an out of range exception for this barcode: "
<<
barcode
133
<<
endmsg
134
<<
e
.what() <<
endmsg
135
<<
"This particle won't have any et isolation informations !!"
136
<<
endmsg
;
137
// we don't want to have a buggy McTruth, do we ?
138
throw
std::runtime_error(
"Reqested an UNKNOWN TruthParticle/barcode"
);
139
}
140
141
return
;
142
}
143
144
#endif //> MCPARTICLEEVENTTPCNV_MCETISOLVISITOR_H
AllowedVariables::e
e
Definition:
AsgElectronSelectorTool.cxx:37
TruthParticleParameters::NbrOfCones
@ NbrOfCones
Definition:
TruthParticleParamDefs.h:31
McEtIsolVisitor::visit
virtual void visit(TruthParticle *truthParticle) const
The method to visit a TruthParticle to apply further modifications to the instance at hand.
Definition:
McEtIsolVisitor.h:108
TruthParticle
Definition:
PhysicsAnalysis/TruthParticleID/McParticleEvent/McParticleEvent/TruthParticle.h:58
TruthParticleParameters::ConeSize
ConeSize
Enum for Cone size indexes (for isolation)
Definition:
TruthParticleParamDefs.h:20
McEtIsolVisitor
Definition:
McEtIsolVisitor.h:30
TruthEtIsolations.h
mc
Definition:
mc.PG_single_nu_valid.py:1
McEtIsolVisitor::McEtIsolVisitor
McEtIsolVisitor(const TruthParticleContainer_pX &persObj, TruthEtIsolations *etIsols, MsgStream &msg)
Constructor with parameters:
Definition:
McEtIsolVisitor.h:48
ITruthParticleVisitor
Definition:
ITruthParticleVisitor.h:30
McEtIsolVisitor::operator=
McEtIsolVisitor & operator=(const McEtIsolVisitor &rhs)
Assignment operator:
endmsg
#define endmsg
Definition:
AnalysisConfig_Ntuple.cxx:63
HepMC::barcode
int barcode(const T *p)
Definition:
Barcode.h:16
McEtIsolVisitor::McEtIsolVisitor
McEtIsolVisitor(const McEtIsolVisitor &rhs)
Copy constructor:
Definition:
McEtIsolVisitor.h:39
ITruthParticleVisitor.h
McEtIsolVisitor::m_msg
MsgStream * m_msg
Definition:
McEtIsolVisitor.h:92
McEtIsolVisitor::~McEtIsolVisitor
virtual ~McEtIsolVisitor()
Destructor:
Definition:
McEtIsolVisitor.h:103
McEtIsolVisitor::McEtIsolVisitor
McEtIsolVisitor()
Default constructor:
TruthEtIsolations
Definition:
TruthEtIsolations.h:40
McEtIsolVisitor::m_persObj
const TruthParticleContainer_pX & m_persObj
Definition:
McEtIsolVisitor.h:93
python.AutoConfigFlags.msg
msg
Definition:
AutoConfigFlags.py:7
McEtIsolVisitor::m_etIsols
TruthEtIsolations * m_etIsols
Definition:
McEtIsolVisitor.h:95
GenParticle
@ GenParticle
Definition:
TruthClasses.h:30
Generated on Sun Mar 30 2025 21:14:28 for ATLAS Offline Software by
1.8.18