![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef ACTSTRACKRECONSTRUCTION_TRACKFINDINGALG_H
6 #define ACTSTRACKRECONSTRUCTION_TRACKFINDINGALG_H
12 #include "GaudiKernel/ToolHandle.h"
20 #include "Acts/EventData/VectorTrackContainer.hpp"
21 #include "Acts/EventData/TrackContainer.hpp"
22 #include "Acts/EventData/TrackProxy.hpp"
41 #include "GaudiKernel/EventContext.h"
59 class TrackFindingMeasurements;
60 class DuplicateSeedDetector;
70 Acts::VectorMultiTrajectory>;
76 ISvcLocator *pSvcLocator);
87 ToolHandle<GenericMonitoringTool>
m_monTool{
this,
"MonTool",
"",
"Monitoring tool"};
91 ToolHandle<ActsTrk::TrackStatePrinter>
m_trackStatePrinter{
this,
"TrackStatePrinter",
"",
"optional track state printer"};
92 ToolHandle<ActsTrk::IFitterTool>
m_fitterTool{
this,
"FitterTool",
"",
"Fitter Tool for Seeds"};
94 this,
"PixelCalibrator",
"",
"Opt. pixel measurement calibrator"};
96 this,
"StripCalibrator",
"",
"Opt. strip measurement calibrator"};
110 Gaudi::Property<unsigned int>
m_maxPropagationStep{
this,
"maxPropagationStep", 1000,
"Maximum number of steps for one propagate call"};
111 Gaudi::Property<bool>
m_skipDuplicateSeeds{
this,
"skipDuplicateSeeds",
true,
"skip duplicate seeds before calling CKF"};
112 Gaudi::Property<bool>
m_refitSeeds{
this,
"refitSeeds",
false,
"Run KalmanFitter on seeds before passing to CKF"};
113 Gaudi::Property<std::vector<double>>
m_etaBins{
this,
"etaBins", {},
"bins in |eta| to specify variable selections"};
115 Gaudi::Property<std::vector<double>>
m_chi2CutOff{
this,
"chi2CutOff", {},
"MeasurementSelector: maximum local chi2 contribution"};
116 Gaudi::Property<std::vector<double>>
m_chi2OutlierCutOff{
this,
"chi2OutlierCutOff", {},
"MeasurementSelector: maximum local chi2 contribution for outlier"};
117 Gaudi::Property<std::vector<size_t>>
m_numMeasurementsCutOff{
this,
"numMeasurementsCutOff", {},
"MeasurementSelector: maximum number of associated measurements on a single surface"};
118 Gaudi::Property<std::vector<std::size_t>>
m_ptMinMeasurements{
this,
"ptMinMeasurements", {},
"if specified for the given seed collection, applies ptMin cut in branch stopper once ptMinMinMeasurements have been encountered"};
119 Gaudi::Property<std::vector<std::size_t>>
m_absEtaMaxMeasurements{
this,
"absEtaMaxMeasurements", {},
"if specified for the given seed collection, applies absEtaMax cut in branch stopper once absEtaMaxMeasurements have been encountered"};
121 Gaudi::Property<bool>
m_doTwoWay{
this,
"doTwoWay",
true,
"run CKF twice, first with forward propagation with smoothing, then with backward propagation"};
125 Gaudi::Property<std::vector<double>>
m_phiMin{
this,
"phiMin", {},
"TrackSelector: phiMin"};
126 Gaudi::Property<std::vector<double>>
m_phiMax{
this,
"phiMax", {},
"TrackSelector: phiMax"};
127 Gaudi::Property<std::vector<double>>
m_etaMin{
this,
"etaMin", {},
"TrackSelector: etaMin"};
128 Gaudi::Property<std::vector<double>>
m_etaMax{
this,
"etaMax", {},
"TrackSelector: etaMax"};
129 Gaudi::Property<double>
m_absEtaMin{
this,
"absEtaMin", 0.0,
"TrackSelector: absEtaMin"};
131 Gaudi::Property<std::vector<double>>
m_ptMin{
this,
"ptMin", {},
"TrackSelector: ptMin"};
132 Gaudi::Property<std::vector<double>>
m_ptMax{
this,
"ptMax", {},
"TrackSelector: ptMax"};
133 Gaudi::Property<std::vector<std::size_t>>
m_minMeasurements{
this,
"minMeasurements", {},
"TrackSelector: minMeasurements"};
134 Gaudi::Property<std::vector<std::size_t>>
m_maxHoles{
this,
"maxHoles", {},
"TrackSelector: maxHoles"};
135 Gaudi::Property<std::vector<std::size_t>>
m_maxOutliers{
this,
"maxOutliers", {},
"TrackSelector: maxOutliers"};
136 Gaudi::Property<std::vector<std::size_t>>
m_maxSharedHits{
this,
"maxSharedHits", {},
"TrackSelector: maxSharedHits"};
137 Gaudi::Property<std::vector<double>>
m_maxChi2{
this,
"maxChi2", {},
"TrackSelector: maxChi2"};
140 Gaudi::Property<std::vector<float>>
m_statEtaBins{
this,
"StatisticEtaBins", {-4, -2.6, -2, 0, 2., 2.6, 4},
"Gather statistics separately for these bins."};
141 Gaudi::Property<std::vector<std::string>>
m_seedLabels{
this,
"SeedLabels", {},
"One label per seed key used in outputs"};
142 Gaudi::Property<bool>
m_dumpAllStatEtaBins{
this,
"DumpEtaBinsForAll",
false,
"Dump eta bins of all statistics counter."};
163 using EventStats = std::vector<std::array<unsigned int, kNStat>>;
182 const TrackFindingMeasurements &measurements,
183 DuplicateSeedDetector &duplicateSeedDetector,
187 size_t seedCollectionIndex,
188 const char *seedType,
195 DuplicateSeedDetector &duplicateSeedDetector)
const;
ToolHandle< IActsExtrapolationTool > m_extrapolationTool
Gaudi::Property< std::vector< std::size_t > > m_maxSharedHits
Gaudi::Property< std::vector< float > > m_statEtaBins
ToolHandle< IActsTrackingGeometryTool > m_trackingGeometryTool
Scalar eta() const
pseudorapidity method
const Acts::Logger & logger() const
Private access to the logger.
Gaudi::Property< double > m_absEtaMax
TrackFindingAlg(const std::string &name, ISvcLocator *pSvcLocator)
RecoTrackStateContainer::TrackStateProxy RecoTrackStateContainerProxy
Gaudi::Property< std::vector< double > > m_phiMin
CKF_pimpl & trackFinder()
Gaudi::Property< std::vector< std::size_t > > m_maxOutliers
SG::ReadHandleKeyArray< ActsTrk::SeedContainer > m_seedContainerKeys
Gaudi::Property< unsigned int > m_maxPropagationStep
void storeSeedInfo(const RecoTrackContainer &tracksContainer, const RecoTrackContainerProxy &track, DuplicateSeedDetector &duplicateSeedDetector) const
An algorithm that can be simultaneously executed in multiple threads.
std::size_t nSeedCollections() const
SG::ReadHandleKeyArray< ActsTrk::BoundTrackParametersContainer > m_estimatedTrackParametersKeys
SG::ReadHandleKeyArray< xAOD::UncalibratedMeasurementContainer > m_uncalibratedMeasurementContainerKeys
void copyStats(const EventStats &event_stat) const
Gaudi::Property< std::vector< double > > m_chi2OutlierCutOff
virtual StatusCode finalize() override
void printStatTables() const
std::mutex m_mutex ATLAS_THREAD_SAFE
std::size_t computeStatSum(std::size_t seed_collection, EStat counter_i, const EventStats &stat) const
Gaudi::Property< std::vector< std::string > > m_seedLabels
RecoTrackContainer::TrackProxy RecoTrackContainerProxy
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Property< std::vector< double > > m_ptMin
SG::ReadCondHandleKeyArray< InDetDD::SiDetectorElementCollection > m_detEleCollKeys
StatusCode initializeMeasurementSelector()
StatusCode findTracks(const EventContext &ctx, const TrackFindingMeasurements &measurements, DuplicateSeedDetector &duplicateSeedDetector, const ActsTrk::BoundTrackParametersContainer &estimatedTrackParameters, const ActsTrk::SeedContainer *seeds, ActsTrk::MutableTrackContainer &tracksContainer, size_t seedCollectionIndex, const char *seedType, EventStats &event_stat) const
invoke track finding procedure
Gaudi::Property< double > m_absEtaMin
Gaudi::Property< std::vector< size_t > > m_numMeasurementsCutOff
Gaudi::Property< bool > m_useDefaultMeasurementSelector
ToolHandle< GenericMonitoringTool > m_monTool
std::unique_ptr< ActsTrk::IMeasurementSelector > m_measurementSelector
virtual StatusCode initialize() override
Acts::TrackContainer< Acts::VectorTrackContainer, Acts::VectorMultiTrajectory > RecoTrackContainer
Property holding a SG store/key/clid from which a WriteHandle is made.
virtual ~TrackFindingAlg()
Gaudi::Property< std::vector< double > > m_chi2CutOff
Gaudi::Property< bool > m_doBranchStopper
Gaudi::Property< bool > m_skipDuplicateSeeds
std::size_t getStatCategory(std::size_t seed_collection, float eta) const
virtual StatusCode execute(const EventContext &ctx) const override
Gaudi::Property< std::vector< double > > m_etaMin
Gaudi::Property< std::vector< std::size_t > > m_minMeasurements
Gaudi::Property< std::vector< std::size_t > > m_ptMinMeasurements
std::unique_ptr< const Acts::Logger > m_logger
logging instance
ToolHandle< ActsTrk::TrackStatePrinter > m_trackStatePrinter
ActsTrk::MutableTrackContainerHandlesHelper m_tracksBackendHandlesHelper
std::unique_ptr< CKF_pimpl > m_trackFinder
ToolHandle< ActsTrk::IOnTrackCalibratorTool< RecoTrackStateContainer > > m_stripCalibTool
Gaudi::Property< bool > m_doTwoWay
std::vector< std::array< unsigned int, kNStat > > EventStats
Acts::VectorMultiTrajectory RecoTrackStateContainer
SG::WriteHandleKey< ActsTrk::TrackContainer > m_trackContainerKey
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Gaudi::Property< std::vector< std::size_t > > m_absEtaMaxMeasurements
Gaudi::Property< std::vector< double > > m_etaBins
Gaudi::Property< std::vector< double > > m_maxChi2
std::size_t seedCollectionStride() const
Gaudi::Property< std::vector< double > > m_ptMax
Gaudi::Property< std::vector< double > > m_phiMax
Gaudi::Property< bool > m_dumpAllStatEtaBins
ToolHandle< ActsTrk::IOnTrackCalibratorTool< RecoTrackStateContainer > > m_pixelCalibTool
Gaudi::Property< std::vector< double > > m_etaMax
@ kNStoppedTracksMaxHoles
ToolHandle< ActsTrk::IFitterTool > m_fitterTool
Gaudi::Property< bool > m_refitSeeds
Gaudi::Property< std::vector< std::size_t > > m_maxHoles
ToolHandle< ActsTrk::IActsToTrkConverterTool > m_ATLASConverterTool