ATLAS Offline Software
MuonCombinedFitTagTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MUONCOMBINEDBASETOOLS_MUONCOMBINEDFITTAGTOOL_H
6 #define MUONCOMBINEDBASETOOLS_MUONCOMBINEDFITTAGTOOL_H
7 
8 #include <string>
9 #include <vector>
10 
12 #include "GaudiKernel/ServiceHandle.h"
13 #include "GaudiKernel/ToolHandle.h"
29 
30 namespace MuonCombined {
31  class InDetCandidate;
32  class MuonCandidate;
33  class CombinedFitTag;
34  class InDetCandidateToTagMap;
35 
36  class MuonCombinedFitTagTool : public AthAlgTool, virtual public IMuonCombinedTagTool {
37  public:
38  MuonCombinedFitTagTool(const std::string& type, const std::string& name, const IInterface* parent);
39  virtual ~MuonCombinedFitTagTool() = default;
40 
41  virtual StatusCode initialize() override;
42 
44  virtual void combine(const MuonCandidate& muonCandidate, const std::vector<const InDetCandidate*>& indetCandidates,
45  InDetCandidateToTagMap& tagMap, TrackCollection* combTracks, TrackCollection* METracks,
46  const EventContext& ctx) const override;
47 
48  private:
49  std::unique_ptr<Trk::Track> buildCombinedTrack(const EventContext& ctx, const Trk::Track& indetTrack, const Trk::Track& spectrometerTrack,
50  const Trk::Track* extrapolatedTrack) const;
51 
52  bool combinedTrackQualityCheck(const EventContext& ctx, const Trk::Track& combinedTrack, const Trk::Track& indetTrack) const;
53 
54  std::unique_ptr<Trk::Track> evaluateMatchProperties(const EventContext& ctx, const Trk::Track* combinedTrack, CombinedFitTag& tag,
55  const xAOD::TrackParticle& idTrackParticle) const;
56 
57  bool extrapolatedNeedsRefit(const EventContext& ctx, const Trk::Track& combTrack, const Trk::Track* extrTrack) const;
58 
59  bool bestMatchChooser(const InDetCandidate& curCandidate, const CombinedFitTag& curTag, const Trk::Track& curTrack,
60  const Trk::Track* curMETrack, const InDetCandidate& bestCandidate, const CombinedFitTag& bestTag,
61  const Trk::Track& bestTrack, const Trk::Track* bestMETrack) const;
62 
63  void dumpCaloEloss(const EventContext& ctx, const Trk::Track* track, const std::string& txt) const;
64 
65  ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
66 
67  ToolHandle<Muon::MuonEDMPrinterTool> m_printer{this, "Printer", "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"};
68  ToolHandle<Rec::ICombinedMuonTrackBuilder> m_trackBuilder{this, "TrackBuilder", ""};
69  ToolHandle<Rec::ICombinedMuonTrackBuilder> m_outwardsBuilder{this, "OutwardsTrackBuilder", ""};
70  ToolHandle<Rec::IMuonTrackQuery> m_trackQuery{this, "TrackQuery", "Rec::MuonTrackQuery/MuonTrackQuery"};
71  ToolHandle<Rec::IMuonMomentumBalanceSignificance> m_momentumBalanceTool{
72  this, "MomentumBalanceTool", "Rec::MuonMomentumBalanceSignificanceTool/MuonMomentumBalanceSignifTool"};
73  ToolHandle<Rec::IMuidMuonRecovery> m_muonRecovery{this, "MuonRecovery", ""};
74  ToolHandle<Rec::IMuonMatchQuality> m_matchQuality{this, "MatchQuality", "Rec::MuonMatchQuality/MuonMatchQuality"};
75  ToolHandle<Trk::ITrackScoringTool> m_trackScoringTool{this, "TrackScoringTool", "Muon::MuonTrackScoringTool/MuonTrackScoringTool"};
76 
77  Gaudi::Property<double> m_badFitChi2{this, "BadFitChi2", 2.5};
78  Gaudi::Property<double> m_momentumBalanceCut{this, "MomentumBalanceCut", 6};
79  Gaudi::Property<double> m_indetPullCut{this, "IndetPullCut", 6};
80  Gaudi::Property<double> m_matchChiSquaredCut{this, "MatchChiSquaredCut", 30};
81 
82  // Read handle for conditions object to get the field cache
83  SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCacheCondObjInputKey{this, "AtlasFieldCacheCondObj", "fieldCondObj",
84  "Name of the Magnetic Field conditions object key"};
85 
86  SG::ReadHandleKey<xAOD::VertexContainer> m_vertexKey{this, "VertexContainer", "PrimaryVertices", "primary vertex container"};
87  };
88 
89 } // namespace MuonCombined
90 
91 #endif // MUONCOMBINEDBASETOOLS_MUONCOMBINEDFITTAGTOOL_H
MuonCombined::MuonCombinedFitTagTool::m_matchChiSquaredCut
Gaudi::Property< double > m_matchChiSquaredCut
Definition: MuonCombinedFitTagTool.h:80
ICombinedMuonTrackBuilder.h
MuonCombined::MuonCombinedFitTagTool::m_muonRecovery
ToolHandle< Rec::IMuidMuonRecovery > m_muonRecovery
Definition: MuonCombinedFitTagTool.h:73
TrackParameters.h
IMuonTrackQuery.h
MuonCombined::MuonCombinedFitTagTool::bestMatchChooser
bool bestMatchChooser(const InDetCandidate &curCandidate, const CombinedFitTag &curTag, const Trk::Track &curTrack, const Trk::Track *curMETrack, const InDetCandidate &bestCandidate, const CombinedFitTag &bestTag, const Trk::Track &bestTrack, const Trk::Track *bestMETrack) const
Definition: MuonCombinedFitTagTool.cxx:530
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
MuonEDMPrinterTool.h
MuonCombined::MuonCombinedFitTagTool::m_trackScoringTool
ToolHandle< Trk::ITrackScoringTool > m_trackScoringTool
Definition: MuonCombinedFitTagTool.h:75
MuonCombined::InDetCandidateToTagMap
Definition: InDetCandidateToTagMap.h:15
AtlasFieldCacheCondObj.h
MuonCombined::MuonCombinedFitTagTool::m_badFitChi2
Gaudi::Property< double > m_badFitChi2
Definition: MuonCombinedFitTagTool.h:77
MuonCombined::MuonCombinedFitTagTool::m_momentumBalanceTool
ToolHandle< Rec::IMuonMomentumBalanceSignificance > m_momentumBalanceTool
Definition: MuonCombinedFitTagTool.h:71
MuonCombined::InDetCandidate
Definition: InDetCandidate.h:18
python.sizes.txt
string txt
Definition: sizes.py:141
ITrackScoringTool.h
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
Trk::combinedTrack
void combinedTrack(long int ICH, double *pv0, double *covi, double BMAG, double *par, double *covo)
Definition: XYZtrp.cxx:113
MuonCombined::MuonCombinedFitTagTool::evaluateMatchProperties
std::unique_ptr< Trk::Track > evaluateMatchProperties(const EventContext &ctx, const Trk::Track *combinedTrack, CombinedFitTag &tag, const xAOD::TrackParticle &idTrackParticle) const
Definition: MuonCombinedFitTagTool.cxx:274
MuonCombined::MuonCombinedFitTagTool::m_trackQuery
ToolHandle< Rec::IMuonTrackQuery > m_trackQuery
Definition: MuonCombinedFitTagTool.h:70
MuonCombined::MuonCombinedFitTagTool::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MuonCombinedFitTagTool.h:65
MuonCombined::IMuonCombinedTagTool
interface for tools building combined muons from a MuonCandidate and a set of ID tracks
Definition: IMuonCombinedTagTool.h:23
IMuonCombinedTagTool.h
MuonCombined::MuonCombinedFitTagTool::m_vertexKey
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexKey
Definition: MuonCombinedFitTagTool.h:86
MuonCombined::MuonCandidate
Definition: Reconstruction/MuonIdentification/MuonCombinedEvent/MuonCombinedEvent/MuonCandidate.h:25
MuonCombined::MuonCombinedFitTagTool::MuonCombinedFitTagTool
MuonCombinedFitTagTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: MuonCombinedFitTagTool.cxx:38
MuonCombined::MuonCombinedFitTagTool::initialize
virtual StatusCode initialize() override
Definition: MuonCombinedFitTagTool.cxx:43
MuonCombined::MuonCombinedFitTagTool::combine
virtual void combine(const MuonCandidate &muonCandidate, const std::vector< const InDetCandidate * > &indetCandidates, InDetCandidateToTagMap &tagMap, TrackCollection *combTracks, TrackCollection *METracks, const EventContext &ctx) const override
IMuonCombinedTagTool interface: build combined muons from a muon and a vector of indet candidates.
Definition: MuonCombinedFitTagTool.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
MuonCombined::MuonCombinedFitTagTool::combinedTrackQualityCheck
bool combinedTrackQualityCheck(const EventContext &ctx, const Trk::Track &combinedTrack, const Trk::Track &indetTrack) const
Definition: MuonCombinedFitTagTool.cxx:232
AthAlgTool.h
TrackCollection.h
MuonCombined::CombinedFitTag
TagBase implementation for a combined fit.
Definition: CombinedFitTag.h:24
test_pyathena.parent
parent
Definition: test_pyathena.py:15
DataVector< Trk::Track >
MuonCombined::MuonCombinedFitTagTool::m_indetPullCut
Gaudi::Property< double > m_indetPullCut
Definition: MuonCombinedFitTagTool.h:79
MuonCombined::MuonCombinedFitTagTool::m_trackBuilder
ToolHandle< Rec::ICombinedMuonTrackBuilder > m_trackBuilder
Definition: MuonCombinedFitTagTool.h:68
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
MuonCombined::MuonCombinedFitTagTool::m_fieldCacheCondObjInputKey
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
Definition: MuonCombinedFitTagTool.h:83
MuonCombined::MuonCombinedFitTagTool::m_momentumBalanceCut
Gaudi::Property< double > m_momentumBalanceCut
Definition: MuonCombinedFitTagTool.h:78
SG::ReadCondHandleKey< AtlasFieldCacheCondObj >
MuonCombined::MuonCombinedFitTagTool::m_outwardsBuilder
ToolHandle< Rec::ICombinedMuonTrackBuilder > m_outwardsBuilder
Definition: MuonCombinedFitTagTool.h:69
VertexContainer.h
MuonCombined::MuonCombinedFitTagTool::dumpCaloEloss
void dumpCaloEloss(const EventContext &ctx, const Trk::Track *track, const std::string &txt) const
Definition: MuonCombinedFitTagTool.cxx:378
MuonCombined::MuonCombinedFitTagTool::extrapolatedNeedsRefit
bool extrapolatedNeedsRefit(const EventContext &ctx, const Trk::Track &combTrack, const Trk::Track *extrTrack) const
Definition: MuonCombinedFitTagTool.cxx:455
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
IMuonMomentumBalanceSignificance.h
MuonCombined
The MuonTagToSegMap is an auxillary construct that links the MuonSegments associated with a combined ...
Definition: IMuonSystemExtensionTool.h:23
MuonCombined::MuonCombinedFitTagTool::~MuonCombinedFitTagTool
virtual ~MuonCombinedFitTagTool()=default
IMuidMuonRecovery.h
IMuonCombinedTool.h
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
MuonCombined::MuonCombinedFitTagTool::m_printer
ToolHandle< Muon::MuonEDMPrinterTool > m_printer
Definition: MuonCombinedFitTagTool.h:67
CaloCondBlobAlgs_fillNoiseFromASCII.tag
string tag
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:24
AthAlgTool
Definition: AthAlgTool.h:26
IMuonMatchQuality.h
MuonCombined::MuonCombinedFitTagTool::m_matchQuality
ToolHandle< Rec::IMuonMatchQuality > m_matchQuality
Definition: MuonCombinedFitTagTool.h:74
MuonCombined::MuonCombinedFitTagTool::buildCombinedTrack
std::unique_ptr< Trk::Track > buildCombinedTrack(const EventContext &ctx, const Trk::Track &indetTrack, const Trk::Track &spectrometerTrack, const Trk::Track *extrapolatedTrack) const
Definition: MuonCombinedFitTagTool.cxx:196
IMuonIdHelperSvc.h
MuonCombined::MuonCombinedFitTagTool
Definition: MuonCombinedFitTagTool.h:36
SegmentCollection.h
ServiceHandle< Muon::IMuonIdHelperSvc >