ATLAS Offline Software
Loading...
Searching...
No Matches
PRDSystemController.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
5
7// //
8// Header file for class PRDSystemController //
9// //
10// Description: Controller widget for the PRD system. //
11// Keeps all nasty gui stuff internally, and //
12// only presents the actual interesting data //
13// with specialised access methods and signals. //
14// //
15// Author: Thomas H. Kittelmann (Thomas.Kittelmann@cern.ch) //
16// Initial version: November 2007 //
17// //
19
20#ifndef PRDSYSTEMCONTROLLER_H
21#define PRDSYSTEMCONTROLLER_H
22
28#include <QByteArray>
29#include <set>
31class SoMaterial;
32class SoGroup;
33
35
36 Q_OBJECT
37
38public:
39
41 virtual ~PRDSystemController();
42
44 int currentSettingsVersion() const;
46
47 //Use by the system to access the collection widget, which again is
48 //the main entry point for communication with the prd collections
49 //(loading/hiding/etc.).
51
52 SoGroup * drawOptions(PRDDetType::Type) const;
53
54 SoMaterial * getHighLightMaterial();
55 double highLightMaterialWeight() const;//value indicates relative weight
56 //of highlight material. 0.0
57 //obviously means no high light
58 //material, and values > 999.0
59 //should be taken to mean infinite
60 //weight
61
62 //Stateless on-click info:
63 bool printInfoOnClick() const;
64 bool zoomOnClick() const;
65 bool muonOrientToChambersOnClick() const;
66
67 //Access relevant information of controller:
69
70 bool selectionModeMultiple() const;
71 bool showSelectionLine() const;
72 SoMaterial * getMultiSelectionLineMaterial() const;
73
74 bool highLightOutliers() const;
75 bool drawErrors() const;
76 bool drawRDOs() const;
77
81
82 bool projectPixelHits() const;
83 bool projectSCTHits() const;
84 bool projectTRTHits() const;
85 bool projectMDTHits() const;
86 bool projectRPCHits() const;
87 bool projectCSCHits() const;
88 bool projectTGCHits() const;
89 // bool projectSTGCHits() const;
90
91 //Cuts;
93 QList<VP1Interval> cutAllowedPhi() const;//All off: empty list. All on: list with one entry: ]-inf,inf[
94 PRDCommonFlags::InDetPartsFlags inDetPartsFlags() const;
95 unsigned pixelMinNRDOPerCluster() const;
96 bool sctExcludeIsolatedClusters() const;
97 unsigned trtMinToT() const;
98 unsigned trtMaxToT() const;
99 unsigned trtMinLE() const;
100 unsigned trtMaxLE() const;
101 bool trtRequireHT() const;
102 unsigned mdtMinNHitsPerStation() const;
104 bool mdtExcludeMaskedHits() const;
105 QString mdt_cutMdtDriftCircleStatus() const;
106 bool limitToActiveChambers() const;
107 //Used ID parts:
108 InDetProjFlags::DetTypeFlags inDetPartsUsingProjections() const;
109
110 std::set<PRDDetType::Type> shownCollectionTypes() const;
111
112signals:
113 //The following signals are emitted when any of the relevant information in the controller changes value:
114
115 //Display modes and projections:
116 // void generalPRDDetailLevelChanged(PRDCollHandleBase::DETAIL);
120 void clearSelection() const;//only signal
124 void drawRDOsChanged(bool);
135 // void projectSTGCHitsChanged(bool);
136
137 //Cuts:
139 void cutAllowedPhiChanged(const QList<VP1Interval>&);
140 void inDetPartsFlagsChanged(PRDCommonFlags::InDetPartsFlags);
143 void trtMinToTChanged(unsigned);
144 void trtMaxToTChanged(unsigned);
145 void trtMinLEChanged(unsigned);
146 void trtMaxLEChanged(unsigned);
152
154
155 //Used ID parts:
156 void inDetPartsUsingProjectionsChanged(InDetProjFlags::DetTypeFlags);
157 void shownCollectionTypesChanged(const std::set<PRDDetType::Type>&);
158
159private:
160
161 class Imp;
163
164 //For verbose output:
165 template <class T> static QString toString( const T& t ) { return VP1Controller::toString(t); }//unhide base methods
166
167 static QString toString( const PRDCollHandleBase::DETAIL& par ) { return PRDCollHandleBase::toString(par); }
168 static QString toString( const PRDCollHandleBase::COLOURMETHOD& par ) { return PRDCollHandleBase::toString(par); }
169 static QString toString( const std::set<PRDDetType::Type>& s ) { return "["+str(s.size())+" types]"; }
170
171
172private Q_SLOTS:
173 void emitClearSelection();
174 void updateHighlightGui();
199
201
209 // void possibleChange_projectSTGCHits();
212
213};
214
215#endif
static QString toString(const DETAIL &)
void highLightOutliersChanged(bool)
void possibleChange_projectRPCHits()
void possibleChange_projectTGCHits()
void trtMaxLEChanged(unsigned)
unsigned mdtMinNHitsPerStation() const
SoMaterial * getHighLightMaterial()
void possibleChange_trtRequireHT()
PRDCollHandleBase::COLOURMETHOD colourMethod() const
void highLightTRTHitsByHighThresholdChanged(bool)
void mdtMinNHitsPerStationChanged(unsigned)
void possibleChange_projectPixelHits()
void mdt_cutMdtDriftCircleStatusChanged(QString)
void possibleChange_projectCSCHits()
void cutAllowedEtaChanged(const VP1Interval &)
void projectSCTHitsChanged(bool)
void trtMaxToTChanged(unsigned)
VP1Interval mdtAllowedADCValues() const
void projectRPCHitsChanged(bool)
static QString toString(const T &t)
void possibleChange_highLightTRTHitsByHighThreshold()
void drawRDOsChanged(bool)
void possibleChange_highLightMDTHitsByMask()
void mdtAllowedADCValuesChanged(VP1Interval)
void possibleChange_mdtAllowedADCValues()
SoGroup * drawOptions(PRDDetType::Type) const
PRDCommonFlags::InDetPartsFlags inDetPartsFlags() const
void projectTGCHitsChanged(bool)
void possibleChange_highLightMaterialWeight()
unsigned pixelMinNRDOPerCluster() const
void possibleChange_inDetPartsUsingProjections()
void limitToActiveChambersChanged(bool)
void showSelectionLineChanged(bool)
InDetProjFlags::DetTypeFlags inDetPartsUsingProjections() const
void cutAllowedPhiChanged(const QList< VP1Interval > &)
void actualRestoreSettings(VP1Deserialise &)
void possibleChange_trtMinLE()
void possibleChange_inDetPartsFlags()
void colourMethodChanged(PRDCollHandleBase::COLOURMETHOD)
void inDetPartsFlagsChanged(PRDCommonFlags::InDetPartsFlags)
void trtMinLEChanged(unsigned)
void possibleChange_mdtMinNHitsPerStation()
std::set< PRDDetType::Type > shownCollectionTypes() const
void projectMDTHitsChanged(bool)
void possibleChange_limitToActiveChambers()
void possibleChange_cutAllowedEta()
static QString toString(const PRDCollHandleBase::DETAIL &par)
void possibleChange_trtMaxToT()
void actualSaveSettings(VP1Serialise &) const
bool muonOrientToChambersOnClick() const
void sctExcludeIsolatedClustersChanged(bool)
static QString toString(const std::set< PRDDetType::Type > &s)
void projectCSCHitsChanged(bool)
void pixelMinNRDOPerClusterChanged(unsigned)
void possibleChange_sctExcludeIsolatedClusters()
VP1Interval cutAllowedEta() const
void possibleChange_projectSCTHits()
void possibleChange_projectMDTHits()
static QString toString(const PRDCollHandleBase::COLOURMETHOD &par)
void trtRequireHTChanged(bool)
SoMaterial * getMultiSelectionLineMaterial() const
void clearSelection() const
double highLightMaterialWeight() const
void possibleChange_trtMinToT()
void possibleChange_showSelectionLine()
void possibleChange_shownCollectionTypes()
void possibleChange_selectionModeMultiple()
void possibleChange_drawRDOs()
void possibleChange_projectTRTHits()
void possibleChange_mdtExcludeMaskedHits()
void possibleChange_highLightMDTHitsByUpperADCBound()
void projectPixelHitsChanged(bool)
QString mdt_cutMdtDriftCircleStatus() const
void trtMinToTChanged(unsigned)
void selectionModeMultipleChanged(bool)
void possibleChange_highLightOutliers()
void drawErrorsChanged(bool)
void possibleChange_colourMethod()
QList< VP1Interval > cutAllowedPhi() const
void possibleChange_trtMaxLE()
void possibleChange_pixelMinNRDOPerCluster()
void possibleChange_mdt_cutMdtDriftCircleStatus()
PRDSystemController(IVP1System *sys)
void shownCollectionTypesChanged(const std::set< PRDDetType::Type > &)
void possibleChange_drawErrors()
bool sctExcludeIsolatedClusters() const
void highLightMaterialWeightChanged(const double &)
void highLightMDTHitsByMaskChanged(bool)
void projectTRTHitsChanged(bool)
void possibleChange_cutAllowedPhi()
void mdtExcludeMaskedHitsChanged(bool)
VP1CollectionWidget * collWidget() const
void inDetPartsUsingProjectionsChanged(InDetProjFlags::DetTypeFlags)
void highLightMDTHitsByUpperADCBoundChanged(int)
static QString toString(const T &par)
VP1Controller(IVP1System *sys, const QString &classname)