ATLAS Offline Software
Loading...
Searching...
No Matches
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"
17
18#include <array>
19#include <memory>
20#include <unordered_map>
21
23static const InterfaceID IID_IEMExtrapolationTools("IEMExtrapolationTools",
24 1,
25 0);
26
27class IEMExtrapolationTools : virtual public IAlgTool
28{
29
30public:
43
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>>>
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
107inline const InterfaceID&
112
113#endif
Scalar eta() const
pseudorapidity method
Scalar deltaPhi(const MatrixBase< Derived > &vec) const
Scalar phi() const
phi method
static const InterfaceID IID_IEMExtrapolationTools("IEMExtrapolationTools", 1, 0)
This class provides the client interface for accessing the detector description information common to...
TrkExtrapDef
Enum for track extrapolation to calo.
@ fromPerigee
from the perigee of TrackParticle
@ fromLastMeasurement
from the last measurement of TrackParticle
@ fromCaloToPerigee
from the calo to the perigee - fast extrapolation
@ fromPerigeeRescaled
from the perigee of TrackParticle recaled by Ecluster
static const InterfaceID & interfaceID()
AlgTool interface methods.
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...
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).
virtual std::pair< std::vector< CaloSampling::CaloSample >, std::vector< std::unique_ptr< Trk::Surface > > > getClusterLayerSurfaces(const xAOD::CaloCluster &cluster, const CaloDetDescrManager &caloDD) const =0
virtual bool getEtaPhiAtCalo(const EventContext &ctx, const Trk::TrackParameters *trkPar, float *etaAtCalo, float *phiAtCalo) const =0
get eta, phi at EM2 given NeutralParameters.
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...
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.
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.
virtual StatusCode initialize()=0
initialize method
Eigen::Matrix< double, 3, 1 > Vector3D
ParametersBase< TrackParametersDim, Charged > TrackParameters
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Vertex_v1 Vertex
Define the latest version of the vertex class.