14#ifndef TRT_SeededSpacePointFinder_ATL_H
15#define TRT_SeededSpacePointFinder_ATL_H
22#include "GaudiKernel/ServiceHandle.h"
44class SiSpacePointsSeed;
51 bool operator()(std::pair<const Trk::SpacePoint*,int> sp1, std::pair<const Trk::SpacePoint*,int> sp2)
const
52 {
return (sp1.first)->r() > (sp2.first)->
r();}
80 (
const std::string&,
const std::string&,
const IInterface*);
89 std::unique_ptr<InDet::ITRT_SeededSpacePointFinder::IEventData>
newEvent ()
const;
90 std::unique_ptr<InDet::ITRT_SeededSpacePointFinder::IEventData>
newRegion
91 (
const std::vector<IdentifierHash>&,
92 const std::vector<IdentifierHash>&)
const;
98 std::list<std::pair<const Trk::SpacePoint*,const Trk::SpacePoint*> >
find2Sp (
const EventContext& ctx,
112 MsgStream&
dump (MsgStream & out)
const;
113 std::ostream&
dump (std::ostream& out)
const;
121 StringProperty
m_fieldmode{
this,
"MagneticFieldMode",
"MapSolenoid",
122 "Magnetic field mode"};
134 DoubleProperty
m_ptmin{
this,
"pTmin", 500.,
"Minimum pT cut"};
145 DoubleProperty
m_xiC{
this,
"Xi2C", 100.,
"qOverP based chi2 cut"};
146 DoubleProperty
m_xiTC{
this,
"Xi2TC", 100.,
"theta based chi2 cut"};
147 DoubleProperty
m_xiFC{
this,
"Xi2FC", 100.,
"phi based chi2 cut"};
148 BooleanProperty
m_search{
this,
"NeighborSearch",
true,
"Do full neighbor search"};
150 "Load full Si space point container"};
152 "Disable seed selection cuts during reconstruction of cosmics tracks"};
184 std::list<std::pair<const Trk::SpacePoint*,int> >
m_rf_Sorted[530] ;
203 {
this,
"PRDtoTrackMap",
""};
207 "fieldCondObj",
"Name of the Magnetic Field conditions object key"};
218 void fillLists (std::vector< std::vector<const Trk::SpacePoint*> > &r_Sorted,
227 std::list<std::pair<const Trk::SpacePoint*,const Trk::SpacePoint*> > &outputListBuffer,
257 bool cutTPb(
const invar_bypass_struct &invar_bypass,
const std::vector<bypass_struct> &prod_bypass,
long,
long,
double)
const;
Sorting function according to space point radial position.
bool operator()(std::pair< const Trk::SpacePoint *, int > sp1, std::pair< const Trk::SpacePoint *, int > sp2) const
friend class TRT_SeededSpacePointFinder_ATL
std::list< std::pair< const Trk::SpacePoint *, int > > m_newRfi_Sorted
std::list< std::pair< const Trk::SpacePoint *, int > > m_rf_Sorted[530]
void buildFrameWork(double r_rmax, double r_rstep, double ptmin)
BooleanProperty m_loadFull
std::unique_ptr< InDet::ITRT_SeededSpacePointFinder::IEventData > newEvent() const
Method to initialize tool for new event.
static constexpr double m_dzdrmax
Min R-z direction cut.
DoubleProperty m_ptmin
Seed selection criteria.
SG::ReadHandleKey< SpacePointOverlapCollection > m_spacepointsOverlapname
static constexpr double m_r_rmax
Minimum SCT radius to be searched.
virtual StatusCode finalize()
DoubleProperty m_xiC
Max R-z direction cut.
static constexpr double m_r1max
Step size for space point storage.
std::list< std::pair< const Trk::SpacePoint *, const Trk::SpacePoint * > > find2Sp(const EventContext &ctx, const Trk::TrackParameters &, ITRT_SeededSpacePointFinder::IEventData &event_data) const
Main method of seed production.
static constexpr double m_dzdrmin
Min radius to search for SP pairs.
const SCT_ID * m_sctId
Magnetic field properties.
SG::ReadHandleKey< SpacePointContainer > m_spacepointsPixname
Space points containers.
TRT_SeededSpacePointFinder_ATL(const std::string &, const std::string &, const IInterface *)
Standard tool methods.
virtual StatusCode initialize()
SG::ReadHandleKey< Trk::PRDtoTrackMap > m_prdToTrackMap
static constexpr double m_r2min
Min radius of last SCT layer.
virtual ~TRT_SeededSpacePointFinder_ATL()
void magneticFieldInit()
Get magnetic field properties.
const SiSpacePointsSeed * next(ITRT_SeededSpacePointFinder::IEventData &event_data) const
Iterator through seed collection.Not used in this implementation.
SG::ReadHandleKey< SpacePointContainer > m_spacepointsSCTname
static constexpr double m_r12min
Max radius of last SCT layer.
void geoInfo(const Trk::SpacePoint *, int &, int &) const
Obtain geo model info for a specific space point.
MsgStream & dumpConditions(MsgStream &out) const
Protected methods.
void fillLists(std::vector< std::vector< const Trk::SpacePoint * > > &r_Sorted, InDet::TRT_SeededSpacePointFinder_ATL::EventData &event_data) const
Fill the space point container lists at beginning of each event.
void production2Spb(const EventContext &ctx, const Trk::TrackParameters &, int, std::list< std::pair< const Trk::SpacePoint *, const Trk::SpacePoint * > > &outputListBuffer, InDet::TRT_SeededSpacePointFinder_ATL::EventData &event_data) const
Form possible space point combinations within allowed radial and pseudorapidity ranges.
MsgStream & dumpEvent(MsgStream &out, InDet::TRT_SeededSpacePointFinder_ATL::EventData &event_data) const
bool cutTPb(const invar_bypass_struct &invar_bypass, const std::vector< bypass_struct > &prod_bypass, long, long, double) const
Cut on chi2 based on TRT segment qOverP, theta and phi track parameters.
static constexpr double m_r_rstep
Maximum STC radius to be searched.
static constexpr double m_r_rmin
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
std::unique_ptr< InDet::ITRT_SeededSpacePointFinder::IEventData > newRegion(const std::vector< IdentifierHash > &, const std::vector< IdentifierHash > &) const
StringProperty m_fieldmode
Protected data and methods.
Trk::MagneticFieldProperties m_fieldprop
BooleanProperty m_doCosmics
SiSpacePointsSeedMakerEventData EventData
This is an Identifier helper class for the SCT subdetector.
Property holding a SG store/key/clid from which a ReadHandle is made.
Base for a helper class to pass mutable storage to tools.
magnetic field properties to steer the behavior of the extrapolation
ParametersBase< TrackParametersDim, Charged > TrackParameters