ATLAS Offline Software
Loading...
Searching...
No Matches
AscObj_TSOS.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5
7// //
8// Header file for class AscObj_TSOS //
9// //
10// Description: Handle for TSOS's //
11// //
12// Author: Troels Kofoed Jacobsen //
13// Thomas H. Kittelmann (Thomas.Kittelmann@cern.ch) //
14// Initial version: June 2008 //
15// //
17
18#ifndef ASCOBJ_TSOS_H
19#define ASCOBJ_TSOS_H
20
25
27
28#include <QTreeWidgetItem>
30
31
32typedef AmgSymMatrix(2) AmgCovMatrix; // new Eigen-based CovarianceMatrix
33
34
35
36class SoTranslation;
37namespace Trk {
38 class RIO_OnTrack;
39 class CompetingRIOsOnTrack;
40 class Surface;
41 class TrackStateOnSurface;
42 class MeasurementBase;
43}
44
46public:
47
49 unsigned indexOfPointOnTrack);
50 void setDistToNextPar(const double&);
51
52 void buildShapes(SoSeparator*&shape_simple, SoSeparator*&shape_detailed);
53 QStringList clicked();
54 void zoomView();
55 bool isShortMeasurement();
56
57 virtual void setVisible(bool);
58
59 virtual TrackCommonFlags::TSOSPartsFlags parts() const { return m_parts; }
60
61 const Trk::MeasurementBase * measurement() const;
62 const Trk::Surface * surface() const;
63 const Trk::RIO_OnTrack * rioOnTrack() const;
66
67 //Add identify() method???
68
70
71 virtual bool initiatesOwnZooms() const { return true; }
72
73 virtual QTreeWidgetItem* browserTreeItem() const {return m_objBrowseTree;}
74 virtual void setBrowserTreeItem(QTreeWidgetItem* obt) {m_objBrowseTree=obt;}
75
76protected:
77 int regionIndex() const;
78 double lodCrossOverValue() const {return 1000; }
79
80private:
81 virtual ~AscObj_TSOS() {}//Private so it can only be deleted by TrackHandleBase
83 TrackCommonFlags::TSOSPartsFlags m_parts;
86 QTreeWidgetItem* m_objBrowseTree;
87
88 double deviationFromMeasurement(const bool& absolute = false);
89 void addDeviationFromMeasurementInfoToShapes( SoSeparator*&shape_simple, SoSeparator*&shape_detailed);
90 void addTransformToSurface( SoSeparator*&shape_simple, SoSeparator*&shape_detailed);
91 void addTrackParamInfoToShapes( SoSeparator*&shape_simple, SoSeparator*&shape_detailed,
92 bool showPars, bool showParsErrors, bool showSurfaces );
93 void addErrors(const Trk::Surface& theSurface, const AmgSymMatrix(5)& tmpCovMat,
94 const Amg::Vector2D& localPos, const Amg::Vector3D& p1, bool showSurfaces,
95 SoSeparator* shape_simple, SoSeparator* shape_detailed, bool force1D, bool applyLocalTrans );
96 void addRIO_OnTrackInfoToShapes( SoSeparator*&shape_simple, SoSeparator*&shape_detailed, const Trk::RIO_OnTrack* rio, bool blockDrawingOfGP=false);
97 void addCompetingRIO_OnTrackInfoToShapes( SoSeparator*&shape_simple, SoSeparator*&shape_detailed);
98 void addSurfaceToShapes( SoSeparator*&shape_simple, SoSeparator*&shape_detailed);
99 void addMaterialEffectsToShapes( SoSeparator*&shape_simple, SoSeparator*&shape_detailed);
100
101 static void ensureInitSeps( SoSeparator*&shape_simple, SoSeparator*&shape_detailed);
102 SoTranslation* getZTranslationTube( const Trk::Surface *, const double& maxTrans ) const;
103
105};
106
107#endif
#define AmgSymMatrix(dim)
void addDeviationFromMeasurementInfoToShapes(SoSeparator *&shape_simple, SoSeparator *&shape_detailed)
void buildShapes(SoSeparator *&shape_simple, SoSeparator *&shape_detailed)
void setDistToNextPar(const double &)
double deviationFromMeasurement(const bool &absolute=false)
void zoomView()
Depending on the controller settings, will attempt to zoom the view to this TSOS, for example in clic...
virtual QTreeWidgetItem * browserTreeItem() const
Definition AscObj_TSOS.h:73
QStringList clicked()
virtual TrackCommonFlags::TSOSPartsFlags parts() const
Definition AscObj_TSOS.h:59
void addRIO_OnTrackInfoToShapes(SoSeparator *&shape_simple, SoSeparator *&shape_detailed, const Trk::RIO_OnTrack *rio, bool blockDrawingOfGP=false)
void addErrors(const Trk::Surface &theSurface, const AmgSymMatrix(5)&tmpCovMat, const Amg::Vector2D &localPos, const Amg::Vector3D &p1, bool showSurfaces, SoSeparator *shape_simple, SoSeparator *shape_detailed, bool force1D, bool applyLocalTrans)
QTreeWidgetItem * m_objBrowseTree
Definition AscObj_TSOS.h:86
double lodCrossOverValue() const
Definition AscObj_TSOS.h:78
double m_distToNextPar
Definition AscObj_TSOS.h:85
virtual void setBrowserTreeItem(QTreeWidgetItem *obt)
Definition AscObj_TSOS.h:74
SoTranslation * getZTranslationTube(const Trk::Surface *, const double &maxTrans) const
int regionIndex() const
HitToSoNode m_hitToSoNode
unsigned m_indexOfPointOnTrack
Definition AscObj_TSOS.h:84
virtual void setVisible(bool)
const Trk::TrackStateOnSurface * m_tsos
Definition AscObj_TSOS.h:82
TrackCommonFlags::TSOSPartsFlags m_parts
Definition AscObj_TSOS.h:83
Amg::Vector3D approxCenter() const
virtual ~AscObj_TSOS()
Definition AscObj_TSOS.h:81
const Trk::RIO_OnTrack * rioOnTrack() const
virtual bool initiatesOwnZooms() const
Definition AscObj_TSOS.h:71
void addSurfaceToShapes(SoSeparator *&shape_simple, SoSeparator *&shape_detailed)
void addCompetingRIO_OnTrackInfoToShapes(SoSeparator *&shape_simple, SoSeparator *&shape_detailed)
const Trk::MeasurementBase * measurement() const
const Trk::Surface * surface() const
const Trk::CompetingRIOsOnTrack * competingRIOsOnTrack() const
bool isShortMeasurement()
Return true if TRT/MDT & shortened mode is on, false otherwise.
void addTransformToSurface(SoSeparator *&shape_simple, SoSeparator *&shape_detailed)
AscObj_TSOS(TrackHandleBase *, const Trk::TrackStateOnSurface *, unsigned indexOfPointOnTrack)
void addMaterialEffectsToShapes(SoSeparator *&shape_simple, SoSeparator *&shape_detailed)
void addTrackParamInfoToShapes(SoSeparator *&shape_simple, SoSeparator *&shape_detailed, bool showPars, bool showParsErrors, bool showSurfaces)
static void ensureInitSeps(SoSeparator *&shape_simple, SoSeparator *&shape_detailed)
const Trk::TrackStateOnSurface * trackStateOnSurface() const
Definition AscObj_TSOS.h:65
Class to handle RIO On Tracks ROT) for InDet and Muons, it inherits from the common MeasurementBase.
Definition RIO_OnTrack.h:70
Base class for all CompetingRIOsOnTack implementations, extends the common MeasurementBase.
This class is the pure abstract base class for all fittable tracking measurements.
Class to handle RIO On Tracks ROT) for InDet and Muons, it inherits from the common MeasurementBase.
Definition RIO_OnTrack.h:70
Abstract Base Class for tracking surfaces.
represents the track state (measurement, material, fit parameters and quality) at a surface.
Eigen::Matrix< double, 2, 1 > Vector2D
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.