|
ATLAS Offline Software
|
Go to the documentation of this file.
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());
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",
""};
247 float dEdx(
const Trk::Track*,
int&,
int&, std::vector<float>&, std::vector<float>&,
248 std::vector<float>&, std::vector<float>&, std::vector<int>&, std::vector<int>&, std::vector<int>&)
const;
253 const std::vector<double>&,
const std::vector<double>&,
const std::vector<double>&,
bool,
const EventContext&)
const;
264 std::unique_ptr<const Trk::TrackParameters>
extrapolateDisTrackToBS(
Trk::Track*,
const std::vector<double>&,
const std::vector<double>&,
const std::vector<double>&,
const EventContext&)
const;
270 std::vector<std::tuple<bool, double, Trk::Track*>>&,
271 std::vector<std::tuple<bool, double, Trk::Track*>>&,
273 const std::vector<double>&,
const std::vector<double>&,
const std::vector<double>&)
const;
279 ToolHandle<ITrigInDetTrackSeedingTool>
m_seedingTool{
this,
"TrackSeedingTool",
""};
281 Gaudi::Property<bool>
m_useEtaBinning {
this,
"UseEtaBinning",
true,
"Split layers into eta bins"};
282 Gaudi::Property<bool>
m_doCloneRemoval{
this,
"doCloneRemoval",
true,
"Remove tracks sharing too many hits"};
283 Gaudi::Property<bool>
m_doTrackRefit {
this,
"doTrackRefit",
true,
"Refit tracks after the combinatorial track following"};
284 Gaudi::Property<bool>
m_useTracklets {
this,
"UseTracklets",
false,
"Use tracklet seeds from ITk track seeding"};
289 #endif // not TRIGFASTTRACKFINDER_TRIGFASTTRACKFINDER_H
SG::WriteHandleKey< xAOD::TrigCompositeContainer > m_disTrkCandKey
ToolHandle< ITrigSpacePointConversionTool > m_spacePointTool
static constexpr size_t N_BARREL_LAYERS
ToolHandle< GenericMonitoringTool > m_monTool
StatusCode findTracks(InDet::SiTrackMakerEventData_xk &event_data, const TrigRoiDescriptor &roi, const TrackCollection *inputTracks, TrackCollection &outputTracks, const EventContext &ctx) const
void filterSharedDisTracks(std::vector< std::tuple< bool, double, Trk::Track * >> &) const
const AtlasDetectorID * m_idHelper
const_pointer_type cptr()
Dereference the pointer.
ToolHandle< ITrigInDetTrackFitter > m_trigInDetTrackFitter
ServiceHandle< ITrigInDetAccelerationSvc > m_accelSvc
bool m_checkSeedRedundancy
SG::WriteHandleKey< TrackCollection > m_outputTracksKey
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
Gaudi::Property< bool > m_doTrackRefit
void makeSeedsOnGPU(const TrigCombinatorialSettings &, const IRoiDescriptor *, const std::vector< TrigSiSpacePointBase > &, std::vector< TrigInDetTriplet > &) const
Gaudi::Property< bool > m_doCloneRemoval
ToolHandle< Trk::ITrackFitter > m_disTrkFitter
nope - should be used for standalone also, perhaps need to protect the class def bits #ifndef XAOD_AN...
ToolHandle< Trk::IExtrapolator > m_extrapolator
virtual StatusCode execute(const EventContext &ctx) const override
SG::ReadHandleKey< TrackCollection > m_inputTracksKey
virtual StatusCode finalize() override
virtual ~TrigFastTrackFinder()
An algorithm that can be simultaneously executed in multiple threads.
void extractClusterIds(const Trk::SpacePoint *, std::vector< Identifier > &) const
void updateClusterMap(long int, const Trk::Track *, std::map< Identifier, std::vector< long int > > &) const
SG::WriteHandleKey< xAOD::TrigCompositeContainer > m_dEdxTrkKey
TrigFastTrackFinder::DisTrkCategory getDisTrkCategory(Trk::Track *trk) const
std::unique_ptr< Trk::Track > disTrk_refit(Trk::Track *t, const EventContext &ctx) const
Property holding a SG store/key/clid from which a WriteHandle is made.
void runResidualMonitoring(const Trk::Track &track, const EventContext &) const
std::atomic< unsigned int > m_countRoIwithEnoughHits
void setPRDtoTrackMap(const Trk::PRDtoTrackMap *prd_to_track_map)
::StatusCode StatusCode
StatusCode definition for legacy code.
Describes the API of the Region of Ineterest geometry.
StatusCode finddEdxTrk(const EventContext &, const TrackCollection &) const
int getSPLayer(int, float) const
TrigCombinatorialSettings m_tcs
bool usedByAnyTrack(const std::vector< Identifier > &, std::map< Identifier, std::vector< long int > > &) const
ExtendedSiTrackMakerEventData_xk(const SG::ReadHandleKey< Trk::PRDtoTrackMap > &key, const EventContext &ctx)
Class used to describe composite objects in the HLT.
virtual StatusCode initialize() override
double disTrackQuality(const Trk::Track *) const
Header file to be included by clients of the Monitored infrastructure.
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
SG::ReadHandleKey< TrigRoiDescriptorCollection > m_roiCollectionKey
virtual bool isValid() override final
Can the handle be successfully dereferenced?
double trackQuality(const Trk::Track *Tr) const
virtual StatusCode start() override
std::string m_connectionFile
ToolHandle< Trk::ITrackSummaryTool > m_trackSummaryTool
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
Ensure that the ATLAS eigen extensions are properly loaded.
ToolHandle< ITrigInDetTrackSeedingTool > m_seedingTool
ToolHandle< InDet::ISiTrackMaker > m_trackMaker
void print_disTrk(const Trk::Track *t) const
bool isPreselPassDisTrackBeforeRefit(Trk::Track *, double, double) const
ToolHandle< ITrigInDetAccelerationTool > m_accelTool
SG::WriteHandleKey< xAOD::TrigCompositeContainer > m_dEdxHitKey
void fillMon(const TrackCollection &tracks, const TrigVertexCollection &vertices, const TrigRoiDescriptor &roi, const EventContext &ctx) const
SG::ReadHandle< Trk::PRDtoTrackMap > m_prdToTrackMap
SG::ReadHandleKey< Trk::PRDtoTrackMap > m_prdToTrackMap
TrigFastTrackFinder(const std::string &name, ISvcLocator *pSvcLocator)
bool m_useNewLayerNumberScheme
bool isGoodForDisTrackVertex(Trk::Track *, const EventContext &) const
void fillDisTrkCand(xAOD::TrigComposite *, const std::string &, Trk::Track *, const std::unique_ptr< const Trk::TrackParameters > &) const
std::atomic< unsigned int > m_countTotalRoI
std::string m_trigseedML_LUT
StatusCode createEmptyUTTEDMs(const EventContext &) const
std::atomic< unsigned int > m_countRoIwithTracks
bool isPreselPassDisTrackAfterRefit(Trk::Track *, Trk::Track *, double, double) const
bool m_storeZFinderVertices
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
void filterSharedTracks(std::vector< std::tuple< bool, double, Trk::Track * >> &QT) const
const PixelID * m_pixelId
ToolHandle< ITrigZFinder > m_trigZFinder
Trk::ParticleHypothesis m_particleHypothesis
Gaudi::Property< bool > m_useTracklets
ToolHandle< ITrigL2LayerNumberTool > m_numberingTool
std::array< OneLayerInfo_t, N_BARREL_LAYERS > getTrkBarrelLayerInfo(Trk::Track *aTrack) const
StatusCode calcdEdx(const EventContext &, const TrackCollection &) const
Gaudi::Property< bool > m_useEtaBinning
bool isCleaningPassDisTrack(const TrigInDetTriplet &, Trk::Track *, bool) const
void recoVertexForDisTrack(const EventContext &, TrackCollection &, std::vector< double > &, std::vector< double > &, std::vector< double > &) const
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
std::unique_ptr< const Trk::TrackParameters > extrapolateDisTrackToBS(Trk::Track *, const std::vector< double > &, const std::vector< double > &, const std::vector< double > &, const EventContext &) const