ATLAS Offline Software
Loading...
Searching...
No Matches
SimpleTRT_SeededSpacePointFinder_ATL.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
6// Header file for class SimpleTRT_SeededSpacePointFinder_ATL
8// (c) ATLAS Detector software
10// Class for track candidates generation using space points information
11// for standard Atlas geometry
13// Version 1.0 12-APR-2007 Martin Siebel
15
16#ifndef SimpleTRT_SeededSpacePointFinder_ATL_H
17#define SimpleTRT_SeededSpacePointFinder_ATL_H
18#define SIMPLE_TRT_INDEX_OFFSET 14
19#include <list>
20
21//Tool Handle
22//
23#include "GaudiKernel/ServiceHandle.h"
26
31
32class MsgStream;
33class SCT_ID;
34class TRT_ID;
35
36namespace InDet{
37
39 virtual public ITRT_SeededSpacePointFinder, public AthAlgTool
40 {
42 // Public methods:
44
45 public:
46
47 typedef std::list<std::pair< int,int > > modulLookupTable;
48
49
51 // Standard tool methods
54 (const std::string&,const std::string&,const IInterface*);
56 virtual StatusCode initialize() override;
57 virtual StatusCode finalize () override;
58
60 // Methods to satisfy the interface
62
64 virtual std::unique_ptr<InDet::ITRT_SeededSpacePointFinder::IEventData> newEvent () const override;
65 virtual std::unique_ptr<InDet::ITRT_SeededSpacePointFinder::IEventData> newRegion
66 (const std::vector<IdentifierHash>&,const std::vector<IdentifierHash>&) const override;
68
72 std::list<std::pair<const Trk::SpacePoint*,const Trk::SpacePoint*> > find2Sp (const EventContext& ctx,
74 InDet::ITRT_SeededSpacePointFinder::IEventData &event_data) const override;
75
77 // Print internal tool parameters and status
79
80 MsgStream& dump (MsgStream & out) const override;
81 std::ostream& dump (std::ostream& out) const override;
82
83 private:
84
88
90 BooleanProperty m_useROI{this, "RestrictROI", true};
91
93 // Overall selection criteria cuts. See source code for explanation
95
97 IntegerProperty m_maxHoles{this, "MaxHoles", 1};
98
100 DoubleProperty m_perigeeCut{this, "PerigeeCut", 200.};
101 DoubleProperty m_directionPhiCut{this, "DirectionPhiCut", 0.05};
102
103
105 // Space points container
107
108
109 SG::ReadHandleKey<SpacePointContainer> m_spacepointsSCTname {this,"SpacePointsSCTName","SCT_SpacePoints","RHK to retrieve SCT SpacePointContainer"} ;
110 SG::ReadHandleKey<SpacePointOverlapCollection> m_spacepointsOverlapname {this,"SpacePointsSCTName","OverlapSpacePoints","RHK to retrieve OverlapCollection"} ;
113
118
119
121 ToolHandle<IRegSelTool> m_pRegionSelector{ this, "RegSelTool_SCT", "RegSelTool/RegSelTool_SCT" };
122
124 const SCT_ID* m_sctId = nullptr;
125
127 const TRT_ID* m_trtId = nullptr;
128
129
132
134 //void getSearchRange(const Trk::TrackParameters& directionTRT, double& deltaPhi, double& deltaEta);
135 static void getSearchRange(double& deltaPhi, double& deltaEta) ;
136
138 void getSpacePointsInROI(const EventContext& ctx,
139 std::set<IdentifierHash>& setOfSCT_Hashes,
140 int modulTRT,
141 std::multimap<int,
142 const Trk::SpacePoint*>& relevantSpacePoints) const;
143
145 void getHashesInROI(const EventContext& ctx, const Trk::TrackParameters& directionTRT, std::set<IdentifierHash>& setOfSCT_Hashes) const;
146
148 void combineSpacePoints(const std::multimap<int,const Trk::SpacePoint*>& relevantSpacePoints,
149 const Trk::TrackParameters& directionTRT,
150 int modulTRT,
151 std::list<std::pair<const Trk::SpacePoint*, const Trk::SpacePoint*> > &listOfSpacePointPairsBuffer) const;
152
154 bool pairIsOk(const Trk::SpacePoint* sp1, const Trk::SpacePoint* sp2, const Trk::TrackParameters& directionTRT ) const;
155
157 void setupLookUpTable();
158 void printLookupTable() const;
159
161 int TRT_Module(const Trk::TrackParameters& directionTRT) const;
162
163 };
164
166 std::ostream& operator << (std::ostream&,const SimpleTRT_SeededSpacePointFinder_ATL&);
167
169 // Inline methods
171
176
177
178 inline std::unique_ptr<InDet::ITRT_SeededSpacePointFinder::IEventData> SimpleTRT_SeededSpacePointFinder_ATL::newEvent () const {
179 return std::unique_ptr<InDet::ITRT_SeededSpacePointFinder::IEventData>();
180 }
181
182} // end of name space
183
184#endif // SimpleTRT_SeededSpacePointFinder_ATL_H
185
Scalar deltaPhi(const MatrixBase< Derived > &vec) const
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
void combineSpacePoints(const std::multimap< int, const Trk::SpacePoint * > &relevantSpacePoints, const Trk::TrackParameters &directionTRT, int modulTRT, std::list< std::pair< const Trk::SpacePoint *, const Trk::SpacePoint * > > &listOfSpacePointPairsBuffer) const
builds pairs of SP according to the kook-up table
SimpleTRT_SeededSpacePointFinder_ATL(const std::string &, const std::string &, const IInterface *)
ToolHandle< IRegSelTool > m_pRegionSelector
Region Selector.
static void getSearchRange(double &deltaPhi, double &deltaEta)
List with SP pairs as seed for the Si part of the back-track.
IntegerProperty m_maxHoles
controls how many not considered SCT layers are allowed between two SP in order to form a seed pair
void getSpacePointsInROI(const EventContext &ctx, std::set< IdentifierHash > &setOfSCT_Hashes, int modulTRT, std::multimap< int, const Trk::SpacePoint * > &relevantSpacePoints) const
retrieves SP Collections of modules in the ROI and sorts them by SCT layer
bool pairIsOk(const Trk::SpacePoint *sp1, const Trk::SpacePoint *sp2, const Trk::TrackParameters &directionTRT) const
applies rough cuts on the quality of a SP pair
const SiSpacePointsSeed * next(InDet::ITRT_SeededSpacePointFinder::IEventData &event_data) const override
BooleanProperty m_useROI
Controls, if SP have to be checked with the AssociationTool of the forward tracking and to avoid doub...
std::set< int > m_modulLookupTableIndex[2 *SIMPLE_TRT_INDEX_OFFSET+1]
std::list< std::pair< const Trk::SpacePoint *, const Trk::SpacePoint * > > find2Sp(const EventContext &ctx, const Trk::TrackParameters &, InDet::ITRT_SeededSpacePointFinder::IEventData &event_data) const override
main method, calls the private methods and returns a pointer to the list of SpacePointpairs.
SG::ReadHandleKey< SpacePointContainer > m_spacepointsSCTname
virtual std::unique_ptr< InDet::ITRT_SeededSpacePointFinder::IEventData > newRegion(const std::vector< IdentifierHash > &, const std::vector< IdentifierHash > &) const override
SG::ReadHandleKey< SpacePointOverlapCollection > m_spacepointsOverlapname
DoubleProperty m_perigeeCut
rough cuts on the quality of the suggested SP pair
void getHashesInROI(const EventContext &ctx, const Trk::TrackParameters &directionTRT, std::set< IdentifierHash > &setOfSCT_Hashes) const
obtains the hashes of modules in the ROI
int TRT_Module(const Trk::TrackParameters &directionTRT) const
returns the number of the TRT wheel or barrel where the TP belongs to
modulLookupTable m_modulLookupTable[2 *SIMPLE_TRT_INDEX_OFFSET+1]
Lookup table that contains the SCT Layers to be considered to provide SP for the pairing in dependenc...
virtual std::unique_ptr< InDet::ITRT_SeededSpacePointFinder::IEventData > newEvent() const override
obsolete, do not do anything.
This is an Identifier helper class for the SCT subdetector.
Definition SCT_ID.h:68
Property holding a SG store/key/clid from which a ReadHandle is made.
This is an Identifier helper class for the TRT subdetector.
Definition TRT_ID.h:82
Primary Vertex Finder.
MsgStream & operator<<(MsgStream &, const GNNTrackFinderTritonTool &)
ParametersBase< TrackParametersDim, Charged > TrackParameters
-event-from-file