ATLAS Offline Software
Loading...
Searching...
No Matches
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
27class SoMaterial;
28class PRDHandleBase;
29namespace Trk
30{
31 class Track;
32 class Segment;
33 class PrepRawData;
34}
35
36class PRDTrackSegmentHelper : public QObject, public VP1HelperClassBase {
37
38 Q_OBJECT
39
40public:
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
60private:
61
62 class Imp;
64
65};
66
67#endif
std::vector< const Trk::Segment * > segments
TracksAndSegments(const std::vector< const Trk::Track * > &, const std::vector< const Trk::Track * > &, const std::vector< const Trk::Segment * > &)
std::vector< const Trk::Track * > tracks_outliers
std::vector< const Trk::Track * > tracks
SoMaterial * trackMaterial(const Trk::Track *) const
const TracksAndSegments * tracksAndSegments(const Trk::PrepRawData *)
void visibleSegmentsChanged(const std::vector< std::pair< const Trk::Segment *, const SoMaterial * > > &)
void visibleTracksChanged(const std::vector< std::pair< const Trk::Track *, const SoMaterial * > > &)
PRDTrackSegmentHelper(std::map< const Trk::PrepRawData *, QList< PRDHandleBase * > > *prd2handle, IVP1System *sys=0, QObject *parent=0)
SoMaterial * segmentMaterial(const Trk::Segment *) const
Base class for all TrackSegment implementations, extends the common MeasurementBase.
VP1HelperClassBase(IVP1System *sys=0, QString helpername="")
Ensure that the ATLAS eigen extensions are properly loaded.