ATLAS Offline Software
Loading...
Searching...
No Matches
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"
20
21namespace MuonCombined {
22
32
33 class IMuonCreatorTool : virtual public IAlgTool {
34 public:
35 using InDetCandidateTags = std::pair<const InDetCandidate*, std::vector<const TagBase*> >;
36
71
72 static const InterfaceID& interfaceID() {
73 static const InterfaceID IID_IMuonCreatorTool("MuonCombined::IMuonCreatorTool", 1, 0);
74 return IID_IMuonCreatorTool;
75 }
76
78
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
DataVector< MuonCombined::MuonCandidate > MuonCandidateCollection
This typedef represents a collection of MuonCandidate objects.
DataVector< Trk::Track > TrackCollection
This typedef represents a collection of Trk::Track objects.
interface for tools building combined muons from ID and Muon candidates
virtual xAOD::Muon * create(const EventContext &ctx, const MuonCandidate &candidate, OutputData &outputData) const =0
create a muon from a muon candidate
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.
virtual ~IMuonCreatorTool()=default
default virtual destructor
std::pair< const InDetCandidate *, std::vector< const TagBase * > > InDetCandidateTags
virtual xAOD::Muon * create(const EventContext &ctx, InDetCandidateTags &candidate, OutputData &outputData) const =0
create a muon from an ID candidate
static const InterfaceID & interfaceID()
The MuonTagToSegMap is an auxillary construct that links the MuonSegments associated with a combined ...
MuonSegmentContainer_v1 MuonSegmentContainer
Definition of the current "MuonSegment container version".
TrackParticleContainer_v1 TrackParticleContainer
Definition of the current "TrackParticle container version".
Muon_v1 Muon
Reference the current persistent version:
CaloClusterContainer_v1 CaloClusterContainer
Define the latest version of the calorimeter cluster container.
SlowMuonContainer_v1 SlowMuonContainer
Definition of the current "SlowMuon container version".
MuonContainer_v1 MuonContainer
Definition of the current "Muon container version".
xAOD::MuonContainer * muonContainer
MuonContainer to be filled with the Muon objects.
TrackCollection * combinedTrackCollection
container for the combined tracks
TrackCollection * msOnlyExtrapolatedTrackCollection
container for the extrapolated tracks
xAOD::TrackParticleContainer * extrapolatedTrackParticleContainer
container for the extrapolated track particles
TrackCollection * extrapolatedTrackCollection
container for the extrapolated tracks
const MuonCombined::MuonTagToSegMap * tagToSegmentAssocMap
container to map the segments from the tag maps to the ones stored in the container
xAOD::SlowMuonContainer * slowMuonContainer
container for the Slow muon content
OutputData(xAOD::MuonContainer &container)
xAOD::TrackParticleContainer * msOnlyExtrapolatedTrackParticleContainer
container for the extrapolated track particles
xAOD::TrackParticleContainer * combinedTrackParticleContainer
container for the combined track particles
xAOD::CaloClusterContainer * clusterContainer
container for the clusters associated with muons
const xAOD::MuonSegmentContainer * xaodSegmentContainer
container for the xAOD segments