ATLAS Offline Software
Loading...
Searching...
No Matches
SiTrajectory_xk.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 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
29namespace InDet{
30
31
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* ,
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* ,
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
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
174 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]{} ; //
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
void updateHoleSearchResult()
Helper method to determine the hole search outcome for use in the later reco.
Trk::TrackStates convertToSimpleTrackStateOnSurface(const EventContext &ctx)
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
SiTrajectoryElement_xk m_elements[300]
friend class SiCombinatorialTrackFinder_xk
const int & elementsMap(int &i) const
SiTrajectory_xk(const SiTrajectory_xk &)
bool forwardFilter(const EventContext &)
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)
Trk::TrackStates convertToTrackStateOnSurface()
SiTrajectory_xk & operator=(const SiTrajectory_xk &)
Trk::TrackStates convertToTrackStateOnSurfaceWithNewDirection()
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.