ATLAS Offline Software
TrackParticleCollectionSettingsButton.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // Local
8 #include "ui_pertrackparticlecollectionsettings_form.h"
9 #include "ui_settings_cuts_form.h"
10 
11 //VP1
13 #include "VP1Base/VP1Serialise.h"
14 #include "VP1Base/VP1Deserialise.h"
15 
16 //SoCoin
17 
18 #include "Inventor/nodes/SoDrawStyle.h"
19 #include "Inventor/nodes/SoLightModel.h"
20 #include "Inventor/nodes/SoMaterial.h"
21 
22 // Qt
23 #include <QTimer>
24 #include <QByteArray>
25 #include <QBuffer>
26 #include <QDataStream>
27 #include <QMouseEvent>
28 #include <QDragEnterEvent>
29 #include <QDropEvent>
30 #include <QShortcut>
31 #include <QMimeData>
32 #include <QDrag>
33 
34 // Misc
35 #include <iostream>
36 
37 //____________________________________________________________________
39 public:
43  //nop
44  }
46  QWidget * editwindow;
47  Ui::TrackParticleCollectionSettingsForm editwindow_ui{};
48 
49  VP1MaterialButton* matButton;// main collection colour
51 
52  QList<VP1MaterialButton*> parameterTypeMatButtons;// enum used to access the specific button
53 
54  SoDrawStyle * trackDrawStyle;
55  SoLightModel * trackLightModel;
56 
57  //GUI - last values
62  QList<VP1Interval> last_cutAllowedPhi;
63  QList<unsigned> last_cutRequiredNHits;
66 
67  int dim;
69 
70  void initEditWindow();
71 };
72 
73 //____________________________________________________________________
75 {
76  if (editwindow)
77  return;
78  theclass->messageVerbose("Initialising material editor dialog");
79  editwindow = new QWidget(0,Qt::WindowStaysOnTopHint);
80  editwindow_ui.setupUi(editwindow);
81  matButton = editwindow_ui.pushButton_matButton;
82 
83  defaultParametersMatButton = editwindow_ui.matButton_parametersDefaultColour;
84  SoMaterial* defParamMat = new SoMaterial; // Default (for the moment)
86  editwindow_ui.frame_parameterTypeColours->hide();
87 
88  // Set the default colours for the "colour by parameter type" section
89  parameterTypeMatButtons.append(editwindow_ui.pushButton_matButton_parameters_default_colour_2);
90  parameterTypeMatButtons.append(editwindow_ui.pushButton_matButton_parameters_default_colour_3);
91  parameterTypeMatButtons.append(editwindow_ui.pushButton_matButton_parameters_default_colour_4);
92  parameterTypeMatButtons.append(editwindow_ui.pushButton_matButton_parameters_default_colour_5);
93  parameterTypeMatButtons.append(editwindow_ui.pushButton_matButton_parameters_default_colour_6);
94  parameterTypeMatButtons.append(editwindow_ui.pushButton_matButton_parameters_default_colour_7);
95  QList<QColor> colours;
96  colours.append(QColor(0.0, 170.0, 255.0));
97  colours.append(QColor(170, 85, 255));
98  colours.append(QColor(255, 85, 0));
99  colours.append(QColor(170, 0, 127));
100  colours.append(QColor(170, 255, 0));
101  colours.append(QColor(85, 0, 255));
102 
103  for (unsigned int i=0; i<6;++i){
104  SoMaterial * mat = VP1MaterialButton::createMaterial(colours.at(i));
106  }
107 }
108 
109 //____________________________________________________________________
111 {
112  if (m_d->editwindow)
113  m_d->editwindow->setWindowTitle(t);
114  setToolTip(t);
115 }
116 
117 //____________________________________________________________________
119  : VP1MaterialButtonBase(parent,0,"VP1MaterialButton"), m_d(new Imp)
120 {
121  m_d->dim = dim;
122 
123  m_d->theclass = this;
124  m_d->initEditWindow();
125 
126  //Draw Styles / Complexity:
127  VP1QtInventorUtils::setLimitsLineWidthSlider(m_d->editwindow_ui.horizontalSlider_trackWidth);
128  VP1QtInventorUtils::setValueLineWidthSlider(m_d->editwindow_ui.horizontalSlider_trackWidth,1.0);
129 
130  m_d->trackDrawStyle = new SoDrawStyle;
131  m_d->trackDrawStyle->setName("TrackParticleDrawStyle");
132  m_d->trackDrawStyle->pointSize=5.0;
133  m_d->trackDrawStyle->ref();
135  connect(m_d->editwindow_ui.horizontalSlider_trackWidth,SIGNAL(valueChanged(int)),this,SLOT(updateTrackDrawStyle()));
137  connect(m_d->editwindow_ui.checkBox_trackTubes,SIGNAL(toggled(bool)),this,SLOT(updateTrackTubeRadius()));
138  connect(m_d->editwindow_ui.doubleSpinBox_trackTubesRadiusMM,SIGNAL(valueChanged(double)),this,SLOT(updateTrackTubeRadius()));
139 
140 
141  m_d->trackLightModel = new SoLightModel;
142  m_d->trackLightModel->setName("TrackParticleLightModel");
143  m_d->trackLightModel->ref();
144  updateTrackLightModel(false);
145  connect(m_d->editwindow_ui.checkBox_tracksUseBaseLightModel,SIGNAL(toggled(bool)),this,SLOT(updateTrackLightModel(bool)));
146  connect(m_d->editwindow_ui.checkBox_hideactualpaths,SIGNAL(toggled(bool)),this,SLOT(updateHideActualTrackPath(bool)));
147 
148  #if defined BUILDVP1LIGHT
149  m_d->editwindow_ui.radioButton_existingParameters->setChecked(true);
150  m_d->editwindow_ui.radioButton_existingParameters->setEnabled(true);
151  m_d->editwindow_ui.radioButton_extrapolate->setChecked(false);
152  m_d->editwindow_ui.radioButton_extrapolate->setEnabled(false);
153  m_d->editwindow_ui.radioButton_extrapolate->setToolTip("Not available in VP1 Light");
154  m_d->editwindow_ui.horizontalSlider_numBezierSteps->setValue(10);
155  m_d->editwindow_ui.horizontalSlider_numBezierSteps->setSliderPosition(10);
156  #endif //BUILDVP1LIGHT
157 
158  // Propagation - for all of these, just emit the propagationOptionsChanged() signal and rely on clients checking to see what has changed.
159  connect(m_d->editwindow_ui.radioButton_existingParameters, SIGNAL(toggled(bool)), this, SIGNAL(propagationOptionsChanged()));
160  connect(m_d->editwindow_ui.radioButton_extrapolate, SIGNAL(toggled(bool)), this, SIGNAL(propagationOptionsChanged()));
161  connect(m_d->editwindow_ui.horizontalSlider_numBezierSteps,SIGNAL(valueChanged(int)),this, SIGNAL(propagationOptionsChanged()));
162 
163  // -> parameters
164  connect(m_d->editwindow_ui.checkBox_showparameters,SIGNAL(toggled(bool)),this,SLOT(possibleChange_showParameters()));
165  connect(m_d->editwindow_ui.checkBox_parameters_colourByType,SIGNAL(toggled(bool)),this,SLOT(possibleChange_parameterColours()));
166 
167  // -> cutAllowedP/Pt
168  connect(m_d->editwindow_ui.checkBox_cut_minpt,SIGNAL(toggled(bool)),this,SLOT(possibleChange_cutAllowedPt()));
169  connect(m_d->editwindow_ui.checkBox_cut_maxpt,SIGNAL(toggled(bool)),this,SLOT(possibleChange_cutAllowedPt()));
170  connect(m_d->editwindow_ui.doubleSpinBox_cut_minpt_gev,SIGNAL(valueChanged(double)),this,SLOT(possibleChange_cutAllowedPt()));
171  connect(m_d->editwindow_ui.doubleSpinBox_cut_maxpt_gev,SIGNAL(valueChanged(double)),this,SLOT(possibleChange_cutAllowedPt()));
172  connect(m_d->editwindow_ui.checkBox_cut_minpt,SIGNAL(toggled(bool)),this,SLOT(possibleChange_cutAllowedPt()));
173  connect(m_d->editwindow_ui.comboBox_momtype,SIGNAL(currentIndexChanged(int)),this,SLOT(possibleChange_cutAllowedPt()));
174 
175  // -> cutAllowedEta
176  connect(m_d->editwindow_ui.etaPhiCutWidget,SIGNAL(allowedEtaChanged(const VP1Interval&)),this,SLOT(possibleChange_cutAllowedEta()));
177 
178  // -> cutAllowedPhi
179  connect(m_d->editwindow_ui.etaPhiCutWidget,SIGNAL(allowedPhiChanged(const QList<VP1Interval>&)),this,SLOT(possibleChange_cutAllowedPhi()));
180 
181  // -> cutRequiredNHits();
182  connect(m_d->editwindow_ui.checkBox_cut_nhits_pixel,SIGNAL(toggled(bool)),this,SLOT(possibleChange_cutRequiredNHits()));
183  connect(m_d->editwindow_ui.checkBox_cut_nhits_sct,SIGNAL(toggled(bool)),this,SLOT(possibleChange_cutRequiredNHits()));
184  connect(m_d->editwindow_ui.checkBox_cut_nhits_trt,SIGNAL(toggled(bool)),this,SLOT(possibleChange_cutRequiredNHits()));
185  connect(m_d->editwindow_ui.checkBox_cut_nhits_muon,SIGNAL(toggled(bool)),this,SLOT(possibleChange_cutRequiredNHits()));
186  connect(m_d->editwindow_ui.spinBox_cut_nhits_pixel,SIGNAL(valueChanged(int)),this,SLOT(possibleChange_cutRequiredNHits()));
187  connect(m_d->editwindow_ui.spinBox_cut_nhits_sct,SIGNAL(valueChanged(int)),this,SLOT(possibleChange_cutRequiredNHits()));
188  connect(m_d->editwindow_ui.spinBox_cut_nhits_trt,SIGNAL(valueChanged(int)),this,SLOT(possibleChange_cutRequiredNHits()));
189  connect(m_d->editwindow_ui.spinBox_cut_nhits_muon,SIGNAL(valueChanged(int)),this,SLOT(possibleChange_cutRequiredNHits()));
190 
191  // -> cutOnlyVertexAssocTracks
192  connect(m_d->editwindow_ui.checkBox_vertexAssociated,SIGNAL(toggled(bool)),this,SLOT(possibleChange_cutOnlyVertexAssocTracks()));
193 
194  connect(this,SIGNAL(clicked()),this,SLOT(showEditMaterialDialog()));
195  connect(m_d->editwindow_ui.pushButton_close,SIGNAL(clicked()),this,SLOT(showEditMaterialDialog()));
196  connect(m_d->matButton,SIGNAL(lastAppliedChanged()),this,SLOT(updateButton()));
197  connect(m_d->matButton,SIGNAL(lastAppliedChanged()),this,SIGNAL(lastAppliedChanged()));
198  setAcceptDrops(true);
199 
200  QTimer::singleShot(0, this, SLOT(updateButton()));
201 
202 }
203 
204 // QWidget& TrackParticleCollectionSettingsButton::editWindow() {
205 // if (!m_d->editwindow)
206 // initEditWindow();
207 // return *(m_d->editwindow);
208 // }
210 {
211  delete m_d->editwindow;
212  m_d->trackDrawStyle->unref();
213  m_d->trackLightModel->unref();
214  delete m_d;
215 }
216 
218 {
219  if (objectName().isEmpty())
220  setObjectName("TrackParticleCollectionSettingsButton");
221  messageVerbose("setColButtonProperties: color=" + str(m_d->matButton->lastAppliedDiffuseColour()));
223 }
224 
226 {
227  if (m_d->dim == dim)
228  return;
229  m_d->dim = dim;
230  updateButton();
231 }
232 
234 {
235  if (!m_d->editwindow)
236  m_d->initEditWindow();
237 
238  if (m_d->editwindow->isHidden())
239  m_d->editwindow->show();
240  else
241  m_d->editwindow->hide();
242 }
243 
245 {
246  // std::cout<<"TrackParticleCollectionSettingsButton::setMaterial with mat="<<mat<<std::endl;
247  if (!m_d->matButton) m_d->initEditWindow();
249  return true;
250 }
251 
253 {
254  if (!m_d->matButton) m_d->initEditWindow();
256 }
258 {
259  if (!m_d->matButton) m_d->initEditWindow();
261 }
263 {
264  if (!m_d->matButton) m_d->initEditWindow();
266 }
268 {
269  if (!m_d->matButton) m_d->initEditWindow();
271 }
272 
274 {
275  return m_d->editwindow_ui.checkBox_trackTubes->isChecked() ?
276  m_d->editwindow_ui.doubleSpinBox_trackTubesRadiusMM->value() : 0.0;
277 }
278 
280 {
281  if (m_d->last_trackTubeRadius==trackTubeRadius()) return;
283  messageVerbose("TrackTubeRadius changed to "+str(m_d->last_trackTubeRadius));
285  return;
286 }
287 
289 {
290  double val = VP1QtInventorUtils::getValueLineWidthSlider(m_d->editwindow_ui.horizontalSlider_trackWidth);
291  if (m_d->trackDrawStyle->lineWidth.getValue()!=val)
292  m_d->trackDrawStyle->lineWidth = val;
293 }
294 
296 {
297  if (m_d->trackLightModel->model.getValue()!=(base?SoLightModel::BASE_COLOR:SoLightModel::PHONG)) {
298  messageVerbose("TrackLightModel changed (base = "+str(base));
299  if (base)
300  m_d->trackLightModel->model.setValue(SoLightModel::BASE_COLOR);
301  else
302  m_d->trackLightModel->model.setValue(SoLightModel::PHONG);
303  }
304 }
305 
307 {
308  emit hideActualTrackPathChanged(hide);
309 }
310 
311 
313 {
314  return m_d->trackDrawStyle;
315 }
316 
318 {
319  return m_d->trackLightModel;
320 }
321 
323  return m_d->editwindow_ui.radioButton_existingParameters->isChecked();
324 }
325 
327  return m_d->editwindow_ui.horizontalSlider_numBezierSteps->value();
328 }
329 
331  return m_d->defaultParametersMatButton->handledMaterials().at(0);// Only have one material per button.
332 }
334  return (m_d->parameterTypeMatButtons.at(static_cast<unsigned int>(position)))->handledMaterials().at(0);// Only have one material per button.
335 }
336 
337 // void setDefaultParameterMaterial(SoMaterial* mat) {
338 // // m_d->defaultParametersMatButton->setObjectName("matButton_default");
339 // // m_d->defaultParametersMatButton->setToolTip(matButtonToolTip());
340 // m_d->defaultParametersMatButton->setMaterial(mat);
341 // // connect(m_d->matButton,SIGNAL(lastAppliedChanged()),this,SLOT(possibleChangeMatTranspOrBrightness()));
342 // }
343 //
344 // void TrackParticleCollectionSettingsButton::setParameterMaterial(SoMaterial*, xAOD::ParameterPosition){
345 // // FIXME!
346 // }
347 
349 {
350  if (!m_d->editwindow)
351  m_d->initEditWindow();
352  return m_d->editwindow_ui.checkBox_hideactualpaths->isChecked();
353 }
354 
356 {
357  if (!m_d->editwindow)
358  m_d->initEditWindow();
359  messageVerbose("TrackParticleCollectionSettingsButton::showParameters returning "+str(m_d->editwindow_ui.checkBox_showparameters->isChecked()));
360  return m_d->editwindow_ui.checkBox_showparameters->isChecked();
361 }
362 
364 {
365  if (!m_d->editwindow)
366  m_d->initEditWindow();
367  messageVerbose("TrackParticleCollectionSettingsButton::colourParametersByType returning "+str(m_d->editwindow_ui.checkBox_parameters_colourByType->isChecked()));
368  return m_d->editwindow_ui.checkBox_parameters_colourByType->isChecked();
369 }
370 
371 
373 {
374  if (!m_d->editwindow)
375  m_d->initEditWindow();
376  return m_d->editwindow_ui.checkBox_vertexAssociated->isChecked();
377 }
378 
379 //____________________________________________________________________
381 {
382  if (event->button() == Qt::LeftButton)
383  m_d->dragStartPosition = event->pos();
384  QPushButton::mousePressEvent(event);
385 }
386 
387 //____________________________________________________________________
389 {
390  if (event->source()!=this && event->mimeData()->hasFormat("vp1/material"))
391  event->acceptProposedAction();
392 }
393 
394 //____________________________________________________________________
396 {
397  if (!(event->buttons() & Qt::LeftButton))
398  return;
399  if ((event->pos() - m_d->dragStartPosition).manhattanLength()
400  < QApplication::startDragDistance())
401  return;
402 
403  QDrag *drag = new QDrag(this);
404  QMimeData *mimeData = new QMimeData;
405 
407  // For dragging state onto other material buttons: //
409 
410  QByteArray byteArray = saveState();
411 
412  // buffer.close();
413  mimeData->setData("vp1/material", byteArray);
414 
415  // ////////////////////////////////////////////////////////
416  // // For dragging c++ code for defining this material //
417  // // into e.g. an editor: //
418  // ////////////////////////////////////////////////////////
419  //
420  // QString s = "SoMaterial * mat = new SoMaterial;\n";
421  // QString str_ambient = m_d->toSbColTxt(m_d->lastapplied_ambient);
422  // if (str_ambient!="SbColor(0.2,0.2,0.2)")
423  // s += "mat->ambientColor.setValue("+str_ambient+");\n";
424  // QString str_diffuse = m_d->toSbColTxt(m_d->lastapplied_diffuse);
425  // if (str_diffuse!="SbColor(0.8,0.8,0.8)")
426  // s += "mat->diffuseColor.setValue("+str_diffuse+");\n";
427  // QString str_specular = m_d->toSbColTxt(m_d->lastapplied_specular);
428  // if (str_specular!="SbColor(0,0,0)")
429  // s += "mat->specularColor.setValue("+str_specular+");\n";
430  // QString str_emissive = m_d->toSbColTxt(m_d->lastapplied_emissive);
431  // if (str_emissive!="SbColor(0,0,0)")
432  // s += "mat->emissiveColor.setValue("+str_emissive+");\n";
433  // QString str_shininess = m_d->printFloat(m_d->lastapplied_shininess/100.0);
434  // if (str_shininess!="0.2")
435  // s += "mat->shininess.setValue("+str_shininess+");\n";
436  // QString str_transparency = m_d->printFloat(m_d->lastapplied_transparency/100.0);
437  // if (str_transparency!="0")
438  // s += "mat->transparency.setValue("+str_transparency+");\n";
439  // mimeData->setText(s);
440 
441  //Execute drag:
442  drag->setMimeData(mimeData);//drag assumes ownership of mimeData
443  drag->exec(Qt::CopyAction | Qt::MoveAction);
444 }
445 
446 //____________________________________________________________________
448 {
449  QByteArray data = event->mimeData()->data("vp1/material");
450  event->acceptProposedAction();
452 }
453 
454 
456  // messageVerbose("getState");
457  // if (m_d->editwindow_ui.checkBox_tracksUseBaseLightModel->isChecked()) messageVerbose("checked!");
458  VP1Serialise serialise(1/*version*/);
459 
460  serialise.save(m_d->matButton);
461  // serialise.disableUnsavedChecks();
462  serialise.save(m_d->editwindow_ui.horizontalSlider_trackWidth);
463  serialise.save(m_d->editwindow_ui.checkBox_trackTubes);
464  serialise.save(m_d->editwindow_ui.doubleSpinBox_trackTubesRadiusMM);
465  serialise.save(m_d->editwindow_ui.checkBox_tracksUseBaseLightModel);
466  serialise.save(m_d->editwindow_ui.checkBox_hideactualpaths);
467 
468  // Parameters
469  serialise.save(m_d->editwindow_ui.checkBox_showparameters);
470  serialise.save(m_d->editwindow_ui.checkBox_parameters_colourByType);
471 
472  serialise.widgetHandled(this);
473  serialise.warnUnsaved(this);
474  return serialise.result();
475 }
476 
478 
479  VP1Deserialise state(ba,systemBase());
480  if (state.version()<0||state.version()>1)
481  return;//Ignore silently
482  state.restore(m_d->matButton);
483  state.restore(m_d->editwindow_ui.horizontalSlider_trackWidth);
484  state.restore(m_d->editwindow_ui.checkBox_trackTubes);
485  state.restore(m_d->editwindow_ui.doubleSpinBox_trackTubesRadiusMM);
486  state.restore(m_d->editwindow_ui.checkBox_tracksUseBaseLightModel);
487  state.restore(m_d->editwindow_ui.checkBox_hideactualpaths);
488 
489  // Parameters
490  state.restore(m_d->editwindow_ui.checkBox_showparameters);
491  state.restore(m_d->editwindow_ui.checkBox_parameters_colourByType);
492 
493  state.widgetHandled(this);
494  state.warnUnrestored(this);
495 
497  updateTrackLightModel(m_d->editwindow_ui.checkBox_tracksUseBaseLightModel);
498  updateButton();
499  //FIXME - anything else need updating?
500 }
501 
502 //____________________________________________________________________
504 {
505  if (!m_d->editwindow)
506  m_d->initEditWindow();
507  if (!m_d->editwindow_ui.checkBox_cut_minpt)
508  return VP1Interval();
509 
510  // will set range to negative if we have momcut=P
511  // if minCut unset then min=-inf
512  // if minCut set, and Pt selected, then min=-minCut
513  // if minCut set, and P selected, then min=-maxCut
514  // etc
515  bool isPCut = m_d->editwindow_ui.comboBox_momtype->currentText()=="P";
516 
517  const double minFromInterface=m_d->editwindow_ui.doubleSpinBox_cut_minpt_gev->value()*1000;
518  const double maxFromInterface=m_d->editwindow_ui.doubleSpinBox_cut_maxpt_gev->value()*1000;
519 
520  double min=0.0,max=0.0;
521  if (!isPCut) {
522  //Pt cut
523  min = (m_d->editwindow_ui.checkBox_cut_minpt->isChecked() ? minFromInterface : -std::numeric_limits<double>::infinity());
524  max = (m_d->editwindow_ui.checkBox_cut_maxpt->isChecked() ? maxFromInterface : std::numeric_limits<double>::infinity());
525  } else {
526  min = (m_d->editwindow_ui.checkBox_cut_maxpt->isChecked() ? -maxFromInterface : -std::numeric_limits<double>::infinity());
527  max = (m_d->editwindow_ui.checkBox_cut_minpt->isChecked() ? -minFromInterface : std::numeric_limits<double>::infinity());
528  }
529 
530  //message("cutAllowedPt: min,max="+QString::number(min)+","+QString::number(max));
531 
532  if (max<min)
533  return VP1Interval();
534 
535  return VP1Interval( min, max );//fixme: closed interval??
536 }
537 
538 //____________________________________________________________________
540 {
541  if (!m_d->editwindow)
542  m_d->initEditWindow();
543  return m_d->editwindow_ui.etaPhiCutWidget->allowedEta();
544 }
545 
546 //____________________________________________________________________
548 {
549  if (!m_d->editwindow)
550  m_d->initEditWindow();
551  return m_d->editwindow_ui.etaPhiCutWidget->allowedPhi();
552 }
553 
554 //____________________________________________________________________
556 {
557  if (!m_d->editwindow)
558  m_d->initEditWindow();
559  unsigned npixel = m_d->editwindow_ui.checkBox_cut_nhits_pixel->isChecked() ? m_d->editwindow_ui.spinBox_cut_nhits_pixel->value() : 0;
560  unsigned nsct = m_d->editwindow_ui.checkBox_cut_nhits_sct->isChecked() ? m_d->editwindow_ui.spinBox_cut_nhits_sct->value() : 0;
561  unsigned ntrt = m_d->editwindow_ui.checkBox_cut_nhits_trt->isChecked() ? m_d->editwindow_ui.spinBox_cut_nhits_trt->value() : 0;
562  unsigned nmuon = m_d->editwindow_ui.checkBox_cut_nhits_muon->isChecked() ? m_d->editwindow_ui.spinBox_cut_nhits_muon->value() : 0;
563  QList<unsigned> l;
564  if (!npixel&&!nsct&&!ntrt&&!nmuon)
565  return l;
566  l << npixel << nsct << ntrt << nmuon;
567  return l;
568 }
569 
570 
572 {
573  messageVerbose("possibleChange_cutAllowedPt() ");
574 
575  if (m_d->last_cutAllowedPt==cutAllowedPt()) return;
576  messageVerbose("cutAllowedPt() changed");
579 }
580 
582 {
583  if (m_d->last_cutAllowedEta==cutAllowedEta()) return;
584  messageVerbose("cutAllowedEta() changed");
587 }
588 
590 {
591  if (m_d->last_cutAllowedPhi==cutAllowedPhi()) return;
592  messageVerbose("cutAllowedPhi() changed");
595 }
596 
598 {
600  messageVerbose("cutRequiredNHits() changed");
603 }
604 
606 {
608  messageVerbose("cutOnlyVertexAssocTracks() changed");
611 }
612 
614 {
615  messageVerbose("TrackParticleCollectionSettingsButton::possibleChange_showParameters emitting showParametersChanged ");
616  emit showParametersChanged(m_d->editwindow_ui.checkBox_showparameters->isChecked());
617 }
618 
620 {
621  messageVerbose("TrackParticleCollectionSettingsButton::possibleChange_parameterColours emitting colourParametersByTypeChanged ");
622  emit colourParametersByTypeChanged(m_d->editwindow_ui.checkBox_parameters_colourByType->isChecked());
623 }
624 
VP1Serialise.h
TrackParticleCollectionSettingsButton::lastAppliedTransparency
virtual double lastAppliedTransparency() const
Definition: TrackParticleCollectionSettingsButton.cxx:257
base
std::string base
Definition: hcg.cxx:78
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
VP1QtInventorUtils::getValueLineWidthSlider
static double getValueLineWidthSlider(const QSlider *)
Definition: VP1QtInventorUtils.cxx:1617
TrackParticleCollectionSettingsButton::Imp::last_cutAllowedEta
VP1Interval last_cutAllowedEta
Definition: TrackParticleCollectionSettingsButton.cxx:61
VP1Deserialise.h
yodamerge_tmp.dim
dim
Definition: yodamerge_tmp.py:239
VP1Serialise
Definition: VP1Serialise.h:45
TrackParticleCollectionSettingsButton::Imp::theclass
TrackParticleCollectionSettingsButton * theclass
Definition: TrackParticleCollectionSettingsButton.cxx:45
TrackParticleCollectionSettingsButton::lastAppliedChanged
void lastAppliedChanged()
TrackParticleCollectionSettingsButton
Definition: TrackParticleCollectionSettingsButton.h:14
max
#define max(a, b)
Definition: cfImp.cxx:41
TrackParticleCollectionSettingsButton::possibleChange_cutRequiredNHits
void possibleChange_cutRequiredNHits()
Definition: TrackParticleCollectionSettingsButton.cxx:597
TrackParticleCollectionSettingsButton::Imp::last_cutOnlyVertexAssocTracks
bool last_cutOnlyVertexAssocTracks
Definition: TrackParticleCollectionSettingsButton.cxx:64
TrackParticleCollectionSettingsButton::Imp::editwindow
QWidget * editwindow
Definition: TrackParticleCollectionSettingsButton.cxx:46
TrackParticleCollectionSettingsButton::cutAllowedEta
VP1Interval cutAllowedEta() const
Definition: TrackParticleCollectionSettingsButton.cxx:539
RoiUtil::serialise
void serialise(const std::vector< const IRoiDescriptor * > &rois, roiserial_type &s)
serialise an entire vector of IRoiDescriptors
Definition: RoiSerialise.cxx:45
TrackParticleCollectionSettingsButton::updateTrackDrawStyle
void updateTrackDrawStyle()
Definition: TrackParticleCollectionSettingsButton.cxx:288
TrackParticleCollectionSettingsButton::showParametersChanged
void showParametersChanged(bool)
TrackParticleCollectionSettingsButton::colourParametersByTypeChanged
void colourParametersByTypeChanged(bool)
mat
GeoMaterial * mat
Definition: LArDetectorConstructionTBEC.cxx:53
TrackParticleCollectionSettingsButton::updateButton
void updateButton()
Definition: TrackParticleCollectionSettingsButton.cxx:217
VP1MaterialButton
Definition: VP1MaterialButton.h:46
VP1HelperClassBase::messageVerbose
void messageVerbose(const QString &) const
Definition: VP1HelperClassBase.cxx:78
TrackParticleCollectionSettingsButton::Imp::last_cutAllowedP
VP1Interval last_cutAllowedP
Definition: TrackParticleCollectionSettingsButton.cxx:60
TrackParticleCollectionSettingsButton::cutAllowedEtaChanged
void cutAllowedEtaChanged(const VP1Interval &)
fillPileUpNoiseLumi.connect
string connect
Definition: fillPileUpNoiseLumi.py:70
CSV_InDetExporter.new
new
Definition: CSV_InDetExporter.py:145
TrackParticleCollectionSettingsButton::mousePressEvent
void mousePressEvent(QMouseEvent *event)
Definition: TrackParticleCollectionSettingsButton.cxx:380
TrackParticleCollectionSettingsButton::cutRequiredNHitsChanged
void cutRequiredNHitsChanged(const QList< unsigned > &)
TrackParticleCollectionSettingsButton::~TrackParticleCollectionSettingsButton
virtual ~TrackParticleCollectionSettingsButton()
Definition: TrackParticleCollectionSettingsButton.cxx:209
TrackParticleCollectionSettingsButton::cutAllowedPhi
QList< VP1Interval > cutAllowedPhi() const
Definition: TrackParticleCollectionSettingsButton.cxx:547
TrackParticleCollectionSettingsButton::Imp::editwindow_ui
Ui::TrackParticleCollectionSettingsForm editwindow_ui
Definition: TrackParticleCollectionSettingsButton.cxx:47
TrackParticleCollectionSettingsButton::useExistingParameters
bool useExistingParameters() const
Definition: TrackParticleCollectionSettingsButton.cxx:322
TrackParticleCollectionSettingsButton::dragEnterEvent
void dragEnterEvent(QDragEnterEvent *event)
Definition: TrackParticleCollectionSettingsButton.cxx:388
TrackParticleCollectionSettingsButton::possibleChange_cutAllowedPhi
void possibleChange_cutAllowedPhi()
Definition: TrackParticleCollectionSettingsButton.cxx:589
TrackParticleCollectionSettingsButton::TrackParticleCollectionSettingsButton
TrackParticleCollectionSettingsButton(QWidget *parent=0, int dim=25)
Definition: TrackParticleCollectionSettingsButton.cxx:118
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
TrackParticleCollectionSettingsButton::numOfStepsForInterpolation
int numOfStepsForInterpolation() const
Returns true if the propagation should use the parameters already on the particle,...
Definition: TrackParticleCollectionSettingsButton.cxx:326
TrackParticleCollectionSettingsButton::lastAppliedShininess
virtual double lastAppliedShininess() const
Definition: TrackParticleCollectionSettingsButton.cxx:262
TrackParticleCollectionSettingsButton::trackTubeRadius
double trackTubeRadius() const
Definition: TrackParticleCollectionSettingsButton.cxx:273
TrackParticleCollectionSettingsButton::Imp::matButton
VP1MaterialButton * matButton
Definition: TrackParticleCollectionSettingsButton.cxx:49
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
TrackParticleCollectionSettingsButton::m_d
Imp * m_d
Definition: TrackParticleCollectionSettingsButton.h:96
xAOD::ParameterPosition
ParameterPosition
Enum allowing us to know where in ATLAS the parameters are defined.
Definition: TrackingPrimitives.h:209
VP1MaterialButton::lastAppliedDiffuseColour
QColor lastAppliedDiffuseColour() const
Definition: VP1MaterialButton.cxx:167
TrackParticleCollectionSettingsButton::possibleChange_parameterColours
void possibleChange_parameterColours()
Definition: TrackParticleCollectionSettingsButton.cxx:619
VP1String::str
static QString str(const QString &s)
Definition: VP1String.h:49
VP1ColorSelectButton::setColButtonProperties
static void setColButtonProperties(QPushButton *, const QColor &col, int dim)
Definition: VP1ColorSelectButton.cxx:49
TrackParticleCollectionSettingsButton::Imp::Imp
Imp()
Definition: TrackParticleCollectionSettingsButton.cxx:40
TrackParticleCollectionSettingsButton::cutOnlyVertexAssocTracks
bool cutOnlyVertexAssocTracks() const
Return true if this collection should only should tracks associated to a vertex.
Definition: TrackParticleCollectionSettingsButton.cxx:372
TrackParticleCollectionSettingsButton::hideActualTrackPath
bool hideActualTrackPath() const
Definition: TrackParticleCollectionSettingsButton.cxx:348
TrackParticleCollectionSettingsButton.h
TrackParticleCollectionSettingsButton::cutOnlyVertexAssocTracksChanged
void cutOnlyVertexAssocTracksChanged(bool)
TrackParticleCollectionSettingsButton::colourParametersByType
bool colourParametersByType() const
Definition: TrackParticleCollectionSettingsButton.cxx:363
VP1QtInventorUtils.h
TrackParticleCollectionSettingsButton::defaultParameterMaterial
SoMaterial * defaultParameterMaterial() const
Definition: TrackParticleCollectionSettingsButton.cxx:330
TrackParticleCollectionSettingsButton::showParameters
bool showParameters() const
Returns the number of steps to use when interpolating between paramters (0 is no interpolation....
Definition: TrackParticleCollectionSettingsButton.cxx:355
VP1Deserialise::version
qint32 version() const
Definition: VP1Deserialise.cxx:143
TrackParticleCollectionSettingsButton::setDimension
void setDimension(int dim)
Definition: TrackParticleCollectionSettingsButton.cxx:225
TrackParticleCollectionSettingsButton::Imp
Definition: TrackParticleCollectionSettingsButton.cxx:38
VP1MaterialButton::handledMaterials
QList< SoMaterial * > handledMaterials() const
Definition: VP1MaterialButton.cxx:647
TrackParticleCollectionSettingsButton::Imp::trackLightModel
SoLightModel * trackLightModel
Definition: TrackParticleCollectionSettingsButton.cxx:55
event
POOL::TEvent event(POOL::TEvent::kClassAccess)
TrackParticleCollectionSettingsButton::possibleChange_cutAllowedPt
void possibleChange_cutAllowedPt()
Definition: TrackParticleCollectionSettingsButton.cxx:571
lumiFormat.i
int i
Definition: lumiFormat.py:92
TrackParticleCollectionSettingsButton::updateHideActualTrackPath
void updateHideActualTrackPath(bool)
Definition: TrackParticleCollectionSettingsButton.cxx:306
TrackParticleCollectionSettingsButton::cutAllowedPhiChanged
void cutAllowedPhiChanged(const QList< VP1Interval > &)
TrackParticleCollectionSettingsButton::Imp::defaultParametersMatButton
VP1MaterialButton * defaultParametersMatButton
Definition: TrackParticleCollectionSettingsButton.cxx:50
VP1MaterialButton::lastAppliedBrightness
double lastAppliedBrightness() const
Definition: VP1MaterialButton.cxx:173
TrackParticleCollectionSettingsButton::Imp::initEditWindow
void initEditWindow()
Definition: TrackParticleCollectionSettingsButton.cxx:74
TrackParticleCollectionSettingsButton::propagationOptionsChanged
void propagationOptionsChanged()
test_pyathena.parent
parent
Definition: test_pyathena.py:15
TrackParticleCollectionSettingsButton::saveState
QByteArray saveState() const
fill out with the state of the object (used for drag and drop etc)
Definition: TrackParticleCollectionSettingsButton.cxx:455
TrackParticleCollectionSettingsButton::setMaterial
virtual bool setMaterial(SoMaterial *)
Definition: TrackParticleCollectionSettingsButton.cxx:244
TrackParticleCollectionSettingsButton::cutAllowedPt
VP1Interval cutAllowedPt() const
Definition: TrackParticleCollectionSettingsButton.cxx:503
VP1Deserialise::restore
void restore(QCheckBox *sb)
Definition: VP1Deserialise.cxx:245
TrackParticleCollectionSettingsButton::hideActualTrackPathChanged
void hideActualTrackPathChanged(bool)
VP1ColorSelectButton.h
TrackParticleCollectionSettingsButton::copyValuesFromMaterial
virtual void copyValuesFromMaterial(SoMaterial *)
Definition: TrackParticleCollectionSettingsButton.cxx:252
VP1Deserialise
Definition: VP1Deserialise.h:44
TrackParticleCollectionSettingsButton::showEditMaterialDialog
void showEditMaterialDialog()
Definition: TrackParticleCollectionSettingsButton.cxx:233
TrackParticleCollectionSettingsButton::trackLightModel
SoLightModel * trackLightModel() const
Definition: TrackParticleCollectionSettingsButton.cxx:317
VP1QtInventorUtils::setValueLineWidthSlider
static void setValueLineWidthSlider(QSlider *, const double &value)
Definition: VP1QtInventorUtils.cxx:1591
min
#define min(a, b)
Definition: cfImp.cxx:40
TrackParticleCollectionSettingsButton::Imp::parameterTypeMatButtons
QList< VP1MaterialButton * > parameterTypeMatButtons
Definition: TrackParticleCollectionSettingsButton.cxx:52
TrackParticleCollectionSettingsButton::dropEvent
void dropEvent(QDropEvent *event)
Definition: TrackParticleCollectionSettingsButton.cxx:447
VP1MaterialButton::setMaterial
bool setMaterial(SoMaterial *)
Definition: VP1MaterialButton.cxx:447
VP1HelperClassBase::systemBase
IVP1System * systemBase() const
Definition: VP1HelperClassBase.h:50
TrackParticleCollectionSettingsButton::restoreFromState
void restoreFromState(const QByteArray &)
Definition: TrackParticleCollectionSettingsButton.cxx:477
VP1MaterialButton::createMaterial
static SoMaterial * createMaterial(const QColor &, const double &brightness=0.0, const double &transp=0.0)
Definition: VP1MaterialButton.cxx:786
VP1Deserialise::widgetHandled
void widgetHandled(QWidget *)
Definition: VP1Deserialise.cxx:658
TrackParticleCollectionSettingsButton::updateTrackLightModel
void updateTrackLightModel(bool)
Definition: TrackParticleCollectionSettingsButton.cxx:295
TrackParticleCollectionSettingsButton::Imp::dim
int dim
Definition: TrackParticleCollectionSettingsButton.cxx:67
VP1MaterialButtonBase
Definition: VP1MaterialButton.h:25
VP1MaterialButton::lastAppliedShininess
double lastAppliedShininess() const
Definition: VP1MaterialButton.cxx:172
TrackParticleCollectionSettingsButton::cutAllowedPtChanged
void cutAllowedPtChanged(const VP1Interval &)
VP1Deserialise::warnUnrestored
void warnUnrestored(QObject *)
Definition: VP1Deserialise.cxx:696
TrackParticleCollectionSettingsButton::updateTrackTubeRadius
void updateTrackTubeRadius()
Definition: TrackParticleCollectionSettingsButton.cxx:279
VP1Interval
Definition: VP1Interval.h:23
VP1QtInventorUtils::setLimitsLineWidthSlider
static void setLimitsLineWidthSlider(QSlider *)
Definition: VP1QtInventorUtils.cxx:1561
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
TrackParticleCollectionSettingsButton::trackDrawStyle
SoDrawStyle * trackDrawStyle() const
Definition: TrackParticleCollectionSettingsButton.cxx:312
TrackParticleCollectionSettingsButton::Imp::trackDrawStyle
SoDrawStyle * trackDrawStyle
Definition: TrackParticleCollectionSettingsButton.cxx:54
TrackParticleCollectionSettingsButton::Imp::last_useDefaultCuts
bool last_useDefaultCuts
Definition: TrackParticleCollectionSettingsButton.cxx:65
TrackParticleCollectionSettingsButton::trackTubeRadiusChanged
void trackTubeRadiusChanged(const double &)
TrackParticleCollectionSettingsButton::parameterMaterial
SoMaterial * parameterMaterial(xAOD::ParameterPosition) const
Definition: TrackParticleCollectionSettingsButton.cxx:333
TrackParticleCollectionSettingsButton::Imp::last_cutRequiredNHits
QList< unsigned > last_cutRequiredNHits
Definition: TrackParticleCollectionSettingsButton.cxx:63
TrackParticleCollectionSettingsButton::Imp::dragStartPosition
QPoint dragStartPosition
Definition: TrackParticleCollectionSettingsButton.cxx:68
TrackParticleCollectionSettingsButton::possibleChange_showParameters
void possibleChange_showParameters()
Definition: TrackParticleCollectionSettingsButton.cxx:613
TrackParticleCollectionSettingsButton::Imp::last_cutAllowedPt
VP1Interval last_cutAllowedPt
Definition: TrackParticleCollectionSettingsButton.cxx:59
colours
int colours[6]
Definition: computils.cxx:44
TrackParticleCollectionSettingsButton::setMaterialText
void setMaterialText(const QString &)
Definition: TrackParticleCollectionSettingsButton.cxx:110
VP1MaterialButton::lastAppliedTransparency
double lastAppliedTransparency() const
Definition: VP1MaterialButton.cxx:171
TrackParticleCollectionSettingsButton::possibleChange_cutOnlyVertexAssocTracks
void possibleChange_cutOnlyVertexAssocTracks()
Definition: TrackParticleCollectionSettingsButton.cxx:605
TrackParticleCollectionSettingsButton::mouseMoveEvent
void mouseMoveEvent(QMouseEvent *event)
Definition: TrackParticleCollectionSettingsButton.cxx:395
TrackParticleCollectionSettingsButton::cutRequiredNHits
QList< unsigned > cutRequiredNHits() const
Definition: TrackParticleCollectionSettingsButton.cxx:555
TrackParticleCollectionSettingsButton::Imp::last_cutAllowedPhi
QList< VP1Interval > last_cutAllowedPhi
Definition: TrackParticleCollectionSettingsButton.cxx:62
TrackParticleCollectionSettingsButton::lastAppliedBrightness
virtual double lastAppliedBrightness() const
Definition: TrackParticleCollectionSettingsButton.cxx:267
TrackParticleCollectionSettingsButton::Imp::last_trackTubeRadius
double last_trackTubeRadius
Definition: TrackParticleCollectionSettingsButton.cxx:58
TrackParticleCollectionSettingsButton::possibleChange_cutAllowedEta
void possibleChange_cutAllowedEta()
Definition: TrackParticleCollectionSettingsButton.cxx:581