ATLAS Offline Software
CombinedMuonTrackBuilder.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // CombinedMuonTrackBuilder
7 // AlgTool gathering material effects along a combined muon track, in
8 // particular the TSOS'es representing the calorimeter energy deposit and
9 // Coulomb scattering.
10 // The resulting track is fitted at the IP
11 //
13 
14 #ifndef MUIDTRACKBUILDER_COMBINEDMUONTRACKBUILDER_H
15 #define MUIDTRACKBUILDER_COMBINEDMUONTRACKBUILDER_H
16 
17 #include <atomic>
18 
21 #include "GaudiKernel/ServiceHandle.h"
22 #include "GaudiKernel/ToolHandle.h"
47 #include "TrkTrack/TrackInfo.h"
50 class CaloEnergy;
51 class MessageHelper;
52 
53 namespace Trk {
54  class PerigeeSurface;
56  class RecVertex;
57  class TrackStateOnSurface;
58 } // namespace Trk
59 
60 namespace Rec {
61 
63  public:
64  CombinedMuonTrackBuilder(const std::string& type, const std::string& name, const IInterface* parent);
65  virtual ~CombinedMuonTrackBuilder();
66 
67  virtual StatusCode initialize() override;
68  virtual StatusCode finalize() override;
69 
71  virtual std::unique_ptr<Trk::Track> combinedFit(const EventContext& ctx, const Trk::Track& indetTrack, const Trk::Track& extrapolatedTrack,
72  const Trk::Track& spectrometerTrack) const override;
73 
77  virtual std::unique_ptr<Trk::Track> indetExtension(const EventContext& ctx,const Trk::Track& indetTrack, const Trk::MeasurementSet& spectrometerMeas,
78  std::unique_ptr<Trk::TrackParameters> innerParameters,
79  std::unique_ptr<Trk::TrackParameters> middleParameters,
80  std::unique_ptr<Trk::TrackParameters> outerParameters) const override;
81 
84  virtual std::unique_ptr<Trk::Track> standaloneFit(const EventContext& ctx, const Trk::Track& spectrometerTrack,
85  const Amg::Vector3D& bs, const Trk::Vertex* vertex) const override;
86 
89  virtual std::unique_ptr<Trk::Track> standaloneRefit(const EventContext& ctx, const Trk::Track& combinedTrack, const Amg::Vector3D& vec) const override;
90 
91 
92 
93  private:
94  std::unique_ptr<Trk::Track> addIDMSerrors(const Trk::Track* track) const;
95 
96  void appendSelectedTSOS(Trk::TrackStates& trackStateOnSurfaces,
99 
100  const CaloEnergy* caloEnergyParameters(const Trk::Track* combinedTrack, const Trk::Track* muonTrack,
101  const Trk::TrackParameters*& combinedEnergyParameters,
102  const Trk::TrackParameters*& muonEnergyParameters) const;
103 
104  std::unique_ptr<Trk::Track> createExtrapolatedTrack(
105  const EventContext& ctx, const Trk::Track& spectrometerTrack, const Trk::TrackParameters& parameters,
106  Trk::ParticleHypothesis particleHypothesis, Trk::RunOutlierRemoval runOutlier,
107  const std::vector<std::unique_ptr<const Trk::TrackStateOnSurface>>& trackStateOnSurfaces, const Trk::RecVertex* vertex,
108  const Trk::RecVertex* mbeamAxis, const Trk::PerigeeSurface* mperigeeSurface, const Trk::Perigee* seedParameter = nullptr) const;
109 
110  std::unique_ptr<Trk::Track> createIndetTrack(const Trk::TrackInfo& info,
111  const Trk::TrackStates* tsos) const;
115  std::unique_ptr<Trk::Track> createMuonTrack(const EventContext& ctx, const Trk::Track& muonTrack,
116  const Trk::TrackParameters* parameters, std::unique_ptr<CaloEnergy> caloEnergy,
117  const Trk::TrackStates* tsos) const;
118 
119  std::unique_ptr<Trk::TrackStateOnSurface> createPhiPseudoMeasurement(const EventContext& ctx, const Trk::Track& track) const;
120 
121  std::vector<std::unique_ptr<const Trk::TrackStateOnSurface>> createSpectrometerTSOS(const EventContext& ctx, const Trk::Track& spectrometerTrack) const;
122 
123  std::unique_ptr<Trk::TrackStateOnSurface> entrancePerigee(const EventContext& ctx, const Trk::TrackParameters* parameters) const;
124 
125  std::unique_ptr<Trk::TrackParameters> extrapolatedParameters(const EventContext& ctx, bool& badlyDeterminedCurvature,
126  const Trk::Track& spectrometerTrack,
127  const Trk::RecVertex* mvertex,
128  const Trk::PerigeeSurface* mperigeeSurface) const;
129 
130  void finalTrackBuild(const EventContext& ctx, std::unique_ptr<Trk::Track>& track) const;
131 
132  void momentumUpdate(std::unique_ptr<Trk::TrackParameters>& parameters, double updatedP, bool directionUpdate = false,
133  double deltaPhi = 0., double deltaTheta = 0.) const;
134 
135  // double normalizedChi2(const Trk::Track& track) const;
136  std::unique_ptr<Trk::Track> reallocateMaterial(const EventContext& ctx, const Trk::Track& spectrometerTrack) const;
137  void replaceCaloEnergy(const CaloEnergy* caloEnergy, Trk::Track* track) const;
138  void removeSpectrometerMaterial(std::unique_ptr<Trk::Track>& track) const;
139 
140  static std::unique_ptr<Trk::PseudoMeasurementOnTrack> vertexOnTrack(const Trk::TrackParameters& parameters,
141  const Trk::RecVertex* vertex, const Trk::RecVertex* mbeamAxis);
142 
143  void dumpCaloEloss(const Trk::Track* track, const std::string& txt) const;
144 
145  // helpers, managers, tools
146  ToolHandle<Rec::IMuidCaloEnergy> m_caloEnergyParam{
147  this,
148  "CaloEnergyParam",
149  "",
150  };
151  ToolHandle<Muon::IMuonClusterOnTrackCreator> m_cscRotCreator{
152  this,
153  "CscRotCreator",
154  "",
155  };
156 
157  ToolHandle<Muon::IMuonClusterOnTrackCreator> m_muClusterRotCreator{this, "MuonRotCreator", ""};
158 
159  ToolHandle<Trk::IExtrapolator> m_extrapolator{
160  this,
161  "Extrapolator",
162  "Trk::Extrapolator/AtlasExtrapolator",
163  };
164  ToolHandle<Trk::IMaterialAllocator> m_materialAllocator{
165  this,
166  "MaterialAllocator",
167  "",
168  };
169  ToolHandle<Muon::IMdtDriftCircleOnTrackCreator> m_mdtRotCreator{
170  this,
171  "MdtRotCreator",
172  "",
173  };
174  ToolHandle<Muon::IMuonHoleRecoveryTool> m_muonHoleRecovery{
175  this,
176  "MuonHoleRecovery",
177  "",
178  };
179  ToolHandle<Trk::IPropagator> m_propagator{
180  this,
181  "Propagator",
182  "Trk::IntersectorWrapper/IntersectorWrapper",
183  };
184  ToolHandle<Trk::IPropagator> m_propagatorSL{
185  this,
186  "SLPropagator",
187  "Trk::StraightLinePropagator/MuonStraightLinePropagator",
188  };
189 
192 
193  PublicToolHandle<Muon::IMuonAlignmentUncertTool> m_alignUncertTool_theta{this, "AlignmentUncertToolTheta",
194  "Muon::MuonAlignmentUncertTool/MuonAlignmentUncertToolTheta" };
195  PublicToolHandle<Muon::IMuonAlignmentUncertTool> m_alignUncertTool_phi{this, "AlignmentUncertToolPhi",
196  "Muon::MuonAlignmentUncertTool/MuonAlignmentUncertToolPhi"};
197 
198 
199  ServiceHandle<Muon::IMuonEDMHelperSvc> m_edmHelperSvc{this, "edmHelper", "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc",
200  "Handle to the service providing the IMuonEDMHelperSvc interface"};
201 
202 
203  // Read handle for conditions object to get the field cache
204 
206  "Key of the TrackingGeometry conditions data."};
207 
208 
210 
211 
212  Gaudi::Property<bool> m_cleanCombined{this, "CleanCombined", true};
213  Gaudi::Property<bool> m_cleanStandalone{this, "CleanStandalone", true};
214 
215  Gaudi::Property<bool> m_perigeeAtSpectrometerEntrance{this, "PerigeeAtSpectrometerEntrance", false};
216  Gaudi::Property<bool> m_reallocateMaterial{this, "ReallocateMaterial", true};
217 
218 
219  Gaudi::Property<double> m_largeImpact{this, "LargeImpact", 100. * Gaudi::Units::mm};
220 
221  Gaudi::Property<double> m_largeMomentumChange{this, "LargeMomentumChange", 0.05};
222  Gaudi::Property<double> m_largeMomentumError{this, "LargeMomentumError", 0.15};
223  Gaudi::Property<double> m_largePhiError{this, "LargePhiError", 0.020};
224  Gaudi::Property<double> m_lineMomentum{this, "LineMomentum", 2. * Gaudi::Units::GeV};
225  Gaudi::Property<double> m_lowMomentum{this, "LowMomentum", 10. * Gaudi::Units::GeV};
226 
227  Gaudi::Property<double> m_minEnergy{this, "MinEnergy", 0.3 * Gaudi::Units::GeV};
228  Gaudi::Property<double> m_numberSigmaFSR{this, "NumberSigmaFSR", 2.5};
229 
230  Gaudi::Property<double> m_vertex2DSigmaRPhi{this, "Vertex2DSigmaRPhi", 100. * Gaudi::Units::mm};
231  Gaudi::Property<double> m_vertex2DSigmaZ{this, "Vertex2DSigmaZ", 100. * Gaudi::Units::meter};
232  Gaudi::Property<double> m_vertex3DSigmaRPhi{this, "Vertex3DSigmaRPhi", 6. * Gaudi::Units::mm};
233  Gaudi::Property<double> m_vertex3DSigmaZ{this, "Vertex3DSigmaZ", 60. * Gaudi::Units::mm};
234 
235  bool m_redoRots{false};
236 
237 
238  // vertex region and phi modularity for pseudo-measurement constraints
239  std::unique_ptr<const Trk::RecVertex> m_beamAxis;
240  std::unique_ptr<const Trk::PerigeeSurface> m_perigeeSurface;
241 
242  std::unique_ptr<const Trk::RecVertex> m_vertex;
243 
244  // counters
245  mutable std::atomic_uint m_countAcceptedStandaloneFit{0};
246  mutable std::atomic_uint m_countBeamAxis{0};
247  mutable std::atomic_uint m_countDegradedStandaloneFit{0};
248  mutable std::atomic_uint m_countVertexRegion{0};
249 
250 
251  Gaudi::Property<bool> m_iterateCombinedTrackFit{this, "IterateCombinedTrackFit", false};
252  Gaudi::Property<bool> m_refineELossCombinedTrackFit{this, "RefineELossCombinedTrackFit", true};
253  Gaudi::Property<bool> m_refineELossStandAloneTrackFit{this, "RefineELossStandAloneTrackFit", true};
254  Gaudi::Property<bool> m_addElossID{this, "AddElossID", true};
255  Gaudi::Property<bool> m_addIDMSerrors{this, "AddIDMSerrors", true};
256  Gaudi::Property<bool> m_useRefitTrackError{this, "UseRefitTrackError", true};
257 
258  const Trk::TrackingVolume* getVolume(const EventContext& ctx, const std::string&& vol_name) const;
259 
262  std::vector<std::unique_ptr<const Trk::TrackStateOnSurface>> getCaloTSOSfromMatProvider(const Trk::TrackParameters& track_params,
263  const Trk::Track& me_track) const;
264 
265  }; // end of class CombinedMuonTrackBuilder
266 
267 } // end of namespace Rec
268 
269 #endif // MUIDTRACKBUILDER_COMBINEDMUONTRACKBUILDER_H
grepfile.info
info
Definition: grepfile.py:38
Rec::CombinedMuonTrackBuilder::m_beamAxis
std::unique_ptr< const Trk::RecVertex > m_beamAxis
Definition: CombinedMuonTrackBuilder.h:239
Rec::CombinedMuonTrackBuilder::getVolume
const Trk::TrackingVolume * getVolume(const EventContext &ctx, const std::string &&vol_name) const
Definition: CombinedMuonTrackBuilder.cxx:3144
ICombinedMuonTrackBuilder.h
Trk::Vertex
Definition: Tracking/TrkEvent/VxVertex/VxVertex/Vertex.h:26
Rec::CombinedMuonTrackBuilder::createPhiPseudoMeasurement
std::unique_ptr< Trk::TrackStateOnSurface > createPhiPseudoMeasurement(const EventContext &ctx, const Trk::Track &track) const
Definition: CombinedMuonTrackBuilder.cxx:2259
ITrackSummaryTool.h
Trk::TrackInfo
Contains information about the 'fitter' of this track.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/TrackInfo.h:32
GeV
#define GeV
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/Root/HelperFunctions.cxx:17
Rec::CombinedMuonTrackBuilder::m_largeMomentumChange
Gaudi::Property< double > m_largeMomentumChange
Definition: CombinedMuonTrackBuilder.h:221
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
Rec::CombinedMuonTrackBuilder::m_edmHelperSvc
ServiceHandle< Muon::IMuonEDMHelperSvc > m_edmHelperSvc
Definition: CombinedMuonTrackBuilder.h:199
Rec::CombinedMuonTrackBuilder::m_alignUncertTool_theta
PublicToolHandle< Muon::IMuonAlignmentUncertTool > m_alignUncertTool_theta
ToolHandles to retrieve the uncertainties for theta and phi for the scattering uncertainties.
Definition: CombinedMuonTrackBuilder.h:193
Rec::CombinedMuonTrackBuilder::vertexOnTrack
static std::unique_ptr< Trk::PseudoMeasurementOnTrack > vertexOnTrack(const Trk::TrackParameters &parameters, const Trk::RecVertex *vertex, const Trk::RecVertex *mbeamAxis)
Definition: CombinedMuonTrackBuilder.cxx:2993
IMuonTrackCleaner.h
Rec::CombinedMuonTrackBuilder::addIDMSerrors
std::unique_ptr< Trk::Track > addIDMSerrors(const Trk::Track *track) const
Definition: CombinedMuonTrackBuilder.cxx:1560
Rec::CombinedMuonTrackBuilder::m_trackingGeometryReadKey
SG::ReadCondHandleKey< Trk::TrackingGeometry > m_trackingGeometryReadKey
Definition: CombinedMuonTrackBuilder.h:205
TrackParameters.h
Rec::CombinedMuonTrackBuilder::m_countBeamAxis
std::atomic_uint m_countBeamAxis
Definition: CombinedMuonTrackBuilder.h:246
Rec::CombinedMuonTrackBuilder::m_refineELossStandAloneTrackFit
Gaudi::Property< bool > m_refineELossStandAloneTrackFit
Definition: CombinedMuonTrackBuilder.h:253
IMuidCaloTrackStateOnSurface.h
Rec::CombinedMuonTrackBuilder::entrancePerigee
std::unique_ptr< Trk::TrackStateOnSurface > entrancePerigee(const EventContext &ctx, const Trk::TrackParameters *parameters) const
Definition: CombinedMuonTrackBuilder.cxx:2419
Trk::MagneticFieldProperties
Definition: MagneticFieldProperties.h:31
IMuonTrackQuery.h
Rec::CombinedMuonTrackBuilder::m_numberSigmaFSR
Gaudi::Property< double > m_numberSigmaFSR
Definition: CombinedMuonTrackBuilder.h:228
CaloEnergy
class extending the basic Trk::EnergyLoss to describe the measured or parameterised muon energy loss ...
Definition: CaloEnergy.h:28
Rec::CombinedMuonTrackBuilder::createMuonTrack
std::unique_ptr< Trk::Track > createMuonTrack(const EventContext &ctx, const Trk::Track &muonTrack, const Trk::TrackParameters *parameters, std::unique_ptr< CaloEnergy > caloEnergy, const Trk::TrackStates *tsos) const
Summarizes the available information about the ID track, the deposited calorimeter energies and the t...
Definition: CombinedMuonTrackBuilder.cxx:2095
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
MuonEDMPrinterTool.h
Rec::CombinedMuonTrackBuilder::m_muClusterRotCreator
ToolHandle< Muon::IMuonClusterOnTrackCreator > m_muClusterRotCreator
Definition: CombinedMuonTrackBuilder.h:157
Rec::CombinedMuonTrackBuilder::removeSpectrometerMaterial
void removeSpectrometerMaterial(std::unique_ptr< Trk::Track > &track) const
Definition: CombinedMuonTrackBuilder.cxx:2854
Trk::PerigeeSurface
Definition: PerigeeSurface.h:43
AtlasFieldCacheCondObj.h
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
xAOD::deltaPhi
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner setEtaMap setEtaBin setIsTgcFailure setDeltaPt deltaPhi
Definition: L2StandAloneMuon_v1.cxx:160
MessageHelper
Definition: MessageHelper.h:16
Rec::CombinedMuonTrackBuilder::caloEnergyParameters
const CaloEnergy * caloEnergyParameters(const Trk::Track *combinedTrack, const Trk::Track *muonTrack, const Trk::TrackParameters *&combinedEnergyParameters, const Trk::TrackParameters *&muonEnergyParameters) const
Definition: CombinedMuonTrackBuilder.cxx:1699
Rec::ICombinedMuonTrackBuilder
Interface ID for ICombinedMuonTrackBuilder.
Definition: ICombinedMuonTrackBuilder.h:36
Rec::CombinedMuonTrackBuilder::createExtrapolatedTrack
std::unique_ptr< Trk::Track > createExtrapolatedTrack(const EventContext &ctx, const Trk::Track &spectrometerTrack, const Trk::TrackParameters &parameters, Trk::ParticleHypothesis particleHypothesis, Trk::RunOutlierRemoval runOutlier, const std::vector< std::unique_ptr< const Trk::TrackStateOnSurface >> &trackStateOnSurfaces, const Trk::RecVertex *vertex, const Trk::RecVertex *mbeamAxis, const Trk::PerigeeSurface *mperigeeSurface, const Trk::Perigee *seedParameter=nullptr) const
Definition: CombinedMuonTrackBuilder.cxx:1740
Rec::CombinedMuonTrackBuilder::m_addElossID
Gaudi::Property< bool > m_addElossID
Definition: CombinedMuonTrackBuilder.h:254
PlotCalibFromCool.begin
begin
Definition: PlotCalibFromCool.py:94
Rec::CombinedMuonTrackBuilder::appendSelectedTSOS
void appendSelectedTSOS(Trk::TrackStates &trackStateOnSurfaces, Trk::TrackStates::const_iterator begin, Trk::TrackStates::const_iterator end) const
Definition: CombinedMuonTrackBuilder.cxx:1655
Rec::CombinedMuonTrackBuilder::m_refineELossCombinedTrackFit
Gaudi::Property< bool > m_refineELossCombinedTrackFit
Definition: CombinedMuonTrackBuilder.h:252
Rec::CombinedMuonTrackBuilder::m_lowMomentum
Gaudi::Property< double > m_lowMomentum
Definition: CombinedMuonTrackBuilder.h:225
Rec::CombinedMuonTrackBuilder
Definition: CombinedMuonTrackBuilder.h:62
Rec::CombinedMuonTrackBuilder::m_vertex3DSigmaRPhi
Gaudi::Property< double > m_vertex3DSigmaRPhi
Definition: CombinedMuonTrackBuilder.h:232
IExtrapolator.h
IPropagator.h
Rec::CombinedMuonTrackBuilder::dumpCaloEloss
void dumpCaloEloss(const Trk::Track *track, const std::string &txt) const
Definition: CombinedMuonTrackBuilder.cxx:3035
vec
std::vector< size_t > vec
Definition: CombinationsGeneratorTest.cxx:12
CombinedMuonTrackFitter.h
Rec::CombinedMuonTrackBuilder::reallocateMaterial
std::unique_ptr< Trk::Track > reallocateMaterial(const EventContext &ctx, const Trk::Track &spectrometerTrack) const
Definition: CombinedMuonTrackBuilder.cxx:2796
ITrkMaterialProviderTool.h
Trk::combinedTrack
void combinedTrack(long int ICH, double *pv0, double *covi, double BMAG, double *par, double *covo)
Definition: XYZtrp.cxx:113
Rec::CombinedMuonTrackBuilder::indetExtension
virtual std::unique_ptr< Trk::Track > indetExtension(const EventContext &ctx, const Trk::Track &indetTrack, const Trk::MeasurementSet &spectrometerMeas, std::unique_ptr< Trk::TrackParameters > innerParameters, std::unique_ptr< Trk::TrackParameters > middleParameters, std::unique_ptr< Trk::TrackParameters > outerParameters) const override
ICombinedMuonTrackBuilder interface: build and fit indet track extended to include MS Measurement set...
Definition: CombinedMuonTrackBuilder.cxx:409
Trk::RecVertex
Trk::RecVertex inherits from Trk::Vertex.
Definition: RecVertex.h:44
Trk::RunOutlierRemoval
bool RunOutlierRemoval
switch to toggle quality processing after fit
Definition: FitterTypes.h:22
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
MagneticFieldProperties.h
Rec::CombinedMuonTrackBuilder::m_lineMomentum
Gaudi::Property< double > m_lineMomentum
Definition: CombinedMuonTrackBuilder.h:224
Rec::CombinedMuonTrackBuilder::m_countAcceptedStandaloneFit
std::atomic_uint m_countAcceptedStandaloneFit
Definition: CombinedMuonTrackBuilder.h:245
Rec::CombinedMuonTrackBuilder::m_cleanCombined
Gaudi::Property< bool > m_cleanCombined
Definition: CombinedMuonTrackBuilder.h:212
Trk::ParticleHypothesis
ParticleHypothesis
Definition: ParticleHypothesis.h:25
Rec::CombinedMuonTrackBuilder::m_propagator
ToolHandle< Trk::IPropagator > m_propagator
Definition: CombinedMuonTrackBuilder.h:179
IMaterialAllocator.h
Rec::CombinedMuonTrackBuilder::m_mdtRotCreator
ToolHandle< Muon::IMdtDriftCircleOnTrackCreator > m_mdtRotCreator
Definition: CombinedMuonTrackBuilder.h:169
Rec::CombinedMuonTrackBuilder::m_vertex2DSigmaRPhi
Gaudi::Property< double > m_vertex2DSigmaRPhi
Definition: CombinedMuonTrackBuilder.h:230
python.SystemOfUnits.meter
int meter
Definition: SystemOfUnits.py:61
IMuonErrorOptimisationTool.h
Rec::CombinedMuonTrackFitter
Definition: CombinedMuonTrackFitter.h:43
Rec::CombinedMuonTrackBuilder::CombinedMuonTrackBuilder
CombinedMuonTrackBuilder(const std::string &type, const std::string &name, const IInterface *parent)
Definition: CombinedMuonTrackBuilder.cxx:58
Rec
Name: MuonSpContainer.h Package : offline/Reconstruction/MuonIdentification/muonEvent.
Definition: FakeTrackBuilder.h:10
Rec::CombinedMuonTrackBuilder::m_countVertexRegion
std::atomic_uint m_countVertexRegion
Definition: CombinedMuonTrackBuilder.h:248
Rec::CombinedMuonTrackBuilder::m_addIDMSerrors
Gaudi::Property< bool > m_addIDMSerrors
Definition: CombinedMuonTrackBuilder.h:255
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Rec::CombinedMuonTrackBuilder::createIndetTrack
std::unique_ptr< Trk::Track > createIndetTrack(const Trk::TrackInfo &info, const Trk::TrackStates *tsos) const
Definition: CombinedMuonTrackBuilder.cxx:2064
Rec::CombinedMuonTrackBuilder::m_magFieldProperties
Trk::MagneticFieldProperties m_magFieldProperties
Definition: CombinedMuonTrackBuilder.h:209
IMuonClusterOnTrackCreator.h
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
Rec::CombinedMuonTrackBuilder::m_muonHoleRecovery
ToolHandle< Muon::IMuonHoleRecoveryTool > m_muonHoleRecovery
Definition: CombinedMuonTrackBuilder.h:174
Rec::CombinedMuonTrackBuilder::m_largeImpact
Gaudi::Property< double > m_largeImpact
Definition: CombinedMuonTrackBuilder.h:219
Trk::ParametersBase
Definition: ParametersBase.h:55
DataVector< const Trk::TrackStateOnSurface >
Rec::CombinedMuonTrackBuilder::m_perigeeSurface
std::unique_ptr< const Trk::PerigeeSurface > m_perigeeSurface
Definition: CombinedMuonTrackBuilder.h:240
Rec::CombinedMuonTrackBuilder::m_largeMomentumError
Gaudi::Property< double > m_largeMomentumError
Definition: CombinedMuonTrackBuilder.h:222
Rec::CombinedMuonTrackBuilder::m_extrapolator
ToolHandle< Trk::IExtrapolator > m_extrapolator
Definition: CombinedMuonTrackBuilder.h:159
Rec::CombinedMuonTrackBuilder::m_materialAllocator
ToolHandle< Trk::IMaterialAllocator > m_materialAllocator
Definition: CombinedMuonTrackBuilder.h:164
Trk::FullField
@ FullField
Field is set to be realistic, but within a given Volume.
Definition: MagneticFieldMode.h:21
Rec::CombinedMuonTrackBuilder::m_countDegradedStandaloneFit
std::atomic_uint m_countDegradedStandaloneFit
Definition: CombinedMuonTrackBuilder.h:247
Rec::CombinedMuonTrackBuilder::m_cleanStandalone
Gaudi::Property< bool > m_cleanStandalone
Definition: CombinedMuonTrackBuilder.h:213
ReadCondHandleKey.h
Trk::MeasurementSet
std::vector< const MeasurementBase * > MeasurementSet
vector of fittable measurements
Definition: FitterTypes.h:30
Rec::CombinedMuonTrackBuilder::m_iterateCombinedTrackFit
Gaudi::Property< bool > m_iterateCombinedTrackFit
Definition: CombinedMuonTrackBuilder.h:251
IMuonEDMHelperSvc.h
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Rec::CombinedMuonTrackBuilder::m_alignUncertTool_phi
PublicToolHandle< Muon::IMuonAlignmentUncertTool > m_alignUncertTool_phi
Definition: CombinedMuonTrackBuilder.h:195
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
TrackInfo.h
IMdtDriftCircleOnTrackCreator.h
Rec::CombinedMuonTrackBuilder::m_cscRotCreator
ToolHandle< Muon::IMuonClusterOnTrackCreator > m_cscRotCreator
Definition: CombinedMuonTrackBuilder.h:151
Rec::CombinedMuonTrackBuilder::m_redoRots
bool m_redoRots
Definition: CombinedMuonTrackBuilder.h:235
Rec::CombinedMuonTrackBuilder::finalize
virtual StatusCode finalize() override
Definition: CombinedMuonTrackBuilder.cxx:117
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
IIntersector.h
Rec::CombinedMuonTrackBuilder::extrapolatedParameters
std::unique_ptr< Trk::TrackParameters > extrapolatedParameters(const EventContext &ctx, bool &badlyDeterminedCurvature, const Trk::Track &spectrometerTrack, const Trk::RecVertex *mvertex, const Trk::PerigeeSurface *mperigeeSurface) const
Definition: CombinedMuonTrackBuilder.cxx:2440
Rec::CombinedMuonTrackBuilder::standaloneRefit
virtual std::unique_ptr< Trk::Track > standaloneRefit(const EventContext &ctx, const Trk::Track &combinedTrack, const Amg::Vector3D &vec) const override
ICombinedMuonTrackBuilder interface: refit a track removing any indet measurements with optional addi...
Definition: CombinedMuonTrackBuilder.cxx:1134
Rec::CombinedMuonTrackBuilder::m_largePhiError
Gaudi::Property< double > m_largePhiError
Definition: CombinedMuonTrackBuilder.h:223
Rec::CombinedMuonTrackBuilder::m_vertex3DSigmaZ
Gaudi::Property< double > m_vertex3DSigmaZ
Definition: CombinedMuonTrackBuilder.h:233
Rec::CombinedMuonTrackBuilder::momentumUpdate
void momentumUpdate(std::unique_ptr< Trk::TrackParameters > &parameters, double updatedP, bool directionUpdate=false, double deltaPhi=0., double deltaTheta=0.) const
Definition: CombinedMuonTrackBuilder.cxx:2746
SG::ReadCondHandleKey< Trk::TrackingGeometry >
python.SystemOfUnits.mm
int mm
Definition: SystemOfUnits.py:83
Rec::CombinedMuonTrackBuilder::m_minEnergy
Gaudi::Property< double > m_minEnergy
Definition: CombinedMuonTrackBuilder.h:227
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
Rec::CombinedMuonTrackBuilder::m_caloEnergyParam
ToolHandle< Rec::IMuidCaloEnergy > m_caloEnergyParam
Definition: CombinedMuonTrackBuilder.h:146
Rec::CombinedMuonTrackBuilder::getCaloTSOSfromMatProvider
std::vector< std::unique_ptr< const Trk::TrackStateOnSurface > > getCaloTSOSfromMatProvider(const Trk::TrackParameters &track_params, const Trk::Track &me_track) const
Helper method to retrieve the CaloTSO from the Material provider in a memory safe way.
Definition: CombinedMuonTrackBuilder.cxx:3153
Rec::CombinedMuonTrackBuilder::m_vertex2DSigmaZ
Gaudi::Property< double > m_vertex2DSigmaZ
Definition: CombinedMuonTrackBuilder.h:231
Rec::CombinedMuonTrackBuilder::finalTrackBuild
void finalTrackBuild(const EventContext &ctx, std::unique_ptr< Trk::Track > &track) const
Definition: CombinedMuonTrackBuilder.cxx:2657
Rec::CombinedMuonTrackBuilder::m_reallocateMaterial
Gaudi::Property< bool > m_reallocateMaterial
Definition: CombinedMuonTrackBuilder.h:216
Rec::CombinedMuonTrackBuilder::m_perigeeAtSpectrometerEntrance
Gaudi::Property< bool > m_perigeeAtSpectrometerEntrance
Definition: CombinedMuonTrackBuilder.h:215
Rec::CombinedMuonTrackBuilder::m_propagatorSL
ToolHandle< Trk::IPropagator > m_propagatorSL
Definition: CombinedMuonTrackBuilder.h:184
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
Rec::CombinedMuonTrackBuilder::m_vertex
std::unique_ptr< const Trk::RecVertex > m_vertex
Definition: CombinedMuonTrackBuilder.h:242
IMuidCaloEnergy.h
physics_parameters.parameters
parameters
Definition: physics_parameters.py:144
Trk::MeasurementBaseType::PseudoMeasurementOnTrack
@ PseudoMeasurementOnTrack
Definition: MeasurementBase.h:51
TrackingGeometry.h
IMuonAlignmentUncertTool.h
Rec::CombinedMuonTrackBuilder::replaceCaloEnergy
void replaceCaloEnergy(const CaloEnergy *caloEnergy, Trk::Track *track) const
Rec::CombinedMuonTrackBuilder::createSpectrometerTSOS
std::vector< std::unique_ptr< const Trk::TrackStateOnSurface > > createSpectrometerTSOS(const EventContext &ctx, const Trk::Track &spectrometerTrack) const
Definition: CombinedMuonTrackBuilder.cxx:2274
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
IMuonHoleRecoveryTool.h
Rec::CombinedMuonTrackBuilder::standaloneFit
virtual std::unique_ptr< Trk::Track > standaloneFit(const EventContext &ctx, const Trk::Track &spectrometerTrack, const Amg::Vector3D &bs, const Trk::Vertex *vertex) const override
ICombinedMuonTrackBuilder interface: propagate to perigee adding calo energy-loss and material to MS ...
Definition: CombinedMuonTrackBuilder.cxx:579
Trk::TrackingVolume
Definition: TrackingVolume.h:121
ITrackingVolumesSvc.h
ITrackFitter.h
IMuonIdHelperSvc.h
Rec::CombinedMuonTrackBuilder::~CombinedMuonTrackBuilder
virtual ~CombinedMuonTrackBuilder()
Definition: CombinedMuonTrackBuilder.cxx:57
Rec::CombinedMuonTrackBuilder::combinedFit
virtual std::unique_ptr< Trk::Track > combinedFit(const EventContext &ctx, const Trk::Track &indetTrack, const Trk::Track &extrapolatedTrack, const Trk::Track &spectrometerTrack) const override
ICombinedMuonTrackBuilder interface: build and fit combined ID/Calo/MS track.
Definition: CombinedMuonTrackBuilder.cxx:128
Rec::CombinedMuonTrackBuilder::m_useRefitTrackError
Gaudi::Property< bool > m_useRefitTrackError
Definition: CombinedMuonTrackBuilder.h:256
ServiceHandle< Muon::IMuonEDMHelperSvc >
Rec::CombinedMuonTrackBuilder::initialize
virtual StatusCode initialize() override
Definition: CombinedMuonTrackBuilder.cxx:63