ATLAS Offline Software
SiTrajectory_xk.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // Header file for class SiTrajectory_xk
8 // (c) ATLAS Detector software
10 // Class for trajectory in Pixels and SCT
12 // Version 1.0 3/10/2004 I.Gavrilenko
14 
15 #ifndef SiTrajector_xk_H
16 #define SiTrajector_xk_H
17 
20 #include "TrkTrack/Track.h"
25 
26 #include <map>
27 #include <memory>
28 
29 namespace InDet{
30 
31 
34  int nPixelHoles{0};
35  int nSCTHoles{0};
36  int nSCTDoubleHoles{0};
37  int nPixelDeads{0};
38  int nSCTDeads{0};
39  bool passPatternHoleCut{true};
40  };
41 
42 
43  class SiTrajectory_xk final
44  {
46 
48  // Public methods:
50 
51  public:
52 
55  ~SiTrajectory_xk() = default;
57 
59  // Main methods
61 
62  const int& nholes () const {return m_nholes ;}
63  const int& dholes () const {return m_dholes ;}
64  const int& nHolesBefore () const {return m_nHolesBefore ;}
65  const int& nHolesAfter () const {return m_nHolesAfter ;}
66  const int& nclusters () const {return m_nclusters ;}
67  const int& ndf () const {return m_ndf ;}
68  const int& nclustersNoAdd() const {return m_nclustersNoAdd;}
69  const int& nElements () const {return m_nElements ;}
70  const int& naElements () const {return m_nActiveElements;}
71  const int& difference () const {return m_difference ;}
72  const int& elementsMap(int& i) const {return m_elementsMap[i];}
74 
75  void setTools(const InDet::SiTools_xk*);
76  void setParameters();
77 
78  bool initialize
79  (bool,bool,
80  const PixelClusterContainer* ,
81  const SCT_ClusterContainer* ,
82  const Trk::TrackParameters &,
83  std::vector<const InDet::SiCluster*> &,
84  std::vector<const InDet::SiDetElementBoundaryLink_xk*>&,
85  bool &,
86  const EventContext&);
87 
88  double pTseed(const Trk::TrackParameters&,
89  std::vector<const InDet::SiCluster*>&,
90  std::vector<const InDet::SiDetElementBoundaryLink_xk*>&,
91  const EventContext&);
92 
94  (const PixelClusterContainer* ,
95  const SCT_ClusterContainer* ,
96  const Trk::TrackParameters &,
97  std::vector<const InDet::SiDetElementBoundaryLink_xk*> &,
98  std::multimap<const Trk::PrepRawData*,const Trk::Track*>&,
99  std::vector<const InDet::SiCluster*> &,
100  const EventContext& ctx);
101 
103  (const PixelClusterContainer* ,
104  const SCT_ClusterContainer* ,
105  const std::vector<Amg::Vector3D> &,
106  std::vector<const InDet::SiDetElementBoundaryLink_xk*> &,
107  std::multimap<const Trk::PrepRawData*,const Trk::Track*>&,
108  std::vector<const InDet::SiCluster*> &);
109 
110  bool backwardExtension(int, const EventContext&);
111  bool forwardExtension (bool,int, const EventContext&);
112  bool forwardFilter (const EventContext&);
113  bool filterWithPreciseClustersError(const EventContext&);
114  bool backwardSmoother (bool, const EventContext&);
115  bool isLastPixel () const;
116 
122  std::unique_ptr<Trk::TrackParameters> firstTrackParameters();
123  void getClusters(std::vector<const InDet::SiCluster*>&) const;
124 
127 
130 
133 
136 
138  convertToSimpleTrackStateOnSurface(const EventContext& ctx);
139 
141  convertToSimpleTrackStateOnSurface(int, const EventContext& ctx);
142 
145 
148 
150  convertToSimpleTrackStateOnSurfaceForDisTrackTrigger(int, const EventContext& ctx);
151 
152  std::unique_ptr<Trk::FitQuality> convertToFitQuality() const;
153 
154  void updateHoleSearchResult();
155 
156  void sortStep ();
157  bool goodOrder ();
158  bool jumpThroughPerigee();
159  double quality () const;
160  double qualityOptimization();
161  double pTfirst () const;
162  std::ostream& dump(std::ostream& out) const;
163 
164  protected:
165 
167  // Protected Data
169 
171  int m_lastElement ;
173  int m_nclusters ;
175  int m_nclustersNoAdd ; // (NCL)
176  int m_difference ; // forward-bacward diff
177  int m_nHolesBefore ; // holes before
178  int m_nHolesAfter ; // holes after
179  int m_nholes ; // holes
180  int m_dholes ; // dholes
182  int m_nElements ; // index
183  int m_elementsMap[300]; // index
184  int m_ndfcut ; //
185  int m_ndf ; //
186  int m_ntos ; //
187  int m_atos[100] ; //
188  int m_itos[100] ; //
190  const InDet::SiTools_xk* m_tools ; //
193  std::unique_ptr<const Trk::Surface> m_surfacedead ;
195 
197  // Methods
199 
200  void erase(int);
201  bool isNewTrack(std::multimap<const Trk::PrepRawData*,const Trk::Track*>&) const;
202  };
203 
204  std::ostream& operator << (std::ostream&,const SiTrajectory_xk&);
205 
206 } // end of name space
207 
209 
210 #endif // SiTrajectory_xk
InDet::SiTrajectory_xk::initialize
bool initialize(bool, bool, const PixelClusterContainer *, const SCT_ClusterContainer *, const Trk::TrackParameters &, std::vector< const InDet::SiCluster * > &, std::vector< const InDet::SiDetElementBoundaryLink_xk * > &, bool &, const EventContext &)
Definition: SiTrajectory_xk.cxx:580
InDet::SiTrajectory_xk::m_nclusters
int m_nclusters
index of the last element where we have a cluster
Definition: SiTrajectory_xk.h:174
InDet::SiTrajectory_xk::convertToTrackStateOnSurface
Trk::TrackStates convertToTrackStateOnSurface()
Definition: SiTrajectory_xk.cxx:56
InDet::SiTrajectory_xk::backwardSmoother
bool backwardSmoother(bool, const EventContext &)
Definition: SiTrajectory_xk.cxx:1094
InDet::operator<<
MsgStream & operator<<(MsgStream &, const GNNTrackReaderTool &)
SiTrajectory_xk.icc
InDet::SiTrajectoryElement_xk
Definition: SiTrajectoryElement_xk.h:36
InDet::SiTrajectory_xk::m_lastElement
int m_lastElement
index of the first element where we have a cluster
Definition: SiTrajectory_xk.h:172
InDet::SiTrajectory_xk::forwardFilter
bool forwardFilter(const EventContext &)
Definition: SiTrajectory_xk.cxx:1872
InDet::SiTrajectory_xk::operator=
SiTrajectory_xk & operator=(const SiTrajectory_xk &)
InDet::SiTrajectory_xk::isLastPixel
bool isLastPixel() const
InDet::SiTrajectory_xk::m_ndf
int m_ndf
Definition: SiTrajectory_xk.h:185
InDet::SiTrajectory_xk::forwardExtension
bool forwardExtension(bool, int, const EventContext &)
Definition: SiTrajectory_xk.cxx:1401
InDet::SiTrajectory_xk::nHolesBefore
const int & nHolesBefore() const
Definition: SiTrajectory_xk.h:64
InDet
DUMMY Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
InDet::SiTrajectory_xk::naElements
const int & naElements() const
Definition: SiTrajectory_xk.h:70
InDet::SiTrajectory_xk::updateHoleSearchResult
void updateHoleSearchResult()
Helper method to determine the hole search outcome for use in the later reco.
Definition: SiTrajectory_xk.cxx:2237
InDet::SiTrajectory_xk::backwardExtension
bool backwardExtension(int, const EventContext &)
Definition: SiTrajectory_xk.cxx:1186
InDet::SiTrajectory_xk::m_nholes
int m_nholes
Definition: SiTrajectory_xk.h:179
InDet::PatternHoleSearchOutcome::nPixelDeads
int nPixelDeads
Definition: SiTrajectory_xk.h:37
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
InDet::SiTrajectory_xk::pTfirst
double pTfirst() const
Definition: SiTrajectory_xk.cxx:2227
InDet::SiTrajectory_xk::convertToFitQuality
std::unique_ptr< Trk::FitQuality > convertToFitQuality() const
Definition: SiTrajectory_xk.cxx:290
InDet::SCT_ClusterContainer
Trk::PrepRawDataContainer< SCT_ClusterCollection > SCT_ClusterContainer
Definition: SCT_ClusterContainer.h:27
InDet::SiTrajectory_xk::nElements
const int & nElements() const
Definition: SiTrajectory_xk.h:69
InDet::PixelClusterContainer
Trk::PrepRawDataContainer< PixelClusterCollection > PixelClusterContainer
Definition: InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/PixelClusterContainer.h:28
InDet::SiTrajectory_xk::sortStep
void sortStep()
Definition: SiTrajectory_xk.cxx:1992
InDet::SiTrajectory_xk::m_nHolesAfter
int m_nHolesAfter
Definition: SiTrajectory_xk.h:178
InDet::SiTrajectory_xk::m_atos
int m_atos[100]
Definition: SiTrajectory_xk.h:187
InDet::PatternHoleSearchOutcome::nSCTDeads
int nSCTDeads
Definition: SiTrajectory_xk.h:38
InDet::SiTrajectory_xk::jumpThroughPerigee
bool jumpThroughPerigee()
Definition: SiTrajectory_xk.cxx:2091
InDet::SiTrajectory_xk::trackParametersToClusters
bool trackParametersToClusters(const PixelClusterContainer *, const SCT_ClusterContainer *, const Trk::TrackParameters &, std::vector< const InDet::SiDetElementBoundaryLink_xk * > &, std::multimap< const Trk::PrepRawData *, const Trk::Track * > &, std::vector< const InDet::SiCluster * > &, const EventContext &ctx)
Definition: SiTrajectory_xk.cxx:915
InDet::SiTrajectory_xk::nclustersNoAdd
const int & nclustersNoAdd() const
Definition: SiTrajectory_xk.h:68
SiTools_xk.h
InDet::SiTrajectory_xk::~SiTrajectory_xk
~SiTrajectory_xk()=default
InDet::SiTrajectory_xk::globalPositionsToClusters
bool globalPositionsToClusters(const PixelClusterContainer *, const SCT_ClusterContainer *, const std::vector< Amg::Vector3D > &, std::vector< const InDet::SiDetElementBoundaryLink_xk * > &, std::multimap< const Trk::PrepRawData *, const Trk::Track * > &, std::vector< const InDet::SiCluster * > &)
Definition: SiTrajectory_xk.cxx:1000
Track.h
InDet::SiTrajectory_xk::convertToSimpleTrackStateOnSurface
Trk::TrackStates convertToSimpleTrackStateOnSurface(const EventContext &ctx)
Definition: SiTrajectory_xk.cxx:152
InDet::SiTrajectory_xk::nholes
const int & nholes() const
Definition: SiTrajectory_xk.h:62
InDet::SiTrajectory_xk::difference
const int & difference() const
Definition: SiTrajectory_xk.h:71
InDet::SiTrajectory_xk::m_nElements
int m_nElements
count active elements
Definition: SiTrajectory_xk.h:182
InDet::SiTrajectory_xk::setParameters
void setParameters()
Definition: SiTrajectory_xk.cxx:21
InDet::SiTrajectory_xk::m_elements
SiTrajectoryElement_xk m_elements[300]
Definition: SiTrajectory_xk.h:189
lumiFormat.i
int i
Definition: lumiFormat.py:92
InDet::SiTrajectory_xk::m_nclustersNoAdd
int m_nclustersNoAdd
Number of clusters on trajectory.
Definition: SiTrajectory_xk.h:175
InDet::SiTrajectory_xk::convertToTrackStateOnSurfaceWithNewDirection
Trk::TrackStates convertToTrackStateOnSurfaceWithNewDirection()
Definition: SiTrajectory_xk.cxx:103
InDet::SiTools_xk
Definition: SiTools_xk.h:31
InDet::PatternHoleSearchOutcome::nSCTDoubleHoles
int nSCTDoubleHoles
Definition: SiTrajectory_xk.h:36
InDet::SiTrajectory_xk::filterWithPreciseClustersError
bool filterWithPreciseClustersError(const EventContext &)
Definition: SiTrajectory_xk.cxx:1892
InDet::SiTrajectory_xk::convertToSimpleTrackStateOnSurfaceForDisTrackTrigger
Trk::TrackStates convertToSimpleTrackStateOnSurfaceForDisTrackTrigger(const EventContext &ctx)
Definition: SiTrajectory_xk.cxx:245
InDet::SiTrajectory_xk::m_dholes
int m_dholes
Definition: SiTrajectory_xk.h:180
InDet::SiTrajectory_xk::m_difference
int m_difference
Definition: SiTrajectory_xk.h:176
InDet::SiTrajectory_xk::nHolesAfter
const int & nHolesAfter() const
Definition: SiTrajectory_xk.h:65
Trk::ParametersBase
Definition: ParametersBase.h:55
InDet::SiTrajectory_xk::m_firstElement
int m_firstElement
Definition: SiTrajectory_xk.h:170
InDet::PatternHoleSearchOutcome::nSCTHoles
int nSCTHoles
Definition: SiTrajectory_xk.h:35
InDet::PatternHoleSearchOutcome::nPixelHoles
int nPixelHoles
Definition: SiTrajectory_xk.h:34
DataVector< const Trk::TrackStateOnSurface >
InDet::SiTrajectory_xk::ndf
const int & ndf() const
Definition: SiTrajectory_xk.h:67
InDet::SiTrajectory_xk::getClusters
void getClusters(std::vector< const InDet::SiCluster * > &) const
Definition: SiTrajectory_xk.cxx:1860
InDet::SiTrajectory_xk::m_surfacedead
std::unique_ptr< const Trk::Surface > m_surfacedead
Definition: SiTrajectory_xk.h:193
InDet::PatternHoleSearchOutcome
Helper struct for hole search results from the pattern recognition.
Definition: SiTrajectory_xk.h:33
InDet::SiTrajectory_xk::m_itos
int m_itos[100]
Definition: SiTrajectory_xk.h:188
InDet::SiTrajectory_xk::dump
std::ostream & dump(std::ostream &out) const
Definition: SiTrajectory_xk.cxx:352
PixelClusterContainer.h
InDet::SiTrajectory_xk::elementsMap
const int & elementsMap(int &i) const
Definition: SiTrajectory_xk.h:72
InDet::SiTrajectory_xk::qualityOptimization
double qualityOptimization()
Definition: SiTrajectory_xk.cxx:2133
InDet::SiTrajectory_xk::m_tools
const InDet::SiTools_xk * m_tools
Trajectory elements on this trajectory.
Definition: SiTrajectory_xk.h:192
InDet::SiTrajectory_xk::m_ndfcut
int m_ndfcut
Definition: SiTrajectory_xk.h:184
InDet::SiTrajectory_xk::dholes
const int & dholes() const
Definition: SiTrajectory_xk.h:63
InDet::SiTrajectory_xk::isNewTrack
bool isNewTrack(std::multimap< const Trk::PrepRawData *, const Trk::Track * > &) const
Definition: SiTrajectory_xk.cxx:300
InDet::SiTrajectory_xk::SiTrajectory_xk
SiTrajectory_xk(const SiTrajectory_xk &)
InDet::SiTrajectory_xk::m_nActiveElements
int m_nActiveElements
Definition: SiTrajectory_xk.h:181
InDet::SiTrajectory_xk::pTseed
double pTseed(const Trk::TrackParameters &, std::vector< const InDet::SiCluster * > &, std::vector< const InDet::SiDetElementBoundaryLink_xk * > &, const EventContext &)
Definition: SiTrajectory_xk.cxx:550
InDet::SiTrajectory_xk::quality
double quality() const
Definition: SiTrajectory_xk.cxx:2118
InDet::SiTrajectory_xk::convertToNextTrackStateOnSurface
Trk::TrackStates convertToNextTrackStateOnSurface()
Definition: SiTrajectory_xk.cxx:2202
InDet::PatternHoleSearchOutcome::passPatternHoleCut
bool passPatternHoleCut
Definition: SiTrajectory_xk.h:39
InDet::SiTrajectory_xk::firstTrackParameters
std::unique_ptr< Trk::TrackParameters > firstTrackParameters()
InDet::SiTrajectory_xk::nclusters
const int & nclusters() const
Definition: SiTrajectory_xk.h:66
InDet::SiTrajectory_xk::convertToSimpleTrackStateOnSurfaceWithNewDirection
Trk::TrackStates convertToSimpleTrackStateOnSurfaceWithNewDirection()
Definition: SiTrajectory_xk.cxx:198
InDet::SiTrajectory_xk::getHoleSearchResult
const PatternHoleSearchOutcome & getHoleSearchResult() const
Definition: SiTrajectory_xk.h:73
InDet::SiTrajectory_xk
Definition: SiTrajectory_xk.h:44
InDet::SiTrajectory_xk::m_ntos
int m_ntos
Definition: SiTrajectory_xk.h:186
InDet::SiTrajectory_xk::firstParameters
const Trk::PatternTrackParameters * firstParameters() const
Return the pattern track parameters of the first element of this trajectory matching its status.
Trk::PatternTrackParameters
Definition: PatternTrackParameters.h:38
InDet::SiCombinatorialTrackFinder_xk
Definition: SiCombinatorialTrackFinder_xk.h:63
SCT_ClusterContainer.h
InDet::SiTrajectory_xk::goodOrder
bool goodOrder()
Definition: SiTrajectory_xk.cxx:1947
FitQuality.h
InDet::SiTrajectory_xk::SiTrajectory_xk
SiTrajectory_xk()
InDet::SiTrajectory_xk::m_patternHoleOutcome
PatternHoleSearchOutcome m_patternHoleOutcome
Definition: SiTrajectory_xk.h:194
InDet::SiTrajectory_xk::m_nHolesBefore
int m_nHolesBefore
Definition: SiTrajectory_xk.h:177
InDet::SiTrajectory_xk::erase
void erase(int)
Definition: SiTrajectory_xk.cxx:30
InDet::SiTrajectory_xk::setTools
void setTools(const InDet::SiTools_xk *)
Definition: SiTrajectory_xk.cxx:15
SiTrajectoryElement_xk.h
InDet::SiTrajectory_xk::m_elementsMap
int m_elementsMap[300]
Definition: SiTrajectory_xk.h:183