|
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"
70 class ISiDetElementsRoadMaker;
71 class SiCombinatorialTrackFinderData_xk;
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*>
285 #endif // TRT_SeededTrackFinder_ATL
Property holding a SG store/key/clid from which a ReadHandle is made.
const ROIPhiRZContainer * caloClusterROIEM() const
BooleanProperty m_useassoTool
DoubleProperty m_xi2maxNoAdd
Base for a helper class to pass mutable storage to tools.
std::vector< double > & caloF()
Trk::MagneticFieldProperties m_fieldprop
BooleanProperty m_searchInCaloROI
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.
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
container for phi sorted ROIs defined by phi, r and z.
ToolHandle< InDet::ISiDetElementsRoadMaker > m_roadmaker
Magnetic field properties.
std::vector< double > m_caloE
DoubleArrayProperty m_errorScale
const ROIPhiRZContainer * m_caloClusterROIEM
Multimap of tracks and associated PRDs
IntegerProperty m_nholesmax
std::unique_ptr< InDet::ITRT_SeededSpacePointFinder::IEventData > m_spacePointFinderEventData
std::unique_ptr< const Trk::TrackParameters > addNoise(const SiNoise_bt &, const Trk::TrackParameters &, int) const
Add material effects
SiCombinatorialTrackFinderData_xk * m_combinatorialData
DoubleProperty m_phiWidth
void setCaloClusterROIEM(const ROIPhiRZContainer &rois)
const InDet::SiNoise_bt & noise() const
virtual const InDet::SiCombinatorialTrackFinderData_xk & combinatorialData() const override
DoubleProperty m_xi2maxlink
ToolHandle< Trk::IUpdator > m_updatorTool
DoubleProperty m_xi2max
Track quality cuts to be passed to the combinatorial track finder.
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
virtual ~TRT_SeededTrackFinder_ATL()
virtual InDet::SiCombinatorialTrackFinderData_xk & combinatorialData() override
InDet::SiDetElementRoadMakerData_xk m_roadMakerData
InDet::SiDetElementRoadMakerData_xk & roadMakerData()
IntegerProperty m_nclusmin
::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?
StringProperty m_fieldmode
Protected Data
const std::vector< double > & caloE() const
InDet::TrackQualityCuts m_trackquality
ToolHandle< InDet::ITRT_SeededSpacePointFinder > m_seedmaker
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
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()
std::multimap< const Trk::PrepRawData *, const Trk::Track * > & clusterTrack()
IntegerProperty m_nwclusmin
std::vector< double > & caloE()
virtual std::unique_ptr< InDet::ITRT_SeededTrackFinder::IEventData > newEvent(const EventContext &ctx, SiCombinatorialTrackFinderData_xk &combinatorialData) const override
New event initialization.
IntegerProperty m_dholesmax
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
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.
InDet::SiNoise_bt & noise()
EventData(SiCombinatorialTrackFinderData_xk &combinatorialData, std::unique_ptr< InDet::ITRT_SeededSpacePointFinder::IEventData > &&spacePointFinderEventData)
ToolHandle< InDet::ISiCombinatorialTrackFinder > m_tracksfinder
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
TRT_SeededTrackFinder_ATL(const std::string &, const std::string &, const IInterface *)
Standard tool methods
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
DoubleProperty m_outlierCut
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
virtual StatusCode finalize() override
BooleanProperty m_bremCorrect