ATLAS Offline Software
VP1GeometrySystem.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 #ifndef VP1GEOMETRYSYSTEM_H
6 #define VP1GEOMETRYSYSTEM_H
7 
9 // //
10 // Header file for class VP1GeometrySystem //
11 // //
12 // Author: Thomas Kittelmann <Thomas.Kittelmann@cern.ch> //
13 // //
14 // Derived from V-atlas geometry system by Joe Boudreau. //
15 // Origins of initial version dates back to ~1996, initial VP1 //
16 // version by TK (May 2007) and almost entirely rewritten Oct 2007 //
17 // //
19 
20 // GeoModel
22 //
23 #include "GeoModelKernel/GeoVPhysVol.h"
24 
27 #include "VP1GeometrySystems/VolumeHandle.h"//fixme
28 #include <set>
29 #include <map>
30 #include <QStack>
31 #include <QString>
32 
34 
35  Q_OBJECT
36 
37 public:
38 
39 
40  VP1GeometrySystem( const VP1GeoFlags::SubSystemFlags& SubSystemsTurnedOn = VP1GeoFlags::None,
41  const QString& name = "Geo" );
42  virtual ~VP1GeometrySystem();
43 
44  //Method that channel can use to override defaults:
45  void setGeometrySelectable(bool);
46  void setZoomToVolumeOnClick(bool);
49 
50 
51  QWidget * buildController();
52 
53  void systemcreate(StoreGateSvc*detstore);
54  void buildPermanentSceneGraph(StoreGateSvc* detstore, SoSeparator *root);
55  void buildEventSceneGraph(StoreGateSvc*, SoSeparator *) {}
56  void userPickedNode(SoNode* pickedNode, SoPath *pickedPath);
57  void systemuncreate();
58 
59  QByteArray saveState();
60  void restoreFromState(QByteArray);
61  void enableMuonChamberLabels(bool, bool);
62 
63 signals:
64  void appropriateMDTProjectionsChanged(int);//To give hints to prd/track/segment systems about
65  //0: No projections, 1: Project to end of tubes, 2: Project to end of chamber volume.
66  void plotSpectrum(QStack<QString>&, int copyNumber=-1); // Send information about selected volume to the VP1UtilitySystems::PartSpectSystem
67  //The stack represents the path to the selected volume. The entries of this patch have form Volname::CopyNo
68  //The Volname is either physical volume name, or, in case the former is absent, the logical volume name
69  //The ::CopyNo suffix is added only when CopyNo is applicable
70 
71 public Q_SLOTS:
72 
73  void reiconizeToShowSpecificMuonChambers(const std::set<GeoPVConstLink>&);
74  void orientViewToMuonChamber(const GeoPVConstLink& chamberPV);//Zooms/rotates to obtain orthogonal endview of to muon chamber
75  void setCurvedSurfaceRealism(int);//Accepts values in the range 0..100.
76  void muonChamberT0sChanged(const std::map<GeoPVConstLink, float>&,int);
77 protected Q_SLOTS:
78  void checkboxChanged();
79  void updateTransparency();
83 
84  void autoAdaptPixelsOrSCT(bool,bool,bool,bool,bool,bool);//pixel,brl,ecA,ecC,bcmA,bcmC
85  void autoAdaptMuonNSW(bool reset, bool stgc, bool mm, bool passiveSpacer, bool passiveStructure,bool passiveAPlate); // select NSW geo: sTGC, MicroMegas, Spacer, Structure, APlate
86  void resetSubSystems(VP1GeoFlags::SubSystemFlags);
87  void autoExpandByVolumeOrMaterialName(bool,const QString&);//volname: (false,namestr), matname: (true,namestr)
88  void autoIconifyByVolumeOrMaterialName(bool,const QString&);//volname: (false,namestr), matname: (true,namestr)
89  void actionOnAllNonStandardVolumes(bool);//true: zap, false: expand.
90 
93 
94  void setShowVolumeOutLines(bool);
95 
96  void saveMaterialsToFile(const QString&,bool);//(filename,onlyChangedMaterials)
97  void loadMaterialsFromFile(const QString&);//filename
98 
99  void setLabels(int);
100  void setLabelPosOffsets(const QList<int>&);
101 
102 protected:
103  class Imp;
104  Imp * m_d;
105 };
106 
107 #endif
VP1GeometrySystem::emit_appropriateMDTProjectionsChanged
void emit_appropriateMDTProjectionsChanged()
Definition: VP1GeometrySystem.cxx:1591
VP1GeometrySystem::appropriateMDTProjectionsChanged
void appropriateMDTProjectionsChanged(int)
IVP13DSystemSimple
Definition: IVP13DSystemSimple.h:24
VP1GeometrySystem::Imp
Definition: VP1GeometrySystem.cxx:94
VP1GeometrySystem::autoIconifyByVolumeOrMaterialName
void autoIconifyByVolumeOrMaterialName(bool, const QString &)
Definition: VP1GeometrySystem.cxx:2138
VP1GeometrySystem::setZoomToVolumeOnClick
void setZoomToVolumeOnClick(bool)
Definition: VP1GeometrySystem.cxx:341
VP1GeometrySystem::actionOnAllNonStandardVolumes
void actionOnAllNonStandardVolumes(bool)
Definition: VP1GeometrySystem.cxx:2027
sendEI_SPB.root
root
Definition: sendEI_SPB.py:34
VP1GeometrySystem::adaptMuonChambersStyleChanged
void adaptMuonChambersStyleChanged()
Definition: VP1GeometrySystem.cxx:1577
VP1GeometrySystem::volumeResetRequested
void volumeResetRequested(VolumeHandle *)
Definition: VP1GeometrySystem.cxx:2750
IVP13DSystemSimple.h
VP1GeometrySystem::autoAdaptMuonNSW
void autoAdaptMuonNSW(bool reset, bool stgc, bool mm, bool passiveSpacer, bool passiveStructure, bool passiveAPlate)
Definition: VP1GeometrySystem.cxx:2354
VP1GeometrySystem::VP1GeometrySystem
VP1GeometrySystem(const VP1GeoFlags::SubSystemFlags &SubSystemsTurnedOn=VP1GeoFlags::None, const QString &name="Geo")
Definition: VP1GeometrySystem.cxx:303
VP1GeometrySystem::userPickedNode
void userPickedNode(SoNode *pickedNode, SoPath *pickedPath)
Definition: VP1GeometrySystem.cxx:813
VP1GeometrySystem::~VP1GeometrySystem
virtual ~VP1GeometrySystem()
Definition: VP1GeometrySystem.cxx:328
VP1GeometrySystem::enableMuonChamberLabels
void enableMuonChamberLabels(bool, bool)
first is t0s, 2nd is hits
Definition: VP1GeometrySystem.cxx:2882
VP1GeometrySystem::orientViewToMuonChamber
void orientViewToMuonChamber(const GeoPVConstLink &chamberPV)
Definition: VP1GeometrySystem.cxx:1767
GeoPrimitives.h
VP1GeometrySystem::buildEventSceneGraph
void buildEventSceneGraph(StoreGateSvc *, SoSeparator *)
Definition: VP1GeometrySystem.h:55
VP1GeometrySystem
Definition: VP1GeometrySystem.h:33
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:128
VP1GeometrySystem::setAutoAdaptMuonChambersToEventData
void setAutoAdaptMuonChambersToEventData(bool)
Definition: VP1GeometrySystem.cxx:354
VP1GeometrySystem::m_d
Imp * m_d
Definition: VP1GeometrySystem.h:103
VP1GeometrySystem::autoAdaptPixelsOrSCT
void autoAdaptPixelsOrSCT(bool, bool, bool, bool, bool, bool)
Definition: VP1GeometrySystem.cxx:2247
VP1GeoFlags::VOLSTATE
VOLSTATE
Definition: VP1GeoFlags.h:87
IVP1System::name
const QString & name() const
Definition: IVP1System.cxx:50
VP1GeometrySystem::setLabelPosOffsets
void setLabelPosOffsets(const QList< int > &)
Definition: VP1GeometrySystem.cxx:2866
VP1GeometrySystem::setGeometrySelectable
void setGeometrySelectable(bool)
Definition: VP1GeometrySystem.cxx:335
VP1GeometrySystem::checkboxChanged
void checkboxChanged()
Definition: VP1GeometrySystem.cxx:774
python.L1.Config.LegacyTopoMergerMap.signals
signals
Definition: LegacyTopoMergerMap.py:13
VP1GeometrySystem::resetSubSystems
void resetSubSystems(VP1GeoFlags::SubSystemFlags)
Definition: VP1GeometrySystem.cxx:1517
VP1GeometrySystem::setShowVolumeOutLines
void setShowVolumeOutLines(bool)
Definition: VP1GeometrySystem.cxx:2760
VolumeHandle
Definition: VolumeHandle.h:21
VP1GeoFlags::None
@ None
Definition: VP1GeoFlags.h:32
VP1GeoFlags.h
VP1GeometrySystem::buildController
QWidget * buildController()
Definition: VP1GeometrySystem.cxx:384
VP1GeometrySystem::adaptMuonChambersToEventData
void adaptMuonChambersToEventData()
Definition: VP1GeometrySystem.cxx:1539
VP1GeometrySystem::muonChamberT0sChanged
void muonChamberT0sChanged(const std::map< GeoPVConstLink, float > &, int)
The map is the dt0 per chamber, plus a label identifier, which by convention (!) is 0=Moore,...
Definition: VP1GeometrySystem.cxx:2886
VP1GeometrySystem::setOrientViewToMuonChambersOnClick
void setOrientViewToMuonChambersOnClick(bool)
Definition: VP1GeometrySystem.cxx:347
VP1GeometrySystem::setLabels
void setLabels(int)
Definition: VP1GeometrySystem.cxx:2872
VP1GeometrySystem::saveMaterialsToFile
void saveMaterialsToFile(const QString &, bool)
Definition: VP1GeometrySystem.cxx:2769
VP1GeometrySystem::setCurvedSurfaceRealism
void setCurvedSurfaceRealism(int)
Definition: VP1GeometrySystem.cxx:1488
python.SystemOfUnits.mm
int mm
Definition: SystemOfUnits.py:83
VP1GeometrySystem::restoreFromState
void restoreFromState(QByteArray)
Definition: VP1GeometrySystem.cxx:1336
VP1GeometrySystem::systemuncreate
void systemuncreate()
Definition: VP1GeometrySystem.cxx:313
VP1GeometrySystem::reiconizeToShowSpecificMuonChambers
void reiconizeToShowSpecificMuonChambers(const std::set< GeoPVConstLink > &)
Definition: VP1GeometrySystem.cxx:1608
VP1GeometrySystem::autoExpandByVolumeOrMaterialName
void autoExpandByVolumeOrMaterialName(bool, const QString &)
Definition: VP1GeometrySystem.cxx:2058
CxxUtils::reset
constexpr std::enable_if_t< is_bitmask_v< E >, E & > reset(E &lhs, E rhs)
Convenience function to clear bits in a class enum bitmask.
Definition: bitmask.h:243
VP1GeometrySystem::loadMaterialsFromFile
void loadMaterialsFromFile(const QString &)
Definition: VP1GeometrySystem.cxx:2808
VP1GeometrySystem::plotSpectrum
void plotSpectrum(QStack< QString > &, int copyNumber=-1)
VP1GeometrySystem::systemcreate
void systemcreate(StoreGateSvc *detstore)
Definition: VP1GeometrySystem.cxx:499
VP1GeometrySystem::saveState
QByteArray saveState()
Definition: VP1GeometrySystem.cxx:1297
VP1GeometrySystem::buildPermanentSceneGraph
void buildPermanentSceneGraph(StoreGateSvc *detstore, SoSeparator *root)
Definition: VP1GeometrySystem.cxx:512
VP1GeometrySystem::updateTransparency
void updateTransparency()
Definition: VP1GeometrySystem.cxx:1501
VolumeHandle.h
VP1GeometrySystem::volumeStateChangeRequested
void volumeStateChangeRequested(VolumeHandle *, VP1GeoFlags::VOLSTATE)
Definition: VP1GeometrySystem.cxx:2739