ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Reconstruction
egamma
egammaInterfaces
egammaInterfaces
IEMExtrapolationTools.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef EGAMMAINTERFACES_IEMEXTRAPOLATIONTOOLS_H
6
#define EGAMMAINTERFACES_IEMEXTRAPOLATIONTOOLS_H
7
8
#include "GaudiKernel/AlgTool.h"
9
#include "GaudiKernel/EventContext.h"
10
#include "
TrkCaloExtension/CaloExtension.h
"
11
#include "
TrkEventPrimitives/PropDirection.h
"
12
#include "
TrkNeutralParameters/NeutralParameters.h
"
13
#include "
TrkParameters/TrackParameters.h
"
14
#include "
xAODCaloEvent/CaloCluster.h
"
15
#include "
xAODTracking/TrackParticleFwd.h
"
16
#include "
xAODTracking/VertexFwd.h
"
17
18
#include <array>
19
#include <memory>
20
#include <unordered_map>
21
22
class
CaloDetDescrManager
;
23
static
const
InterfaceID
IID_IEMExtrapolationTools
(
"IEMExtrapolationTools"
,
24
1,
25
0);
26
27
class
IEMExtrapolationTools
:
virtual
public
IAlgTool
28
{
29
30
public
:
32
enum
TrkExtrapDef
33
{
35
fromLastMeasurement
,
37
fromPerigee
,
39
fromPerigeeRescaled
,
41
fromCaloToPerigee
42
};
43
44
virtual
~IEMExtrapolationTools
(){};
45
47
static
const
InterfaceID&
interfaceID
();
48
50
virtual
StatusCode
initialize
() = 0;
51
52
virtual
std::pair<std::vector<CaloSampling::CaloSample>,
53
std::vector<std::unique_ptr<Trk::Surface>>>
54
getClusterLayerSurfaces
(
const
xAOD::CaloCluster
& cluster,
55
const
CaloDetDescrManager
& caloDD)
const
= 0;
56
61
virtual
StatusCode
getMatchAtCalo
(
62
const
EventContext& ctx,
63
const
xAOD::CaloCluster
& cluster,
64
const
xAOD::TrackParticle
& trkPB,
65
const
std::vector<CaloSampling::CaloSample>& samples,
66
const
std::vector<std::unique_ptr<Trk::Surface>>& surfaces,
67
std::array<double, 4>&
eta
,
68
std::array<double, 4>&
phi
,
69
std::array<double, 4>& deltaEta,
70
std::array<double, 4>&
deltaPhi
,
71
unsigned
int
extrapFrom =
fromPerigee
)
const
= 0;
72
75
virtual
bool
matchesAtCalo
(
const
xAOD::CaloCluster
* cluster,
76
const
xAOD::Vertex
* vertex,
77
float
etaAtCalo,
78
float
phiAtCalo)
const
= 0;
79
82
virtual
bool
getEtaPhiAtCalo
(
const
EventContext& ctx,
83
const
xAOD::Vertex
* vertex,
84
float
* etaAtCalo,
85
float
* phiAtCalo)
const
= 0;
86
89
virtual
bool
getEtaPhiAtCalo
(
const
EventContext& ctx,
90
const
Trk::TrackParameters
* trkPar,
91
float
* etaAtCalo,
92
float
* phiAtCalo)
const
= 0;
93
96
virtual
Amg::Vector3D
getMomentumAtVertex
(
const
EventContext& ctx,
97
const
xAOD::Vertex
&,
98
unsigned
int
)
const
= 0;
99
102
virtual
Amg::Vector3D
getMomentumAtVertex
(
const
EventContext& ctx,
103
const
xAOD::Vertex
&,
104
bool
reuse =
true
)
const
= 0;
105
};
106
107
inline
const
InterfaceID&
108
IEMExtrapolationTools::interfaceID
()
109
{
110
return
IID_IEMExtrapolationTools
;
111
}
112
113
#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
CaloCluster.h
IID_IEMExtrapolationTools
static const InterfaceID IID_IEMExtrapolationTools("IEMExtrapolationTools", 1, 0)
NeutralParameters.h
PropDirection.h
TrackParticleFwd.h
TrackParameters.h
CaloExtension.h
VertexFwd.h
CaloDetDescrManager
This class provides the client interface for accessing the detector description information common to...
Definition
CaloDetDescrManager.h:469
IEMExtrapolationTools
Definition
IEMExtrapolationTools.h:28
IEMExtrapolationTools::TrkExtrapDef
TrkExtrapDef
Enum for track extrapolation to calo.
Definition
IEMExtrapolationTools.h:33
IEMExtrapolationTools::fromPerigee
@ fromPerigee
from the perigee of TrackParticle
Definition
IEMExtrapolationTools.h:37
IEMExtrapolationTools::fromLastMeasurement
@ fromLastMeasurement
from the last measurement of TrackParticle
Definition
IEMExtrapolationTools.h:35
IEMExtrapolationTools::fromCaloToPerigee
@ fromCaloToPerigee
from the calo to the perigee - fast extrapolation
Definition
IEMExtrapolationTools.h:41
IEMExtrapolationTools::fromPerigeeRescaled
@ fromPerigeeRescaled
from the perigee of TrackParticle recaled by Ecluster
Definition
IEMExtrapolationTools.h:39
IEMExtrapolationTools::interfaceID
static const InterfaceID & interfaceID()
AlgTool interface methods.
Definition
IEMExtrapolationTools.h:108
IEMExtrapolationTools::matchesAtCalo
virtual bool matchesAtCalo(const xAOD::CaloCluster *cluster, const xAOD::Vertex *vertex, float etaAtCalo, float phiAtCalo) const =0
test for vertex-to-cluster match given also the positions at the calorimeter from the vertex extrapol...
IEMExtrapolationTools::getMomentumAtVertex
virtual Amg::Vector3D getMomentumAtVertex(const EventContext &ctx, const xAOD::Vertex &, bool reuse=true) const =0
get sum of the momenta at the vertex (designed for conversions).
IEMExtrapolationTools::getClusterLayerSurfaces
virtual std::pair< std::vector< CaloSampling::CaloSample >, std::vector< std::unique_ptr< Trk::Surface > > > getClusterLayerSurfaces(const xAOD::CaloCluster &cluster, const CaloDetDescrManager &caloDD) const =0
IEMExtrapolationTools::getEtaPhiAtCalo
virtual bool getEtaPhiAtCalo(const EventContext &ctx, const Trk::TrackParameters *trkPar, float *etaAtCalo, float *phiAtCalo) const =0
get eta, phi at EM2 given NeutralParameters.
IEMExtrapolationTools::getMomentumAtVertex
virtual Amg::Vector3D getMomentumAtVertex(const EventContext &ctx, const xAOD::Vertex &, unsigned int) const =0
get the momentum of the i-th trackParticle attached to the vertex at the vertex (designed for convers...
IEMExtrapolationTools::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 =0
get eta, phi, deltaEta, and deltaPhi at the four calorimeter layers given the Trk::ParametersBase.
IEMExtrapolationTools::getEtaPhiAtCalo
virtual bool getEtaPhiAtCalo(const EventContext &ctx, const xAOD::Vertex *vertex, float *etaAtCalo, float *phiAtCalo) const =0
get eta, phi at EM2 given a vertex which is converted to NeutralParameters.
IEMExtrapolationTools::initialize
virtual StatusCode initialize()=0
initialize method
IEMExtrapolationTools::~IEMExtrapolationTools
virtual ~IEMExtrapolationTools()
Definition
IEMExtrapolationTools.h:44
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition
GeoPrimitives.h:47
Trk::TrackParameters
ParametersBase< TrackParametersDim, Charged > TrackParameters
Definition
Tracking/TrkEvent/TrkParameters/TrkParameters/TrackParameters.h:27
xAOD::CaloCluster
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
Definition
Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloCluster.h:19
xAOD::TrackParticle
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Definition
Event/xAOD/xAODTracking/xAODTracking/TrackParticle.h:13
xAOD::Vertex
Vertex_v1 Vertex
Define the latest version of the vertex class.
Definition
Event/xAOD/xAODTracking/xAODTracking/Vertex.h:16
Generated on
for ATLAS Offline Software by
1.17.0