ATLAS Offline Software
Loading...
Searching...
No Matches
ISiCombinatorialTrackFinder.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 ISiCombinatorialTrackFinder
8// Version 1.0 06/04/2007 I.Gavrilenko
10
11#ifndef ISiCombinatorialTrackFinder_H
12#define ISiCombinatorialTrackFinder_H
13
17#include "TrkTrack/Track.h"
19
20#include "GaudiKernel/AlgTool.h"
21#include "GaudiKernel/EventContext.h"
22
23#include <list>
24#include <vector>
25#include <map>
26
27class MsgStream;
28
29namespace InDetDD {
31}
32
33namespace InDet {
34
36 class TrackQualityCuts;
37
51
52 class ISiCombinatorialTrackFinder : virtual public IAlgTool
53 {
55 // Public methods:
57
58 public:
59
61
64
68
69
70 virtual const std::list<Trk::Track*>& getTracks(
72 const std::vector<const Trk::SpacePoint*>&,
73 const std::vector<Amg::Vector3D>&,
74 std::vector<const InDetDD::SiDetectorElement*>&,
75 const TrackQualityCuts&, const EventContext&) const = 0;
76
77 virtual const std::list<Trk::Track*>& getTracks(
79 const std::vector<const Trk::SpacePoint*>&,
80 const std::vector<Amg::Vector3D>&,
81 std::vector<const InDetDD::SiDetectorElement*>&,
82 std::multimap<const Trk::PrepRawData*, const Trk::Track*>&,
83 const EventContext&) const = 0;
84
85 virtual const std::list<Trk::Track*>& getTracksWithBrem(
87 const std::vector<const Trk::SpacePoint*>&,
88 const std::vector<Amg::Vector3D>&,
89 std::vector<const InDetDD::SiDetectorElement*>&,
90 std::multimap<const Trk::PrepRawData*, const Trk::Track*>&, bool,
91 const EventContext&) const = 0;
92
95 const std::vector<const Trk::SpacePoint*>&,
96 const EventContext&) const =0;
97
98 virtual void newEvent(const EventContext& ctx, SiCombinatorialTrackFinderData_xk& data) const =0;
99
100 virtual void newEvent(const EventContext& ctx, SiCombinatorialTrackFinderData_xk& data,
101 Trk::TrackInfo, const TrackQualityCuts&) const =0;
102
105
106 virtual void fillStatistic(SiCombinatorialTrackFinderData_xk& data, std::array<bool,SiCombinatorialTrackFinderData_xk::kNCombStats>&) const=0;
107
111
112 virtual MsgStream& dump(SiCombinatorialTrackFinderData_xk& data, MsgStream& out) const=0;
114
115 };
116
118 // Header file for class TrackQualityCuts
120
122 {
124 // Public methods:
126
127 public:
128
131 TrackQualityCuts(const std::map<const std::string,int>&,
132 const std::map<const std::string,double>&);
135
136 void setIntCut (const std::string&,int );
137 void setDoubleCut(const std::string&,double);
138
139 bool getIntCut (const std::string&,int& ) const;
140 bool getDoubleCut(const std::string&,double&) const;
141
142 int numIntCuts() const;
143 int numDoubleCuts() const;
144
145 protected:
146
148 // Protected Data
150
151 std::map<const std::string,int> m_idata;
152 std::map<const std::string,double> m_ddata;
153
154 };
155
157 // Inline methods
159
161 {
162 *this = TQC;
163 }
164
166 {
167 m_idata = TQC.m_idata;
168 m_ddata = TQC.m_ddata;
169 return(*this);
170 }
171
173 (const std::map<const std::string,int>& in,const std::map<const std::string,double>& db) :
174 m_idata (in),
175 m_ddata (db)
176 {
177 }
178
179 inline void TrackQualityCuts::setIntCut (const std::string& name, int cut)
180 {
181 std::map<const std::string,int>::iterator n = m_idata.find(name);
182 if(n==m_idata.end()) {m_idata.insert(std::make_pair(name,cut));}
183 else { (*n).second = cut; }
184 }
185
186 inline void TrackQualityCuts::setDoubleCut (const std::string& name, double cut)
187 {
188 std::map<const std::string,double>::iterator n = m_ddata.find(name);
189 if(n==m_ddata.end()) {m_ddata.insert(std::make_pair(name,cut));}
190 else { (*n).second = cut; }
191 }
192
193 inline bool TrackQualityCuts::getIntCut (const std::string& name,int& cut) const
194 {
195 std::map<const std::string,int>::const_iterator n = m_idata.find(name);
196 if(n==m_idata.end()) {cut = 0 ; return false;}
197 cut =(*n).second; return true ;
198 }
199
200 inline bool TrackQualityCuts::getDoubleCut (const std::string& name,double& cut) const
201 {
202 std::map<const std::string,double>::const_iterator n = m_ddata.find(name);
203 if(n==m_ddata.end()) {cut = 0 ; return false;}
204 cut = (*n).second; return true ;
205 }
206
208 {
209 return m_idata.size();
210 }
211
213 {
214 return m_ddata.size();
215 }
216
217} // end of name space
218
219
220#endif // ISiCombinatorialTrackFinder_H
221
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
Class to hold geometrical description of a silicon detector element.
Base class for combinatorial track-finding in Pixels and SCT.
virtual double pTseed(SiCombinatorialTrackFinderData_xk &data, const Trk::TrackParameters &, const std::vector< const Trk::SpacePoint * > &, const EventContext &) const =0
virtual void newEvent(const EventContext &ctx, SiCombinatorialTrackFinderData_xk &data, Trk::TrackInfo, const TrackQualityCuts &) const =0
virtual void newEvent(const EventContext &ctx, SiCombinatorialTrackFinderData_xk &data) const =0
DeclareInterfaceID(ISiCombinatorialTrackFinder, 1, 0)
virtual void endEvent(SiCombinatorialTrackFinderData_xk &data) const =0
virtual void fillStatistic(SiCombinatorialTrackFinderData_xk &data, std::array< bool, SiCombinatorialTrackFinderData_xk::kNCombStats > &) const =0
virtual const std::list< Trk::Track * > & getTracksWithBrem(SiCombinatorialTrackFinderData_xk &data, const Trk::TrackParameters &, const std::vector< const Trk::SpacePoint * > &, const std::vector< Amg::Vector3D > &, std::vector< const InDetDD::SiDetectorElement * > &, std::multimap< const Trk::PrepRawData *, const Trk::Track * > &, bool, const EventContext &) const =0
virtual const std::list< Trk::Track * > & getTracks(SiCombinatorialTrackFinderData_xk &data, const Trk::TrackParameters &, const std::vector< const Trk::SpacePoint * > &, const std::vector< Amg::Vector3D > &, std::vector< const InDetDD::SiDetectorElement * > &, std::multimap< const Trk::PrepRawData *, const Trk::Track * > &, const EventContext &) const =0
virtual MsgStream & dump(SiCombinatorialTrackFinderData_xk &data, MsgStream &out) const =0
virtual const std::list< Trk::Track * > & getTracks(SiCombinatorialTrackFinderData_xk &data, const Trk::TrackParameters &, const std::vector< const Trk::SpacePoint * > &, const std::vector< Amg::Vector3D > &, std::vector< const InDetDD::SiDetectorElement * > &, const TrackQualityCuts &, const EventContext &) const =0
InDet::SiCombinatorialTrackFinderData_xk holds event dependent data used by SiCombinatorialTrackFinde...
bool getIntCut(const std::string &, int &) const
bool getDoubleCut(const std::string &, double &) const
std::map< const std::string, double > m_ddata
void setIntCut(const std::string &, int)
void setDoubleCut(const std::string &, double)
std::map< const std::string, int > m_idata
TrackQualityCuts & operator=(const TrackQualityCuts &)
Contains information about the 'fitter' of this track.
Message Stream Member.
Primary Vertex Finder.
ParametersBase< TrackParametersDim, Charged > TrackParameters