ATLAS Offline Software
IMuonCreatorTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef IRECMUONCREATORTOOL_H
5 #define IRECMUONCREATORTOOL_H
6 
7 #include <string>
8 #include <vector>
9 
10 #include "GaudiKernel/IAlgTool.h"
17 #include "xAODMuon/MuonContainer.h"
20 
21 namespace MuonCombined {
22 
33  class IMuonCreatorTool : virtual public IAlgTool {
34  public:
35  using InDetCandidateTags = std::pair<const InDetCandidate*, std::vector<const TagBase*> >;
36 
37  struct OutputData {
38  OutputData(xAOD::MuonContainer& container) : muonContainer(&container) {}
41 
44 
47 
50 
53 
56 
59 
64 
67 
70  };
71 
72  static const InterfaceID& interfaceID() {
73  static const InterfaceID IID_IMuonCreatorTool("MuonCombined::IMuonCreatorTool", 1, 0);
74  return IID_IMuonCreatorTool;
75  }
76 
79  virtual void create(const EventContext& ctx, const MuonCandidateCollection* muonCandidates,
80  const std::vector<const InDetCandidateToTagMap*>& tagMaps, OutputData& outputData) const = 0;
81 
83  virtual xAOD::Muon* create(const EventContext& ctx, const MuonCandidate& candidate, OutputData& outputData) const = 0;
84 
86  virtual xAOD::Muon* create(const EventContext& ctx, InDetCandidateTags& candidate, OutputData& outputData) const = 0;
88  virtual ~IMuonCreatorTool() = default;
89  };
90 
91 } // namespace MuonCombined
92 
93 #endif
MuonCombined::IMuonCreatorTool
interface for tools building combined muons from ID and Muon candidates
Definition: IMuonCreatorTool.h:33
MuonTagToSegMap.h
MuonCombined::IMuonCreatorTool::OutputData::combinedTrackParticleContainer
xAOD::TrackParticleContainer * combinedTrackParticleContainer
container for the combined track particles
Definition: IMuonCreatorTool.h:43
MuonCombined::IMuonCreatorTool::create
virtual xAOD::Muon * create(const EventContext &ctx, InDetCandidateTags &candidate, OutputData &outputData) const =0
create a muon from an ID candidate
MuonCombined::IMuonCreatorTool::OutputData::msOnlyExtrapolatedTrackCollection
TrackCollection * msOnlyExtrapolatedTrackCollection
container for the extrapolated tracks
Definition: IMuonCreatorTool.h:58
MuonCombined::IMuonCreatorTool::OutputData::clusterContainer
xAOD::CaloClusterContainer * clusterContainer
container for the clusters associated with muons
Definition: IMuonCreatorTool.h:69
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
MuonCombined::IMuonCreatorTool::create
virtual void create(const EventContext &ctx, const MuonCandidateCollection *muonCandidates, const std::vector< const InDetCandidateToTagMap * > &tagMaps, OutputData &outputData) const =0
IMuonCreatorTool interface: build muons from ID and MS candidates.
MuonCombined::IMuonCreatorTool::OutputData::msOnlyExtrapolatedTrackParticleContainer
xAOD::TrackParticleContainer * msOnlyExtrapolatedTrackParticleContainer
container for the extrapolated track particles
Definition: IMuonCreatorTool.h:49
MuonCombined::IMuonCreatorTool::OutputData::tagToSegmentAssocMap
const MuonCombined::MuonTagToSegMap * tagToSegmentAssocMap
container to map the segments from the tag maps to the ones stored in the container
Definition: IMuonCreatorTool.h:63
MuonCombined::MuonCandidate
Definition: Reconstruction/MuonIdentification/MuonCombinedEvent/MuonCombinedEvent/MuonCandidate.h:25
MuonCombined::IMuonCreatorTool::OutputData::muonContainer
xAOD::MuonContainer * muonContainer
MuonContainer to be filled with the Muon objects.
Definition: IMuonCreatorTool.h:40
MuonCombined::IMuonCreatorTool::InDetCandidateTags
std::pair< const InDetCandidate *, std::vector< const TagBase * > > InDetCandidateTags
Definition: IMuonCreatorTool.h:35
MuonCombined::IMuonCreatorTool::interfaceID
static const InterfaceID & interfaceID()
Definition: IMuonCreatorTool.h:72
MuonCombined::IMuonCreatorTool::create
virtual xAOD::Muon * create(const EventContext &ctx, const MuonCandidate &candidate, OutputData &outputData) const =0
create a muon from a muon candidate
TrackCollection.h
MuonCombined::IMuonCreatorTool::OutputData::extrapolatedTrackParticleContainer
xAOD::TrackParticleContainer * extrapolatedTrackParticleContainer
container for the extrapolated track particles
Definition: IMuonCreatorTool.h:46
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
MuonCandidateCollection.h
SlowMuonContainer.h
MuonCombined::IMuonCreatorTool::OutputData::xaodSegmentContainer
const xAOD::MuonSegmentContainer * xaodSegmentContainer
container for the xAOD segments
Definition: IMuonCreatorTool.h:61
InDetCandidateToTagMap.h
MuonCombined::IMuonCreatorTool::OutputData::combinedTrackCollection
TrackCollection * combinedTrackCollection
container for the combined tracks
Definition: IMuonCreatorTool.h:52
MuonContainer.h
MuonCombined::IMuonCreatorTool::OutputData::slowMuonContainer
xAOD::SlowMuonContainer * slowMuonContainer
container for the Slow muon content
Definition: IMuonCreatorTool.h:66
MuonCombined::IMuonCreatorTool::~IMuonCreatorTool
virtual ~IMuonCreatorTool()=default
default virtual destructor
MuonCombined::IMuonCreatorTool::OutputData::OutputData
OutputData(xAOD::MuonContainer &container)
Definition: IMuonCreatorTool.h:38
MuonCombined::IMuonCreatorTool::OutputData::extrapolatedTrackCollection
TrackCollection * extrapolatedTrackCollection
container for the extrapolated tracks
Definition: IMuonCreatorTool.h:55
MuonCombined
The MuonTagToSegMap is an auxillary construct that links the MuonSegments associated with a combined ...
Definition: IMuonSystemExtensionTool.h:23
MuonCombined::MuonTagToSegMap
Definition: MuonTagToSegMap.h:21
MuonCombined::IMuonCreatorTool::OutputData
Definition: IMuonCreatorTool.h:37
CaloClusterContainer.h
InDetCandidateCollection.h
TrackParticleContainer.h