ATLAS Offline Software
Loading...
Searching...
No Matches
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
28#include <set>
29#include <map>
30#include <QStack>
31#include <QString>
32
34
35 Q_OBJECT
36
37public:
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
63signals:
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
71public 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);
77protected 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 autoAdaptHGTD(bool reset, bool flex, bool hybrid, bool glue, bool sensors, bool inactive, bool asic, bool supportPlate, bool frontCover, bool backCover, bool moderatorIn, bool moderatorOut, bool outerRCover, bool coolingLines); // select HGTD geo
87 void resetSubSystems(VP1GeoFlags::SubSystemFlags);
88 void autoExpandByVolumeOrMaterialName(bool,const QString&);//volname: (false,namestr), matname: (true,namestr)
89 void autoIconifyByVolumeOrMaterialName(bool,const QString&);//volname: (false,namestr), matname: (true,namestr)
90 void actionOnAllNonStandardVolumes(bool);//true: zap, false: expand.
91
94
95 void setShowVolumeOutLines(bool);
96
97 void saveMaterialsToFile(const QString&,bool);//(filename,onlyChangedMaterials)
98 void loadMaterialsFromFile(const QString&);//filename
99
100 void setLabels(int);
101 void setLabelPosOffsets(const QList<int>&);
102
103protected:
104 class Imp;
106};
107
108#endif
IVP13DSystemSimple(const QString &name, const QString &information, const QString &contact_info)
const QString & name() const
The Athena Transient Store API.
void buildPermanentSceneGraph(StoreGateSvc *detstore, SoSeparator *root)
void loadMaterialsFromFile(const QString &)
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,...
void userPickedNode(SoNode *pickedNode, SoPath *pickedPath)
void setOrientViewToMuonChambersOnClick(bool)
void autoAdaptMuonNSW(bool reset, bool stgc, bool mm, bool passiveSpacer, bool passiveStructure, bool passiveAPlate)
void setZoomToVolumeOnClick(bool)
void emit_appropriateMDTProjectionsChanged()
void enableMuonChamberLabels(bool, bool)
first is t0s, 2nd is hits
VP1GeometrySystem(const VP1GeoFlags::SubSystemFlags &SubSystemsTurnedOn=VP1GeoFlags::None, const QString &name="Geo")
void orientViewToMuonChamber(const GeoPVConstLink &chamberPV)
void resetSubSystems(VP1GeoFlags::SubSystemFlags)
void autoIconifyByVolumeOrMaterialName(bool, const QString &)
void volumeResetRequested(VolumeHandle *)
void plotSpectrum(QStack< QString > &, int copyNumber=-1)
void autoAdaptPixelsOrSCT(bool, bool, bool, bool, bool, bool)
void autoAdaptHGTD(bool reset, bool flex, bool hybrid, bool glue, bool sensors, bool inactive, bool asic, bool supportPlate, bool frontCover, bool backCover, bool moderatorIn, bool moderatorOut, bool outerRCover, bool coolingLines)
void volumeStateChangeRequested(VolumeHandle *, VP1GeoFlags::VOLSTATE)
void setLabelPosOffsets(const QList< int > &)
void systemcreate(StoreGateSvc *detstore)
void autoExpandByVolumeOrMaterialName(bool, const QString &)
void appropriateMDTProjectionsChanged(int)
void actionOnAllNonStandardVolumes(bool)
void setAutoAdaptMuonChambersToEventData(bool)
void reiconizeToShowSpecificMuonChambers(const std::set< GeoPVConstLink > &)
void saveMaterialsToFile(const QString &, bool)
void buildEventSceneGraph(StoreGateSvc *, SoSeparator *)
void restoreFromState(QByteArray)