ATLAS Offline Software
Loading...
Searching...
No Matches
PhysicsAnalysis
TruthParticleID
McParticleEventTPCnv
src
McEtIsolVisitor.h
Go to the documentation of this file.
1
2
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
endmsg
#define endmsg
Definition
AnalysisConfig_Ntuple.cxx:63
ITruthParticleVisitor.h
TruthEtIsolations.h
ITruthParticleVisitor::ITruthParticleVisitor
ITruthParticleVisitor()
Default constructor:
Definition
ITruthParticleVisitor.cxx:25
McEtIsolVisitor::m_persObj
const TruthParticleContainer_pX & m_persObj
Definition
McEtIsolVisitor.h:93
McEtIsolVisitor::McEtIsolVisitor
McEtIsolVisitor(const McEtIsolVisitor &rhs)
Copy constructor:
Definition
McEtIsolVisitor.h:39
McEtIsolVisitor::~McEtIsolVisitor
virtual ~McEtIsolVisitor()
Destructor:
Definition
McEtIsolVisitor.h:103
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
McEtIsolVisitor::McEtIsolVisitor
McEtIsolVisitor()
Default constructor:
McEtIsolVisitor::m_etIsols
TruthEtIsolations * m_etIsols
Definition
McEtIsolVisitor.h:95
McEtIsolVisitor::operator=
McEtIsolVisitor & operator=(const McEtIsolVisitor &rhs)
Assignment operator:
McEtIsolVisitor::McEtIsolVisitor
McEtIsolVisitor(const TruthParticleContainer_pX &persObj, TruthEtIsolations *etIsols, MsgStream &msg)
Constructor with parameters:
Definition
McEtIsolVisitor.h:48
McEtIsolVisitor::m_msg
MsgStream * m_msg
Definition
McEtIsolVisitor.h:92
TruthEtIsolations
container which holds isolation informations for a given HepMC::GenParticle (labelled by barcode) for...
Definition
TruthEtIsolations.h:40
TruthParticle
(HepMC) Monte Carlo particle.
Definition
PhysicsAnalysis/TruthParticleID/McParticleEvent/McParticleEvent/TruthParticle.h:58
TruthParticleParameters::ConeSize
ConeSize
Enum for Cone size indexes (for isolation)
Definition
TruthParticleParamDefs.h:20
TruthParticleParameters::NbrOfCones
@ NbrOfCones
Definition
TruthParticleParamDefs.h:31
mc
Definition
mc.Py8EG_A2MSTW2008LO_minbias_inelastic.py:1
msg
MsgStream & msg
Definition
testRead.cxx:32
Generated on
for ATLAS Offline Software by
1.14.0