ATLAS Offline Software
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
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::TrkExtrapDef
TrkExtrapDef
Enum for track extrapolation to calo.
Definition:
IEMExtrapolationTools.h:33
IEMExtrapolationTools::fromCaloToPerigee
@ fromCaloToPerigee
from the calo to the perigee - fast extrapolation
Definition:
IEMExtrapolationTools.h:41
TrackParameters.h
phi
Scalar phi() const
phi method
Definition:
AmgMatrixBasePlugin.h:67
eta
Scalar eta() const
pseudorapidity method
Definition:
AmgMatrixBasePlugin.h:83
xAOD::deltaPhi
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner setEtaMap setEtaBin setIsTgcFailure setDeltaPt deltaPhi
Definition:
L2StandAloneMuon_v1.cxx:160
CaloExtension.h
PropDirection.h
NeutralParameters.h
IEMExtrapolationTools::fromPerigee
@ fromPerigee
from the perigee of TrackParticle
Definition:
IEMExtrapolationTools.h:37
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::~IEMExtrapolationTools
virtual ~IEMExtrapolationTools()
Definition:
IEMExtrapolationTools.h:44
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::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.
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition:
CaloCluster_v1.h:59
P4Helpers::deltaEta
double deltaEta(const I4Momentum &p1, const I4Momentum &p2)
Computes efficiently .
Definition:
P4Helpers.h:66
CaloCluster.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition:
PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
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::fromPerigeeRescaled
@ fromPerigeeRescaled
from the perigee of TrackParticle recaled by Ecluster
Definition:
IEMExtrapolationTools.h:39
Trk::ParametersBase
Definition:
ParametersBase.h:55
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::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...
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition:
GeoPrimitives.h:47
VertexFwd.h
IEMExtrapolationTools
Definition:
IEMExtrapolationTools.h:28
Trk::vertex
@ vertex
Definition:
MeasurementType.h:21
IEMExtrapolationTools::interfaceID
static const InterfaceID & interfaceID()
AlgTool interface methods.
Definition:
IEMExtrapolationTools.h:108
xAOD::Vertex_v1
Class describing a Vertex.
Definition:
Vertex_v1.h:42
CaloDetDescrManager
This class provides the client interface for accessing the detector description information common to...
Definition:
CaloDetDescrManager.h:473
TrackParticleFwd.h
IEMExtrapolationTools::initialize
virtual StatusCode initialize()=0
initialize method
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition:
TrackParticle_v1.h:43
IEMExtrapolationTools::fromLastMeasurement
@ fromLastMeasurement
from the last measurement of TrackParticle
Definition:
IEMExtrapolationTools.h:35
Generated on Thu Nov 7 2024 21:16:40 for ATLAS Offline Software by
1.8.18