ATLAS Offline Software
Loading...
Searching...
No Matches
ElectronCollectionSettingsButton.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 VP1AODSYSTEMS_ELECTRONCOLLSETTINGSBUTTON_H
6#define VP1AODSYSTEMS_ELECTRONCOLLSETTINGSBUTTON_H
7
10
11class SoDrawStyle;
12class SoLightModel;
13
15
16 Q_OBJECT
17
18public:
19
20 ElectronCollectionSettingsButton(QWidget * parent = 0, int dim = 25);//dim<=0 => Won't change sizepolicy
22
23 void setDimension(int dim);
24
25 // The below are necessary to fulfill the interface, but will just be passed onto the VP1MaterialButton owned by the ElectronCollectionSettingsButton form
26 virtual bool setMaterial(SoMaterial*);
27 virtual void copyValuesFromMaterial(SoMaterial*);
28 virtual double lastAppliedTransparency() const ;
29 virtual double lastAppliedShininess() const ;
30 virtual double lastAppliedBrightness() const;
31
32 // GUI for track lines...
33 double trackTubeRadius() const;//0 => don't show tubes for tracks
34 bool hideActualTrackPath() const;
35
36 // GUI for propagation
37 bool useExistingParameters() const;
38 int numOfStepsForInterpolation() const;
39
40
41 // GUI for parameters
42 bool showParameters() const;
43 bool colourParametersByType() const;
44
45
46 // GUI for cuts
47 bool cutOnlyVertexAssocTracks() const;
50 QList<VP1Interval> cutAllowedPhi() const;//All off: empty list. All on: list with one entry: ]-inf,inf[
51 //Cuts for number of hits per subsystem:
52 QList<unsigned> cutRequiredNHits() const;//Empty list: no requirements. Otherwise a list
53 // with a length of four (pixel,sct,trt,muon)
54
55 //Overall drawstyles, complexities and light models:
56 SoDrawStyle * trackDrawStyle() const;
57 SoLightModel * trackLightModel() const;
58
59 // Parameters
60 SoMaterial* defaultParameterMaterial() const;
62
63 QByteArray saveState() const;
64 void restoreFromState( const QByteArray& );
65
66 signals:
67 void trackTubeRadiusChanged(const double&);
68 void lastAppliedChanged(); // emitted when something related to material changes
70
73
76 void cutAllowedPhiChanged(const QList<VP1Interval>&);
77 void cutRequiredNHitsChanged(const QList<unsigned>&);
80
81 public Q_SLOTS:
83 void setMaterialText(const QString&);
84
85 protected Q_SLOTS:
86 void updateButton();
87
88protected:
89 // void initEditWindow();//!< Make sure that edit window is constructed
90 void mousePressEvent(QMouseEvent *event);
91 void mouseMoveEvent(QMouseEvent *event);
92 void dropEvent(QDropEvent *event);
93 void dragEnterEvent(QDragEnterEvent *event);
94private:
95
96 class Imp;
98
99 private Q_SLOTS:
101 void updateTrackLightModel(bool);
103 void updateHideActualTrackPath(bool);
111
112};
113
114#endif
115
116
ElectronCollectionSettingsButton(QWidget *parent=0, int dim=25)
bool cutOnlyVertexAssocTracks() const
Return true if this collection should only should tracks associated to a vertex.
void cutAllowedPhiChanged(const QList< VP1Interval > &)
void trackTubeRadiusChanged(const double &)
bool showParameters() const
Returns the number of steps to use when interpolating between paramters (0 is no interpolation....
int numOfStepsForInterpolation() const
Returns true if the propagation should use the parameters already on the particle,...
QByteArray saveState() const
fill out with the state of the object (used for drag and drop etc)
void cutAllowedEtaChanged(const VP1Interval &)
SoMaterial * parameterMaterial(xAOD::ParameterPosition) const
void cutRequiredNHitsChanged(const QList< unsigned > &)
void cutAllowedPtChanged(const VP1Interval &)
VP1MaterialButtonBase(QWidget *parent, IVP1System *sys=0, const QString &helpername="")
ParameterPosition
Enum allowing us to know where in ATLAS the parameters are defined.