ATLAS Offline Software
Loading...
Searching...
No Matches
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
20namespace Trk {
21 class PlaneSurface;
22 class LocalDirection;
23 class MeasurementBase;
24} // namespace Trk
25
26namespace Muon {
27 class MuonSegment;
28}
29
30namespace 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
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
The IMuonSegmentMaker is a pure virtual interface for tools to find tracks starting from MuonSegmentC...
ToolHandle< Muon::IMuonTrackCleaner > m_trackCleaner
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
MuonSegmentFittingTool(const std::string &, const std::string &, const IInterface *)
ToolHandle< Trk::IPropagator > m_slPropagator
Trk::MagneticFieldProperties m_magFieldProperties
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
ToolHandle< Trk::ITrackFitter > m_curvedTrackFitter
ToolHandle< Trk::ITrackFitter > m_slTrackFitter
virtual ~MuonSegmentFittingTool()=default
This is the common class for 3D segments used in the muon spectrometer.
represents the three-dimensional global direction with respect to a planar surface frame.
magnetic field properties to steer the behavior of the extrapolation
This class is the pure abstract base class for all fittable tracking measurements.
Class for a planaer rectangular or trapezoidal surface in the ATLAS detector.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Eigen::Matrix< double, 2, 1 > Vector2D
Eigen::Matrix< double, 3, 1 > Vector3D
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Ensure that the ATLAS eigen extensions are properly loaded.