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"
92 virtual StatusCode
finalize ()
override;
99 virtual std::list<Trk::Track*>
103 virtual std::unique_ptr<InDet::ITRT_SeededTrackFinder::IEventData>
106 virtual std::unique_ptr<InDet::ITRT_SeededTrackFinder::IEventData>
108 const std::vector<IdentifierHash>&,
const std::vector<IdentifierHash>&)
const override;
117 MsgStream&
dump(MsgStream& out)
const override;
118 std::ostream&
dump(std::ostream& out)
const override;
162 StringProperty
m_fieldmode{
this,
"MagneticFieldMode",
"MapSolenoid",
163 "Magnetic field mode"};
170 {
this,
"RoadTool",
"InDet::SiDetElementsRoadMaker_xk"};
172 {
this,
"SeedTool",
""};
174 {
this,
"PropagatorTool",
"Trk::RungeKuttaPropagator/InDetPropagator"};
176 {
this,
"UpdatorTool",
"Trk::KalmanUpdator_xk/InDetPatternUpdator"};
178 {
this,
"CombinatorialTrackFinder",
"InDet::SiCombinatorialTrackFinder_xk"};
181 "fieldCondObj",
"Name of the Magnetic Field conditions object key"};
187 DoubleProperty
m_xi2max{
this,
"Xi2max", 15.,
"max Xi2 for updators"};
189 "max Xi2 for outliers"};
191 "max Xi2 for clusters"};
192 DoubleProperty
m_pTmin{
this,
"pTmin", 500.,
"min pT"};
193 IntegerProperty
m_nholesmax{
this,
"nHolesMax", 1,
"Max number holes"};
195 "Max gap between holes"};
196 IntegerProperty
m_nclusmin{
this,
"nClustersMin", 4,
"Min number clusters"};
198 "Min number weighted clusters"};
200 "Optional Brem correction"};
201 BooleanProperty
m_propR{
this,
"ConsistentSeeds",
false,
202 "Check seed-TRT segment consistency at large eta"};
204 "Use prd-track association tool"};
207 {
this,
"ErrorScaling", {1., 1., 1., 1., 1.},
208 "Optional error scaling of track parameters"};
210 "Outlier chi2 cut when propagating through the seed"};
212 "Outlier chi2 cut when propagating through the seed"};
224 std::unique_ptr<const Trk::TrackParameters>
230 std::list<Trk::Track*>
236 std::unique_ptr<const Trk::TrackParameters>
246 static std::unique_ptr<const Trk::TrackParameters>
259 newClusters(
const std::vector<const Trk::SpacePoint*>&,
264 newSeed(
const std::vector<const Trk::SpacePoint*>&,
272 std::list<Trk::Track*>
Property holding a SG store/key/clid from which a ReadHandle is made.
Base class for detector elements road builder in Pixels and SCT.
InDet::SiCombinatorialTrackFinderData_xk holds event dependent data used by SiCombinatorialTrackFinde...
InDet::SiDetElementRoadMakerData_xk holds event dependent data used by SiDetElementRoadMaker_xk.
void setCaloClusterROIEM(const ROIPhiRZContainer &rois)
InDet::SiNoise_bt m_noise
Needed for adding material related noise.
InDet::SiDetElementRoadMakerData_xk m_roadMakerData
InDet::SiNoise_bt & noise()
const InDet::SiNoise_bt & noise() const
const ROIPhiRZContainer * caloClusterROIEM() const
std::vector< double > & caloE()
const std::vector< double > & caloE() const
virtual InDet::SiCombinatorialTrackFinderData_xk & combinatorialData() override
const ROIPhiRZContainer * m_caloClusterROIEM
Multimap of tracks and associated PRDs.
const std::vector< double > & caloF() const
EventData(SiCombinatorialTrackFinderData_xk &combinatorialData, std::unique_ptr< InDet::ITRT_SeededSpacePointFinder::IEventData > &&spacePointFinderEventData)
InDet::SiDetElementRoadMakerData_xk & roadMakerData()
std::vector< double > m_caloF
std::unique_ptr< InDet::ITRT_SeededSpacePointFinder::IEventData > m_spacePointFinderEventData
friend class TRT_SeededTrackFinder_ATL
InDet::ITRT_SeededSpacePointFinder::IEventData & spacePointFinderEventData()
std::multimap< const Trk::PrepRawData *, const Trk::Track * > m_clusterTrack
std::vector< double > & caloF()
SiCombinatorialTrackFinderData_xk * m_combinatorialData
std::vector< double > m_caloE
virtual const InDet::SiCombinatorialTrackFinderData_xk & combinatorialData() const override
std::multimap< const Trk::PrepRawData *, const Trk::Track * > & clusterTrack()
ToolHandle< InDet::ITRT_SeededSpacePointFinder > m_seedmaker
const TRT_ID * m_trtId
ID TRT helper.
DoubleProperty m_xi2maxNoAdd
MsgStream & dumpconditions(MsgStream &out) const
virtual ~TRT_SeededTrackFinder_ATL()
ToolHandle< Trk::IUpdator > m_updatorTool
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
bool checkSeed(std::vector< const Trk::SpacePoint * > &, const Trk::TrackSegment &, const Trk::TrackParameters &) const
Check consistency of seed and TRT track segment.
BooleanProperty m_bremCorrect
std::unique_ptr< const Trk::TrackParameters > addNoise(const SiNoise_bt &, const Trk::TrackParameters &, int) const
Add material effects.
static void clusterTrackMap(Trk::Track *, InDet::TRT_SeededTrackFinder_ATL::EventData &event_data)
Map PRDs-tracks.
virtual StatusCode initialize() override
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.
DoubleProperty m_outlierCut
void magneticFieldInit()
Private Methods.
DoubleProperty m_phiWidth
IntegerProperty m_dholesmax
ToolHandle< Trk::IPropagator > m_proptool
DoubleArrayProperty m_errorScale
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.
IntegerProperty m_nwclusmin
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.
ToolHandle< InDet::ISiDetElementsRoadMaker > m_roadmaker
Magnetic field properties.
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.
virtual std::unique_ptr< InDet::ITRT_SeededTrackFinder::IEventData > newEvent(const EventContext &ctx, SiCombinatorialTrackFinderData_xk &combinatorialData) const override
New event initialization.
ToolHandle< InDet::ISiCombinatorialTrackFinder > m_tracksfinder
BooleanProperty m_searchInCaloROI
SG::ReadHandleKey< ROIPhiRZContainer > m_caloClusterROIKey
static bool newClusters(const std::vector< const Trk::SpacePoint * > &, InDet::TRT_SeededTrackFinder_ATL::EventData &event_data)
Seed used by another track?
TRT_SeededTrackFinder_ATL(const std::string &, const std::string &, const IInterface *)
Standard tool methods.
static std::unique_ptr< const Trk::TrackParameters > modifyTrackParameters(const Trk::TrackParameters &, int)
Modify track parameters if brem correction.
BooleanProperty m_useassoTool
InDet::TrackQualityCuts m_trackquality
void setTrackQualityCuts()
Set the track quality cuts for combinatorial track finding.
Trk::MagneticFieldProperties m_fieldprop
static bool newSeed(const std::vector< const Trk::SpacePoint * > &, InDet::TRT_SeededTrackFinder_ATL::EventData &event_data)
Seed SPs used by other high quality tracks?
DoubleProperty m_xi2max
Track quality cuts to be passed to the combinatorial track finder.
StringProperty m_fieldmode
Protected Data.
virtual void endEvent(InDet::ITRT_SeededTrackFinder::IEventData &event_data) const override
End of event tasks.
IntegerProperty m_nholesmax
static bool isNewTrack(Trk::Track *, InDet::TRT_SeededTrackFinder_ATL::EventData &event_data)
Clean-up duplicate tracks.
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.
std::list< Trk::Track * > cleanTrack(std::list< Trk::Track * >) const
Eliminate spurious Pixel clusters in track.
DoubleProperty m_xi2maxlink
IntegerProperty m_nclusmin
virtual StatusCode finalize() override
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
container for phi sorted ROIs defined by phi, r and z.
Property holding a SG store/key/clid from which a ReadHandle is made.
This is an Identifier helper class for the TRT subdetector.
Base for a helper class to pass mutable storage to tools.
magnetic field properties to steer the behavior of the extrapolation
Class for a generic track segment that holdes polymorphic Trk::MeasurementBase objects,...
ParametersBase< TrackParametersDim, Charged > TrackParameters