|
ATLAS Offline Software
|
Go to the documentation of this file.
14 #ifndef TRT_SeededTrackFinder_ATL_H
15 #define TRT_SeededTrackFinder_ATL_H
21 #include "GaudiKernel/ToolHandle.h"
22 #include "GaudiKernel/IInterface.h"
23 #include "GaudiKernel/ServiceHandle.h"
63 class IRIO_OnTrackCreator;
67 class ISiDetElementsRoadMaker;
68 class SiCombinatorialTrackFinderData_xk;
96 virtual std::list<Trk::Track*>
100 virtual std::unique_ptr<InDet::ITRT_SeededTrackFinder::IEventData>
103 virtual std::unique_ptr<InDet::ITRT_SeededTrackFinder::IEventData>
105 const std::vector<IdentifierHash>&,
const std::vector<IdentifierHash>&)
const override;
114 MsgStream&
dump(MsgStream&
out)
const override;
115 std::ostream&
dump(std::ostream&
out)
const override;
172 "fieldCondObj",
"Name of the Magnetic Field conditions object key"};
204 std::unique_ptr<const Trk::TrackParameters>
210 std::list<Trk::Track*>
216 std::unique_ptr<const Trk::TrackParameters>
226 static std::unique_ptr<const Trk::TrackParameters>
239 newClusters(
const std::vector<const Trk::SpacePoint*>&,
244 newSeed(
const std::vector<const Trk::SpacePoint*>&,
252 std::list<Trk::Track*>
265 #endif // TRT_SeededTrackFinder_ATL
Property holding a SG store/key/clid from which a ReadHandle is made.
const ROIPhiRZContainer * caloClusterROIEM() const
Base for a helper class to pass mutable storage to tools.
std::vector< double > & caloF()
Trk::MagneticFieldProperties m_fieldprop
Magnetic field mode
std::list< Trk::Track * > findTrack(const EventContext &ctx, MagField::AtlasFieldCache &fieldCache, InDet::TRT_SeededTrackFinder_ATL::EventData &event_data, const Trk::TrackParameters &, const Trk::TrackSegment &) const
Find the corresponding list of Si tracks
bool checkSeed(std::vector< const Trk::SpacePoint * > &, const Trk::TrackSegment &, const Trk::TrackParameters &) const
Check consistency of seed and TRT track segment.
std::string m_fieldmode
Protected Data
bool isCaloCompatible(const Trk::TrackParameters &, const InDet::TRT_SeededTrackFinder_ATL::EventData &event_data) const
Only propagate to the Si if the TRT segment is compatible with a calo measurement.
static bool isNewTrack(Trk::Track *, InDet::TRT_SeededTrackFinder_ATL::EventData &event_data)
Clean-up duplicate tracks
double m_xi2max
Track quality cuts to be passed to the combinatorial track finder.
container for phi sorted ROIs defined by phi, r and z.
DUMMY Primary Vertex Finder.
ToolHandle< InDet::ISiDetElementsRoadMaker > m_roadmaker
Magnetic field properties.
double m_xi2maxNoAdd
max Xi2 for updators
std::vector< double > m_caloE
const ROIPhiRZContainer * m_caloClusterROIEM
Multimap of tracks and associated PRDs
bool m_useassoTool
Check seed-TRT segment consistency at large etas.
std::unique_ptr< InDet::ITRT_SeededSpacePointFinder::IEventData > m_spacePointFinderEventData
bool m_propR
Optional Brem correction.
std::unique_ptr< const Trk::TrackParameters > addNoise(const SiNoise_bt &, const Trk::TrackParameters &, int) const
Add material effects
SiCombinatorialTrackFinderData_xk * m_combinatorialData
double m_outlierCut
Optional error scaling of track parameters
void setCaloClusterROIEM(const ROIPhiRZContainer &rois)
const InDet::SiNoise_bt & noise() const
virtual const InDet::SiCombinatorialTrackFinderData_xk & combinatorialData() const override
ToolHandle< Trk::IUpdator > m_updatorTool
Propagator tool
MsgStream & dump(MsgStream &out) const override
Print internal tool parameters and status
InDet::SiNoise_bt m_noise
Needed for adding material related noise
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
Combinatorial track finder tool.
virtual ~TRT_SeededTrackFinder_ATL()
virtual InDet::SiCombinatorialTrackFinderData_xk & combinatorialData() override
InDet::SiDetElementRoadMakerData_xk m_roadMakerData
InDet::SiDetElementRoadMakerData_xk & roadMakerData()
::StatusCode StatusCode
StatusCode definition for legacy code.
const std::vector< double > & caloF() const
static bool newClusters(const std::vector< const Trk::SpacePoint * > &, InDet::TRT_SeededTrackFinder_ATL::EventData &event_data)
Seed used by another track?
const std::vector< double > & caloE() const
InDet::TrackQualityCuts m_trackquality
Use prd-track association tool.
ToolHandle< InDet::ITRT_SeededSpacePointFinder > m_seedmaker
Road maker tool
static std::unique_ptr< const Trk::TrackParameters > modifyTrackParameters(const Trk::TrackParameters &, int)
Modify track parameters if brem correction
std::unique_ptr< const Trk::TrackParameters > getTP(MagField::AtlasFieldCache &fieldCache, const Trk::SpacePoint *, const Trk::TrackParameters &, bool &, InDet::TRT_SeededTrackFinder_ATL::EventData &event_data) const
Update track parameters through space point propagation
SG::ReadHandleKey< ROIPhiRZContainer > m_caloClusterROIKey
Outlier chi2 cut when propagating through the seed.
std::list< Trk::Track * > cleanTrack(std::list< Trk::Track * >) const
Eliminate spurious Pixel clusters in track
virtual StatusCode initialize() override
InDet::ITRT_SeededSpacePointFinder::IEventData & spacePointFinderEventData()
int m_dholesmax
Max number holes
std::multimap< const Trk::PrepRawData *, const Trk::Track * > & clusterTrack()
std::vector< double > & caloE()
bool m_bremCorrect
Min number weighted clusters.
virtual std::unique_ptr< InDet::ITRT_SeededTrackFinder::IEventData > newEvent(const EventContext &ctx, SiCombinatorialTrackFinderData_xk &combinatorialData) const override
New event initialization.
bool m_searchInCaloROI
Outlier chi2 cut when propagating through the seed.
Ensure that the ATLAS eigen extensions are properly loaded.
void setTrackQualityCuts()
Set the track quality cuts for combinatorial track finding
static void clusterTrackMap(Trk::Track *, InDet::TRT_SeededTrackFinder_ATL::EventData &event_data)
Map PRDs-tracks.
std::multimap< const Trk::PrepRawData *, const Trk::Track * > m_clusterTrack
std::vector< double > m_caloF
void magneticFieldInit()
Private Methods
const TRT_ID * m_trtId
ID TRT helper.
virtual void endEvent(InDet::ITRT_SeededTrackFinder::IEventData &event_data) const override
End of event tasks
double m_pTmin
max Xi2 for clusters
virtual std::unique_ptr< InDet::ITRT_SeededTrackFinder::IEventData > newRegion(const EventContext &ctx, SiCombinatorialTrackFinderData_xk &combinatorialData, const std::vector< IdentifierHash > &, const std::vector< IdentifierHash > &) const override
New region intialization.
int m_nclusmin
Max gap between holes.
InDet::SiNoise_bt & noise()
EventData(SiCombinatorialTrackFinderData_xk &combinatorialData, std::unique_ptr< InDet::ITRT_SeededSpacePointFinder::IEventData > &&spacePointFinderEventData)
ToolHandle< InDet::ISiCombinatorialTrackFinder > m_tracksfinder
Updator tool
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
TRT_SeededTrackFinder_ATL(const std::string &, const std::string &, const IInterface *)
Standard tool methods
std::vector< double > m_errorScale
int m_nwclusmin
Min number clusters.
static bool newSeed(const std::vector< const Trk::SpacePoint * > &, InDet::TRT_SeededTrackFinder_ATL::EventData &event_data)
Seed SPs used by other high quality tracks?
MsgStream & dumpconditions(MsgStream &out) const
virtual std::list< Trk::Track * > getTrack(const EventContext &ctx, InDet::ITRT_SeededTrackFinder::IEventData &event_data, const Trk::TrackSegment &) const override
Main methods for local track finding
ToolHandle< Trk::IPropagator > m_proptool
Seed maker tool
virtual StatusCode finalize() override
double m_xi2maxlink
max Xi2 for outliers