ATLAS Offline Software
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 
27 class MsgStream;
28 
29 namespace InDetDD {
30  class SiDetectorElement;
31 }
32 
33 namespace InDet {
34 
35  class SiCombinatorialTrackFinderData_xk;
36  class TrackQualityCuts;
37 
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 
94  const Trk::TrackParameters&,
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  {
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  {
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 
207  inline int TrackQualityCuts::numIntCuts() const
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 
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
InDet::TrackQualityCuts::TrackQualityCuts
TrackQualityCuts()
Definition: ISiCombinatorialTrackFinder.h:129
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
Trk::TrackInfo
Contains information about the 'fitter' of this track.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/TrackInfo.h:32
TrackParameters.h
InDet::ISiCombinatorialTrackFinder
Definition: ISiCombinatorialTrackFinder.h:53
InDet::TrackQualityCuts::setIntCut
void setIntCut(const std::string &, int)
Definition: ISiCombinatorialTrackFinder.h:179
InDet::ISiCombinatorialTrackFinder::endEvent
virtual void endEvent(SiCombinatorialTrackFinderData_xk &data) const =0
InDet::ISiCombinatorialTrackFinder::getTracksWithBrem
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
InDet
DUMMY Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
InDet::TrackQualityCuts::numDoubleCuts
int numDoubleCuts() const
Definition: ISiCombinatorialTrackFinder.h:212
CaloCondBlobAlgs_fillNoiseFromASCII.db
db
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:43
InDet::ISiCombinatorialTrackFinder::dump
virtual MsgStream & dump(SiCombinatorialTrackFinderData_xk &data, MsgStream &out) const =0
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
InDet::TrackQualityCuts
Definition: ISiCombinatorialTrackFinder.h:122
InDet::TrackQualityCuts::getDoubleCut
bool getDoubleCut(const std::string &, double &) const
Definition: ISiCombinatorialTrackFinder.h:200
InDet::TrackQualityCuts::~TrackQualityCuts
~TrackQualityCuts()
Definition: ISiCombinatorialTrackFinder.h:133
Track.h
InDet::ISiCombinatorialTrackFinder::fillStatistic
virtual void fillStatistic(SiCombinatorialTrackFinderData_xk &data, std::array< bool, SiCombinatorialTrackFinderData_xk::kNCombStats > &) const =0
GeoPrimitives.h
InDet::TrackQualityCuts::m_idata
std::map< const std::string, int > m_idata
Definition: ISiCombinatorialTrackFinder.h:151
InDet::ISiCombinatorialTrackFinder::newEvent
virtual void newEvent(const EventContext &ctx, SiCombinatorialTrackFinderData_xk &data, Trk::TrackInfo, const TrackQualityCuts &) const =0
beamspotman.n
n
Definition: beamspotman.py:731
SpacePoint.h
BindingsTest.cut
cut
This script demonstrates how to call a C++ class from Python Also how to use PyROOT is shown.
Definition: BindingsTest.py:13
InDet::ISiCombinatorialTrackFinder::pTseed
virtual double pTseed(SiCombinatorialTrackFinderData_xk &data, const Trk::TrackParameters &, const std::vector< const Trk::SpacePoint * > &, const EventContext &) const =0
InDet::TrackQualityCuts::setDoubleCut
void setDoubleCut(const std::string &, double)
Definition: ISiCombinatorialTrackFinder.h:186
Trk::ParametersBase
Definition: ParametersBase.h:55
SiTrackMakerEventData_xk.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
InDet::TrackQualityCuts::m_ddata
std::map< const std::string, double > m_ddata
Definition: ISiCombinatorialTrackFinder.h:152
InDet::ISiCombinatorialTrackFinder::getTracks
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
InDet::SiCombinatorialTrackFinderData_xk
Definition: SiCombinatorialTrackFinderData_xk.h:34
InDet::ISiCombinatorialTrackFinder::getTracks
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
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
InDet::TrackQualityCuts::getIntCut
bool getIntCut(const std::string &, int &) const
Definition: ISiCombinatorialTrackFinder.h:193
InDet::ISiCombinatorialTrackFinder::newEvent
virtual void newEvent(const EventContext &ctx, SiCombinatorialTrackFinderData_xk &data) const =0
InDet::TrackQualityCuts::operator=
TrackQualityCuts & operator=(const TrackQualityCuts &)
Definition: ISiCombinatorialTrackFinder.h:165
InDet::ISiCombinatorialTrackFinder::DeclareInterfaceID
DeclareInterfaceID(ISiCombinatorialTrackFinder, 1, 0)
InDet::TrackQualityCuts::numIntCuts
int numIntCuts() const
Definition: ISiCombinatorialTrackFinder.h:207