|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef MUONTRACKSTEERING_H
6 #define MUONTRACKSTEERING_H
14 #include "GaudiKernel/ServiceHandle.h"
15 #include "GaudiKernel/StatEntity.h"
16 #include "GaudiKernel/ToolHandle.h"
17 #include "Identifier/Identifier.h"
53 typedef std::vector<MuPatTrack*>
TrkVec;
55 typedef std::vector<MuPatSegment*>
SegCol;
61 typedef std::set<MuonStationIndex::ChIndex>
ChSet;
63 typedef ChSet::const_iterator
ChCit;
65 typedef std::set<MuonStationIndex::StIndex>
StSet;
67 typedef StSet::const_iterator
StCit;
96 std::unique_ptr<TrackCollection>
selectTracks(std::vector<std::unique_ptr<MuPatTrack>>&
candidates,
bool takeOwnership =
true)
const;
101 ChSet& chambersWithSegments,
StSet& stationsWithSegments, GarbageContainer& trash_bin)
const;
108 const unsigned int endlayer,
int cutLevel = 0)
const;
127 StSet& stationsWithSegments, GarbageContainer& trash_bin)
const;
131 "Handle to the service providing the IMuonEDMHelperSvc interface"};
132 PublicToolHandle<MuonEDMPrinterTool>
m_printer{
this,
"MuonPrinterTool",
"Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"};
133 ToolHandle<MuPatCandidateTool>
m_candidateTool{
this,
"MuPatCandidateTool",
"Muon::MuPatCandidateTool/MuPatCandidateTool"};
134 ToolHandle<IMuonTrackBuilder>
m_trackBTool{
this,
"TrackBuilderTool",
"Muon::MooTrackBuilder/MooMuonTrackBuilder"};
135 ToolHandle<Trk::ITrackAmbiguityProcessorTool>
m_ambiTool{
this,
"AmbiguityTool",
136 "Trk::TrackSelectionProcessorTool/MuonAmbiProcessor"};
137 ToolHandle<MooTrackBuilder>
m_mooBTool{
this,
"MooBuilderTool",
"Muon::MooTrackBuilder/MooMuonTrackBuilder"};
139 "Muon::MooCandidateMatchingTool/MooCandidateMatchingTool"};
140 ToolHandle<IMuonTrackRefiner>
m_trackRefineTool{
this,
"TrackRefinementTool",
"Muon::MooTrackBuilder/MooMuonTrackBuilder"};
142 "Muon::MuonSegmentFittingTool/MuonSegmentFittingTool"};
144 "Muon::MuonTrackSelectorTool/MuonTrackSelectorTool"};
146 "Muon::MuonChamberHoleRecoveryTool/MuonChamberHoleRecoveryTool"};
147 ToolHandle<Trk::IExtendedTrackSummaryTool>
m_trackSummaryTool{
this,
"TrackSummaryTool",
"MuonTrackSummaryTool"};
149 std::vector<std::unique_ptr<const MuonTrackSteeringStrategy>>
m_strategies;
JetConstituentVector::iterator iterator
std::array< int, 3 > m_segQCut
Required segment quality for seed, 2nd, and other segments.
ChSet::const_iterator ChCit
void push_back(std::unique_ptr< MuonSegment > seg)
std::vector< MuPatSegment * > SegCol
static bool decodeList(const std::string &input, std::vector< std::string > &list)
void refineTracks(const EventContext &ctx, std::vector< std::unique_ptr< MuPatTrack >> &candidates) const
std::unique_ptr< const MuonTrackSteeringStrategy > decodeStrategy(const std::string &strategy) const
SegColVec::const_iterator SegColVecCit
std::vector< std::unique_ptr< MuonSegment > > seg_garbage
PublicToolHandle< MuonEDMPrinterTool > m_printer
MuonTrackSteering(const std::string &, const std::string &, const IInterface *)
default AlgTool constructor
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
virtual ~MuonTrackSteering()=default
destructor
ToolHandle< Trk::IExtendedTrackSummaryTool > m_trackSummaryTool
bool m_outputSingleStationTracks
bool m_combinedSLOverlaps
std::vector< MuPatSegment * >::iterator SegColIt
StSet::const_iterator StCit
std::vector< std::unique_ptr< MuPatTrack > > extendWithLayer(const EventContext &ctx, MuPatTrack &candidate, const SegColVec &segcol, unsigned int nextlayer, const unsigned int endlayer, int cutLevel=0) const
::StatusCode StatusCode
StatusCode definition for legacy code.
std::vector< Trk::Track * > TrkCollVec
SegColVec::iterator SegColVecIt
ToolHandle< Muon::MuonTrackSelectorTool > m_trackSelector
std::set< MuonStationIndex::StIndex > StSet
std::vector< std::unique_ptr< const MuonTrackSteeringStrategy > > m_strategies
ServiceHandle< IMuonEDMHelperSvc > m_edmHelperSvc
std::set< MuonStationIndex::ChIndex > ChSet
std::vector< SegCol > SegColVec
std::unique_ptr< TrackCollection > findTracks(const EventContext &ctx, SegColVec &chamberSegments, SegColVec &stationSegments) const
actual find method
ToolHandle< IMuonSegmentFittingTool > m_segmentFitter
Implementation of an IMuonTrackFinder.
bool extractSegments(const EventContext &ctx, const MuonSegmentCollection &coll, SegColVec &chamberSegments, SegColVec &stationSegments, ChSet &chambersWithSegments, StSet &stationsWithSegments, GarbageContainer &trash_bin) const
virtual StatusCode initialize() override
initialize method, method taken from bass-class AlgTool
ToolHandle< IMuonTrackRefiner > m_trackRefineTool
ToolHandle< IMuonHoleRecoveryTool > m_muonHoleRecoverTool
StatusCode decodeStrategyVector(const std::vector< std::string > &strategy)
ToolHandle< MooTrackBuilder > m_mooBTool
ToolHandle< MuPatCandidateTool > m_candidateTool
std::unique_ptr< TrackCollection > selectTracks(std::vector< std::unique_ptr< MuPatTrack >> &candidates, bool takeOwnership=true) const
ToolHandle< MooCandidateMatchingTool > m_candidateMatchingTool
void solveAmbiguities(std::vector< std::unique_ptr< MuPatTrack >> &tracks, const MuonTrackSteeringStrategy *strat=nullptr) const
Resolve ambiguities among tracks for a single strategy This allows a strategy-specific ambiguity solv...
segment candidate object.
void push_back(std::unique_ptr< MuPatSegment > seg)
std::vector< std::unique_ptr< MuPatSegment > > pat_garbage
std::unique_ptr< TrackCollection > find(const EventContext &ctx, const MuonSegmentCollection &coll) const override
find tracks starting from a MuonSegmentCollection
std::vector< MuPatTrack * > TrkVec
std::vector< std::unique_ptr< MuPatTrack > > findTrackFromSeed(const EventContext &ctx, MuPatSegment &seedSeg, const MuonTrackSteeringStrategy &strat, const unsigned int layer, const SegColVec &segs) const
Find tracks starting from a good segment.
std::vector< std::string > m_stringStrategies
void combineOverlapSegments(const EventContext &ctx, std::vector< MuPatSegment * > &ch1, std::vector< MuPatSegment * > &ch2, SegColVec &stationSegments, StSet &stationsWithSegments, GarbageContainer &trash_bin) const
std::vector< const Muon::MuonSegment * > MuonSegmentCollection
ToolHandle< IMuonTrackBuilder > m_trackBTool
The IMuonTrackFinder is a pure virtual interface for tools to find track in the muon system starting ...
ToolHandle< Trk::ITrackAmbiguityProcessorTool > m_ambiTool