|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef MUON_MOOTRACKBUILDER_H
6 #define MUON_MOOTRACKBUILDER_H
9 #include "GaudiKernel/ServiceHandle.h"
10 #include "GaudiKernel/ToolHandle.h"
54 class IExtendedTrackSummaryTool;
59 class MuPatCandidateBase;
87 MooTrackBuilder(
const std::string&,
const std::string&,
const IInterface*);
100 static const InterfaceID IID_MooTrackBuilder(
"Muon::MooTrackBuilder", 1, 0);
101 return IID_MooTrackBuilder;
108 virtual std::unique_ptr<Trk::Track>
refit(
const EventContext& ctx,
Trk::Track&
track)
const override;
117 const PrepVec& patternPhiHits)
const;
128 const PrepVec& patternPhiHits)
const;
137 const PrepVec& patternPhiHits)
const override;
146 const PrepVec& patternPhiHits)
const override;
155 const PrepVec& patternPhiHits)
const override;
164 const PrepVec& patternPhiHits)
const;
181 const std::set<Identifier>& chIds,
const PrepVec& patternPhiHits)
const;
189 const std::set<Identifier>& chIds,
190 const PrepVec& patternPhiHits)
const;
216 bool doCompetingClusters)
const override;
222 std::pair<std::unique_ptr<Trk::Track>, std::unique_ptr<Trk::Track> >
splitTrack(
const EventContext& ctx,
const Trk::Track&
track)
const;
238 virtual std::vector<std::unique_ptr<MuPatTrack> >
find(
const EventContext& ctx,
MuPatCandidateBase& candidate,
const std::vector<MuPatSegment*>& segments)
const override;
248 std::vector<const MuonSegment*>& referenceSegments)
const;
253 std::vector<std::unique_ptr<const Trk::TrackStateOnSurface>>&
states)
const;
255 ToolHandle<MooTrackFitter>
m_fitter{
this,
"Fitter",
"Muon::MooTrackFitter/MooTrackFitter",
"Tool to fit segments to tracks"};
256 ToolHandle<MooTrackFitter>
m_slFitter{
this,
"SLFitter",
"Muon::MooTrackFitter/MooSLTrackFitter",
"Tool to fit segments to tracks"};
258 "Muon::MuPatCandidateTool/MuPatCandidateTool"};
260 "Muon::MooCandidateMatchingTool/MooCandidateMatchingTool"};
262 "Muon::MuonTrackToSegmentTool/MuonTrackToSegmentTool"};
264 "Handle to the service providing the IMuonEDMHelperSvc interface"};
265 PublicToolHandle<MuonEDMPrinterTool>
m_printer{
this,
"Printer",
266 "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"};
269 "Muon::MuonSeededSegmentFinder/MuonSeededSegmentFinder"};
271 "Muon::MdtDriftCircleOnTrackCreator/MdtDriftCircleOnTrackCreator"};
273 this,
"CompetingClustersCreator",
"Muon::TriggerChamberClusterOnTrackCreator/TriggerChamberClusterOnTrackCreator"};
274 ToolHandle<Trk::IPropagator>
m_propagator{
this,
"Propagator",
"Trk::STEP_Propagator/MuonPropagator"};
276 "Trk::ResidualPullCalculator/ResidualPullCalculator"};
278 this,
"ChamberHoleRecoveryTool",
279 "Muon::MuonChamberHoleRecoveryTool/MuonChamberHoleRecoveryTool"};
281 this,
"Extrapolator",
"Muon::MuonTrackExtrapolationTool/MuonTrackExtrapolationTool"};
284 ToolHandle<Trk::IExtendedTrackSummaryTool>
m_trackSummaryTool{
this,
"TrackSummaryTool",
"MuonTrackSummaryTool"};
287 "Name of the Magnetic Field conditions object key"};
bool isSplitTrack(const EventContext &ctx, const Trk::Track &track1, const Trk::Track &track2) const
identify whether two track are split
Const iterator class for DataVector/DataList.
ToolHandle< IMuonHoleRecoveryTool > m_muonChamberHoleRecoverTool
TrackCollection * mergeSplitTracks(const EventContext &ctx, const TrackCollection &tracks) const
look for split tracks in collection and merge them
ToolHandle< IMuonTrackToSegmentTool > m_trackToSegmentTool
track candidate entry object.
Gaudi::Property< bool > m_useTrackingHistory
use history of the track finding up to now to avoid creating duplicates
ServiceHandle< IMuonEDMHelperSvc > m_edmHelperSvc
virtual std::unique_ptr< Trk::Track > recalibrateHitsOnTrack(const EventContext &ctx, const Trk::Track &track, bool doMdts, bool doCompetingClusters) const override
recalibrate hits on track
virtual std::unique_ptr< Trk::Track > refit(const EventContext &ctx, Trk::Track &track) const override
refit track
virtual StatusCode finalize() override
finialize method, method taken from bass-class AlgTool
ToolHandle< MuPatCandidateTool > m_candidateHandler
candidate handler
~MooTrackBuilder()=default
destructor
ToolHandle< IMuonSeededSegmentFinder > m_seededSegmentFinder
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
MuonSegment_v1 MuonSegment
Reference the current persistent version:
ToolHandle< IMuonCompetingClustersOnTrackCreator > m_compRotCreator
ToolHandle< MooCandidateMatchingTool > m_candidateMatchingTool
ToolHandle< MooTrackFitter > m_fitter
std::atomic_uint m_nTimedOut
virtual std::vector< std::unique_ptr< MuPatTrack > > find(const EventContext &ctx, MuPatCandidateBase &candidate, const std::vector< MuPatSegment * > &segments) const override
interface for tools to find track in the muon system starting from a vector of segments
ToolHandle< IMuonTrackExtrapolationTool > m_trackExtrapolationTool
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
virtual std::unique_ptr< Trk::TrackParameters > getClosestParameters(const Trk::Track &track, const Trk::Surface &surf) const override
find closest TrackParameters to the surface.
::StatusCode StatusCode
StatusCode definition for legacy code.
ToolHandle< MooTrackFitter > m_slFitter
PublicToolHandle< MuonEDMPrinterTool > m_printer
tool to print out EDM objects;
std::atomic_uint m_ncalls
ToolHandle< Trk::IExtendedTrackSummaryTool > m_trackSummaryTool
MooTrackBuilder(const std::string &, const std::string &, const IInterface *)
default AlgTool constructor
virtual std::unique_ptr< Trk::TrackParameters > findClosestParameters(const Trk::Track &track, const Amg::Vector3D &pos) const override
find closest TrackParameters to the position.
Gaudi::Property< bool > m_doTimeOutChecks
on/off time out check
std::unique_ptr< Trk::Track > combine(const EventContext &ctx, const MuPatCandidateBase &firstEntry, const MuPatCandidateBase &secondEntry, const PrepVec &patternPhiHits) const
combine two MCTBCandidateEntries
@ FullField
Field is set to be realistic, but within a given Volume.
Gaudi::Property< bool > m_recalibrateMDTHits
Ensure that the ATLAS eigen extensions are properly loaded.
Gaudi::Property< bool > m_useExclusionList
use exclusion list (bit faster at the price of missing chambers)
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
std::unique_ptr< MuonSegment > combineToSegment(const EventContext &ctx, const MuPatCandidateBase &firstEntry, const MuPatCandidateBase &secondEntry, const PrepVec &patternPhiHits) const
Methos is used externally by MuonTrackSteering.cxx:233. Should be revised to put it into an interface...
virtual StatusCode initialize() override
initialize method, method taken from bass-class AlgTool
Eigen::Matrix< double, 3, 1 > Vector3D
segment candidate object.
std::pair< std::unique_ptr< Trk::Track >, std::unique_ptr< Trk::Track > > splitTrack(const EventContext &ctx, const Trk::Track &track) const
split given track if it crosses the calorimeter volume, code assumes that the track was already extra...
virtual void refine(const EventContext &ctx, MuPatTrack &track) const override
interface for tools which refine the hit content of a given track
ToolHandle< IMuonErrorOptimisationTool > m_errorOptimisationTool
The IMuonTrackRefiner is a pure virtual interface for tools which refine the hit content of a given t...
Trk::MagneticFieldProperties m_magFieldProperties
magnetic field properties
ToolHandle< Trk::IResidualPullCalculator > m_pullCalculator
std::vector< std::unique_ptr< Trk::Track > > combineWithSegmentFinding(const EventContext &ctx, const Trk::Track &track, const MuonSegment &seg, const PrepVec &patternPhiHits) const
find tracks by redoing the segment finding in the chamber of the segment
ToolHandle< IMdtDriftCircleOnTrackCreator > m_mdtRotCreator
ToolHandle< Trk::IPropagator > m_propagator
The IMuonTrackBuilder is a pure virtual interface for tools extending muon track candidates with segm...
std::vector< const Trk::PrepRawData * > PrepVec
Trk::TrackStates::const_iterator insertClustersWithCompetingRotCreation(const EventContext &ctx, Trk::TrackStates::const_iterator tsit, Trk::TrackStates::const_iterator tsit_end, std::vector< std::unique_ptr< const Trk::TrackStateOnSurface >> &states) const
void removeDuplicateWithReference(std::unique_ptr< Trk::SegmentCollection > &segments, std::vector< const MuonSegment * > &referenceSegments) const
static const InterfaceID & interfaceID()
access to tool interface
The IMuonSegmentMaker is a pure virtual interface for tools to find tracks starting from MuonSegmentC...