ATLAS Offline Software
Loading...
Searching...
No Matches
MuonMatchQuality.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
6// get quality of combined track match
8
9#ifndef MUIDTRACKBUILDER_MUONMATCHQUALITY_H
10#define MUIDTRACKBUILDER_MUONMATCHQUALITY_H
11
13#include "AthenaKernel/Units.h"
14#include "GaudiKernel/ToolHandle.h"
18
19namespace Units = Athena::Units;
20
21namespace Rec {
22
23 class MuonMatchQuality : public AthAlgTool, virtual public IMuonMatchQuality {
24 public:
25 MuonMatchQuality(const std::string& type, const std::string& name, const IInterface* parent);
26 virtual ~MuonMatchQuality() = default; // destructor
27
28 StatusCode initialize() override;
29
34 double innerMatchChi2(const Trk::Track& track1, const Trk::Track& track2, const EventContext& ctx) const override;
35
38 int innerMatchDOF(const Trk::Track& track1, const Trk::Track& track2) const override;
39
42 double innerMatchProbability(const Trk::Track& track1, const Trk::Track& track2, const EventContext& ctx) const override;
43
46 std::pair<int, std::pair<double, double> > innerMatchAll(const Trk::Track& track1, const Trk::Track& track2,
47 const EventContext& ctx) const override;
48
52 double outerMatchChi2(const Trk::Track& track1, const Trk::Track& track2, const EventContext& ctx) const override;
53
56 virtual int outerMatchDOF(const Trk::Track& track1, const Trk::Track& track2) const override;
57
60 double outerMatchProbability(const Trk::Track& track1, const Trk::Track& track2, const EventContext& ctx) const override;
61
64 virtual bool shareOrigin(const Trk::Track& track1, const Trk::Track& track2) const override;
65
68 double simpleChi2(const Trk::Track& track1, const Trk::Track& track2, const EventContext& ctx) const override;
69
70 private:
71 // cache
72 struct CacheAll {
73 double innerMatchChi2{FLT_MAX};
76 double simpleChi2{FLT_MAX};
77 };
78
79 CacheAll setCache(const Trk::Track& track1, const Trk::Track& track2, const EventContext& ctx) const;
80
81 // helpers, managers, tools
82 ToolHandle<MuonCombined::IMuonTrackTagTool> m_tagTool{
83 this,
84 "TagTool",
85 "",
86 "Track tag tool",
87 };
88
89 ToolHandle<IMuonTrackQuery> m_trackQuery{
90 this,
91 "TrackQuery",
92 "Rec::MuonTrackQuery/MuonTrackQuery",
93 "Track query tool",
94 };
95
96 // estimate of ID/MS alignment uncertainties
98 Gaudi::Property<double> m_directionUncertainty{
99 this,
100 "ID_MS_DirectionUncertainty",
101 0.000001,
102 }; // not used anymore angle ID and MS: done by m_addIDMSerrors
103
104 Gaudi::Property<double> m_positionUncertainty{
105 this,
106 "ID_MS_PositionUncertainty",
107 0.01 * Units::mm,
108 }; // not used anymore shift ID and MS: done by m_addIDMSerrors
109
110 }; // end of class MuonMatchQuality
111
112} // end of namespace Rec
113
114#endif // MUIDTRACKBUILDER_MUONMATCHQUALITY_H
#define AmgSymMatrix(dim)
Wrapper to avoid constant divisions when using units.
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Base class for MuonMatchQuality AlgTool.
Gaudi::Property< double > m_directionUncertainty
virtual bool shareOrigin(const Trk::Track &track1, const Trk::Track &track2) const override
IMuonMatchQuality interface: check the track perigee parameters are expressed at the same surface.
double innerMatchProbability(const Trk::Track &track1, const Trk::Track &track2, const EventContext &ctx) const override
IMuonMatchQuality interface: match probability for chi2 match at IP.
virtual ~MuonMatchQuality()=default
Gaudi::Property< double > m_positionUncertainty
double outerMatchChi2(const Trk::Track &track1, const Trk::Track &track2, const EventContext &ctx) const override
IMuonMatchQuality interface: match chiSquared between two tracks expressed at first muon spectrometer...
double simpleChi2(const Trk::Track &track1, const Trk::Track &track2, const EventContext &ctx) const override
IMuonMatchQuality interface: as inner match chiSquared but simplified to just use diagonal errors.
int innerMatchDOF(const Trk::Track &track1, const Trk::Track &track2) const override
IMuonMatchQuality interface: degrees of freedom for chi2 match at IP.
MuonMatchQuality(const std::string &type, const std::string &name, const IInterface *parent)
double outerMatchProbability(const Trk::Track &track1, const Trk::Track &track2, const EventContext &ctx) const override
IMuonMatchQuality interface: match probability for chi2 match at first MS hit.
CacheAll setCache(const Trk::Track &track1, const Trk::Track &track2, const EventContext &ctx) const
ToolHandle< MuonCombined::IMuonTrackTagTool > m_tagTool
StatusCode initialize() override
virtual int outerMatchDOF(const Trk::Track &track1, const Trk::Track &track2) const override
IMuonMatchQuality interface: degrees of freedom for chi2 match at first MS hit.
ToolHandle< IMuonTrackQuery > m_trackQuery
std::unique_ptr< AmgSymMatrix(5)> m_alignmentUncertainty
std::pair< int, std::pair< double, double > > innerMatchAll(const Trk::Track &track1, const Trk::Track &track2, const EventContext &ctx) const override
IMuonMatchQuality interface: degrees of freedom, chi2, probability for chi2 match at IP.
double innerMatchChi2(const Trk::Track &track1, const Trk::Track &track2, const EventContext &ctx) const override
IMuonMatchQuality interface: match chiSquared between two tracks expressed at same inner (IP) surface...
Gaudi Tools.