 |
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;
63 typedef std::set<MuonStationIndex::ChIndex>
ChSet;
65 typedef ChSet::const_iterator
ChCit;
67 typedef std::set<MuonStationIndex::StIndex>
StSet;
69 typedef StSet::const_iterator
StCit;
98 std::unique_ptr<TrackCollection>
selectTracks(std::vector<std::unique_ptr<MuPatTrack>>&
candidates,
bool takeOwnership =
true)
const;
103 ChSet& chambersWithSegments,
StSet& stationsWithSegments, GarbageContainer& trash_bin)
const;
107 static bool decodeList(
const std::string& input, std::vector<std::string>&
list) ;
110 const unsigned int endlayer,
int cutLevel = 0)
const;
129 StSet& stationsWithSegments, GarbageContainer& trash_bin)
const;
133 "Handle to the service providing the IMuonEDMHelperSvc interface"};
134 PublicToolHandle<MuonEDMPrinterTool>
m_printer{
this,
"MuonPrinterTool",
"Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"};
135 ToolHandle<MuPatCandidateTool>
m_candidateTool{
this,
"MuPatCandidateTool",
"Muon::MuPatCandidateTool/MuPatCandidateTool"};
136 ToolHandle<IMuonTrackBuilder>
m_trackBTool{
this,
"TrackBuilderTool",
"Muon::MooTrackBuilder/MooMuonTrackBuilder"};
137 ToolHandle<Trk::ITrackAmbiguityProcessorTool>
m_ambiTool{
this,
"AmbiguityTool",
138 "Trk::TrackSelectionProcessorTool/MuonAmbiProcessor"};
139 ToolHandle<MooTrackBuilder>
m_mooBTool{
this,
"MooBuilderTool",
"Muon::MooTrackBuilder/MooMuonTrackBuilder"};
141 "Muon::MooCandidateMatchingTool/MooCandidateMatchingTool"};
142 ToolHandle<IMuonTrackRefiner>
m_trackRefineTool{
this,
"TrackRefinementTool",
"Muon::MooTrackBuilder/MooMuonTrackBuilder"};
144 "Muon::MuonSegmentFittingTool/MuonSegmentFittingTool"};
146 "Muon::MuonTrackSelectorTool/MuonTrackSelectorTool"};
148 "Muon::MuonChamberHoleRecoveryTool/MuonChamberHoleRecoveryTool"};
149 ToolHandle<Trk::IExtendedTrackSummaryTool>
m_trackSummaryTool{
this,
"TrackSummaryTool",
"MuonTrackSummaryTool"};
151 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)
std::unique_ptr< TrackCollection > findTracks(const EventContext &ctx, ChSegCol_t &chamberSegments, StSegCol_t &stationSegments) const
actual find method
void refineTracks(const EventContext &ctx, std::vector< std::unique_ptr< MuPatTrack >> &candidates) const
std::unique_ptr< const MuonTrackSteeringStrategy > decodeStrategy(const std::string &strategy) const
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
std::vector< std::unique_ptr< MuPatTrack > > extendWithLayer(const EventContext &ctx, MuPatTrack &candidate, const SegColVec_t &segcol, unsigned int nextlayer, const unsigned int endlayer, int cutLevel=0) const
ToolHandle< Trk::IExtendedTrackSummaryTool > m_trackSummaryTool
bool m_outputSingleStationTracks
void combineOverlapSegments(const EventContext &ctx, std::vector< MuPatSegment * > &ch1, std::vector< MuPatSegment * > &ch2, StSegCol_t &stationSegments, StSet &stationsWithSegments, GarbageContainer &trash_bin) const
bool m_combinedSLOverlaps
std::vector< std::unique_ptr< MuPatTrack > > findTrackFromSeed(const EventContext &ctx, MuPatSegment &seedSeg, const MuonTrackSteeringStrategy &strat, const unsigned int layer, const SegColVec_t &segs) const
Find tracks starting from a good segment.
std::vector< MuPatSegment * >::iterator SegColIt
StSet::const_iterator StCit
::StatusCode StatusCode
StatusCode definition for legacy code.
std::vector< Trk::Track * > TrkCollVec
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
ToolHandle< IMuonSegmentFittingTool > m_segmentFitter
Implementation of an IMuonTrackFinder.
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::string > m_stringStrategies
bool extractSegments(const EventContext &ctx, const MuonSegmentCollection &coll, ChSegCol_t &chamberSegments, StSegCol_t &stationSegments, ChSet &chambersWithSegments, StSet &stationsWithSegments, GarbageContainer &trash_bin) const
std::vector< const Muon::MuonSegment * > MuonSegmentCollection
ToolHandle< IMuonTrackBuilder > m_trackBTool
ToolHandle< Trk::ITrackAmbiguityProcessorTool > m_ambiTool
constexpr int toInt(const EnumType enumVal)
std::vector< SegCol > SegColVec_t
std::array< SegCol, MuonStationIndex::toInt(MuonStationIndex::ChIndex::ChIndexMax)> ChSegCol_t
Helper container to sort the segments by chamber index.
std::array< SegCol, MuonStationIndex::toInt(MuonStationIndex::StIndex::StIndexMax)> StSegCol_t
Helper container to sort the segments by station index.