#include <MuonExtrapolationTool.h>
|
| SG::ReadHandleKey< xAOD::MuonContainer > | m_muonContainerName {this, "MuonCollection", "Muons"} |
| PublicToolHandle< Trk::IExtrapolator > | m_extrapolator {this, "Extrapolator", "Trk::Extrapolator/AtlasExtrapolator"} |
| Gaudi::Property< double > | m_endcapPivotPlaneZ {this, "EndcapPivotPlaneZ", 15525., "z position of pivot plane in endcap region"} |
| Gaudi::Property< double > | m_endcapPivotPlaneMinimumRadius {this, "EndcapPivotPlaneMinimumRadius", 0., "minimum radius of pivot plane in endcap region"} |
| Gaudi::Property< double > | m_endcapPivotPlaneMaximumRadius {this, "EndcapPivotPlaneMaximumRadius", 11977., "maximum radius of pivot plane in endcap region"} |
| Gaudi::Property< double > | m_barrelPivotPlaneRadius {this, "BarrelPivotPlaneRadius", 8000., "radius of pivot plane in barrel region"} |
| Gaudi::Property< double > | m_barrelPivotPlaneHalfLength {this, "BarrelPivotPlaneHalfLength", 9700., "half length of pivot plane in barrel region"} |
Definition at line 18 of file MuonExtrapolationTool.h.
◆ MuonExtrapolationTool()
| DerivationFramework::MuonExtrapolationTool::MuonExtrapolationTool |
( |
const std::string & | t, |
|
|
const std::string & | n, |
|
|
const IInterface * | p ) |
◆ addBranches()
| StatusCode DerivationFramework::MuonExtrapolationTool::addBranches |
( |
const EventContext & | ctx | ) |
const |
|
virtual |
Definition at line 89 of file MuonExtrapolationTool.cxx.
90{
94 return StatusCode::FAILURE;
95 }
100 if(
muon->pt() > 3500.){
101
102
103 ATH_MSG_WARNING(
"Failed to extrapolate+decorate muon with pivot plane coords - Muon params: pt "<<
muon->pt()<<
", eta "<<
muon->eta()<<
", phi "<<
muon->phi());
104 }
105 }
106 }
107 return StatusCode::SUCCESS;
108}
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
#define ATH_MSG_WARNING(x)
xAOD::MuonContainer * muonContainer
TrackParticle_v1 TrackParticle
Reference the current persistent version:
◆ extrapolateAndDecorateTrackParticle()
| bool DerivationFramework::MuonExtrapolationTool::extrapolateAndDecorateTrackParticle |
( |
const xAOD::TrackParticle * | particle, |
|
|
float & | eta, |
|
|
float & | phi, |
|
|
const EventContext & | ctx ) const |
|
private |
Definition at line 36 of file MuonExtrapolationTool.cxx.
37{
38
39
40 static const SG::AuxElement::Decorator< char > Decorated ("DecoratedPivotEtaPhi");
41 static const SG::AuxElement::Decorator< float >
Eta (
"EtaTriggerPivot");
42 static const SG::AuxElement::Decorator< float >
Phi (
"PhiTriggerPivot");
43
44 if (! Decorated.isAvailable(*particle) || !Decorated(*particle)){
45
47 if(!pTag) {
48 Decorated(*particle) = false;
49 return false;
50 }
51 Eta(*particle) =
pTag->position().eta();
52 Phi(*particle) =
pTag->position().phi();
53 Decorated(*particle) = true;
55 }
56
57
60 return true;
61}
ParametersBase< TrackParametersDim, Charged > TrackParameters
◆ extrapolateToTriggerPivotPlane()
run the extrapolation - only available in full athena
Definition at line 110 of file MuonExtrapolationTool.cxx.
111{
112
114
115
118
119 Trk::CylinderSurface* cylinder =
120 new Trk::CylinderSurface(matrix,
123 if (!cylinder) {
124 ATH_MSG_WARNING(
"extrapolateToTriggerPivotPlane :: new Trk::CylinderSurface failed.");
125 return nullptr;
126 }
127
128 bool boundaryCheck = true;
129 const Trk::Surface* surface = cylinder;
132 delete cylinder;
133
134
136
137
138
139
140
141
142
143
144 float SignOfEta =
track.eta() > 0 ? 1. : -1.;
145
147
149
150 std::unique_ptr<Trk::DiscSurface> disc =
151 std::make_unique<Trk::DiscSurface>(matrix,
154 if (!disc) {
155 ATH_MSG_WARNING(
"extrapolateToTriggerPivotPlane :: new Trk::DiscSurface failed.");
156 return nullptr;
157 }
158
159
160 boundaryCheck = false;
161 surface = disc.get();
165}
Eigen::Affine3d Transform3D
Eigen::Matrix< double, 3, 1 > Vector3D
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
◆ getPreferredTrackParticle()
Definition at line 65 of file MuonExtrapolationTool.cxx.
66{
68 ATH_MSG_WARNING(
"Pivot plane extrapolation not supported for Truth muons!");
69 return 0;
70 }
72 if(!muonTrack &&
dynamic_cast<const xAOD::Muon*
>(muon)) {
74 muonTrack = theMuon->
trackParticle( xAOD::Muon::MuonSpectrometerTrackParticle );
75 if(!muonTrack) {
77 if(!muonTrack) {
78 muonTrack = theMuon->
trackParticle( xAOD::Muon::InnerDetectorTrackParticle );
79 }
80 }
81 }
82 if(!muonTrack){
83 ATH_MSG_WARNING(
"no valid track found for extrapolating the muon to the pivot plane!");
84 }
85 return muonTrack;
86
87}
const TrackParticle * primaryTrackParticle() const
Returns a pointer (which should not usually be NULL, but might be if the muon has been stripped of in...
const TrackParticle * trackParticle(TrackParticleType type) const
Returns a pointer (which can be NULL) to the TrackParticle used in identification of this muon.
TruthParticle_v1 TruthParticle
Typedef to implementation.
Muon_v1 Muon
Reference the current persistent version:
◆ initialize()
| StatusCode DerivationFramework::MuonExtrapolationTool::initialize |
( |
| ) |
|
|
virtual |
Definition at line 26 of file MuonExtrapolationTool.cxx.
27{
30 return StatusCode::SUCCESS;
31}
#define ATH_CHECK
Evaluate an expression and check for errors.
◆ m_barrelPivotPlaneHalfLength
| Gaudi::Property<double> DerivationFramework::MuonExtrapolationTool::m_barrelPivotPlaneHalfLength {this, "BarrelPivotPlaneHalfLength", 9700., "half length of pivot plane in barrel region"} |
|
private |
Definition at line 53 of file MuonExtrapolationTool.h.
53{this, "BarrelPivotPlaneHalfLength", 9700., "half length of pivot plane in barrel region"};
◆ m_barrelPivotPlaneRadius
| Gaudi::Property<double> DerivationFramework::MuonExtrapolationTool::m_barrelPivotPlaneRadius {this, "BarrelPivotPlaneRadius", 8000., "radius of pivot plane in barrel region"} |
|
private |
Definition at line 52 of file MuonExtrapolationTool.h.
52{this, "BarrelPivotPlaneRadius", 8000., "radius of pivot plane in barrel region"};
◆ m_endcapPivotPlaneMaximumRadius
| Gaudi::Property<double> DerivationFramework::MuonExtrapolationTool::m_endcapPivotPlaneMaximumRadius {this, "EndcapPivotPlaneMaximumRadius", 11977., "maximum radius of pivot plane in endcap region"} |
|
private |
Definition at line 51 of file MuonExtrapolationTool.h.
51{this, "EndcapPivotPlaneMaximumRadius", 11977., "maximum radius of pivot plane in endcap region"};
◆ m_endcapPivotPlaneMinimumRadius
| Gaudi::Property<double> DerivationFramework::MuonExtrapolationTool::m_endcapPivotPlaneMinimumRadius {this, "EndcapPivotPlaneMinimumRadius", 0., "minimum radius of pivot plane in endcap region"} |
|
private |
Definition at line 50 of file MuonExtrapolationTool.h.
50{this, "EndcapPivotPlaneMinimumRadius", 0., "minimum radius of pivot plane in endcap region"};
◆ m_endcapPivotPlaneZ
| Gaudi::Property<double> DerivationFramework::MuonExtrapolationTool::m_endcapPivotPlaneZ {this, "EndcapPivotPlaneZ", 15525., "z position of pivot plane in endcap region"} |
|
private |
Definition at line 49 of file MuonExtrapolationTool.h.
49{this, "EndcapPivotPlaneZ", 15525., "z position of pivot plane in endcap region"};
◆ m_extrapolator
| PublicToolHandle<Trk::IExtrapolator> DerivationFramework::MuonExtrapolationTool::m_extrapolator {this, "Extrapolator", "Trk::Extrapolator/AtlasExtrapolator"} |
|
private |
◆ m_muonContainerName
The documentation for this class was generated from the following files: