ATLAS Offline Software
Loading...
Searching...
No Matches
SiTrajectory_xk.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 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#include <iosfwd>
26#include <map>
27#include <memory>
28#include <array>
29
30namespace InDet{
31
32
42
43
44 class SiTrajectory_xk final
45 {
47
49 // Public methods:
51
52 public:
53
56 ~SiTrajectory_xk() = default;
58
60 // Main methods
62
63 const int& nholes () const {return m_nholes ;}
64 const int& dholes () const {return m_dholes ;}
65 const int& nHolesBefore () const {return m_nHolesBefore ;}
66 const int& nHolesAfter () const {return m_nHolesAfter ;}
67 const int& nclusters () const {return m_nclusters ;}
68 const int& ndf () const {return m_ndf ;}
69 const int& nclustersNoAdd() const {return m_nclustersNoAdd;}
70 const int& nElements () const {return m_nElements ;}
71 const int& naElements () const {return m_nActiveElements;}
72 const int& difference () const {return m_difference ;}
73 const int& elementsMap(int& i) const {return m_elementsMap[i];}
75
76 void setTools(const InDet::SiTools_xk*);
77 void setParameters();
78
79 bool initialize
80 (bool,bool,
81 const PixelClusterContainer* ,
84 std::vector<const InDet::SiCluster*> &,
85 std::vector<const InDet::SiDetElementBoundaryLink_xk*>&,
86 bool &,
87 const EventContext&);
88
89 double pTseed(const Trk::TrackParameters&,
90 std::vector<const InDet::SiCluster*>&,
91 std::vector<const InDet::SiDetElementBoundaryLink_xk*>&,
92 const EventContext&);
93
95 (const PixelClusterContainer* ,
98 std::vector<const InDet::SiDetElementBoundaryLink_xk*> &,
99 std::multimap<const Trk::PrepRawData*,const Trk::Track*>&,
100 std::vector<const InDet::SiCluster*> &,
101 const EventContext& ctx);
102
104 (const PixelClusterContainer* ,
105 const SCT_ClusterContainer* ,
106 const std::vector<Amg::Vector3D> &,
107 std::vector<const InDet::SiDetElementBoundaryLink_xk*> &,
108 std::multimap<const Trk::PrepRawData*,const Trk::Track*>&,
109 std::vector<const InDet::SiCluster*> &);
110
111 bool backwardExtension(int, const EventContext&);
112 bool forwardExtension (bool,int, const EventContext&);
113 bool forwardFilter (const EventContext&);
114 bool filterWithPreciseClustersError(const EventContext&);
115 bool backwardSmoother (bool, const EventContext&);
116 bool isLastPixel () const;
117
123 std::unique_ptr<Trk::TrackParameters> firstTrackParameters();
124 void getClusters(std::vector<const InDet::SiCluster*>&) const;
125
127 convertToTrackStateOnSurface(const EventContext& ctx);
128
130 convertToTrackStateOnSurface(int, const EventContext& ctx);
131
133 convertToTrackStateOnSurfaceWithNewDirection(const EventContext& ctx);
134
137
139 convertToSimpleTrackStateOnSurface(const EventContext& ctx);
140
142 convertToSimpleTrackStateOnSurface(int, const EventContext& ctx);
143
146
149
151 convertToSimpleTrackStateOnSurfaceForDisTrackTrigger(int, const EventContext& ctx);
152
153 std::unique_ptr<Trk::FitQuality> convertToFitQuality() const;
154
156
157 void sortStep ();
158 bool goodOrder ();
159 bool jumpThroughPerigee();
160 double quality () const;
161 double qualityOptimization();
162 double pTfirst () const;
163 std::ostream& dump(std::ostream& out) const;
164
165 protected:
166
168 // Protected Data
170
175 int m_nclusters{} ;
176 int m_nclustersNoAdd{} ; // (NCL)
177 int m_difference{} ; // forward-bacward diff
178 int m_nHolesBefore{} ; // holes before
179 int m_nHolesAfter{} ; // holes after
180 int m_nholes{} ; // holes
181 int m_dholes{} ; // dholes
183 int m_nElements{} ; // index
184 std::array<int, 300> m_elementsMap{} ; // index
185 int m_ndfcut{} ; //
186 int m_ndf{} ; //
187 int m_ntos{} ; //
188 int m_atos[100]{} ; //
189 int m_itos[100]{} ; //
190 std::array<SiTrajectoryElement_xk, 300> m_elements{} ;
194 std::unique_ptr<const Trk::Surface> m_surfacedead ;
196
198 // Methods
200
201 void erase(int);
202 bool isNewTrack(std::multimap<const Trk::PrepRawData*,const Trk::Track*>&) const;
203 };
204
205 std::ostream& operator << (std::ostream&,const SiTrajectory_xk&);
206
207} // end of name space
208
210
211#endif // SiTrajectory_xk
void updateHoleSearchResult()
Helper method to determine the hole search outcome for use in the later reco.
Trk::TrackStates convertToSimpleTrackStateOnSurface(const EventContext &ctx)
std::array< SiTrajectoryElement_xk, 300 > m_elements
PatternHoleSearchOutcome m_patternHoleOutcome
int m_nclustersNoAdd
Number of clusters on trajectory.
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 * > &)
bool backwardExtension(int, const EventContext &)
bool isNewTrack(std::multimap< const Trk::PrepRawData *, const Trk::Track * > &) const
bool forwardExtension(bool, int, const EventContext &)
bool isLastPixel() const
const int & nElements() const
Trk::TrackStates convertToNextTrackStateOnSurface()
double pTseed(const Trk::TrackParameters &, std::vector< const InDet::SiCluster * > &, std::vector< const InDet::SiDetElementBoundaryLink_xk * > &, const EventContext &)
const int & nholes() const
std::unique_ptr< const Trk::Surface > m_surfacedead
const Trk::PatternTrackParameters * firstParameters() const
Return the pattern track parameters of the first element of this trajectory matching its status.
const InDet::SiTools_xk * m_tools
Trajectory elements on this trajectory.
int m_nElements
count active elements
const int & difference() const
Trk::TrackStates convertToTrackStateOnSurface(const EventContext &ctx)
friend class SiCombinatorialTrackFinder_xk
const int & elementsMap(int &i) const
SiTrajectory_xk(const SiTrajectory_xk &)
bool forwardFilter(const EventContext &)
Trk::TrackStates convertToTrackStateOnSurfaceWithNewDirection(const EventContext &ctx)
const int & nclustersNoAdd() const
Trk::TrackStates convertToSimpleTrackStateOnSurfaceWithNewDirection()
Trk::TrackStates convertToSimpleTrackStateOnSurfaceForDisTrackTrigger(const EventContext &ctx)
const int & nHolesAfter() const
void getClusters(std::vector< const InDet::SiCluster * > &) const
std::unique_ptr< Trk::TrackParameters > firstTrackParameters()
int m_nclusters
index of the last element where we have
void setTools(const InDet::SiTools_xk *)
const int & ndf() const
const int & nclusters() const
bool backwardSmoother(bool, const EventContext &)
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)
SiTrajectory_xk & operator=(const SiTrajectory_xk &)
std::array< int, 300 > m_elementsMap
const PatternHoleSearchOutcome & getHoleSearchResult() const
int m_lastElement
index of the first element where we have
bool filterWithPreciseClustersError(const EventContext &)
const int & naElements() const
std::unique_ptr< Trk::FitQuality > convertToFitQuality() const
const int & nHolesBefore() const
const int & dholes() const
Trk::PrepRawDataContainer< SCT_ClusterCollection > SCT_ClusterContainer
Primary Vertex Finder.
MsgStream & operator<<(MsgStream &, const GNNTrackFinderTritonTool &)
DataVector< const Trk::TrackStateOnSurface > TrackStates
ParametersBase< TrackParametersDim, Charged > TrackParameters
-event-from-file
void initialize()
Helper struct for hole search results from the pattern recognition.