17#ifndef TRIGFASTTRACKFINDER_TRIGFASTTRACKFINDER_H
18#define TRIGFASTTRACKFINDER_TRIGFASTTRACKFINDER_H
82 if (!key.key().empty()) {
85 throw std::runtime_error(std::string(
"Failed to get PRD to track map:") + key.key());
103 virtual StatusCode
finalize()
override;
104 virtual StatusCode
start()
override;
106 virtual StatusCode
execute(
const EventContext& ctx)
const override;
112 const EventContext& ctx)
const;
115 void filterSharedTracks(std::vector<std::tuple<bool, double, Trk::Track*>>& QT)
const;
143 ToolHandle<ITrigL2LayerNumberTool>
m_numberingTool {
this,
"LayerNumberTool",
"TrigL2LayerNumberTool"};
144 ToolHandle<ITrigSpacePointConversionTool>
m_spacePointTool {
this,
"SpacePointProviderTool",
"TrigSpacePointConversionTool"};
149 ToolHandle< GenericMonitoringTool >
m_monTool {
this,
"MonTool",
"",
"Monitoring tool" };
150 ToolHandle< Trk::IExtrapolator >
m_extrapolator {
this,
"Extrapolator",
"Trk::Extrapolator/AtlasExtrapolator" };
154 ToolHandle<ITrigInDetAccelerationTool>
m_accelTool {
this,
"TrigAccelerationTool",
""};
163 {
this,
"PRDtoTrackMap",
""};
246 float dEdx(
const Trk::Track*,
int&,
int&, std::vector<float>&, std::vector<float>&,
247 std::vector<float>&, std::vector<float>&, std::vector<int>&, std::vector<int>&, std::vector<int>&)
const;
252 const std::vector<double>&,
const std::vector<double>&,
const std::vector<double>&,
bool,
const EventContext&)
const;
263 std::unique_ptr<const Trk::TrackParameters>
extrapolateDisTrackToBS(
Trk::Track*,
const std::vector<double>&,
const std::vector<double>&,
const std::vector<double>&,
const EventContext&)
const;
269 std::vector<std::tuple<bool, double, Trk::Track*>>&,
270 std::vector<std::tuple<bool, double, Trk::Track*>>&,
272 const std::vector<double>&,
const std::vector<double>&,
const std::vector<double>&)
const;
278 ToolHandle<ITrigInDetTrackSeedingTool>
m_seedingTool{
this,
"TrackSeedingTool",
""};
280 Gaudi::Property<bool>
m_useEtaBinning {
this,
"UseEtaBinning",
true,
"Split layers into eta bins"};
281 Gaudi::Property<bool>
m_doCloneRemoval{
this,
"doCloneRemoval",
true,
"Remove tracks sharing too many hits"};
282 Gaudi::Property<bool>
m_doTrackRefit {
this,
"doTrackRefit",
true,
"Refit tracks after the combinatorial track following"};
283 Gaudi::Property<bool>
m_useTracklets {
this,
"UseTracklets",
false,
"Use tracklet seeds from ITk track seeding"};
Header file to be included by clients of the Monitored infrastructure.
DataVector< Trk::Track > TrackCollection
This typedef represents a collection of Trk::Track objects.
An algorithm that can be simultaneously executed in multiple threads.
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Describes the API of the Region of Ineterest geometry.
ExtendedSiTrackMakerEventData_xk(const SG::ReadHandleKey< Trk::PRDtoTrackMap > &key, const EventContext &ctx)
SG::ReadHandle< Trk::PRDtoTrackMap > m_prdToTrackMap
InDet::SiTrackMakerEventData_xk holds event dependent data used by ISiTrackMaker.
void setPRDtoTrackMap(const Trk::PRDtoTrackMap *prd_to_track_map)
This is an Identifier helper class for the Pixel subdetector.
This is an Identifier helper class for the SCT subdetector.
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
void updateClusterMap(long int, const Trk::Track *, std::map< Identifier, std::vector< long int > > &) const
ToolHandle< ITrigInDetTrackFitter > m_trigInDetTrackFitter
ToolHandle< ITrigSpacePointConversionTool > m_spacePointTool
virtual StatusCode execute(const EventContext &ctx) const override
Gaudi::Property< bool > m_useEtaBinning
void runResidualMonitoring(const Trk::Track &track, const EventContext &) const
bool isGoodForDisTrackVertex(Trk::Track *, const EventContext &) const
TrigFastTrackFinder::DisTrkCategory getDisTrkCategory(Trk::Track *trk) const
std::unique_ptr< const Trk::TrackParameters > extrapolateDisTrackToBS(Trk::Track *, const std::vector< double > &, const std::vector< double > &, const std::vector< double > &, const EventContext &) const
virtual ~TrigFastTrackFinder()
SG::WriteHandleKey< xAOD::TrigCompositeContainer > m_dEdxHitKey
void filterSharedDisTracks(std::vector< std::tuple< bool, double, Trk::Track * > > &) const
ToolHandle< ITrigL2LayerNumberTool > m_numberingTool
StatusCode calcdEdx(const EventContext &, const TrackCollection &) const
ToolHandle< ITrigInDetTrackSeedingTool > m_seedingTool
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
bool m_checkSeedRedundancy
virtual StatusCode start() override
SG::ReadHandleKey< Trk::PRDtoTrackMap > m_prdToTrackMap
ToolHandle< ITrigInDetAccelerationTool > m_accelTool
Gaudi::Property< bool > m_useTracklets
Gaudi::Property< bool > m_doCloneRemoval
void fillMon(const TrackCollection &tracks, const TrigVertexCollection &vertices, const TrigRoiDescriptor &roi, const EventContext &ctx) const
bool isPreselPassDisTrackBeforeRefit(Trk::Track *, double, double) const
int recoAndFillDisTrkCand(const std::string &, TrackCollection *, std::vector< Trk::Track * > &, xAOD::TrigCompositeContainer *, const std::vector< double > &, const std::vector< double > &, const std::vector< double > &, bool, const EventContext &) const
SG::ReadHandleKey< TrackCollection > m_inputTracksKey
StatusCode findTracks(InDet::SiTrackMakerEventData_xk &event_data, const TrigRoiDescriptor &roi, const TrackCollection *inputTracks, TrackCollection &outputTracks, const EventContext &ctx) const
Trk::ParticleHypothesis m_particleHypothesis
void extractClusterIds(const Trk::SpacePoint *, std::vector< Identifier > &) const
Gaudi::Property< bool > m_doTrackRefit
const AtlasDetectorID * m_idHelper
bool m_useNewLayerNumberScheme
SG::ReadHandleKey< TrigRoiDescriptorCollection > m_roiCollectionKey
double trackQuality(const Trk::Track *Tr) const
void fillDisTrkCand(xAOD::TrigComposite *, const std::string &, Trk::Track *, const std::unique_ptr< const Trk::TrackParameters > &) const
ToolHandle< Trk::ITrackSummaryTool > m_trackSummaryTool
double disTrackQuality(const Trk::Track *) const
virtual StatusCode initialize() override
std::array< OneLayerInfo_t, N_BARREL_LAYERS > getTrkBarrelLayerInfo(Trk::Track *aTrack) const
void recoVertexForDisTrack(const EventContext &, TrackCollection &, std::vector< double > &, std::vector< double > &, std::vector< double > &) const
void print_disTrk(const Trk::Track *t) const
const PixelID * m_pixelId
SG::WriteHandleKey< xAOD::TrigCompositeContainer > m_dEdxTrkKey
SG::WriteHandleKey< TrackCollection > m_outputTracksKey
std::atomic< unsigned int > m_countRoIwithEnoughHits
bool isPreselPassDisTrackAfterRefit(Trk::Track *, Trk::Track *, double, double) const
std::atomic< unsigned int > m_countRoIwithTracks
std::unique_ptr< Trk::Track > disTrk_refit(Trk::Track *t, const EventContext &ctx) const
StatusCode finddEdxTrk(const EventContext &, const TrackCollection &) const
std::atomic< unsigned int > m_countTotalRoI
ToolHandle< ITrigZFinder > m_trigZFinder
SG::WriteHandleKey< xAOD::TrigCompositeContainer > m_disTrkCandKey
int getSPLayer(int, float) const
void filterSharedTracks(std::vector< std::tuple< bool, double, Trk::Track * > > &QT) const
ToolHandle< InDet::ISiTrackMaker > m_trackMaker
TrigCombinatorialSettings m_tcs
ToolHandle< Trk::ITrackFitter > m_disTrkFitter
ToolHandle< Trk::IExtrapolator > m_extrapolator
bool m_storeZFinderVertices
virtual StatusCode finalize() override
ServiceHandle< ITrigInDetAccelerationSvc > m_accelSvc
ToolHandle< GenericMonitoringTool > m_monTool
StatusCode createEmptyUTTEDMs(const EventContext &) const
StatusCode findDisTracks(const EventContext &, TrackCollection &, std::vector< std::tuple< bool, double, Trk::Track * > > &, std::vector< std::tuple< bool, double, Trk::Track * > > &, TrackCollection &, const std::vector< double > &, const std::vector< double > &, const std::vector< double > &) const
bool usedByAnyTrack(const std::vector< Identifier > &, std::map< Identifier, std::vector< long int > > &) const
void makeSeedsOnGPU(const TrigCombinatorialSettings &, const IRoiDescriptor *, const std::vector< TrigSiSpacePointBase > &, std::vector< TrigInDetTriplet > &) const
bool isCleaningPassDisTrack(const TrigInDetTriplet &, Trk::Track *, bool) const
float dEdx(const Trk::Track *, int &, int &, std::vector< float > &, std::vector< float > &, std::vector< float > &, std::vector< float > &, std::vector< int > &, std::vector< int > &, std::vector< int > &) const
std::string m_trigseedML_LUT
static constexpr size_t N_BARREL_LAYERS
TrigFastTrackFinder(const std::string &name, ISvcLocator *pSvcLocator)
nope - should be used for standalone also, perhaps need to protect the class def bits ifndef XAOD_ANA...
Ensure that the ATLAS eigen extensions are properly loaded.
ParticleHypothesis
Enumeration for Particle hypothesis respecting the interaction with material.
TrigCompositeContainer_v1 TrigCompositeContainer
Declare the latest version of the container.
TrigComposite_v1 TrigComposite
Declare the latest version of the class.