|  | 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...