ATLAS Offline Software
PRDTrackSegmentHelper.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 
7 // //
8 // Header file for class PRDTrackSegmentHelper //
9 // //
10 // Description: Class for keeping track of visible tracks //
11 // and segments and their materials, for //
12 // colour-prd-by-XXX modes. //
13 // //
14 // Author: Thomas H. Kittelmann (Thomas.Kittelmann@cern.ch) //
15 // Initial version: December 2007 //
16 // //
18 
19 #ifndef PRDTRACKSEGMENTHELPER_H
20 #define PRDTRACKSEGMENTHELPER_H
21 
23 #include <QObject>
24 #include <vector>
25 #include <map>
26 
27 class SoMaterial;
28 class PRDHandleBase;
29 namespace Trk
30 {
31  class Track;
32  class Segment;
33  class PrepRawData;
34 }
35 
36 class PRDTrackSegmentHelper : public QObject, public VP1HelperClassBase {
37 
38  Q_OBJECT
39 
40 public:
41 
42  PRDTrackSegmentHelper( std::map< const Trk::PrepRawData *, QList<PRDHandleBase *> >* prd2handle,
43  IVP1System* sys = 0, QObject * parent = 0);
44  virtual ~PRDTrackSegmentHelper();
45 
46  //This is used to inform the class of changes in visible tracks and segments:
47  void visibleTracksChanged(const std::vector< std::pair<const Trk::Track*, const SoMaterial*> >&);
48  void visibleSegmentsChanged(const std::vector< std::pair<const Trk::Segment*, const SoMaterial*> >&);
49 
50  SoMaterial * trackMaterial(const Trk::Track*) const;
51  SoMaterial * segmentMaterial(const Trk::Segment*) const;
53  public:
54  inline TracksAndSegments(const std::vector<const Trk::Track*>&,const std::vector<const Trk::Track*>&,const std::vector< const Trk::Segment* >& );
55  std::vector<const Trk::Track*> tracks;//tracks using the given prd in the fit
56  std::vector<const Trk::Track*> tracks_outliers;//tracks where the given prd is associated as 'outlier'
57  std::vector< const Trk::Segment* > segments;//segments using the given prd
58  };
59  const TracksAndSegments * tracksAndSegments(const Trk::PrepRawData*);//0 means no tracks/segments
60 private:
61 
62  class Imp;
63  Imp * m_d;
64 
65 };
66 
67 #endif
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
Trk::TrackState::Segment
@ Segment
Definition: TrackStateDefs.h:37
PRDTrackSegmentHelper
Definition: PRDTrackSegmentHelper.h:36
mapkey::sys
@ sys
Definition: TElectronEfficiencyCorrectionTool.cxx:42
IVP1System
Definition: IVP1System.h:36
PRDTrackSegmentHelper::TracksAndSegments::tracks_outliers
std::vector< const Trk::Track * > tracks_outliers
Definition: PRDTrackSegmentHelper.h:56
PRDTrackSegmentHelper::tracksAndSegments
const TracksAndSegments * tracksAndSegments(const Trk::PrepRawData *)
Definition: PRDTrackSegmentHelper.cxx:483
PRDTrackSegmentHelper::visibleTracksChanged
void visibleTracksChanged(const std::vector< std::pair< const Trk::Track *, const SoMaterial * > > &)
Definition: PRDTrackSegmentHelper.cxx:98
PRDTrackSegmentHelper::TracksAndSegments::segments
std::vector< const Trk::Segment * > segments
Definition: PRDTrackSegmentHelper.h:57
Trk::Segment
Definition: TrkEvent/TrkSegment/TrkSegment/Segment.h:56
test_pyathena.parent
parent
Definition: test_pyathena.py:15
VP1HelperClassBase
Definition: VP1HelperClassBase.h:28
PRDTrackSegmentHelper::TracksAndSegments::tracks
std::vector< const Trk::Track * > tracks
Definition: PRDTrackSegmentHelper.h:55
Trk::PrepRawData
Definition: PrepRawData.h:62
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
PRDTrackSegmentHelper::TracksAndSegments::TracksAndSegments
TracksAndSegments(const std::vector< const Trk::Track * > &, const std::vector< const Trk::Track * > &, const std::vector< const Trk::Segment * > &)
Definition: PRDTrackSegmentHelper.cxx:513
PRDTrackSegmentHelper::Imp
Definition: PRDTrackSegmentHelper.cxx:29
PRDTrackSegmentHelper::PRDTrackSegmentHelper
PRDTrackSegmentHelper(std::map< const Trk::PrepRawData *, QList< PRDHandleBase * > > *prd2handle, IVP1System *sys=0, QObject *parent=0)
Definition: PRDTrackSegmentHelper.cxx:83
PRDTrackSegmentHelper::~PRDTrackSegmentHelper
virtual ~PRDTrackSegmentHelper()
Definition: PRDTrackSegmentHelper.cxx:92
VP1HelperClassBase.h
PRDTrackSegmentHelper::segmentMaterial
SoMaterial * segmentMaterial(const Trk::Segment *) const
Definition: PRDTrackSegmentHelper.cxx:528
PRDTrackSegmentHelper::m_d
Imp * m_d
Definition: PRDTrackSegmentHelper.h:62
PRDTrackSegmentHelper::trackMaterial
SoMaterial * trackMaterial(const Trk::Track *) const
Definition: PRDTrackSegmentHelper.cxx:521
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
PRDHandleBase
Definition: PRDHandleBase.h:35
PRDTrackSegmentHelper::visibleSegmentsChanged
void visibleSegmentsChanged(const std::vector< std::pair< const Trk::Segment *, const SoMaterial * > > &)
Definition: PRDTrackSegmentHelper.cxx:179
PRDTrackSegmentHelper::TracksAndSegments
Definition: PRDTrackSegmentHelper.h:52