ATLAS Offline Software
MuonSegmentFittingTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MUONSEGMENTFITTINGTOOL_H
6 #define MUONSEGMENTFITTINGTOOL_H
7 
8 #include <string>
9 #include <vector>
10 
12 #include "GaudiKernel/ToolHandle.h"
19 
20 namespace Trk {
21  class PlaneSurface;
22  class LocalDirection;
23  class MeasurementBase;
24 } // namespace Trk
25 
26 namespace Muon {
27  class MuonSegment;
28 }
29 
30 namespace Muon {
31 
39  public:
40  MuonSegmentFittingTool(const std::string&, const std::string&, const IInterface*);
41 
42  virtual ~MuonSegmentFittingTool() = default;
43 
44  virtual StatusCode initialize();
45 
47  Trk::Track* fit(const Amg::Vector3D& gpos, const Amg::Vector3D& gdir, const Trk::PlaneSurface& surf,
48  const std::vector<const Trk::MeasurementBase*>& rioVec) const;
49 
51  Trk::Track* fit(const MuonSegment& segment) const;
52 
54  void updateSegmentParameters(const Trk::Track& track, const Trk::PlaneSurface& surf, Amg::Vector2D& segLocPos,
55  Trk::LocalDirection& segLocDir, Amg::MatrixX& locerr) const;
56 
57  Trk::MagneticFieldProperties m_magFieldProperties; //<! pmagnetic field properties
58 
59  ToolHandle<Trk::IPropagator> m_slPropagator{
60  this,
61  "SLPropagator",
62  "Trk::RungeKuttaPropagator/AtlasRungeKuttaPropagator",
63  }; //<! propagator, always use straightline
64  ToolHandle<Trk::ITrackFitter> m_slTrackFitter{
65  this,
66  "SLFitter",
67  "Trk::GlobalChi2Fitter/MCTBSLFitter",
68  }; //<! fitter, always use straightline
69  ToolHandle<Trk::ITrackFitter> m_curvedTrackFitter{
70  this,
71  "CurvedFitter",
72  "Trk::GlobalChi2Fitter/MCTBFitter",
73  }; //<! fitter, curved tracks
74  ToolHandle<Muon::IMuonTrackCleaner> m_trackCleaner{
75  this,
76  "TrackCleaner",
77  "Muon::MuonTrackCleaner/MuonTrackCleaner",
78  };
79 
80  bool m_updatePrecisionCoordinate; //<! flag to select update of precision coordinate in fit
81  };
82 
83 } // namespace Muon
84 #endif
Muon::MuonSegmentFittingTool::fit
Trk::Track * fit(const Amg::Vector3D &gpos, const Amg::Vector3D &gdir, const Trk::PlaneSurface &surf, const std::vector< const Trk::MeasurementBase * > &rioVec) const
fit segment parameters + hits producing a track
Definition: MuonSegmentFittingTool.cxx:44
Muon::MuonSegmentFittingTool
Definition: MuonSegmentFittingTool.h:38
IMuonTrackCleaner.h
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:29
Trk::MagneticFieldProperties
Definition: MagneticFieldProperties.h:31
Muon::MuonSegmentFittingTool::m_curvedTrackFitter
ToolHandle< Trk::ITrackFitter > m_curvedTrackFitter
Definition: MuonSegmentFittingTool.h:69
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
Muon::MuonSegmentFittingTool::m_magFieldProperties
Trk::MagneticFieldProperties m_magFieldProperties
Definition: MuonSegmentFittingTool.h:57
IPropagator.h
Muon::IMuonSegmentFittingTool
The IMuonSegmentMaker is a pure virtual interface for tools to find tracks starting from MuonSegmentC...
Definition: IMuonSegmentFittingTool.h:30
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:49
xAOD::MuonSegment
MuonSegment_v1 MuonSegment
Reference the current persistent version:
Definition: Event/xAOD/xAODMuon/xAODMuon/MuonSegment.h:13
MagneticFieldProperties.h
Muon::MuonSegmentFittingTool::~MuonSegmentFittingTool
virtual ~MuonSegmentFittingTool()=default
IMuonSegmentFittingTool.h
GeoPrimitives.h
Muon::MuonSegmentFittingTool::MuonSegmentFittingTool
MuonSegmentFittingTool(const std::string &, const std::string &, const IInterface *)
Definition: MuonSegmentFittingTool.cxx:26
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Muon::MuonSegmentFittingTool::m_trackCleaner
ToolHandle< Muon::IMuonTrackCleaner > m_trackCleaner
Definition: MuonSegmentFittingTool.h:74
AthAlgTool.h
Muon::MuonSegmentFittingTool::initialize
virtual StatusCode initialize()
Definition: MuonSegmentFittingTool.cxx:32
Trk::LocalDirection
represents the three-dimensional global direction with respect to a planar surface frame.
Definition: LocalDirection.h:81
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Muon::MuonSegmentFittingTool::m_slTrackFitter
ToolHandle< Trk::ITrackFitter > m_slTrackFitter
Definition: MuonSegmentFittingTool.h:64
Muon::MuonSegmentFittingTool::m_slPropagator
ToolHandle< Trk::IPropagator > m_slPropagator
Definition: MuonSegmentFittingTool.h:59
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Muon::MuonSegmentFittingTool::updateSegmentParameters
void updateSegmentParameters(const Trk::Track &track, const Trk::PlaneSurface &surf, Amg::Vector2D &segLocPos, Trk::LocalDirection &segLocDir, Amg::MatrixX &locerr) const
update the parameters of the segment using the track information
Definition: MuonSegmentFittingTool.cxx:131
Trk::PlaneSurface
Definition: PlaneSurface.h:64
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
Muon::MuonSegment
Definition: MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonSegment/MuonSegment/MuonSegment.h:45
AthAlgTool
Definition: AthAlgTool.h:26
Muon::MuonSegmentFittingTool::m_updatePrecisionCoordinate
bool m_updatePrecisionCoordinate
Definition: MuonSegmentFittingTool.h:80
ITrackFitter.h
NSWL1::PadTriggerAdapter::segment
Muon::NSW_PadTriggerSegment segment(const NSWL1::PadTrigger &data)
Definition: PadTriggerAdapter.cxx:5