ATLAS Offline Software
GuideSysController.cxx
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 // Implementation of class GuideSysController //
9 // //
10 // Author: Thomas H. Kittelmann (Thomas.Kittelmann@cern.ch) //
11 // Initial version: July 2008 //
12 // //
13 // Updates: //
14 // - 2021, Nov - Riccardo Maria BIANCHI <rbianchi@cern.ch> //
15 // Added VP1People class to show people //
16 // figures at scale //
17 // //
19 
20 #define VP1IMPVARNAME m_d
21 
24 #include "ui_guidelinescontrollerform.h"
25 #include "ui_guides_settings_coordinateaxes_form.h"
26 #include "ui_guides_settings_etacones_form.h"
27 #include "ui_guides_settings_floorandletters_form.h"
28 #include "ui_guides_settings_people_form.h"
29 #include "ui_guides_settings_grid_form.h"
30 #include "ui_guides_settings_idprojsurfs_form.h"
31 #include "ui_guides_settings_trkvolumes_form.h"
32 #include "ui_guides_settings_lines_form.h"
33 #include "VP1Base/VP1Serialise.h"
34 #include "VP1Base/VP1Deserialise.h"
35 
36 // System of units
37 #ifdef BUILDVP1LIGHT
38  #include "GeoModelKernel/Units.h"
39  #define SYSTEM_OF_UNITS GeoModelKernelUnits // --> 'GeoModelKernelUnits::cm'
40 #else
41  #include "GaudiKernel/SystemOfUnits.h"
42  #define SYSTEM_OF_UNITS Gaudi::Units // --> 'Gaudi::Units::cm'
43 #endif
44 
45 #include <cmath>
46 
47 //____________________________________________________________________
49 public:
51  Ui::VP1GuidesControllerForm ui{};
52  Ui::VP1GuidesSysSettingsCoordinateAxesForm ui_axes{};
53  Ui::VP1GuidesSysSettingsEtaConeForm ui_etacones{};
54  Ui::VP1GuidesSysSettingsFloorAndLettersForm ui_floorandletters{};
55  Ui::VP1GuidesSysSettingsPeopleForm ui_people{};
56  Ui::VP1GuidesSysSettingsGridForm ui_grid{};
57  Ui::VP1GuidesSysSettingsIDProjSurfsForm ui_idprojsurfs{};
58  Ui::VP1TrackingVolumesForm ui_trkvolumes{};
59  Ui::VP1LinesForm ui_lines{};
60 
61  static SbColor4f color4f(const QColor& col, int transp_int) {
62  return SbColor4f(std::max<float>(0.0f,std::min<float>(1.0f,col.redF())),
63  std::max<float>(0.0f,std::min<float>(1.0f,col.greenF())),
64  std::max<float>(0.0f,std::min<float>(1.0f,col.blueF())),
65  std::max<float>(0.0f,std::min<float>(1.0f,1.0-transp_int/100.0)));
66  }
67 
68  InDetProjFlags::DetTypeFlags inDetDetTypesUsingProjections;
69 
70  bool last_showFloor = false;
72  double last_floorExtent = 0.0;
73  double last_floorSpacing = 0.0;
74  double last_floorHeight = 0.0;
75  bool last_showLetters = false;
76  double last_lettersZPos = 0.0;
78  bool last_showAxes = false;
79  double last_axesLength = 0.0;
81  double last_relAxesThickness = 0.0;
82  bool last_showCartesianGrid = false;
85  double last_gridSpacing = 0.0;
86  double last_gridExtent = 0.0;
87  bool last_showEtaCone1 = false;
88  bool last_showEtaCone2 = false;
89  bool last_showEtaCone3 = false;
90  double last_etaConeValue1 = 0.0;
91  double last_etaConeValue2 = 0.0;
92  double last_etaConeValue3 = 0.0;
93  double last_etaExtent = 0.0;
95  bool last_showInnerDetector = false;
96  bool last_showCalorimeters = false;
98  bool last_showLines = false;
100  double last_line_eta = 0.0; // This is needed to update the display in possibleChange_lineDirection
101  bool last_showPeople = false;
104 
105  InDetProjFlags::InDetProjPartsFlags last_applicablePixelProjParts;
106  InDetProjFlags::InDetProjPartsFlags last_applicableSCTProjParts;
107  InDetProjFlags::InDetProjPartsFlags last_applicableTRTProjParts;
108  InDetProjFlags::InDetProjPartsFlags last_shownPixelProjSurfaces;
109  InDetProjFlags::InDetProjPartsFlags last_shownSCTProjSurfaces;
110  InDetProjFlags::InDetProjPartsFlags last_shownTRTProjSurfaces;
111 
112  static InDetProjFlags::InDetProjPartsFlags projPartsFlag( bool barrelinner, bool barrelouter,
113  bool endcapinner, bool endcapouter,
114  bool endcap_hidenormalcyls_when_zasr = false,
115  bool endcap_zasr = false );
116  InDetProjFlags::DetTypeFlags pixelPartsEnabledByGUIOrDataUsage() const;
117  InDetProjFlags::DetTypeFlags sctPartsEnabledByGUIOrDataUsage() const;
118  InDetProjFlags::DetTypeFlags trtPartsEnabledByGUIOrDataUsage() const;
119 };
120 
121 //____________________________________________________________________
123  : VP1Controller(sys,"GuideSysController"), m_d(new Imp)
124 {
125  m_d->theclass = this;
126  m_d->ui.setupUi(this);
127 
128  initDialog(m_d->ui_axes, m_d->ui.pushButton_settings_coordinateAxes,m_d->ui.checkBox_coordinateAxes);
129  initDialog(m_d->ui_etacones, m_d->ui.pushButton_settings_etaCones,m_d->ui.checkBox_etaCones);
130  initDialog(m_d->ui_floorandletters, m_d->ui.pushButton_settings_floorAndLetters,m_d->ui.checkBox_floorAndLetters);
131  initDialog(m_d->ui_people, m_d->ui.pushButton_settings_people,m_d->ui.checkBox_people);
132  initDialog(m_d->ui_grid, m_d->ui.pushButton_settings_grid,m_d->ui.checkBox_grid);
133  initDialog(m_d->ui_idprojsurfs, m_d->ui.pushButton_settings_inDetProjSurfs,m_d->ui.checkBox_inDetProjSurfs);
134  initDialog(m_d->ui_trkvolumes, m_d->ui.pushButton_settings_trkVolumes,m_d->ui.checkBox_trkVolumes);
135  initDialog(m_d->ui_lines, m_d->ui.pushButton_settings_lines,m_d->ui.checkBox_lines);
136 
137  //Hide SCT/Pixel projection surface controls for now:
138  m_d->ui_idprojsurfs.groupBox_pixelproj->setVisible(false);
139  m_d->ui_idprojsurfs.groupBox_sctproj->setVisible(false);
140 
141  //Since we have different logical groups of radio buttons inside
142  //same groupboxes, we make sure they are coordinated correctly:
143 
144  QButtonGroup * pixelproj_barrel_radiogroup = defineRadioButtonGroup(m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_inner,
145  m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_outer,
146  m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_both);
147  m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_inner->setChecked(true);
148  QButtonGroup * pixelproj_endcap_radiogroup = defineRadioButtonGroup(m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_inner,
149  m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_outer,
150  m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_both);
151  m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_inner->setChecked(true);
152 
153 
154  QButtonGroup * sctproj_barrel_radiogroup = defineRadioButtonGroup(m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_inner,
155  m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_outer,
156  m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_both);
157  m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_inner->setChecked(true);
158  QButtonGroup * sctproj_endcap_radiogroup = defineRadioButtonGroup(m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_inner,
159  m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_outer,
160  m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_both);
161  m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_inner->setChecked(true);
162 
163 
164  QButtonGroup * trtproj_barrel_radiogroup = defineRadioButtonGroup(m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_inner,
165  m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_outer,
166  m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_both);
167  m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_inner->setChecked(true);
168  QButtonGroup * trtproj_endcap_radiogroup = defineRadioButtonGroup(m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_inner,
169  m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_outer,
170  m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_both);
171  m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_inner->setChecked(true);
172 
173  //Setup material buttons:
174  m_d->ui_floorandletters.colorButton_floor->setColor(QColor::fromRgbF(0.5,0.5,0.5));
175  m_d->ui_people.colorButton_people->setColor(QColor::fromRgbF(0.5,0.5,0.5));
176  m_d->ui_grid.colorButton_grid->setColor(QColor::fromRgbF(1.0,1.0,1.0));
177  m_d->ui_floorandletters.matButton_letters->setMaterial(VP1MaterialButton::createMaterial(0.5,0.5,0.5,0.1));
178  m_d->ui_people.matButton_people->setMaterial(VP1MaterialButton::createMaterial(0.5,0.5,0.5,0.1));
179  m_d->ui_axes.matButton_axes_x->setMaterial(VP1MaterialButton::createMaterial(1,0,0,0.15));
180  m_d->ui_axes.matButton_axes_y->setMaterial(VP1MaterialButton::createMaterial(0,1,0,0.15));
181  m_d->ui_axes.matButton_axes_z->setMaterial(VP1MaterialButton::createMaterial(0,0,2,0.15));
182  m_d->ui_etacones.matButton_etaCone1->setMaterial(VP1MaterialButton::createMaterial(1,1,0,0.2,0.5));
183  m_d->ui_etacones.matButton_etaCone2->setMaterial(VP1MaterialButton::createMaterial(1,0.56471,0.20784,0.2,0.5));
184  m_d->ui_etacones.matButton_etaCone3->setMaterial(VP1MaterialButton::createMaterial(1,0.15686,0.08235,0.2,0.5));
185  m_d->ui_idprojsurfs.pushButton_projsurfmaterial_pixel->setMaterial(VP1MaterialButton::createMaterial(126/255.0, 194/255.0, 204/255.0,0.05,0.35));
186  m_d->ui_idprojsurfs.pushButton_projsurfmaterial_sct->setMaterial(VP1MaterialButton::createMaterial(126/255.0, 194/255.0, 204/255.0,0.05,0.35));
187  m_d->ui_idprojsurfs.pushButton_projsurfmaterial_trt->setMaterial(VP1MaterialButton::createMaterial(126/255.0, 194/255.0, 204/255.0,0.05,0.35));
188  m_d->ui_trkvolumes.matButton_ID->setMaterial(VP1MaterialButton::createMaterial(1,0,0,0.15));
189  m_d->ui_trkvolumes.matButton_Calo->setMaterial(VP1MaterialButton::createMaterial(0,1,0,0.15));
190  m_d->ui_trkvolumes.matButton_MS->setMaterial(VP1MaterialButton::createMaterial(0,0,2,0.15));
191 
193  // Setup connections which monitor changes in the controller so that we may emit signals as appropriate: //
195 
196  // === Floor and Letters ===
198  connectToLastUpdateSlot(m_d->ui.checkBox_floorAndLetters);
199  connectToLastUpdateSlot(m_d->ui_floorandletters.checkBox_floorenabled);
200 
202  connectToLastUpdateSlot(m_d->ui_floorandletters.colorButton_floor);
203  connectToLastUpdateSlot(m_d->ui_floorandletters.spinBox_floortransp);
204 
206  connectToLastUpdateSlot(m_d->ui_floorandletters.doubleSpinBox_floorextent);
207 
209  connectToLastUpdateSlot(m_d->ui_floorandletters.doubleSpinBox_floorspacing);
210 
212  connectToLastUpdateSlot(m_d->ui_floorandletters.doubleSpinBox_floorheight);
213 
215  connectToLastUpdateSlot(m_d->ui.checkBox_floorAndLetters);
216  connectToLastUpdateSlot(m_d->ui_floorandletters.checkBox_acdesignations);
217 
219  connectToLastUpdateSlot(this,SIGNAL(floorExtentChanged(const double&)));
220  connectToLastUpdateSlot(this,SIGNAL(floorSpacingChanged(const double&)));
221 
223  connectToLastUpdateSlot(this,SIGNAL(floorHeightChanged(const double&)));
224 
225  // === People ===
227  connectToLastUpdateSlot(m_d->ui.checkBox_people);
228  connectToLastUpdateSlot(m_d->ui_people.checkBox_peopleenabled);
229 
231  connectToLastUpdateSlot(m_d->ui_people.colorButton_people);
232  connectToLastUpdateSlot(m_d->ui_people.spinBox_peopletransp);
233 
234  // Commenting this out for the moment as it is not implemented and is causing connect warnings
235 
236  // addUpdateSlot(SLOT(possibleChange_peopleExtent()));
237  // connectToLastUpdateSlot(m_d->ui_people.doubleSpinBox_peopleextent);
238 
239  // addUpdateSlot(SLOT(possibleChange_peopleSpacing()));
240  // connectToLastUpdateSlot(m_d->ui_people.doubleSpinBox_peoplespacing);
241 
242  // addUpdateSlot(SLOT(possibleChange_peopleHeight()));
243  // connectToLastUpdateSlot(m_d->ui_people.doubleSpinBox_peopleheight);
244 
245  // addUpdateSlot(SLOT(possibleChange_peopleZPos()));
246  // connectToLastUpdateSlot(this,SIGNAL(peopleExtentChanged(const double&)));
247  // connectToLastUpdateSlot(this,SIGNAL(peopleSpacingChanged(const double&)));
248 
249  // addUpdateSlot(SLOT(possibleChange_peopleVerticalPos()));
250  // connectToLastUpdateSlot(this,SIGNAL(floorHeightChanged(const double&)));
251 
252  // === Axes ===
254  connectToLastUpdateSlot(m_d->ui.checkBox_coordinateAxes);
255 
257  connectToLastUpdateSlot(m_d->ui_axes.checkBox_axes_shownegativeparts);
258  connectToLastUpdateSlot(m_d->ui_axes.doubleSpinBox_axes_lengths_m);
259 
261  connectToLastUpdateSlot(m_d->ui_axes.doubleSpinBox_axes_xpos_m);
262  connectToLastUpdateSlot(m_d->ui_axes.doubleSpinBox_axes_ypos_m);
263  connectToLastUpdateSlot(m_d->ui_axes.doubleSpinBox_axes_zpos_m);
264 
266  connectToLastUpdateSlot(m_d->ui_axes.doubleSpinBox_axes_relthickness);
267 
269  connectToLastUpdateSlot(m_d->ui.checkBox_grid);
270  connectToLastUpdateSlot(m_d->ui_grid.radioButton_grid_cartesian);
271 
273  connectToLastUpdateSlot(m_d->ui.checkBox_grid);
274  connectToLastUpdateSlot(m_d->ui_grid.radioButton_grid_cylindrical);
275 
277  connectToLastUpdateSlot(m_d->ui_grid.colorButton_grid);
278  connectToLastUpdateSlot(m_d->ui_grid.spinBox_gridtransp);
279 
281  connectToLastUpdateSlot(m_d->ui_grid.doubleSpinBox_gridspacing);
282 
284  connectToLastUpdateSlot(m_d->ui_grid.doubleSpinBox_gridextent);
285 
287  connectToLastUpdateSlot(m_d->ui.checkBox_etaCones);
288  connectToLastUpdateSlot(m_d->ui_etacones.checkBox_etacone1);
289 
291  connectToLastUpdateSlot(m_d->ui.checkBox_etaCones);
292  connectToLastUpdateSlot(m_d->ui_etacones.checkBox_etacone2);
293 
295  connectToLastUpdateSlot(m_d->ui.checkBox_etaCones);
296  connectToLastUpdateSlot(m_d->ui_etacones.checkBox_etacone3);
297 
299  connectToLastUpdateSlot(m_d->ui_etacones.doubleSpinBox_etaval1);
300 
302  connectToLastUpdateSlot(m_d->ui_etacones.doubleSpinBox_etaval2);
303 
305  connectToLastUpdateSlot(m_d->ui_etacones.doubleSpinBox_etaval3);
306 
308  connectToLastUpdateSlot(m_d->ui_etacones.doubleSpinBox_etaconeextent);
309  connectToLastUpdateSlot(m_d->ui_etacones.radioButton_etaconeextentisr);
310 
312  connectToLastUpdateSlot(pixelproj_barrel_radiogroup);
313  connectToLastUpdateSlot(pixelproj_endcap_radiogroup);
314 
316  connectToLastUpdateSlot(sctproj_barrel_radiogroup);
317  connectToLastUpdateSlot(sctproj_endcap_radiogroup);
318 
320  connectToLastUpdateSlot(trtproj_barrel_radiogroup);
321  connectToLastUpdateSlot(trtproj_endcap_radiogroup);
322  connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_trtprojsurf_z2r);
323 
325  connectToLastUpdateSlot(m_d->ui.checkBox_inDetProjSurfs);
326  connectToLastUpdateSlot(this,SIGNAL(applicablePixelProjPartsChanged(InDetProjFlags::InDetProjPartsFlags)));
327  connectToLastUpdateSlot(m_d->ui_idprojsurfs.groupBox_pixelproj);
328  connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_asneeded);
329  connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelA);
330  connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelC);
331  connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapA);
332  connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapC);
333 
335  connectToLastUpdateSlot(m_d->ui.checkBox_inDetProjSurfs);
336  connectToLastUpdateSlot(this,SIGNAL(applicableSCTProjPartsChanged(InDetProjFlags::InDetProjPartsFlags)));
337  connectToLastUpdateSlot(m_d->ui_idprojsurfs.groupBox_sctproj);
338  connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_asneeded);
339  connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelA);
340  connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelC);
341  connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapA);
342  connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapC);
343 
345  connectToLastUpdateSlot(m_d->ui.checkBox_inDetProjSurfs);
346  connectToLastUpdateSlot(this,SIGNAL(applicableTRTProjPartsChanged(InDetProjFlags::InDetProjPartsFlags)));
347  connectToLastUpdateSlot(m_d->ui_idprojsurfs.groupBox_trtproj);
348  connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_asneeded);
349  connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelA);
350  connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelC);
351  connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapA);
352  connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapC);
353 
355  connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_asneeded);
356 
358  connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_asneeded);
359 
361  connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_asneeded);
362 
364  connectToLastUpdateSlot(m_d->ui.checkBox_trkVolumes);
365 
369  connectToLastUpdateSlot(m_d->ui_trkvolumes.checkBox_Calo);
372 
374  connectToLastUpdateSlot(m_d->ui.checkBox_lines);
375 
377  connectToLastUpdateSlot(m_d->ui_lines.doubleSpinBox_phi);
378  connectToLastUpdateSlot(m_d->ui_lines.doubleSpinBox_theta);
379  connectToLastUpdateSlot(m_d->ui_lines.doubleSpinBox_eta);
380  connectToLastUpdateSlot(m_d->ui_lines.doubleSpinBox_length);
381 
382 
383  initLastVars();
384 }
385 
386 //____________________________________________________________________
388 {
389  delete m_d;
390 }
391 
392 //____________________________________________________________________
393 //Material access methods:
394 SoMaterial * GuideSysController::lettersMaterial() const { return m_d->ui_floorandletters.matButton_letters->handledMaterials().at(0); }
395 SoMaterial * GuideSysController::peopleMaterial() const { return m_d->ui_people.matButton_people->handledMaterials().at(0); }
396 SoMaterial * GuideSysController::xAxisMaterial() const { return m_d->ui_axes.matButton_axes_x->handledMaterials().at(0); }
397 SoMaterial * GuideSysController::yAxisMaterial() const { return m_d->ui_axes.matButton_axes_y->handledMaterials().at(0); }
398 SoMaterial * GuideSysController::zAxisMaterial() const { return m_d->ui_axes.matButton_axes_z->handledMaterials().at(0); }
399 SoMaterial * GuideSysController::etaCone1Material() const { return m_d->ui_etacones.matButton_etaCone1->handledMaterials().at(0); }
400 SoMaterial * GuideSysController::etaCone2Material() const { return m_d->ui_etacones.matButton_etaCone2->handledMaterials().at(0); }
401 SoMaterial * GuideSysController::etaCone3Material() const { return m_d->ui_etacones.matButton_etaCone3->handledMaterials().at(0); }
402 SoMaterial * GuideSysController::pixelProjSurfMaterial() const { return m_d->ui_idprojsurfs.pushButton_projsurfmaterial_pixel->handledMaterials().at(0); }
403 SoMaterial * GuideSysController::sctProjSurfMaterial() const { return m_d->ui_idprojsurfs.pushButton_projsurfmaterial_sct->handledMaterials().at(0); }
404 SoMaterial * GuideSysController::trtProjSurfMaterial() const { return m_d->ui_idprojsurfs.pushButton_projsurfmaterial_trt->handledMaterials().at(0); }
405 SoMaterial * GuideSysController::idTrkVolumesMaterial() const { return m_d->ui_trkvolumes.matButton_ID->handledMaterials().at(0); }
406 SoMaterial * GuideSysController::caloTrkVolumesMaterial() const { return m_d->ui_trkvolumes.matButton_Calo->handledMaterials().at(0); }
407 SoMaterial * GuideSysController::msTrkVolumesMaterial() const { return m_d->ui_trkvolumes.matButton_MS->handledMaterials().at(0); }
408 
409 //____________________________________________________________________
411 {
412  return m_d->ui.checkBox_floorAndLetters->isChecked() &&
413  m_d->ui_floorandletters.checkBox_floorenabled->isChecked();
414 }
415 
416 //____________________________________________________________________
418 {
419  return m_d->ui.checkBox_people->isChecked() &&
420  m_d->ui_people.checkBox_peopleenabled->isChecked();
421 }
422 
423 //____________________________________________________________________
425 {
426  return Imp::color4f(m_d->ui_floorandletters.colorButton_floor->color(),m_d->ui_floorandletters.spinBox_floortransp->value());
427 }
428 
429 //____________________________________________________________________
431 {
432  return Imp::color4f(m_d->ui_people.colorButton_people->color(),m_d->ui_people.spinBox_peopletransp->value());
433 }
434 
435 
436 //____________________________________________________________________
438 {
439  return m_d->ui_floorandletters.doubleSpinBox_floorextent->value()*SYSTEM_OF_UNITS::m;
440 }
441 
442 //____________________________________________________________________
444 {
445  return m_d->ui_floorandletters.doubleSpinBox_floorspacing->value()*SYSTEM_OF_UNITS::m;
446 }
447 
448 //____________________________________________________________________
450 {
451  return m_d->ui_floorandletters.doubleSpinBox_floorheight->value()*SYSTEM_OF_UNITS::m;
452 }
453 
454 //____________________________________________________________________
456 {
457  return m_d->ui.checkBox_floorAndLetters->isChecked() &&
458  m_d->ui_floorandletters.checkBox_acdesignations->isChecked();
459 }
460 
461 //____________________________________________________________________
463 {
464 
465  int nmax; double distmax;
467  nmax = 10;
468  distmax = 10*SYSTEM_OF_UNITS::m;
469  message("lettersZPos ERROR: Problems calculating floor nmax/distmax.");
470  }
471  return distmax*1.1;
472 }
473 
474 //____________________________________________________________________
476 {
477  return floorHeight()+1.5*SYSTEM_OF_UNITS::m;
478 }
479 
480 //____________________________________________________________________
482 {
483  return floorHeight();
484 }
485 
486 //____________________________________________________________________
488 {
489 
490  int nmax; double distmax;
492  nmax = 10;
493  distmax = 10*SYSTEM_OF_UNITS::m;
494  message("lettersZPos ERROR: Problems calculating floor nmax/distmax.");
495  }
496  return distmax*1.1;
497 }
498 
499 //____________________________________________________________________
501 {
502  return m_d->ui.checkBox_coordinateAxes->isChecked();
503 }
504 
505 //____________________________________________________________________
507 {
508  return m_d->ui_axes.doubleSpinBox_axes_lengths_m->value()*SYSTEM_OF_UNITS::m *
509  (m_d->ui_axes.checkBox_axes_shownegativeparts->isChecked()?-1.0:1.0);
510 }
511 
512 //____________________________________________________________________
514 {
515  return SbVec3f(m_d->ui_axes.doubleSpinBox_axes_xpos_m->value()*SYSTEM_OF_UNITS::m,
516  m_d->ui_axes.doubleSpinBox_axes_ypos_m->value()*SYSTEM_OF_UNITS::m,
517  m_d->ui_axes.doubleSpinBox_axes_zpos_m->value()*SYSTEM_OF_UNITS::m);
518 }
519 
520 //____________________________________________________________________
522 {
523  return m_d->ui_axes.doubleSpinBox_axes_relthickness->value();
524 }
525 
526 //____________________________________________________________________
528 {
529  return m_d->ui.checkBox_grid->isChecked() &&
530  m_d->ui_grid.radioButton_grid_cartesian->isChecked();
531 }
532 
533 //____________________________________________________________________
535 {
536  return m_d->ui.checkBox_grid->isChecked() &&
537  m_d->ui_grid.radioButton_grid_cylindrical->isChecked();
538 }
539 
540 //____________________________________________________________________
542 {
543  return Imp::color4f(m_d->ui_grid.colorButton_grid->color(),m_d->ui_grid.spinBox_gridtransp->value());
544 }
545 
546 //____________________________________________________________________
548 {
549  return m_d->ui_grid.doubleSpinBox_gridspacing->value()*SYSTEM_OF_UNITS::m;
550 }
551 
552 //____________________________________________________________________
554 {
555  return m_d->ui_grid.doubleSpinBox_gridextent->value()*SYSTEM_OF_UNITS::m;
556 }
557 
558 //____________________________________________________________________
560 {
561  return m_d->ui.checkBox_etaCones->isChecked() &&
562  m_d->ui_etacones.checkBox_etacone1->isChecked();
563 }
564 
565 //____________________________________________________________________
567 {
568  return m_d->ui.checkBox_etaCones->isChecked() &&
569  m_d->ui_etacones.checkBox_etacone2->isChecked();
570 }
571 
572 //____________________________________________________________________
574 {
575  return m_d->ui.checkBox_etaCones->isChecked() &&
576  m_d->ui_etacones.checkBox_etacone3->isChecked();
577 }
578 
579 //____________________________________________________________________
581 {
582  return std::max(1.0e-5,m_d->ui_etacones.doubleSpinBox_etaval1->value());
583 }
584 
585 //____________________________________________________________________
587 {
588  return std::max(1.0e-5,m_d->ui_etacones.doubleSpinBox_etaval2->value());
589 }
590 
591 //____________________________________________________________________
593 {
594  return std::max(1.0e-5,m_d->ui_etacones.doubleSpinBox_etaval3->value());
595 }
596 
597 //____________________________________________________________________
599 {
600  return m_d->ui_etacones.doubleSpinBox_etaconeextent->value() * SYSTEM_OF_UNITS::m
601  * (m_d->ui_etacones.radioButton_etaconeextentisr->isChecked() ? 1.0 : -1.0);
602 }
603 
604 //____________________________________________________________________
606 {
607  return m_d->ui.checkBox_lines->isChecked();
608 }
609 
610 
611 //____________________________________________________________________
613 {
614  double r = lineLength();
615  double phi = m_d->ui_lines.doubleSpinBox_phi->value();
616  double theta = m_d->ui_lines.doubleSpinBox_theta->value();
617  SbVec3f direction(r*sin(theta)*cos(phi),r*sin(theta)*sin(phi), r*cos(theta));
618  return direction;
619 }
620 
621 //____________________________________________________________________
623 {
624  return m_d->ui_lines.doubleSpinBox_length->value() * SYSTEM_OF_UNITS::m;
625 }
626 
627 //_____________________________________________________________________________________
628 InDetProjFlags::InDetProjPartsFlags GuideSysController::Imp::projPartsFlag( bool barrelinner, bool barrelouter,
629  bool endcapinner, bool endcapouter,
630  bool endcap_hidenormalcyls_when_zasr,
631  bool endcap_zasr )
632 {
633  InDetProjFlags::InDetProjPartsFlags parts(InDetProjFlags::NoProjections);
634  //Given the general parts needed, what specific surfaces do we need:
635  if ( barrelinner )
637  if ( barrelouter ) {
640  }
641 
642  if ( !( endcap_zasr && endcap_hidenormalcyls_when_zasr ) ) {
643  if ( endcapinner ) {
644  //Inner:
647  }
648  if ( endcapouter ) {
649  //Outer:
652  }
653  }
654  //Special ZasR surfaces for the endcaps, placed in the barrel positions:
655  if (endcap_zasr) {
656  if ( barrelinner )
658  if ( barrelouter ) {
661  }
662  }
663  return parts;
664 }
665 
666 //____________________________________________________________________
667 InDetProjFlags::InDetProjPartsFlags GuideSysController::applicablePixelProjParts() const
668 {
669  return Imp::projPartsFlag( m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_inner->isChecked() || m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_both->isChecked(),
670  m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_outer->isChecked() || m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_both->isChecked(),
671  m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_inner->isChecked() || m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_both->isChecked(),
672  m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_outer->isChecked() || m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_both->isChecked() );
673 }
674 
675 //____________________________________________________________________
676 InDetProjFlags::InDetProjPartsFlags GuideSysController::applicableSCTProjParts() const
677 {
678  return Imp::projPartsFlag( m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_inner->isChecked() || m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_both->isChecked(),
679  m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_outer->isChecked() || m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_both->isChecked(),
680  m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_inner->isChecked() || m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_both->isChecked(),
681  m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_outer->isChecked() || m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_both->isChecked() );
682 }
683 
684 //____________________________________________________________________
685 InDetProjFlags::InDetProjPartsFlags GuideSysController::applicableTRTProjParts() const
686 {
687  return Imp::projPartsFlag( m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_inner->isChecked() || m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_both->isChecked(),
688  m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_outer->isChecked() || m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_both->isChecked(),
689  m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_inner->isChecked() || m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_both->isChecked(),
690  m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_outer->isChecked() || m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_both->isChecked(),
691  true, m_d->ui_idprojsurfs.checkBox_trtprojsurf_z2r->isChecked() );
692 }
693 
694 //_____________________________________________________________________________________
696 {
697  InDetProjFlags::DetTypeFlags f(InDetProjFlags::NoDet);
698  if (ui_idprojsurfs.groupBox_trtproj->isChecked()) {
699  if (ui_idprojsurfs.checkBox_trtprojsurf_parts_asneeded->isChecked()) {
700  f |= (inDetDetTypesUsingProjections&InDetProjFlags::TRT_all);
701  } else {
702  if (ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelA->isChecked()) f |= InDetProjFlags::TRT_brlpos;
703  if (ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelC->isChecked()) f |= InDetProjFlags::TRT_brlneg;
704  if (ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapA->isChecked()) f |= InDetProjFlags::TRT_ecpos;
705  if (ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapC->isChecked()) f |= InDetProjFlags::TRT_ecneg;
706  }
707  }
708  return f;
709 }
710 
711 //_____________________________________________________________________________________
713 {
714  InDetProjFlags::DetTypeFlags f(InDetProjFlags::NoDet);
715  if (ui_idprojsurfs.groupBox_sctproj->isChecked()) {
716  if (ui_idprojsurfs.checkBox_sctprojsurf_parts_asneeded->isChecked()) {
717  f |= (inDetDetTypesUsingProjections&InDetProjFlags::SCT_all);
718  } else {
719  if (ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelA->isChecked()) f |= InDetProjFlags::SCT_brlpos;
720  if (ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelC->isChecked()) f |= InDetProjFlags::SCT_brlneg;
721  if (ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapA->isChecked()) f |= InDetProjFlags::SCT_ecpos;
722  if (ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapC->isChecked()) f |= InDetProjFlags::SCT_ecneg;
723  }
724  }
725  return f;
726 }
727 
728 //_____________________________________________________________________________________
730 {
731  InDetProjFlags::DetTypeFlags f(InDetProjFlags::NoDet);
732  if (ui_idprojsurfs.groupBox_pixelproj->isChecked()) {
733  if (ui_idprojsurfs.checkBox_pixelprojsurf_parts_asneeded->isChecked()) {
734  f |= (inDetDetTypesUsingProjections&InDetProjFlags::Pixel_all);
735  } else {
736  if (ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelA->isChecked()) f |= InDetProjFlags::Pixel_brlpos;
737  if (ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelC->isChecked()) f |= InDetProjFlags::Pixel_brlneg;
738  if (ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapA->isChecked()) f |= InDetProjFlags::Pixel_ecpos;
739  if (ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapC->isChecked()) f |= InDetProjFlags::Pixel_ecneg;
740  }
741  }
742  return f;
743 }
744 
745 //____________________________________________________________________
746 InDetProjFlags::InDetProjPartsFlags GuideSysController::shownPixelProjSurfaces() const
747 {
748  InDetProjFlags::DetTypeFlags enabledDetRegions = m_d->pixelPartsEnabledByGUIOrDataUsage();
749  if (!(InDetProjFlags::Pixel_all&enabledDetRegions)||!m_d->ui.checkBox_inDetProjSurfs->isChecked())
751  InDetProjFlags::InDetProjPartsFlags pixelProjParts(applicablePixelProjParts());
752  if (pixelProjParts==InDetProjFlags::NoProjections)
754  InDetProjFlags::InDetProjPartsFlags dummy_sct(InDetProjFlags::NoProjections), dummy_trt(InDetProjFlags::NoProjections);
755  InDetProjFlags::projectionPartsGivenUsedDetectors( pixelProjParts, dummy_sct, dummy_trt, enabledDetRegions );
756  return pixelProjParts;
757 }
758 
759 //____________________________________________________________________
760 InDetProjFlags::InDetProjPartsFlags GuideSysController::shownSCTProjSurfaces() const
761 {
762  InDetProjFlags::DetTypeFlags enabledDetRegions = m_d->sctPartsEnabledByGUIOrDataUsage();
763  if (!(InDetProjFlags::SCT_all&enabledDetRegions)||!m_d->ui.checkBox_inDetProjSurfs->isChecked())
765  InDetProjFlags::InDetProjPartsFlags sctProjParts(applicableSCTProjParts());
766  if (sctProjParts==InDetProjFlags::NoProjections)
768  InDetProjFlags::InDetProjPartsFlags dummy_pixel(InDetProjFlags::NoProjections), dummy_trt(InDetProjFlags::NoProjections);
769  InDetProjFlags::projectionPartsGivenUsedDetectors( dummy_pixel, sctProjParts, dummy_trt, enabledDetRegions );
770  return sctProjParts;
771 }
772 
773 //____________________________________________________________________
774 InDetProjFlags::InDetProjPartsFlags GuideSysController::shownTRTProjSurfaces() const
775 {
776  InDetProjFlags::DetTypeFlags enabledDetRegions = m_d->trtPartsEnabledByGUIOrDataUsage();
777  if (!(InDetProjFlags::TRT_all&enabledDetRegions)||!m_d->ui.checkBox_inDetProjSurfs->isChecked())
779  InDetProjFlags::InDetProjPartsFlags trtProjParts(applicableTRTProjParts());
780  if (trtProjParts==InDetProjFlags::NoProjections)
782  InDetProjFlags::InDetProjPartsFlags dummy_pixel(InDetProjFlags::NoProjections), dummy_sct(InDetProjFlags::NoProjections);
783  InDetProjFlags::projectionPartsGivenUsedDetectors( dummy_pixel, dummy_sct, trtProjParts,enabledDetRegions );
784  return trtProjParts;
785 }
786 
787 //____________________________________________________________________
788 void GuideSysController::setInDetDetTypesUsingProjections(InDetProjFlags::DetTypeFlags f)
789 {
791  return;
796 }
797 
798 //____________________________________________________________________
800 {
801  const bool e(!m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_asneeded->isChecked());
802  m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelA->setEnabled(e);
803  m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelC->setEnabled(e);
804  m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapA->setEnabled(e);
805  m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapC->setEnabled(e);
806 }
807 
808 //____________________________________________________________________
810 {
811  const bool e(!m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_asneeded->isChecked());
812  m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelA->setEnabled(e);
813  m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelC->setEnabled(e);
814  m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapA->setEnabled(e);
815  m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapC->setEnabled(e);
816 }
817 
818 //____________________________________________________________________
820 {
821  const bool e(!m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_asneeded->isChecked());
822  m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelA->setEnabled(e);
823  m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelC->setEnabled(e);
824  m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapA->setEnabled(e);
825  m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapC->setEnabled(e);
826 }
827 
829 {
830  return m_d->ui.checkBox_trkVolumes->isChecked();
831 }
832 
834 {
835  return m_d->ui_trkvolumes.checkBox_ID->isChecked();
836 }
837 
839 {
840  return m_d->ui_trkvolumes.checkBox_Calo->isChecked();
841 }
842 
844 {
845  return m_d->ui_trkvolumes.checkBox_MS->isChecked();
846 }
847 
848 //____________________________________________________________________
850 {
851  return 3;
852 }
853 
854 //____________________________________________________________________
856 {
857 
858  //version 0 output an integer here.
859 
860  //Materials
861  s.save(m_d->ui_floorandletters.matButton_letters);
862  s.save(m_d->ui_axes.matButton_axes_x);
863  s.save(m_d->ui_axes.matButton_axes_y);
864  s.save(m_d->ui_axes.matButton_axes_z);
865  s.save(m_d->ui_etacones.matButton_etaCone1);
866  s.save(m_d->ui_etacones.matButton_etaCone2);
867  s.save(m_d->ui_etacones.matButton_etaCone3);
868  s.save(m_d->ui_idprojsurfs.pushButton_projsurfmaterial_pixel);
869  s.save(m_d->ui_idprojsurfs.pushButton_projsurfmaterial_sct);
870  s.save(m_d->ui_idprojsurfs.pushButton_projsurfmaterial_trt);
871 
872  //Everything apart from projection surfaces:
873  s.save(m_d->ui_grid.colorButton_grid);
874  s.save(m_d->ui_grid.spinBox_gridtransp);
875  s.save(m_d->ui_floorandletters.colorButton_floor);
876  s.save(m_d->ui_floorandletters.spinBox_floortransp);
877  s.save(m_d->ui_floorandletters.doubleSpinBox_floorheight);
878  s.save(m_d->ui_floorandletters.checkBox_floorenabled);
879  s.save(m_d->ui_floorandletters.doubleSpinBox_floorspacing);
880  s.save(m_d->ui_floorandletters.doubleSpinBox_floorextent);
881  s.save(m_d->ui_floorandletters.checkBox_acdesignations);
882  //Version 0 output bool here
883  s.save(m_d->ui_axes.checkBox_axes_shownegativeparts);
884  s.save(m_d->ui_axes.doubleSpinBox_axes_lengths_m);
885  s.save(m_d->ui_axes.doubleSpinBox_axes_relthickness);
886  s.save(m_d->ui_axes.doubleSpinBox_axes_xpos_m);
887  s.save(m_d->ui_axes.doubleSpinBox_axes_ypos_m);
888  s.save(m_d->ui_axes.doubleSpinBox_axes_zpos_m);
889  s.save(0/*backwards compat*/,m_d->ui_grid.radioButton_grid_cartesian,m_d->ui_grid.radioButton_grid_cylindrical);
890  s.save(m_d->ui_grid.doubleSpinBox_gridspacing);
891  s.save(m_d->ui_grid.doubleSpinBox_gridextent);
892  s.save(m_d->ui_etacones.checkBox_etacone1);
893  s.save(m_d->ui_etacones.doubleSpinBox_etaval1);
894  s.save(m_d->ui_etacones.checkBox_etacone2);
895  s.save(m_d->ui_etacones.doubleSpinBox_etaval2);
896  s.save(m_d->ui_etacones.checkBox_etacone3);
897  s.save(m_d->ui_etacones.doubleSpinBox_etaval3);
898  s.save(m_d->ui_etacones.doubleSpinBox_etaconeextent);
899  s.save(m_d->ui_etacones.radioButton_etaconeextentisr,m_d->ui_etacones.radioButton_etaconeextentisz);
900 
901  //Projection surfaces:
902 
903  s.save(m_d->ui_idprojsurfs.groupBox_pixelproj);
904  s.save(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_asneeded);
905  s.save(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelA);
906  s.save(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelC);
907  s.save(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapA);
908  s.save(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapC);
909  s.save(m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_inner,
910  m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_outer,
911  m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_both);
912  s.save(m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_inner,
913  m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_outer,
914  m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_both);
915  s.save(m_d->ui_idprojsurfs.groupBox_sctproj);
916  s.save(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_asneeded);
917  s.save(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelA);
918  s.save(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelC);
919  s.save(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapA);
920  s.save(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapC);
921  s.save(m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_inner,
922  m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_outer,
923  m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_both);
924  s.save(m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_inner,
925  m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_outer,
926  m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_both);
927  s.save(m_d->ui_idprojsurfs.groupBox_trtproj);
928  s.save(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_asneeded);
929  s.save(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelA);
930  s.save(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelC);
931  s.save(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapA);
932  s.save(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapC);
933  s.save(m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_inner,
934  m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_outer,
935  m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_both);
936  s.save(m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_inner,
937  m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_outer,
938  m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_both);
939  s.save(m_d->ui_idprojsurfs.checkBox_trtprojsurf_z2r);
940 
941  s.save(m_d->ui.checkBox_coordinateAxes);//version 1+
942  s.save(m_d->ui.checkBox_etaCones);
943  s.save(m_d->ui.checkBox_floorAndLetters);//version 1+
944  s.save(m_d->ui.checkBox_grid);//version 1+
945  s.save(m_d->ui.checkBox_inDetProjSurfs);//version 1+
946 
947  //Tracking volumes:
948  // All version 2+
949  s.save(m_d->ui.checkBox_trkVolumes);
950 
951  //material
952  s.save(m_d->ui_trkvolumes.matButton_ID);
953  s.save(m_d->ui_trkvolumes.matButton_Calo);
954  s.save(m_d->ui_trkvolumes.matButton_MS);
955  s.save(m_d->ui_trkvolumes.checkBox_ID);
956  s.save(m_d->ui_trkvolumes.checkBox_Calo);
957  s.save(m_d->ui_trkvolumes.checkBox_MS);
958 
959  // Line from origin
960  s.save(m_d->ui.checkBox_lines);
961  s.save(m_d->ui_lines.doubleSpinBox_phi);
962  s.save(m_d->ui_lines.doubleSpinBox_phi);
963  s.save(m_d->ui_lines.doubleSpinBox_eta);
964  s.save(m_d->ui_lines.doubleSpinBox_length);
965 
966  // People
967  s.save(m_d->ui.checkBox_people);
968  s.save(m_d->ui_people.matButton_people);
969 }
970 
971 //____________________________________________________________________
973 {
974  if (s.version()<0||s.version()>2) {
975  message("Warning: State data in .vp1 file has unsupported version ("+str(s.version())+")");
976  return;
977  }
978 
979  if (s.version()==0)
980  s.ignoreInt();
981 
982  //Materials
983  s.restore(m_d->ui_floorandletters.matButton_letters);
984  s.restore(m_d->ui_axes.matButton_axes_x);
985  s.restore(m_d->ui_axes.matButton_axes_y);
986  s.restore(m_d->ui_axes.matButton_axes_z);
987  s.restore(m_d->ui_etacones.matButton_etaCone1);
988  s.restore(m_d->ui_etacones.matButton_etaCone2);
989  s.restore(m_d->ui_etacones.matButton_etaCone3);
990  s.restore(m_d->ui_idprojsurfs.pushButton_projsurfmaterial_pixel);
991  s.restore(m_d->ui_idprojsurfs.pushButton_projsurfmaterial_sct);
992  s.restore(m_d->ui_idprojsurfs.pushButton_projsurfmaterial_trt);
993 
994 
995  //Everything apart from projection surfaces:
996  s.restore(m_d->ui_grid.colorButton_grid);
997  s.restore(m_d->ui_grid.spinBox_gridtransp);
998  s.restore(m_d->ui_floorandletters.colorButton_floor);
999  s.restore(m_d->ui_floorandletters.spinBox_floortransp);
1000  s.restore(m_d->ui_floorandletters.doubleSpinBox_floorheight);
1001  s.restore(m_d->ui_floorandletters.checkBox_floorenabled);
1002  s.restore(m_d->ui_floorandletters.doubleSpinBox_floorspacing);
1003  s.restore(m_d->ui_floorandletters.doubleSpinBox_floorextent);
1004  s.restore(m_d->ui_floorandletters.checkBox_acdesignations);
1005  if (s.version()==0)
1006  s.ignoreBool();
1007  s.restore(m_d->ui_axes.checkBox_axes_shownegativeparts);
1008  s.restore(m_d->ui_axes.doubleSpinBox_axes_lengths_m);
1009  s.restore(m_d->ui_axes.doubleSpinBox_axes_relthickness);
1010  s.restore(m_d->ui_axes.doubleSpinBox_axes_xpos_m);
1011  s.restore(m_d->ui_axes.doubleSpinBox_axes_ypos_m);
1012  s.restore(m_d->ui_axes.doubleSpinBox_axes_zpos_m);
1013  s.restore(0/*backwards compat*/,m_d->ui_grid.radioButton_grid_cartesian,m_d->ui_grid.radioButton_grid_cylindrical);
1014  s.restore(m_d->ui_grid.doubleSpinBox_gridspacing);
1015  s.restore(m_d->ui_grid.doubleSpinBox_gridextent);
1016  s.restore(m_d->ui_etacones.checkBox_etacone1);
1017  s.restore(m_d->ui_etacones.doubleSpinBox_etaval1);
1018  s.restore(m_d->ui_etacones.checkBox_etacone2);
1019  s.restore(m_d->ui_etacones.doubleSpinBox_etaval2);
1020  s.restore(m_d->ui_etacones.checkBox_etacone3);
1021  s.restore(m_d->ui_etacones.doubleSpinBox_etaval3);
1022  s.restore(m_d->ui_etacones.doubleSpinBox_etaconeextent);
1023  s.restore(m_d->ui_etacones.radioButton_etaconeextentisr,m_d->ui_etacones.radioButton_etaconeextentisz);
1024 
1025  //Projection surfaces:
1026 
1027  s.restore(m_d->ui_idprojsurfs.groupBox_pixelproj);
1028  s.restore(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_asneeded);
1029  s.restore(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelA);
1030  s.restore(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelC);
1031  s.restore(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapA);
1032  s.restore(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapC);
1033  s.restore(m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_inner,
1034  m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_outer,
1035  m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_both);
1036  s.restore(m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_inner,
1037  m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_outer,
1038  m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_both);
1039  s.restore(m_d->ui_idprojsurfs.groupBox_sctproj);
1040  s.restore(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_asneeded);
1041  s.restore(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelA);
1042  s.restore(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelC);
1043  s.restore(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapA);
1044  s.restore(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapC);
1045  s.restore(m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_inner,
1046  m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_outer,
1047  m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_both);
1048  s.restore(m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_inner,
1049  m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_outer,
1050  m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_both);
1051  s.restore(m_d->ui_idprojsurfs.groupBox_trtproj);
1052  s.restore(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_asneeded);
1053  s.restore(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelA);
1054  s.restore(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelC);
1055  s.restore(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapA);
1056  s.restore(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapC);
1057  s.restore(m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_inner,
1058  m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_outer,
1059  m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_both);
1060  s.restore(m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_inner,
1061  m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_outer,
1062  m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_both);
1063  s.restore(m_d->ui_idprojsurfs.checkBox_trtprojsurf_z2r);
1064 
1065  if (s.version()>=1) {
1066  s.restore(m_d->ui.checkBox_coordinateAxes);
1067  s.restore(m_d->ui.checkBox_etaCones);
1068  s.restore(m_d->ui.checkBox_floorAndLetters);
1069  s.restore(m_d->ui.checkBox_grid);
1070  s.restore(m_d->ui.checkBox_inDetProjSurfs);
1071  }
1072 
1073  if (s.version()>=2) {
1074  s.restore(m_d->ui.checkBox_trkVolumes);
1075  s.restore(m_d->ui_trkvolumes.matButton_ID);
1076  s.restore(m_d->ui_trkvolumes.matButton_Calo);
1077  s.restore(m_d->ui_trkvolumes.matButton_MS);
1078  s.restore(m_d->ui_trkvolumes.checkBox_ID);
1079  s.restore(m_d->ui_trkvolumes.checkBox_Calo);
1080  s.restore(m_d->ui_trkvolumes.checkBox_MS);
1081  }
1082  if (s.version()>=3) {
1083  s.restore(m_d->ui.checkBox_lines);
1084  s.restore(m_d->ui_lines.doubleSpinBox_phi);
1085  s.restore(m_d->ui_lines.doubleSpinBox_phi);
1086  s.restore(m_d->ui_lines.doubleSpinBox_eta);
1087  s.restore(m_d->ui_lines.doubleSpinBox_length);
1088  }
1089 
1090  // People
1091  if (s.version()>=3) {
1092  s.restore(m_d->ui.checkBox_people);
1093  s.restore(m_d->ui_people.matButton_people);
1094  }
1095 }
1096 
1098  // Bit of a hack possibly to do this here, but I want to be able to update the direction by changing either theta or eta
1099  double eta = m_d->ui_lines.doubleSpinBox_eta->value();
1100  double theta = m_d->ui_lines.doubleSpinBox_theta->value();
1101 
1102  if (m_d->last_line_eta != eta){
1103  // eta has changed, so update theta in the UI
1104  theta = 2*std::atan(std::exp(-1.0 * eta));
1105  m_d->ui_lines.doubleSpinBox_theta->setValue(theta);
1106  } else if ( theta!= std::acos(m_d->last_lineDirection[2] / lineLength() ) ){
1107  eta = -1.0 * std::log(std::tan(theta/2.0));
1108  m_d->ui_lines.doubleSpinBox_eta->setValue(eta);
1109  }
1110  m_d->last_line_eta = m_d->ui_lines.doubleSpinBox_eta->value();
1111  if (changed( m_d->last_lineDirection , lineDirection() ) ) {
1112  if (verbose()&&!initVarsMode()) messageVerbose("Emitting "+QString()+"( lineDirectionChanged"+toString(m_d->last_lineDirection)+" )");
1114  }
1115 }
1116 
1117 
1119 // Test for possible changes in values and emit signals as appropriate:
1120 // (possibleChange_XXX() slots code provided by macros)
1121 #define VP1CONTROLLERCLASSNAME GuideSysController
1158 //POSSIBLECHANGE_IMP(lineDirection) Implemented this manually so we can update eta/theta
1162 
1163 
VP1Serialise.h
GuideSysController::zAxisMaterial
SoMaterial * zAxisMaterial() const
Definition: GuideSysController.cxx:398
GuideSysController::floorHeightChanged
void floorHeightChanged(const double &)
VP1Controller::defineRadioButtonGroup
QButtonGroup * defineRadioButtonGroup(QRadioButton *rb0, QRadioButton *rb1, QRadioButton *rb2=0, QRadioButton *rb3=0, QRadioButton *rb4=0, QRadioButton *rb5=0, QRadioButton *rb6=0, QRadioButton *rb7=0, QRadioButton *rb8=0, QRadioButton *rb9=0)
Definition: VP1Controller.cxx:288
GuideSysController::etaConeValue1
double etaConeValue1() const
Definition: GuideSysController.cxx:580
GuideSysController::Imp::last_etaConeValue3
double last_etaConeValue3
Definition: GuideSysController.cxx:92
VP1Controller::addUpdateSlot
const char * addUpdateSlot(const char *slot)
Definition: VP1Controller.cxx:318
beamspotman.r
def r
Definition: beamspotman.py:676
GuideSysController::Imp::last_showFloor
bool last_showFloor
Definition: GuideSysController.cxx:70
GuideSysController::floorSpacingChanged
void floorSpacingChanged(const double &)
GuideSysController::Imp::last_lineDirection
SbVec3f last_lineDirection
Definition: GuideSysController.cxx:99
GuideSysController::trtProjSurfMaterial
SoMaterial * trtProjSurfMaterial() const
Definition: GuideSysController.cxx:404
InDetProjFlags::EndCapOuterNegative
@ EndCapOuterNegative
Definition: InDetProjFlags.h:54
python.CaloRecoConfig.f
f
Definition: CaloRecoConfig.py:127
GuideSysController::Imp::trtPartsEnabledByGUIOrDataUsage
InDetProjFlags::DetTypeFlags trtPartsEnabledByGUIOrDataUsage() const
Definition: GuideSysController.cxx:695
POSSIBLECHANGE_IMP
#define POSSIBLECHANGE_IMP(x)
Definition: VP1ControllerMacros.h:18
GuideSysController::etaCone1Material
SoMaterial * etaCone1Material() const
Definition: GuideSysController.cxx:399
InDetProjFlags::SCT_all
@ SCT_all
Definition: InDetProjFlags.h:33
GuideSysController::applicablePixelProjParts
InDetProjFlags::InDetProjPartsFlags applicablePixelProjParts() const
Definition: GuideSysController.cxx:667
GuideSysController::floorHeight
double floorHeight() const
Definition: GuideSysController.cxx:449
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
VP1Controller::toString
static QString toString(const T &par)
Definition: VP1Controller.h:138
GuideSysController::peopleMaterial
SoMaterial * peopleMaterial() const
Definition: GuideSysController.cxx:395
GuideSysController::etaCone3Material
SoMaterial * etaCone3Material() const
Definition: GuideSysController.cxx:401
GuideSysController::Imp::color4f
static SbColor4f color4f(const QColor &col, int transp_int)
Definition: GuideSysController.cxx:61
VP1Deserialise.h
VP1Serialise
Definition: VP1Serialise.h:45
InDetProjFlags::Pixel_ecpos
@ Pixel_ecpos
Definition: InDetProjFlags.h:36
GuideSysController::possibleChange_showCylindricalGrid
void possibleChange_showCylindricalGrid()
GuideSysController::showLetters
bool showLetters() const
Definition: GuideSysController.cxx:455
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
max
#define max(a, b)
Definition: cfImp.cxx:41
GuideSysController::possibleChange_showLines
void possibleChange_showLines()
GuideSysController::Imp::last_etaExtent
double last_etaExtent
Definition: GuideSysController.cxx:93
GuideSysController::showEtaCone1
bool showEtaCone1() const
Definition: GuideSysController.cxx:559
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
GuideSysController::m_d
Imp * m_d
Definition: GuideSysController.h:177
GuideSysController::showCartesianGrid
bool showCartesianGrid() const
Definition: GuideSysController.cxx:527
GuideSysController::Imp::last_floorSpacing
double last_floorSpacing
Definition: GuideSysController.cxx:73
GuideSysController::possibleChange_applicableSCTProjParts
void possibleChange_applicableSCTProjParts()
GuideSysController::actualSaveSettings
void actualSaveSettings(VP1Serialise &) const
Definition: GuideSysController.cxx:855
GuideSysController::possibleChange_showCalorimeters
void possibleChange_showCalorimeters()
InDetProjFlags::BarrelPositive
@ BarrelPositive
Definition: InDetProjFlags.h:50
GuideSysController::possibleChange_floorColourAndTransp
void possibleChange_floorColourAndTransp()
GuideSysController::Imp::sctPartsEnabledByGUIOrDataUsage
InDetProjFlags::DetTypeFlags sctPartsEnabledByGUIOrDataUsage() const
Definition: GuideSysController.cxx:712
GuideSysController::gridColourAndTransp
SbColor4f gridColourAndTransp() const
Definition: GuideSysController.cxx:541
GuideSysController::possibleChange_lettersVerticalPos
void possibleChange_lettersVerticalPos()
GuideSysController::Imp::last_shownSCTProjSurfaces
InDetProjFlags::InDetProjPartsFlags last_shownSCTProjSurfaces
Definition: GuideSysController.cxx:109
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
GuideSysController::peopleColourAndTransp
SbColor4f peopleColourAndTransp() const
Definition: GuideSysController.cxx:430
GuideSysController
Definition: GuideSysController.h:31
GuideSysController::Imp::ui
Ui::VP1GuidesControllerForm ui
Definition: GuideSysController.cxx:51
GuideSysController::Imp::ui_grid
Ui::VP1GuidesSysSettingsGridForm ui_grid
Definition: GuideSysController.cxx:56
GuideSysController::Imp::last_floorExtent
double last_floorExtent
Definition: GuideSysController.cxx:72
VP1HelperClassBase::messageVerbose
void messageVerbose(const QString &) const
Definition: VP1HelperClassBase.cxx:78
theta
Scalar theta() const
theta method
Definition: AmgMatrixBasePlugin.h:71
GuideSysController::Imp::last_etaConeValue2
double last_etaConeValue2
Definition: GuideSysController.cxx:91
VP1Controller::initDialog
void initDialog(T &theUI, QPushButton *launchbutton, QAbstractButton *enabledButton=0)
Definition: VP1Controller.h:144
CSV_InDetExporter.new
new
Definition: CSV_InDetExporter.py:145
GuideSysController::Imp::last_etaConeValue1
double last_etaConeValue1
Definition: GuideSysController.cxx:90
VP1HelperClassBase::verbose
static bool verbose()
Definition: VP1HelperClassBase.h:32
GuideSysController::possibleChange_floorExtent
void possibleChange_floorExtent()
GuideSysController::showTrackingVolumes
bool showTrackingVolumes() const
Definition: GuideSysController.cxx:828
GuideSysController::possibleChange_gridColourAndTransp
void possibleChange_gridColourAndTransp()
GuideSysController::possibleChange_showAxes
void possibleChange_showAxes()
VP1Floor::nMax
static int nMax()
Definition: VP1Floor.h:33
GuideSysController::showAxes
bool showAxes() const
Definition: GuideSysController.cxx:500
GuideSysController.h
InDetProjFlags::TRT_ecpos
@ TRT_ecpos
Definition: InDetProjFlags.h:41
InDetProjFlags::projectionPartsGivenUsedDetectors
static void projectionPartsGivenUsedDetectors(InDetProjPartsFlags &proj_pixel, InDetProjPartsFlags &proj_sct, InDetProjPartsFlags &proj_trt, const DetTypeFlags &useddets)
Definition: InDetProjFlags.cxx:17
GuideSysController::peopleVerticalPos
double peopleVerticalPos() const
Definition: GuideSysController.cxx:481
InDetProjFlags::Pixel_brlpos
@ Pixel_brlpos
Definition: InDetProjFlags.h:34
GuideSysController::Imp::last_showLetters
bool last_showLetters
Definition: GuideSysController.cxx:75
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
GuideSysController::showEtaCone2
bool showEtaCone2() const
Definition: GuideSysController.cxx:566
GuideSysController::Imp::last_axesPosition
SbVec3f last_axesPosition
Definition: GuideSysController.cxx:80
GuideSysController::possibleChange_peopleColourAndTransp
void possibleChange_peopleColourAndTransp()
GuideSysController::possibleChange_showLetters
void possibleChange_showLetters()
GuideSysController::possibleChange_etaConeValue1
void possibleChange_etaConeValue1()
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
GuideSysController::axesPosition
SbVec3f axesPosition() const
Definition: GuideSysController.cxx:513
GuideSysController::Imp::last_showPeople
bool last_showPeople
Definition: GuideSysController.cxx:101
GuideSysController::msTrkVolumesMaterial
SoMaterial * msTrkVolumesMaterial() const
Definition: GuideSysController.cxx:407
VP1String::str
static QString str(const QString &s)
Definition: VP1String.h:49
GuideSysController::possibleChange_shownSCTProjSurfaces
void possibleChange_shownSCTProjSurfaces()
GuideSysController::Imp::last_showLines
bool last_showLines
Definition: GuideSysController.cxx:98
GuideSysController::updateProjPartsCheckboxStates_SCT
void updateProjPartsCheckboxStates_SCT()
Definition: GuideSysController.cxx:809
VP1Controller::connectToLastUpdateSlot
void connectToLastUpdateSlot(QObject *sender, const char *signal)
Definition: VP1Controller.cxx:327
mapkey::sys
@ sys
Definition: TElectronEfficiencyCorrectionTool.cxx:42
GuideSysController::lineDirection
SbVec3f lineDirection() const
Definition: GuideSysController.cxx:612
GuideSysController::Imp::last_applicableTRTProjParts
InDetProjFlags::InDetProjPartsFlags last_applicableTRTProjParts
Definition: GuideSysController.cxx:107
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
GuideSysController::etaExtent
double etaExtent() const
Definition: GuideSysController.cxx:598
GuideSysController::Imp::ui_axes
Ui::VP1GuidesSysSettingsCoordinateAxesForm ui_axes
Definition: GuideSysController.cxx:52
InDetProjFlags::TRT_EndCapZToRCentral
@ TRT_EndCapZToRCentral
Definition: InDetProjFlags.h:60
GuideSysController::Imp::ui_floorandletters
Ui::VP1GuidesSysSettingsFloorAndLettersForm ui_floorandletters
Definition: GuideSysController.cxx:54
GuideSysController::possibleChange_applicableTRTProjParts
void possibleChange_applicableTRTProjParts()
GuideSysController::Imp::ui_etacones
Ui::VP1GuidesSysSettingsEtaConeForm ui_etacones
Definition: GuideSysController.cxx:53
GuideSysController::possibleChange_lettersZPos
void possibleChange_lettersZPos()
GuideSysController::possibleChange_gridSpacing
void possibleChange_gridSpacing()
GuideSysController::caloTrkVolumesMaterial
SoMaterial * caloTrkVolumesMaterial() const
Definition: GuideSysController.cxx:406
GuideSysController::Imp::last_relAxesThickness
double last_relAxesThickness
Definition: GuideSysController.cxx:81
InDetProjFlags::SCT_brlpos
@ SCT_brlpos
Definition: InDetProjFlags.h:29
VP1Controller::initVarsMode
bool initVarsMode() const
Definition: VP1Controller.h:97
GuideSysController::idTrkVolumesMaterial
SoMaterial * idTrkVolumesMaterial() const
Definition: GuideSysController.cxx:405
GuideSysController::Imp::last_showInnerDetector
bool last_showInnerDetector
Definition: GuideSysController.cxx:95
GuideSysController::showFloor
bool showFloor() const
Definition: GuideSysController.cxx:410
GuideSysController::peopleZPos
double peopleZPos() const
Definition: GuideSysController.cxx:487
GuideSysController::floorColourAndTransp
SbColor4f floorColourAndTransp() const
Definition: GuideSysController.cxx:424
IVP1System
Definition: IVP1System.h:36
GuideSysController::lineDirectionChanged
void lineDirectionChanged(const SbVec3f &)
GuideSysController::Imp::last_gridSpacing
double last_gridSpacing
Definition: GuideSysController.cxx:85
GuideSysController::possibleChange_axesLength
void possibleChange_axesLength()
GuideSysController::possibleChange_showFloor
void possibleChange_showFloor()
GuideSysController::possibleChange_etaExtent
void possibleChange_etaExtent()
GuideSysController::showLines
bool showLines() const
Definition: GuideSysController.cxx:605
GuideSysController::actualRestoreSettings
void actualRestoreSettings(VP1Deserialise &)
Definition: GuideSysController.cxx:972
InDetProjFlags::SCT_ecpos
@ SCT_ecpos
Definition: InDetProjFlags.h:31
GuideSysController::Imp::last_showEtaCone1
bool last_showEtaCone1
Definition: GuideSysController.cxx:87
GuideSysController::Imp::last_shownTRTProjSurfaces
InDetProjFlags::InDetProjPartsFlags last_shownTRTProjSurfaces
Definition: GuideSysController.cxx:110
VP1Floor.h
VP1Controller::changed
bool changed(T &lastval, const T &newval)
Definition: VP1Controller.h:151
GuideSysController::possibleChange_showPeople
void possibleChange_showPeople()
GuideSysController::Imp::last_gridExtent
double last_gridExtent
Definition: GuideSysController.cxx:86
GuideSysController::Imp::inDetDetTypesUsingProjections
InDetProjFlags::DetTypeFlags inDetDetTypesUsingProjections
Definition: GuideSysController.cxx:68
GuideSysController::showCylindricalGrid
bool showCylindricalGrid() const
Definition: GuideSysController.cxx:534
GuideSysController::Imp::last_floorHeight
double last_floorHeight
Definition: GuideSysController.cxx:74
GuideSysController::applicableTRTProjPartsChanged
void applicableTRTProjPartsChanged(InDetProjFlags::InDetProjPartsFlags)
GuideSysController::floorExtentChanged
void floorExtentChanged(const double &)
GuideSysController::lettersVerticalPos
double lettersVerticalPos() const
Definition: GuideSysController.cxx:475
InDetProjFlags::EndCapInnerPositive
@ EndCapInnerPositive
Definition: InDetProjFlags.h:55
InDetProjFlags::SCT_ecneg
@ SCT_ecneg
Definition: InDetProjFlags.h:32
GuideSysController::gridExtent
double gridExtent() const
Definition: GuideSysController.cxx:553
GuideSysController::lettersZPos
double lettersZPos() const
Definition: GuideSysController.cxx:462
GuideSysController::Imp::last_applicableSCTProjParts
InDetProjFlags::InDetProjPartsFlags last_applicableSCTProjParts
Definition: GuideSysController.cxx:106
GuideSysController::possibleChange_showEtaCone1
void possibleChange_showEtaCone1()
GuideSysController::pixelProjSurfMaterial
SoMaterial * pixelProjSurfMaterial() const
Definition: GuideSysController.cxx:402
GuideSysController::Imp::last_showCalorimeters
bool last_showCalorimeters
Definition: GuideSysController.cxx:96
GuideSysController::applicableSCTProjParts
InDetProjFlags::InDetProjPartsFlags applicableSCTProjParts() const
Definition: GuideSysController.cxx:676
GuideSysController::Imp::last_axesLength
double last_axesLength
Definition: GuideSysController.cxx:79
drawFromPickle.tan
tan
Definition: drawFromPickle.py:36
VP1Floor::calcParsFromExtentAndSpacing
static bool calcParsFromExtentAndSpacing(VP1HelperClassBase *, const double &extent, const double &spacing, const int &nmaxlimit, int &nmax, double &distmax)
Definition: VP1Floor.cxx:30
GuideSysController::Imp::ui_idprojsurfs
Ui::VP1GuidesSysSettingsIDProjSurfsForm ui_idprojsurfs
Definition: GuideSysController.cxx:57
GuideSysController::Imp::ui_lines
Ui::VP1LinesForm ui_lines
Definition: GuideSysController.cxx:59
VP1Deserialise
Definition: VP1Deserialise.h:44
GuideSysController::Imp::last_showEtaCone3
bool last_showEtaCone3
Definition: GuideSysController.cxx:89
InDetProjFlags::EndCapInnerNegative
@ EndCapInnerNegative
Definition: InDetProjFlags.h:56
VP1HelperClassBase
Definition: VP1HelperClassBase.h:28
InDetProjFlags::BarrelCentral
@ BarrelCentral
Definition: InDetProjFlags.h:52
GuideSysController::etaCone2Material
SoMaterial * etaCone2Material() const
Definition: GuideSysController.cxx:400
GuideSysController::lineLength
double lineLength() const
Definition: GuideSysController.cxx:622
GuideSysController::possibleChange_gridExtent
void possibleChange_gridExtent()
GuideSysController::Imp::last_showAxes
bool last_showAxes
Definition: GuideSysController.cxx:78
VP1Controller
Definition: VP1Controller.h:45
GuideSysController::floorExtent
double floorExtent() const
Definition: GuideSysController.cxx:437
GuideSysController::shownTRTProjSurfaces
InDetProjFlags::InDetProjPartsFlags shownTRTProjSurfaces() const
Definition: GuideSysController.cxx:774
GuideSysController::xAxisMaterial
SoMaterial * xAxisMaterial() const
Definition: GuideSysController.cxx:396
GuideSysController::showPeople
bool showPeople() const
Definition: GuideSysController.cxx:417
GuideSysController::sctProjSurfMaterial
SoMaterial * sctProjSurfMaterial() const
Definition: GuideSysController.cxx:403
GuideSysController::floorSpacing
double floorSpacing() const
Definition: GuideSysController.cxx:443
InDetProjFlags::Pixel_ecneg
@ Pixel_ecneg
Definition: InDetProjFlags.h:37
GuideSysController::Imp::theclass
GuideSysController * theclass
Definition: GuideSysController.cxx:50
GuideSysController::possibleChange_floorHeight
void possibleChange_floorHeight()
GuideSysController::yAxisMaterial
SoMaterial * yAxisMaterial() const
Definition: GuideSysController.cxx:397
GuideSysController::axesLength
double axesLength() const
Definition: GuideSysController.cxx:506
GuideSysController::possibleChange_axesPosition
void possibleChange_axesPosition()
GuideSysController::Imp::pixelPartsEnabledByGUIOrDataUsage
InDetProjFlags::DetTypeFlags pixelPartsEnabledByGUIOrDataUsage() const
Definition: GuideSysController.cxx:729
GuideSysController::possibleChange_showMuonSpectrometer
void possibleChange_showMuonSpectrometer()
GuideSysController::showCalorimeters
bool showCalorimeters() const
Definition: GuideSysController.cxx:838
GuideSysController::possibleChange_relAxesThickness
void possibleChange_relAxesThickness()
GuideSysController::Imp::last_showTrackingVolumes
bool last_showTrackingVolumes
Definition: GuideSysController.cxx:94
VP1MaterialButton::createMaterial
static SoMaterial * createMaterial(const QColor &, const double &brightness=0.0, const double &transp=0.0)
Definition: VP1MaterialButton.cxx:786
GuideSysController::possibleChange_showEtaCone3
void possibleChange_showEtaCone3()
GuideSysController::gridSpacing
double gridSpacing() const
Definition: GuideSysController.cxx:547
InDetProjFlags::TRT_all
@ TRT_all
Definition: InDetProjFlags.h:43
query_example.col
col
Definition: query_example.py:7
InDetProjFlags::Pixel_all
@ Pixel_all
Definition: InDetProjFlags.h:38
GuideSysController::shownPixelProjSurfaces
InDetProjFlags::InDetProjPartsFlags shownPixelProjSurfaces() const
Definition: GuideSysController.cxx:746
GuideSysController::Imp::ui_people
Ui::VP1GuidesSysSettingsPeopleForm ui_people
Definition: GuideSysController.cxx:55
GuideSysController::updateProjPartsCheckboxStates_TRT
void updateProjPartsCheckboxStates_TRT()
Definition: GuideSysController.cxx:819
GuideSysController::showEtaCone3
bool showEtaCone3() const
Definition: GuideSysController.cxx:573
InDetProjFlags::TRT_brlpos
@ TRT_brlpos
Definition: InDetProjFlags.h:39
GuideSysController::lettersMaterial
SoMaterial * lettersMaterial() const
Definition: GuideSysController.cxx:394
GuideSysController::updateProjPartsCheckboxStates_Pixel
void updateProjPartsCheckboxStates_Pixel()
Definition: GuideSysController.cxx:799
InDetProjFlags::NoDet
@ NoDet
Definition: InDetProjFlags.h:28
GuideSysController::GuideSysController
GuideSysController(IVP1System *sys)
Definition: GuideSysController.cxx:122
GuideSysController::possibleChange_shownTRTProjSurfaces
void possibleChange_shownTRTProjSurfaces()
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
InDetProjFlags::Pixel_brlneg
@ Pixel_brlneg
Definition: InDetProjFlags.h:35
GuideSysController::Imp::ui_trkvolumes
Ui::VP1TrackingVolumesForm ui_trkvolumes
Definition: GuideSysController.cxx:58
GuideSysController::Imp::last_lettersVerticalPos
double last_lettersVerticalPos
Definition: GuideSysController.cxx:77
GuideSysController::possibleChange_etaConeValue3
void possibleChange_etaConeValue3()
GuideSysController::applicableTRTProjParts
InDetProjFlags::InDetProjPartsFlags applicableTRTProjParts() const
Definition: GuideSysController.cxx:685
GuideSysController::showInnerDetector
bool showInnerDetector() const
Definition: GuideSysController.cxx:833
GuideSysController::Imp::last_showMuonSpectrometer
bool last_showMuonSpectrometer
Definition: GuideSysController.cxx:97
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
GuideSysController::Imp::last_shownPixelProjSurfaces
InDetProjFlags::InDetProjPartsFlags last_shownPixelProjSurfaces
Definition: GuideSysController.cxx:108
InDetProjFlags::TRT_brlneg
@ TRT_brlneg
Definition: InDetProjFlags.h:40
GuideSysController::currentSettingsVersion
int currentSettingsVersion() const
Definition: GuideSysController.cxx:849
GuideSysController::Imp::last_line_eta
double last_line_eta
Definition: GuideSysController.cxx:100
GuideSysController::possibleChange_showCartesianGrid
void possibleChange_showCartesianGrid()
VP1HelperClassBase::message
void message(const QString &) const
Definition: VP1HelperClassBase.cxx:49
doL1CaloHVCorrections.parts
parts
Definition: doL1CaloHVCorrections.py:334
GuideSysController::Imp::last_floorColourAndTransp
SbColor4f last_floorColourAndTransp
Definition: GuideSysController.cxx:71
GuideSysController::showMuonSpectrometer
bool showMuonSpectrometer() const
Definition: GuideSysController.cxx:843
GuideSysController::applicableSCTProjPartsChanged
void applicableSCTProjPartsChanged(InDetProjFlags::InDetProjPartsFlags)
GuideSysController::Imp::last_showCartesianGrid
bool last_showCartesianGrid
Definition: GuideSysController.cxx:82
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
GuideSysController::possibleChange_showEtaCone2
void possibleChange_showEtaCone2()
InDetProjFlags::TRT_ecneg
@ TRT_ecneg
Definition: InDetProjFlags.h:42
GuideSysController::applicablePixelProjPartsChanged
void applicablePixelProjPartsChanged(InDetProjFlags::InDetProjPartsFlags)
GuideSysController::relAxesThickness
double relAxesThickness() const
Definition: GuideSysController.cxx:521
InDetProjFlags::NoProjections
@ NoProjections
Definition: InDetProjFlags.h:49
GuideSysController::shownSCTProjSurfaces
InDetProjFlags::InDetProjPartsFlags shownSCTProjSurfaces() const
Definition: GuideSysController.cxx:760
InDetProjFlags::TRT_EndCapZToRPositive
@ TRT_EndCapZToRPositive
Definition: InDetProjFlags.h:58
InDetProjFlags::BarrelNegative
@ BarrelNegative
Definition: InDetProjFlags.h:51
GuideSysController::possibleChange_showTrackingVolumes
void possibleChange_showTrackingVolumes()
GuideSysController::Imp::projPartsFlag
static InDetProjFlags::InDetProjPartsFlags projPartsFlag(bool barrelinner, bool barrelouter, bool endcapinner, bool endcapouter, bool endcap_hidenormalcyls_when_zasr=false, bool endcap_zasr=false)
Definition: GuideSysController.cxx:628
GuideSysController::possibleChange_applicablePixelProjParts
void possibleChange_applicablePixelProjParts()
GuideSysController::possibleChange_floorSpacing
void possibleChange_floorSpacing()
InDetProjFlags::EndCapOuterPositive
@ EndCapOuterPositive
Definition: InDetProjFlags.h:53
GuideSysController::etaConeValue3
double etaConeValue3() const
Definition: GuideSysController.cxx:592
GuideSysController::possibleChange_lineDirection
void possibleChange_lineDirection()
Definition: GuideSysController.cxx:1097
GuideSysController::possibleChange_shownPixelProjSurfaces
void possibleChange_shownPixelProjSurfaces()
InDetProjFlags::SCT_brlneg
@ SCT_brlneg
Definition: InDetProjFlags.h:30
GuideSysController::Imp
Definition: GuideSysController.cxx:48
nmax
const int nmax(200)
VP1Controller::initLastVars
void initLastVars()
Definition: VP1Controller.cxx:68
GuideSysController::possibleChange_showInnerDetector
void possibleChange_showInnerDetector()
GuideSysController::~GuideSysController
virtual ~GuideSysController()
Definition: GuideSysController.cxx:387
GuideSysController::setInDetDetTypesUsingProjections
void setInDetDetTypesUsingProjections(InDetProjFlags::DetTypeFlags)
Definition: GuideSysController.cxx:788
GuideSysController::Imp::last_peopleVerticalPos
double last_peopleVerticalPos
Definition: GuideSysController.cxx:103
GuideSysController::Imp::last_applicablePixelProjParts
InDetProjFlags::InDetProjPartsFlags last_applicablePixelProjParts
Definition: GuideSysController.cxx:105
GuideSysController::Imp::last_showCylindricalGrid
bool last_showCylindricalGrid
Definition: GuideSysController.cxx:83
GuideSysController::Imp::last_peopleColourAndTransp
SbColor4f last_peopleColourAndTransp
Definition: GuideSysController.cxx:102
GuideSysController::possibleChange_etaConeValue2
void possibleChange_etaConeValue2()
GuideSysController::Imp::last_showEtaCone2
bool last_showEtaCone2
Definition: GuideSysController.cxx:88
GuideSysController::Imp::last_gridColourAndTransp
SbColor4f last_gridColourAndTransp
Definition: GuideSysController.cxx:84
InDetProjFlags::TRT_EndCapZToRNegative
@ TRT_EndCapZToRNegative
Definition: InDetProjFlags.h:59
GuideSysController::Imp::last_lettersZPos
double last_lettersZPos
Definition: GuideSysController.cxx:76
VP1ControllerMacros.h
GuideSysController::etaConeValue2
double etaConeValue2() const
Definition: GuideSysController.cxx:586