ATLAS Offline Software
MuonExtrapolationTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3  */
4 
5 #ifndef MuonExtrapolationTool_H
6 #define MuonExtrapolationTool_H
7 
11 #include "xAODMuon/MuonContainer.h"
12 #include "xAODMuon/Muon.h"
15 
16 
17 namespace DerivationFramework {
18  class MuonExtrapolationTool : public extends<AthAlgTool, IAugmentationTool> {
19 
20  public:
21  MuonExtrapolationTool(const std::string& t, const std::string& n, const IInterface *p);
22 
23  virtual StatusCode initialize();
24  virtual StatusCode addBranches(const EventContext& ctx) const;
25 
26  private:
27 
29  const Trk::TrackParameters* extrapolateToTriggerPivotPlane(const xAOD::TrackParticle& track, const EventContext& ctx) const;
30 
31  // Utility method to handle extrapolation and decoration for one TrackParticle.
32  // It looks for the decoration, and, if it is missing, runs track extrapolation, decorating the result
33  // to the particle to avoid repeating the process unnecessarily.
34  // Returns success (true) or failure (false) of the procedure, fills eta and phi coordinates via reference
35  // If the extrapolation fails or the decoration is missing in AthAnalysis, it will *not* change eta and phi
36  // So you can set them to defaults before calling this guy, and they will be preserved in case of failure.
37  // Will not run outside athena, because it requires the extrapolator
38  bool extrapolateAndDecorateTrackParticle(const xAOD::TrackParticle* particle, float & eta, float & phi, const EventContext& ctx) const;
39 
40  // utility method: Obtains the track particle which we want to extrapolate into the MS.
41  // Works for all kinds of probes.
43 
45  PublicToolHandle<Trk::IExtrapolator> m_extrapolator{this, "Extrapolator", "Trk::Extrapolator/AtlasExtrapolator"};
46 
47  // these define the surfaces that we extrapolate to.
48  // We approximate the pivot plane in the form of a cylinder surface and two disks
49  Gaudi::Property<double> m_endcapPivotPlaneZ{this, "EndcapPivotPlaneZ", 15525., "z position of pivot plane in endcap region"};
50  Gaudi::Property<double> m_endcapPivotPlaneMinimumRadius{this, "EndcapPivotPlaneMinimumRadius", 0., "minimum radius of pivot plane in endcap region"};
51  Gaudi::Property<double> m_endcapPivotPlaneMaximumRadius{this, "EndcapPivotPlaneMaximumRadius", 11977., "maximum radius of pivot plane in endcap region"};
52  Gaudi::Property<double> m_barrelPivotPlaneRadius{this, "BarrelPivotPlaneRadius", 8000., "radius of pivot plane in barrel region"};
53  Gaudi::Property<double> m_barrelPivotPlaneHalfLength{this, "BarrelPivotPlaneHalfLength", 9700., "half length of pivot plane in barrel region"};
54  };
55 }
56 #endif // MuonExtrapolationTool_H
DerivationFramework::MuonExtrapolationTool::m_extrapolator
PublicToolHandle< Trk::IExtrapolator > m_extrapolator
Definition: MuonExtrapolationTool.h:45
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:79
TrackParameters.h
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
Muon.h
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
IAugmentationTool.h
DerivationFramework::MuonExtrapolationTool::extrapolateToTriggerPivotPlane
const Trk::TrackParameters * extrapolateToTriggerPivotPlane(const xAOD::TrackParticle &track, const EventContext &ctx) const
run the extrapolation - only available in full athena
Definition: MuonExtrapolationTool.cxx:110
IExtrapolator.h
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
DerivationFramework::MuonExtrapolationTool::m_endcapPivotPlaneMinimumRadius
Gaudi::Property< double > m_endcapPivotPlaneMinimumRadius
Definition: MuonExtrapolationTool.h:50
DerivationFramework::MuonExtrapolationTool
Definition: MuonExtrapolationTool.h:18
SG::ReadHandleKey< xAOD::MuonContainer >
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:41
DerivationFramework::MuonExtrapolationTool::addBranches
virtual StatusCode addBranches(const EventContext &ctx) const
Definition: MuonExtrapolationTool.cxx:89
DerivationFramework::MuonExtrapolationTool::initialize
virtual StatusCode initialize()
Definition: MuonExtrapolationTool.cxx:26
DerivationFramework::MuonExtrapolationTool::m_barrelPivotPlaneRadius
Gaudi::Property< double > m_barrelPivotPlaneRadius
Definition: MuonExtrapolationTool.h:52
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
DerivationFramework::MuonExtrapolationTool::m_barrelPivotPlaneHalfLength
Gaudi::Property< double > m_barrelPivotPlaneHalfLength
Definition: MuonExtrapolationTool.h:53
beamspotman.n
n
Definition: beamspotman.py:727
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
Trk::ParametersBase
Definition: ParametersBase.h:55
DerivationFramework
THE reconstruction tool.
Definition: ParticleSortingAlg.h:24
DerivationFramework::MuonExtrapolationTool::MuonExtrapolationTool
MuonExtrapolationTool(const std::string &t, const std::string &n, const IInterface *p)
Definition: MuonExtrapolationTool.cxx:17
DerivationFramework::MuonExtrapolationTool::getPreferredTrackParticle
const xAOD::TrackParticle * getPreferredTrackParticle(const xAOD::IParticle *probe) const
Definition: MuonExtrapolationTool.cxx:65
DerivationFramework::MuonExtrapolationTool::m_endcapPivotPlaneMaximumRadius
Gaudi::Property< double > m_endcapPivotPlaneMaximumRadius
Definition: MuonExtrapolationTool.h:51
MuonContainer.h
TrackParticle.h
DerivationFramework::MuonExtrapolationTool::m_muonContainerName
SG::ReadHandleKey< xAOD::MuonContainer > m_muonContainerName
Definition: MuonExtrapolationTool.h:44
xAOD::track
@ track
Definition: TrackingPrimitives.h:513
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:44
DerivationFramework::MuonExtrapolationTool::m_endcapPivotPlaneZ
Gaudi::Property< double > m_endcapPivotPlaneZ
Definition: MuonExtrapolationTool.h:49
DerivationFramework::MuonExtrapolationTool::extrapolateAndDecorateTrackParticle
bool extrapolateAndDecorateTrackParticle(const xAOD::TrackParticle *particle, float &eta, float &phi, const EventContext &ctx) const
Definition: MuonExtrapolationTool.cxx:36