ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Reconstruction
egamma
egammaTrackTools
src
EMExtrapolationTools.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef EGAMMATRACKTOOLS_EMEXTRAPOLATIONTOOLS_H
6
#define EGAMMATRACKTOOLS_EMEXTRAPOLATIONTOOLS_H
12
/********************************************************************
13
NAME: EMExtrapolationTools.h
14
PACKAGE: offline/Reconstruction/egammaTrackTools
15
AUTHORS: T. Koffas, C.Anastopoulos
16
PURPOSE: Tool which propagate track and vertices to the calorimeter cluster
17
********************************************************************/
18
19
#include "
AthenaBaseComps/AthAlgTool.h
"
20
#include "GaudiKernel/EventContext.h"
21
#include "GaudiKernel/ToolHandle.h"
22
#include "
StoreGate/ReadHandleKey.h
"
23
24
#include "
egammaInterfaces/IEMExtrapolationTools.h
"
25
26
#include "
TrkNeutralParameters/NeutralParameters.h
"
27
#include "
TrkParameters/TrackParameters.h
"
28
#include "
xAODCaloEvent/CaloClusterFwd.h
"
29
#include "
xAODTracking/TrackParticleFwd.h
"
30
#include "
xAODTracking/VertexFwd.h
"
31
32
#include "
RecoToolInterfaces/IParticleCaloExtensionTool.h
"
33
#include "
TrkCaloExtension/CaloExtensionCollection.h
"
34
#include "
TrkCaloExtension/CaloExtensionHelpers.h
"
35
#include "
TrkExInterfaces/IExtrapolator.h
"
36
37
class
TRT_ID
;
38
class
CaloDepthTool
;
39
40
namespace
Trk
{
41
class
INeutralParticleParameterCalculator
;
42
}
43
44
class
EMExtrapolationTools
final
45
:
virtual
public
IEMExtrapolationTools
46
,
public
AthAlgTool
47
{
48
49
public
:
51
EMExtrapolationTools
(
const
std::string&
type
,
52
const
std::string& name,
53
const
IInterface* parent);
55
virtual
~EMExtrapolationTools
() =
default
;
56
58
virtual
StatusCode
initialize
() override final;
59
60
virtual
std
::
pair
<
std
::
vector
<
CaloSampling
::
CaloSample
>,
61
std
::
vector
<
std
::
unique_ptr
<
Trk
::Surface>>>
62
getClusterLayerSurfaces
(
63
const
xAOD
::
CaloCluster
& cluster,
64
const
CaloDetDescrManager
& caloDD)
const
override final;
67
virtual StatusCode
getMatchAtCalo
(
68
const
EventContext& ctx,
69
const
xAOD
::
CaloCluster
& cluster,
70
const
xAOD
::TrackParticle& trkPB,
71
const
std
::
vector
<
CaloSampling
::
CaloSample
>& samples,
72
const
std
::
vector
<
std
::
unique_ptr
<
Trk
::Surface>>& surfaces,
73
std
::array<
double
, 4>&
eta
,
74
std
::array<
double
, 4>&
phi
,
75
std
::array<
double
, 4>& deltaEta,
76
std
::array<
double
, 4>&
deltaPhi
,
77
unsigned
int
extrapFrom =
fromPerigee
)
const
override final;
78
81
virtual
bool
matchesAtCalo
(
const
xAOD
::
CaloCluster
* cluster,
82
const
xAOD
::
Vertex
* vertex,
83
float
etaAtCalo,
84
float
phiAtCalo)
const
override final;
85
88
virtual
bool
getEtaPhiAtCalo
(
const
EventContext& ctx,
89
const
xAOD
::
Vertex
* vertex,
90
float
* etaAtCalo,
91
float
* phiAtCalo)
const
override final;
92
95
virtual
bool
getEtaPhiAtCalo
(
const
EventContext& ctx,
96
const
Trk
::TrackParameters* trkPar,
97
float
* etaAtCalo,
98
float
* phiAtCalo)
const
override final;
99
102
Amg
::
Vector3D
getMomentumAtVertex
(
const
EventContext& ctx,
103
const
xAOD
::
Vertex
&,
104
unsigned
int
)
const
override final;
105
108
Amg
::
Vector3D
getMomentumAtVertex
(
const
EventContext& ctx,
109
const
xAOD
::
Vertex
&,
110
bool
reuse = true)
const
override final;
111
112
private
:
115
int
getTRTsection
(
const
xAOD
::TrackParticle* trkPB)
const
;
116
118
ToolHandle<
Trk
::IParticleCaloExtensionTool>
m_ParticleCaloExtensionTool
{
119
this
,
120
"CaloExtensionTool"
,
121
"Trk::ParticleCaloExtensionTool/EMParticleCaloExtensionTool"
122
};
123
125
ToolHandle<Trk::IExtrapolator>
m_extrapolator
{
126
this
,
127
"Extrapolator"
,
128
"Trk::Extrapolator/AtlasExtrapolator"
129
};
130
131
// vertex-to-cluster match cuts used in matchesAtCalo
132
Gaudi::Property<double>
m_narrowDeltaPhi
{
this
,
"NarrowDeltaPhi"
, 0.05 };
133
Gaudi::Property<double>
m_narrowDeltaPhiTRTbarrel
{
this
,
134
"NarrowDeltaPhiTRTbarrel"
,
135
0.02 };
136
Gaudi::Property<double>
m_narrowDeltaPhiTRTendcap
{
this
,
137
"NarrowDeltaPhiTRTendcap"
,
138
0.02 };
139
Gaudi::Property<double>
m_narrowDeltaEta
{
this
,
"NarrowDeltaEta"
, 0.05 };
140
Gaudi::Property<double>
m_TRTbarrelDeltaEta
{
this
,
141
"TRTbarrelDeltaEta"
,
142
0.35 };
143
Gaudi::Property<double>
m_TRTendcapDeltaEta
{
this
,
"TRTendcapDeltaEta"
, 0.2 };
144
145
// ID TRT helper
146
const
TRT_ID
*
m_trtId
;
147
Gaudi::Property<bool>
m_enableTRT
{
this
,
"EnableTRT"
,
true
};
148
};
149
150
#endif
eta
Scalar eta() const
pseudorapidity method
Definition
AmgMatrixBasePlugin.h:83
deltaPhi
Scalar deltaPhi(const MatrixBase< Derived > &vec) const
Definition
AmgMatrixBasePlugin.h:112
phi
Scalar phi() const
phi method
Definition
AmgMatrixBasePlugin.h:67
AthAlgTool.h
CaloSample
CaloCell_ID::CaloSample CaloSample
Definition
CaloCellCollector.cxx:18
CaloClusterFwd.h
CaloExtensionCollection.h
CaloExtensionHelpers.h
Vertex
boost::graph_traits< boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS > >::vertex_descriptor Vertex
Definition
FPGATrackSimGNNRoadMakerTool.h:35
IEMExtrapolationTools.h
IExtrapolator.h
IParticleCaloExtensionTool.h
NeutralParameters.h
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition
GeoPrimitives.h:47
TrackParticleFwd.h
TrackParameters.h
VertexFwd.h
AthAlgTool::AthAlgTool
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Definition
AthAlgTool.cxx:16
CaloCluster
Principal data class for CaloCell clusters.
Definition
Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:79
CaloDepthTool
Implementation of the ICaloDepthTool interface.Given a Track direction, checks if it is in the Calori...
Definition
CaloDepthTool.h:47
CaloDetDescrManager
This class provides the client interface for accessing the detector description information common to...
Definition
CaloDetDescrManager.h:469
CaloSampling
provides Calorimeter Sampling enum
Definition
Calorimeter/CaloGeoHelpers/CaloGeoHelpers/CaloSampling.h:17
EMExtrapolationTools::m_ParticleCaloExtensionTool
ToolHandle< Trk::IParticleCaloExtensionTool > m_ParticleCaloExtensionTool
Used for extrapolation to the calo.
Definition
EMExtrapolationTools.h:118
EMExtrapolationTools::getClusterLayerSurfaces
virtual std::pair< std::vector< CaloSampling::CaloSample >, std::vector< std::unique_ptr< Trk::Surface > > > getClusterLayerSurfaces(const xAOD::CaloCluster &cluster, const CaloDetDescrManager &caloDD) const override final
Definition
EMExtrapolationTools.cxx:96
EMExtrapolationTools::m_extrapolator
ToolHandle< Trk::IExtrapolator > m_extrapolator
Used for extrapolation to the conversion vertex.
Definition
EMExtrapolationTools.h:125
EMExtrapolationTools::m_narrowDeltaPhi
Gaudi::Property< double > m_narrowDeltaPhi
Definition
EMExtrapolationTools.h:132
EMExtrapolationTools::~EMExtrapolationTools
virtual ~EMExtrapolationTools()=default
Destructor.
EMExtrapolationTools::getMatchAtCalo
virtual StatusCode getMatchAtCalo(const EventContext &ctx, const xAOD::CaloCluster &cluster, const xAOD::TrackParticle &trkPB, const std::vector< CaloSampling::CaloSample > &samples, const std::vector< std::unique_ptr< Trk::Surface > > &surfaces, std::array< double, 4 > &eta, std::array< double, 4 > &phi, std::array< double, 4 > &deltaEta, std::array< double, 4 > &deltaPhi, unsigned int extrapFrom=fromPerigee) const override final
get eta, phi, deltaEta, and deltaPhi at the four calorimeter layers given the Trk::ParametersBase.
Definition
EMExtrapolationTools.cxx:157
EMExtrapolationTools::m_TRTendcapDeltaEta
Gaudi::Property< double > m_TRTendcapDeltaEta
Definition
EMExtrapolationTools.h:143
EMExtrapolationTools::m_TRTbarrelDeltaEta
Gaudi::Property< double > m_TRTbarrelDeltaEta
Definition
EMExtrapolationTools.h:140
EMExtrapolationTools::initialize
virtual StatusCode initialize() override final
initialize method
Definition
EMExtrapolationTools.cxx:71
EMExtrapolationTools::m_narrowDeltaPhiTRTendcap
Gaudi::Property< double > m_narrowDeltaPhiTRTendcap
Definition
EMExtrapolationTools.h:136
EMExtrapolationTools::m_narrowDeltaEta
Gaudi::Property< double > m_narrowDeltaEta
Definition
EMExtrapolationTools.h:139
EMExtrapolationTools::getMomentumAtVertex
Amg::Vector3D getMomentumAtVertex(const EventContext &ctx, const xAOD::Vertex &, unsigned int) const override final
get the momentum of the i-th trackParticle assiciated to the vertex at vertex (designed for conversio...
Definition
EMExtrapolationTools.cxx:401
EMExtrapolationTools::matchesAtCalo
virtual bool matchesAtCalo(const xAOD::CaloCluster *cluster, const xAOD::Vertex *vertex, float etaAtCalo, float phiAtCalo) const override final
test for vertex-to-cluster match given also the positions at the calorimeter from the vertex extrapol...
Definition
EMExtrapolationTools.cxx:290
EMExtrapolationTools::getEtaPhiAtCalo
virtual bool getEtaPhiAtCalo(const EventContext &ctx, const xAOD::Vertex *vertex, float *etaAtCalo, float *phiAtCalo) const override final
get eta, phi at EM2 given a vertex which is converted to NeutralParameters.
Definition
EMExtrapolationTools.cxx:332
EMExtrapolationTools::getTRTsection
int getTRTsection(const xAOD::TrackParticle *trkPB) const
Return +/- 1 (2) if track is in positive/negative TRT barrel (endcap).
Definition
EMExtrapolationTools.cxx:482
EMExtrapolationTools::m_enableTRT
Gaudi::Property< bool > m_enableTRT
Definition
EMExtrapolationTools.h:147
EMExtrapolationTools::m_trtId
const TRT_ID * m_trtId
Definition
EMExtrapolationTools.h:146
EMExtrapolationTools::m_narrowDeltaPhiTRTbarrel
Gaudi::Property< double > m_narrowDeltaPhiTRTbarrel
Definition
EMExtrapolationTools.h:133
EMExtrapolationTools::EMExtrapolationTools
EMExtrapolationTools(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters.
Definition
EMExtrapolationTools.cxx:61
IEMExtrapolationTools
Definition
IEMExtrapolationTools.h:28
IEMExtrapolationTools::fromPerigee
@ fromPerigee
from the perigee of TrackParticle
Definition
IEMExtrapolationTools.h:37
TRT_ID
This is an Identifier helper class for the TRT subdetector.
Definition
TRT_ID.h:84
Trk::INeutralParticleParameterCalculator
interface for tools taking a two-track vertex and creating a neutral track from it.
Definition
INeutralParticleParameterCalculator.h:39
pair
STL class.
unique_ptr
STL class.
vector
Definition
MultiHisto.h:13
const
Amg
Definition of ATLAS Math & Geometry primitives (Amg).
Definition
AmgStringHelpers.h:19
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
std
STL namespace.
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition
ICaloAffectedTool.h:24
type
private
#define private
Definition
testRead.cxx:27
Generated on
for ATLAS Offline Software by
1.17.0