![]() |
ATLAS Offline Software
|
Tool to combine two segments or a track and a segment to a track. More...
#include <MooTrackBuilder.h>
Public Types | |
| using | PrepVec = std::vector<const Trk::PrepRawData*> |
| typedef PrepVec::iterator | PrepIt |
| typedef PrepVec::const_iterator | PrepCit |
Public Member Functions | |
| MooTrackBuilder (const std::string &, const std::string &, const IInterface *) | |
| default AlgTool constructor | |
| ~MooTrackBuilder ()=default | |
| destructor | |
| virtual StatusCode | initialize () override |
| initialize method, method taken from bass-class AlgTool | |
| virtual StatusCode | finalize () override |
| finialize method, method taken from bass-class AlgTool | |
| virtual std::unique_ptr< Trk::Track > | refit (const EventContext &ctx, Trk::Track &track) const override |
| refit track | |
| 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 std::unique_ptr< MuonSegment > | combineToSegment (const EventContext &ctx, const MuonSegment &seg1, const MuonSegment &seg2, const PrepVec &patternPhiHits) const override |
| combine two segments to a super segment | |
| virtual std::unique_ptr< Trk::Track > | combine (const EventContext &ctx, const MuonSegment &seg1, const MuonSegment &seg2, const PrepVec &patternPhiHits) const override |
| combine two segments to a track | |
| virtual std::unique_ptr< Trk::Track > | combine (const EventContext &ctx, const Trk::Track &track, const MuonSegment &seg, const PrepVec &patternPhiHits) const override |
| combine a track with a segment | |
| virtual std::unique_ptr< Trk::TrackParameters > | findClosestParameters (const Trk::Track &track, const Amg::Vector3D &pos) const override |
| find closest TrackParameters to the position. | |
| virtual std::unique_ptr< Trk::TrackParameters > | getClosestParameters (const Trk::Track &track, const Trk::Surface &surf) const override |
| find closest TrackParameters to the surface. | |
| std::unique_ptr< Trk::TrackParameters > | getClosestParameters (const MuPatCandidateBase &candidate, const Trk::Surface &surf) const |
| find closest TrackParameters to the surface. | |
| 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::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 | |
| virtual void | refine (const EventContext &ctx, MuPatTrack &track) const override |
| interface for tools which refine the hit content of a given track | |
| DeclareInterfaceID (Muon::IMuonSegmentTrackBuilder, 1, 0) | |
| access to tool interface | |
| ServiceHandle< StoreGateSvc > & | evtStore () |
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. | |
| const ServiceHandle< StoreGateSvc > & | detStore () const |
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. | |
| virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. | |
| virtual StatusCode | sysStart () override |
| Handle START transition. | |
| virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. | |
| virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. | |
| Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T, V, H > &t) |
| void | updateVHKA (Gaudi::Details::PropertyBase &) |
| MsgStream & | msg () const |
| bool | msgLvl (const MSG::Level lvl) const |
Static Public Member Functions | |
| static const InterfaceID & | interfaceID () |
| access to tool interface | |
Protected Member Functions | |
| void | renounceArray (SG::VarHandleKeyArray &handlesArray) |
| remove all handles from I/O resolution | |
| std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > | renounce (T &h) |
| void | extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps) |
| Add StoreName to extra input/output deps as needed. | |
Private Types | |
| typedef ServiceHandle< StoreGateSvc > | StoreGateSvc_t |
Private Member Functions | |
| std::unique_ptr< Trk::Track > | combine (const EventContext &ctx, const MuPatCandidateBase &firstEntry, const MuPatCandidateBase &secondEntry, const PrepVec &patternPhiHits) const |
| combine two MCTBCandidateEntries | |
| 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 | |
| std::vector< std::unique_ptr< Trk::Track > > | combineWithSegmentFinding (const EventContext &ctx, const MuPatTrack &candidate, const MuPatSegment &segInfo, const PrepVec &patternPhiHits) const |
| find tracks by redoing the segment finding in the chamber of the segment | |
| std::vector< std::unique_ptr< Trk::Track > > | combineWithSegmentFinding (const EventContext &ctx, const MuPatTrack &candidate, const Trk::TrackParameters &pars, const std::set< Identifier > &chIds, const PrepVec &patternPhiHits) const |
| find tracks by redoing the segment finding in the chamber of the segment | |
| std::vector< std::unique_ptr< Trk::Track > > | combineWithSegmentFinding (const EventContext &ctx, const Trk::Track &track, const Trk::TrackParameters &pars, const std::set< Identifier > &chIds, const PrepVec &patternPhiHits) const |
| find tracks by redoing the segment finding in the chamber of the segment | |
| 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 extrapolated to the muon entry record using the MuonTrackExtrapolationTool. | |
| bool | isSplitTrack (const EventContext &ctx, const Trk::Track &track1, const Trk::Track &track2) const |
| identify whether two track are split | |
| TrackCollection * | mergeSplitTracks (const EventContext &ctx, const TrackCollection &tracks) const |
| look for split tracks in collection and merge them | |
| void | removeDuplicateWithReference (std::unique_ptr< Trk::SegmentCollection > &segments, std::vector< const MuonSegment * > &referenceSegments) const |
| 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 |
| Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> | |
Private Attributes | |
| ToolHandle< MooTrackFitter > | m_fitter {this, "Fitter", "Muon::MooTrackFitter/MooTrackFitter", "Tool to fit segments to tracks"} |
| ToolHandle< MooTrackFitter > | m_slFitter {this, "SLFitter", "Muon::MooTrackFitter/MooSLTrackFitter", "Tool to fit segments to tracks"} |
| ToolHandle< MuPatCandidateTool > | m_candidateHandler |
| candidate handler | |
| ToolHandle< MooCandidateMatchingTool > | m_candidateMatchingTool |
| ToolHandle< IMuonTrackToSegmentTool > | m_trackToSegmentTool |
| ServiceHandle< IMuonEDMHelperSvc > | m_edmHelperSvc |
| PublicToolHandle< MuonEDMPrinterTool > | m_printer |
| tool to print out EDM objects; | |
| ServiceHandle< Muon::IMuonIdHelperSvc > | m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"} |
| ToolHandle< IMuonSeededSegmentFinder > | m_seededSegmentFinder |
| ToolHandle< IMdtDriftCircleOnTrackCreator > | m_mdtRotCreator |
| ToolHandle< IMuonCompetingClustersOnTrackCreator > | m_compRotCreator |
| ToolHandle< Trk::IPropagator > | m_propagator {this, "Propagator", "Trk::STEP_Propagator/MuonPropagator"} |
| ToolHandle< Trk::IResidualPullCalculator > | m_pullCalculator |
| ToolHandle< IMuonHoleRecoveryTool > | m_muonChamberHoleRecoverTool |
| ToolHandle< IMuonTrackExtrapolationTool > | m_trackExtrapolationTool |
| ToolHandle< IMuonErrorOptimisationTool > | m_errorOptimisationTool {this, "ErrorOptimisationTool", ""} |
| ToolHandle< Trk::IExtendedTrackSummaryTool > | m_trackSummaryTool {this, "TrackSummaryTool", "MuonTrackSummaryTool"} |
| SG::ReadCondHandleKey< AtlasFieldCacheCondObj > | m_fieldCacheCondObjInputKey |
| Trk::MagneticFieldProperties | m_magFieldProperties {Trk::FullField} |
| magnetic field properties | |
| Gaudi::Property< bool > | m_doTimeOutChecks {this, "UseTimeOutGuard", true} |
| on/off time out check | |
| Gaudi::Property< bool > | m_useExclusionList |
| use exclusion list (bit faster at the price of missing chambers) | |
| Gaudi::Property< bool > | m_useTrackingHistory |
| use history of the track finding up to now to avoid creating duplicates | |
| Gaudi::Property< bool > | m_recalibrateMDTHits {this, "RecalibrateMDTHitsOnTrack", true} |
| std::atomic_uint | m_ncalls {0} |
| std::atomic_uint | m_nTimedOut {0} |
| StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) | |
| StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) | |
| std::vector< SG::VarHandleKeyArray * > | m_vhka |
| bool | m_varHandleArraysDeclared |
Tool to combine two segments or a track and a segment to a track.
In addition it offers the possibility to combine two segments to one larger segment.
The tool can either be configured to perform a straight line association or an association in the magnetic field.
The following steps are performed:
For more details look at the mainpage of this package.
Definition at line 82 of file MooTrackBuilder.h.
|
inherited |
Definition at line 28 of file IMuonSegmentTrackBuilder.h.
|
inherited |
Definition at line 27 of file IMuonSegmentTrackBuilder.h.
|
inherited |
Definition at line 26 of file IMuonSegmentTrackBuilder.h.
|
privateinherited |
Definition at line 388 of file AthCommonDataStore.h.
| Muon::MooTrackBuilder::MooTrackBuilder | ( | const std::string & | t, |
| const std::string & | n, | ||
| const IInterface * | p ) |
default AlgTool constructor
Definition at line 30 of file MooTrackBuilder.cxx.
|
default |
destructor
|
overridevirtual |
combine two segments to a track
| seg1 | the first segment |
| seg2 | the second segment |
| externalPhiHits | if provided, the external phi hits will be used instead of the phi hits on the segment |
Implements Muon::IMuonSegmentTrackBuilder.
Definition at line 151 of file MooTrackBuilder.cxx.
|
private |
combine two MCTBCandidateEntries
| firstEntry | the first entry |
| secondEntry | the second entry |
| externalPhiHits | if provided, the external phi hits will be used instead of the phi hits on the segment |
Definition at line 178 of file MooTrackBuilder.cxx.
|
overridevirtual |
combine a track with a segment
| track | a track |
| seg | a segment |
| externalPhiHits | if provided, the external phi hits will be used instead of the phi hits on the segment |
Implements Muon::IMuonSegmentTrackBuilder.
Definition at line 318 of file MooTrackBuilder.cxx.
|
overridevirtual |
combine two segments to a super segment
| seg1 | the first segment |
| seg2 | the second segment |
| externalPhiHits | if provided, the external phi hits will be used instead of the phi hits on the segment |
Implements Muon::IMuonSegmentTrackBuilder.
Definition at line 138 of file MooTrackBuilder.cxx.
| std::unique_ptr< MuonSegment > Muon::MooTrackBuilder::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.
combine two MCTBCandidateEntries
| firstEntry | the first entry |
| secondEntry | the second entry |
| externalPhiHits | if provided, the external phi hits will be used instead of the phi hits on the segment |
Definition at line 164 of file MooTrackBuilder.cxx.
|
private |
find tracks by redoing the segment finding in the chamber of the segment
| candidate | a reference to a MuPatTrack |
| segInfo | a reference to a MuPatSegment |
second stage segment matching:
Definition at line 426 of file MooTrackBuilder.cxx.
|
private |
find tracks by redoing the segment finding in the chamber of the segment
| candidate | a reference to a MuPatTrack |
| pars | predicted track parameters in first chamber |
| chIds | identifiers of the chambers in which the search should be performed (should be in same station layer) |
Definition at line 539 of file MooTrackBuilder.cxx.
|
private |
find tracks by redoing the segment finding in the chamber of the segment
| track | a reference to a Track |
| seg | a reference to a MuonSegment |
Definition at line 332 of file MooTrackBuilder.cxx.
|
private |
find tracks by redoing the segment finding in the chamber of the segment
| track | a reference to a Track |
| pars | predicted track parameters in first chamber |
| chIds | identifiers of the chambers in which the search should be performed (should be in same station layer) |
Definition at line 415 of file MooTrackBuilder.cxx.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
|
inherited |
access to tool interface
|
inlineinherited |
Definition at line 145 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition at line 95 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition at line 85 of file AthCommonDataStore.h.
|
protectedinherited |
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
|
overridevirtual |
finialize method, method taken from bass-class AlgTool
Definition at line 60 of file MooTrackBuilder.cxx.
|
overridevirtual |
interface for tools to find track in the muon system starting from a vector of segments
| segments | a vector of input segments in a given chamber layer |
Implements Muon::IMuonTrackBuilder.
Definition at line 918 of file MooTrackBuilder.cxx.
|
overridevirtual |
find closest TrackParameters to the position.
Closest is defined as closest in z in the endcap and closest in r in the barrel.
| track | a reference to a Track |
| pos | a reference to a GlobalPosition |
Implements Muon::IMuonSegmentTrackBuilder.
Definition at line 345 of file MooTrackBuilder.cxx.
| std::unique_ptr< Trk::TrackParameters > Muon::MooTrackBuilder::getClosestParameters | ( | const MuPatCandidateBase & | candidate, |
| const Trk::Surface & | surf ) const |
find closest TrackParameters to the surface.
The distance is calculated along the track
| track | a reference to a MuPatCandidateBase |
| pos | a reference to a Surface |
Definition at line 401 of file MooTrackBuilder.cxx.
|
overridevirtual |
find closest TrackParameters to the surface.
The distance is calculated along the track
Implements Muon::IMuonSegmentTrackBuilder.
Definition at line 411 of file MooTrackBuilder.cxx.
|
overridevirtual |
initialize method, method taken from bass-class AlgTool
Definition at line 37 of file MooTrackBuilder.cxx.
|
overridevirtualinherited |
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
|
private |
Definition at line 722 of file MooTrackBuilder.cxx.
|
inlinestatic |
access to tool interface
Definition at line 99 of file MooTrackBuilder.h.
|
private |
identify whether two track are split
Definition at line 1093 of file MooTrackBuilder.cxx.
|
private |
look for split tracks in collection and merge them
Definition at line 1312 of file MooTrackBuilder.cxx.
|
inlineinherited |
Definition at line 24 of file AthCommonMsg.h.
|
inlineinherited |
Definition at line 30 of file AthCommonMsg.h.
|
overridevirtualinherited |
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
|
overridevirtual |
recalibrate hits on track
Implements Muon::IMuonSegmentTrackBuilder.
Definition at line 616 of file MooTrackBuilder.cxx.
|
overridevirtual |
interface for tools which refine the hit content of a given track
| track | input track |
Implements Muon::IMuonTrackRefiner.
Definition at line 92 of file MooTrackBuilder.cxx.
|
overridevirtual |
refit track
| track | the track |
Implements Muon::IMuonSegmentTrackBuilder.
Definition at line 68 of file MooTrackBuilder.cxx.
|
private |
Definition at line 482 of file MooTrackBuilder.cxx.
|
inlineprotectedinherited |
Definition at line 380 of file AthCommonDataStore.h.
|
inlineprotectedinherited |
remove all handles from I/O resolution
Definition at line 364 of file AthCommonDataStore.h.
|
private |
split given track if it crosses the calorimeter volume, code assumes that the track was already extrapolated to the muon entry record using the MuonTrackExtrapolationTool.
It uses the double perigee to spot the tracks to be split.
Definition at line 897 of file MooTrackBuilder.cxx.
|
overridevirtualinherited |
Perform system initialization for an algorithm.
We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.
Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.
|
overridevirtualinherited |
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
|
inlineinherited |
Definition at line 308 of file AthCommonDataStore.h.
|
private |
candidate handler
Definition at line 257 of file MooTrackBuilder.h.
|
private |
Definition at line 259 of file MooTrackBuilder.h.
|
private |
Definition at line 272 of file MooTrackBuilder.h.
|
privateinherited |
Pointer to StoreGate (detector store by default)
Definition at line 393 of file AthCommonDataStore.h.
|
private |
on/off time out check
Definition at line 290 of file MooTrackBuilder.h.
|
private |
Definition at line 263 of file MooTrackBuilder.h.
|
private |
Definition at line 283 of file MooTrackBuilder.h.
|
privateinherited |
Pointer to StoreGate (event store by default)
Definition at line 390 of file AthCommonDataStore.h.
|
private |
Definition at line 286 of file MooTrackBuilder.h.
|
private |
Definition at line 255 of file MooTrackBuilder.h.
|
private |
Definition at line 267 of file MooTrackBuilder.h.
|
private |
magnetic field properties
Definition at line 288 of file MooTrackBuilder.h.
|
private |
Definition at line 270 of file MooTrackBuilder.h.
|
private |
Definition at line 277 of file MooTrackBuilder.h.
|
mutableprivate |
Definition at line 296 of file MooTrackBuilder.h.
|
mutableprivate |
Definition at line 297 of file MooTrackBuilder.h.
|
private |
tool to print out EDM objects;
Definition at line 265 of file MooTrackBuilder.h.
|
private |
Definition at line 274 of file MooTrackBuilder.h.
|
private |
Definition at line 275 of file MooTrackBuilder.h.
|
private |
Definition at line 295 of file MooTrackBuilder.h.
|
private |
Definition at line 268 of file MooTrackBuilder.h.
|
private |
Definition at line 256 of file MooTrackBuilder.h.
|
private |
Definition at line 280 of file MooTrackBuilder.h.
|
private |
Definition at line 284 of file MooTrackBuilder.h.
|
private |
Definition at line 261 of file MooTrackBuilder.h.
|
private |
use exclusion list (bit faster at the price of missing chambers)
Definition at line 291 of file MooTrackBuilder.h.
|
private |
use history of the track finding up to now to avoid creating duplicates
Definition at line 293 of file MooTrackBuilder.h.
|
privateinherited |
Definition at line 399 of file AthCommonDataStore.h.
|
privateinherited |
Definition at line 398 of file AthCommonDataStore.h.