ATLAS Offline Software
Loading...
Searching...
No Matches
MuonLRTMergingAlg.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
6
7
8
9#ifndef MUON_ANALYSIS_ALGORITHMS__MUON_LRT_MERGING_ALGORITHM__H
10#define MUON_ANALYSIS_ALGORITHMS__MUON_LRT_MERGING_ALGORITHM__H
11
15#include <AsgTools/ToolHandle.h>
16
22
23namespace CP
24{
26
28 {
30 public:
31 MuonLRTMergingAlg (const std::string& name,
32 ISvcLocator* pSvcLocator);
33 StatusCode initialize () override;
34 StatusCode execute (const EventContext &ctx) const override;
35
36 private:
37
39
41
43
45 SG::ReadHandleKey<xAOD::MuonContainer> m_promptMuonLocation{this, "PromptMuonLocation","Muons", "Prompt muons to merge"};
47 SG::ReadHandleKey<xAOD::MuonContainer> m_lrtMuonLocation{this, "LRTMuonLocation","MuonsLRT", "LRT muons to merge"};
49 SG::WriteHandleKey<xAOD::MuonContainer> m_outMuonLocation{this, "OutputMuonLocation", "StdWithLRTMuons", "name of the muon container to write"};
52
54 Gaudi::Property<bool> m_createViewCollection{this, "CreateViewCollection", true};
55 ToolHandle<CP::IMuonLRTOverlapRemovalTool> m_overlapRemovalTool{this, "overlapRemovalTool", "", "tool to determine overlaps between regular and LRT muons"};
56
59 Gaudi::Property<int> m_ORstrategy{this, "overlapStrategy", CP::IMuonLRTOverlapRemovalTool::defaultStrategy, "Overlap removal strategy to use (0 = default, 1 = write all muons and decorate with overlap type)"};
60 Gaudi::Property<bool> m_useRun3WP{this, "UseRun3WP", false, "Switch to toggle the run 2 & run 3 geometry for the muon ID working points used in the prompt-LRT overlap resolution. Set to true for run 3 and false for run 2."};
61
63
65
67 StatusCode mergeMuon(const xAOD::MuonContainer & muonCol,
68 const std::vector<bool> & muonIsGood,
70
72 StatusCode mergeMuon(const xAOD::MuonContainer & muonCol,
73 const std::vector<bool> & muonIsGood,
74 xAOD::MuonContainer* outputCol) const;
75
76
81 };
82}
83
84#endif
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
DataVector adapter that acts like it holds const pointers.
ToolHandle< CP::IMuonLRTOverlapRemovalTool > m_overlapRemovalTool
MuonLRTMergingAlg(const std::string &name, ISvcLocator *pSvcLocator)
the standard constructor
SG::WriteHandleKey< xAOD::MuonContainer > m_outMuonLocation
Combined muon collection.
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_lrtIsLRTKey
StatusCode initialize() override
Gaudi::Property< bool > m_createViewCollection
flag to create a view collection rather than building deep-copies (true by default)
StatusCode mergeMuon(const xAOD::MuonContainer &muonCol, const std::vector< bool > &muonIsGood, ConstDataVector< xAOD::MuonContainer > *outputCol) const
Private methods:
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_promptIsLRTKey
SG::WriteHandleKey< ConstDataVector< xAOD::MuonContainer > > m_outMuonViewLocation
Combined muon view collection, set from m_outMuonLocation in initialize().
SG::ReadHandleKey< xAOD::MuonContainer > m_lrtMuonLocation
LRT muon collection to be merged.
SG::ReadHandleKey< xAOD::MuonContainer > m_promptMuonLocation
Private data:
StatusCode execute(const EventContext &ctx) const override
Gaudi::Property< bool > m_useRun3WP
Gaudi::Property< int > m_ORstrategy
allows to pass an overlap removal strategy to the underlying removal tool, without manually configuri...
DataVector adapter that acts like it holds const pointers.
the base class for EventLoop reentrant algorithms
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
Select isolated Photons, Electrons and Muons.
MuonContainer_v1 MuonContainer
Definition of the current "Muon container version".