ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonReconstruction
MuonTrackMakers
MuonTrackMakerTools
MuonTrackFinderTools
src
MuonTrackExtrapolationTool.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef MUON_MUONTRACKEXTRAPOLATIONTOOL_H
6
#define MUON_MUONTRACKEXTRAPOLATIONTOOL_H
7
8
#include "
AthenaBaseComps/AthAlgTool.h
"
9
#include "GaudiKernel/ServiceHandle.h"
10
#include "GaudiKernel/ToolHandle.h"
11
#include "
MuonIdHelpers/IMuonIdHelperSvc.h
"
12
#include "
MuonRecHelperTools/IMuonEDMHelperSvc.h
"
13
#include "
MuonRecHelperTools/MuonEDMPrinterTool.h
"
14
#include "
MuonRecToolInterfaces/IMuonTrackExtrapolationTool.h
"
15
#include "
TrkExInterfaces/IExtrapolator.h
"
16
#include "
TrkGeometry/TrackingGeometry.h
"
17
18
// For magneticfield
19
#include "
MagFieldConditions/AtlasFieldCacheCondObj.h
"
20
#include "
TrkParameters/TrackParameters.h
"
21
22
namespace
Muon
{
23
28
class
MuonTrackExtrapolationTool
:
virtual
public
IMuonTrackExtrapolationTool
,
public
AthAlgTool
{
29
public
:
31
MuonTrackExtrapolationTool
(
const
std::string &,
const
std::string &,
const
IInterface *);
32
34
virtual
~MuonTrackExtrapolationTool
() =
default
;
35
37
virtual
StatusCode
initialize
()
override
;
38
44
virtual
std::unique_ptr<Trk::Track>
extrapolate
(
const
Trk::Track
&track,
const
EventContext &ctx)
const override
;
45
51
virtual
std::unique_ptr<TrackCollection>
extrapolate
(
const
TrackCollection
&tracks,
const
EventContext &ctx)
const override
;
52
53
private
:
54
double
estimateDistanceToEntryRecord
(
const
EventContext &ctx,
const
Trk::TrackParameters
&pars)
const
;
55
static
const
Trk::TrackParameters
*
checkForSecondCrossing
(
const
Trk::TrackParameters
&firstCrossing,
const
Trk::Track
&track) ;
56
const
Trk::TrackParameters
*
findClosestParametersToMuonEntry
(
const
EventContext &ctx,
const
Trk::Track
&track)
const
;
57
60
std::unique_ptr<Trk::TrackParameters>
extrapolateToMuonEntryRecord
(
const
EventContext &ctx,
const
Trk::TrackParameters
&pars,
61
Trk::ParticleHypothesis
particleHypo =
Trk::muon
)
const
;
62
65
std::unique_ptr<Trk::TrackParameters>
extrapolateToIP
(
const
EventContext& ctx,
const
Trk::TrackParameters
&pars,
66
Trk::ParticleHypothesis
particleHypo =
Trk::muon
)
const
;
67
68
std::shared_ptr<Trk::Perigee>
createPerigee
(
const
EventContext& ctx,
const
Trk::TrackParameters
&pars)
const
;
69
70
// Read handle for conditions object to get the field cache
71
SG::ReadCondHandleKey<AtlasFieldCacheCondObj>
m_fieldCacheCondObjInputKey
{
this
,
"AtlasFieldCacheCondObj"
,
"fieldCondObj"
,
72
"Name of the Magnetic Field conditions object key"
};
73
74
SG::ReadCondHandleKey<Trk::TrackingGeometry>
m_trackingGeometryReadKey
{
this
,
"TrackingGeometryReadKey"
,
""
,
75
"Key of input TrackingGeometry"
};
76
ServiceHandle<Muon::IMuonEDMHelperSvc>
m_edmHelperSvc
{
this
,
"edmHelper"
,
"Muon::MuonEDMHelperSvc/MuonEDMHelperSvc"
,
77
"Handle to the service providing the IMuonEDMHelperSvc interface"
};
78
ServiceHandle<Muon::IMuonIdHelperSvc>
m_idHelperSvc
{
this
,
"MuonIdHelperSvc"
,
"Muon::MuonIdHelperSvc/MuonIdHelperSvc"
};
79
80
PublicToolHandle<Muon::MuonEDMPrinterTool>
m_printer
{
this
,
"EDMPrinter"
,
"Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"
,
81
"helper to nicely print out tracks"
};
82
ToolHandle<Trk::IExtrapolator>
m_atlasExtrapolator
{
this
,
"AtlasExtrapolator"
,
"Trk::Extrapolator/AtlasExtrapolator"
};
83
ToolHandle<Trk::IExtrapolator>
m_muonExtrapolator
{
this
,
"MuonExtrapolator"
,
"Trk::Extrapolator/MuonExtrapolator"
};
84
85
Gaudi::Property<bool>
m_cosmics
{
this
,
"Cosmics"
,
false
};
86
Gaudi::Property<bool>
m_keepOldPerigee
{
this
,
"KeepInitialPerigee"
,
true
};
87
Gaudi::Property<std::string>
m_msEntranceName
{
this
,
"MuonSystemEntranceName"
,
"MuonSpectrometerEntrance"
};
88
89
inline
const
Trk::TrackingVolume
*
getVolume
(
const
std::string &vol_name,
const
EventContext &ctx)
const
{
90
SG::ReadCondHandle<Trk::TrackingGeometry>
handle(
m_trackingGeometryReadKey
, ctx);
91
if
(!handle.isValid()) {
92
ATH_MSG_WARNING
(
"Could not retrieve a valid tracking geometry"
);
93
return
nullptr
;
94
}
95
return
handle.cptr()->trackingVolume(vol_name);
96
}
97
};
98
}
// namespace Muon
99
100
#endif
AthAlgTool.h
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition
AthMsgStreamMacros.h:32
AtlasFieldCacheCondObj.h
IExtrapolator.h
IMuonEDMHelperSvc.h
IMuonIdHelperSvc.h
IMuonTrackExtrapolationTool.h
MuonEDMPrinterTool.h
TrackCollection
DataVector< Trk::Track > TrackCollection
This typedef represents a collection of Trk::Track objects.
Definition
TrackCollection.h:19
TrackingGeometry.h
TrackParameters.h
AthAlgTool::AthAlgTool
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Definition
AthAlgTool.cxx:16
Muon::IMuonTrackExtrapolationTool
Interface class for tools extrapolating muon tracks to a location in the atlas detector.
Definition
IMuonTrackExtrapolationTool.h:16
Muon::MuonTrackExtrapolationTool::m_muonExtrapolator
ToolHandle< Trk::IExtrapolator > m_muonExtrapolator
Definition
MuonTrackExtrapolationTool.h:83
Muon::MuonTrackExtrapolationTool::checkForSecondCrossing
static const Trk::TrackParameters * checkForSecondCrossing(const Trk::TrackParameters &firstCrossing, const Trk::Track &track)
Definition
MuonTrackExtrapolationTool.cxx:212
Muon::MuonTrackExtrapolationTool::m_fieldCacheCondObjInputKey
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
Definition
MuonTrackExtrapolationTool.h:71
Muon::MuonTrackExtrapolationTool::m_cosmics
Gaudi::Property< bool > m_cosmics
Definition
MuonTrackExtrapolationTool.h:85
Muon::MuonTrackExtrapolationTool::createPerigee
std::shared_ptr< Trk::Perigee > createPerigee(const EventContext &ctx, const Trk::TrackParameters &pars) const
Definition
MuonTrackExtrapolationTool.cxx:632
Muon::MuonTrackExtrapolationTool::m_keepOldPerigee
Gaudi::Property< bool > m_keepOldPerigee
Definition
MuonTrackExtrapolationTool.h:86
Muon::MuonTrackExtrapolationTool::m_msEntranceName
Gaudi::Property< std::string > m_msEntranceName
Definition
MuonTrackExtrapolationTool.h:87
Muon::MuonTrackExtrapolationTool::extrapolate
virtual std::unique_ptr< Trk::Track > extrapolate(const Trk::Track &track, const EventContext &ctx) const override
extrapolates a muon track to the muon entry record and returns a new track expressed at the destinati...
Definition
MuonTrackExtrapolationTool.cxx:254
Muon::MuonTrackExtrapolationTool::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition
MuonTrackExtrapolationTool.h:78
Muon::MuonTrackExtrapolationTool::extrapolateToMuonEntryRecord
std::unique_ptr< Trk::TrackParameters > extrapolateToMuonEntryRecord(const EventContext &ctx, const Trk::TrackParameters &pars, Trk::ParticleHypothesis particleHypo=Trk::muon) const
extrapolates track parameters to muon entry record, will return a zero pointer if the extrapolation f...
Definition
MuonTrackExtrapolationTool.cxx:49
Muon::MuonTrackExtrapolationTool::MuonTrackExtrapolationTool
MuonTrackExtrapolationTool(const std::string &, const std::string &, const IInterface *)
constructor
Definition
MuonTrackExtrapolationTool.cxx:26
Muon::MuonTrackExtrapolationTool::findClosestParametersToMuonEntry
const Trk::TrackParameters * findClosestParametersToMuonEntry(const EventContext &ctx, const Trk::Track &track) const
Definition
MuonTrackExtrapolationTool.cxx:110
Muon::MuonTrackExtrapolationTool::getVolume
const Trk::TrackingVolume * getVolume(const std::string &vol_name, const EventContext &ctx) const
Definition
MuonTrackExtrapolationTool.h:89
Muon::MuonTrackExtrapolationTool::initialize
virtual StatusCode initialize() override
AlgTool initilize.
Definition
MuonTrackExtrapolationTool.cxx:31
Muon::MuonTrackExtrapolationTool::m_atlasExtrapolator
ToolHandle< Trk::IExtrapolator > m_atlasExtrapolator
Definition
MuonTrackExtrapolationTool.h:82
Muon::MuonTrackExtrapolationTool::estimateDistanceToEntryRecord
double estimateDistanceToEntryRecord(const EventContext &ctx, const Trk::TrackParameters &pars) const
Definition
MuonTrackExtrapolationTool.cxx:192
Muon::MuonTrackExtrapolationTool::m_edmHelperSvc
ServiceHandle< Muon::IMuonEDMHelperSvc > m_edmHelperSvc
Definition
MuonTrackExtrapolationTool.h:76
Muon::MuonTrackExtrapolationTool::m_trackingGeometryReadKey
SG::ReadCondHandleKey< Trk::TrackingGeometry > m_trackingGeometryReadKey
Definition
MuonTrackExtrapolationTool.h:74
Muon::MuonTrackExtrapolationTool::extrapolateToIP
std::unique_ptr< Trk::TrackParameters > extrapolateToIP(const EventContext &ctx, const Trk::TrackParameters &pars, Trk::ParticleHypothesis particleHypo=Trk::muon) const
extrapolates track parameters to muon entry record, will return a zero pointer if the extrapolation f...
Definition
MuonTrackExtrapolationTool.cxx:79
Muon::MuonTrackExtrapolationTool::m_printer
PublicToolHandle< Muon::MuonEDMPrinterTool > m_printer
Definition
MuonTrackExtrapolationTool.h:80
Muon::MuonTrackExtrapolationTool::~MuonTrackExtrapolationTool
virtual ~MuonTrackExtrapolationTool()=default
destructor
SG::ReadCondHandleKey
Definition
ReadCondHandleKey.h:21
SG::ReadCondHandle
Definition
ReadCondHandle.h:40
ServiceHandle
Definition
ClusterMakerTool.h:36
Trk::Track
The ATLAS Track class.
Definition
Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
Trk::TrackingVolume
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure,...
Definition
TrackingVolume.h:119
Muon
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Definition
TrackSystemController.h:46
Trk::ParticleHypothesis
ParticleHypothesis
Enumeration for Particle hypothesis respecting the interaction with material.
Definition
ParticleHypothesis.h:28
Trk::muon
@ muon
Definition
ParticleHypothesis.h:31
Trk::TrackParameters
ParametersBase< TrackParametersDim, Charged > TrackParameters
Definition
Tracking/TrkEvent/TrkParameters/TrkParameters/TrackParameters.h:27
Generated on
for ATLAS Offline Software by
1.17.0