8#include "ui_permuoncollectionsettings_form.h"
9#include "ui_settings_cuts_form.h"
19#include "Inventor/nodes/SoDrawStyle.h"
20#include "Inventor/nodes/SoLightModel.h"
21#include "Inventor/nodes/SoMaterial.h"
29#include <QDragEnterEvent>
77 theclass->messageVerbose(
"Initialising material editor dialog");
78 editwindow =
new QWidget(0,Qt::WindowStaysOnTopHint);
87 m_d->editwindow->setWindowTitle(t);
98 m_d->initEditWindow();
104 m_d->trackDrawStyle =
new SoDrawStyle;
105 m_d->trackDrawStyle->setName(
"MuonDrawStyle");
106 m_d->trackDrawStyle->pointSize=5.0;
107 m_d->trackDrawStyle->ref();
109 connect(
m_d->editwindow_ui.horizontalSlider_trackWidth,SIGNAL(valueChanged(
int)),
this,SLOT(
updateTrackDrawStyle()));
111 m_d->trackLightModel =
new SoLightModel;
112 m_d->trackLightModel->setName(
"MuonLightModel");
113 m_d->trackLightModel->ref();
115 connect(
m_d->editwindow_ui.checkBox_tracksUseBaseLightModel,SIGNAL(toggled(
bool)),
this,SLOT(
updateTrackLightModel(
bool)));
119 connect(
m_d->editwindow_ui.doubleSpinBox_trackTubesRadiusMM,SIGNAL(valueChanged(
double)),
this,SLOT(
updateTrackTubeRadius()));
150 setAcceptDrops(
true);
163 delete m_d->editwindow;
164 m_d->trackDrawStyle->unref();
165 m_d->trackLightModel->unref();
171 if (objectName().isEmpty())
172 setObjectName(
"MuonCollectionSettingsButton");
173 messageVerbose(
"setColButtonProperties: color=" +
str(
m_d->matButton->lastAppliedDiffuseColour()));
187 if (!
m_d->editwindow)
188 m_d->initEditWindow();
190 if (
m_d->editwindow->isHidden())
191 m_d->editwindow->show();
193 m_d->editwindow->hide();
199 if (!
m_d->matButton)
m_d->initEditWindow();
200 m_d->matButton->setMaterial(mat);
206 if (!
m_d->matButton)
m_d->initEditWindow();
207 m_d->matButton->setMaterial(mat);
211 if (!
m_d->matButton)
m_d->initEditWindow();
212 return m_d->matButton->lastAppliedTransparency();
216 if (!
m_d->matButton)
m_d->initEditWindow();
217 return m_d->matButton->lastAppliedShininess();
221 if (!
m_d->matButton)
m_d->initEditWindow();
222 return m_d->matButton->lastAppliedBrightness();
227 return m_d->editwindow_ui.checkBox_trackTubes->isChecked() ?
228 m_d->editwindow_ui.doubleSpinBox_trackTubesRadiusMM->value() : 0.0;
243 if (
m_d->trackDrawStyle->lineWidth.getValue()!=val)
244 m_d->trackDrawStyle->lineWidth = val;
249 if (
m_d->trackLightModel->model.getValue()!=(
base?SoLightModel::BASE_COLOR:SoLightModel::PHONG)) {
252 m_d->trackLightModel->model.setValue(SoLightModel::BASE_COLOR);
254 m_d->trackLightModel->model.setValue(SoLightModel::PHONG);
266 return m_d->trackDrawStyle;
271 return m_d->trackLightModel;
297 if (!
m_d->editwindow)
298 m_d->initEditWindow();
300 QString text =
m_d->editwindow_ui.comboBox_minimumQuality->currentText();
301 if (text==
"Very Loose")
return static_cast<unsigned int>(xAOD::Muon::VeryLoose);
302 if (text==
"Loose")
return static_cast<unsigned int>(xAOD::Muon::Loose);
303 if (text==
"Medium")
return static_cast<unsigned int>(xAOD::Muon::Medium);
304 if (text==
"Tight")
return static_cast<unsigned int>(xAOD::Muon::Tight);
306 message(
"ERROR! MuonCollectionSettingsButton::minimumQuality - unknown value! Returning 'Very Loose'.");
307 return static_cast<unsigned int>(xAOD::Muon::VeryLoose);
312 if (!
m_d->editwindow)
313 m_d->initEditWindow();
316 if (
m_d->editwindow_ui.checkBox_showTrackParticles->isChecked()) {
330 if (!
m_d->editwindow)
331 m_d->initEditWindow();
332 return m_d->editwindow_ui.checkBox_hideactualpaths->isChecked();
338 if (event->button() == Qt::LeftButton)
339 m_d->dragStartPosition =
event->pos();
340 QPushButton::mousePressEvent(event);
346 if (event->source()!=
this && event->mimeData()->hasFormat(
"vp1/material"))
347 event->acceptProposedAction();
353 if (!(event->buttons() & Qt::LeftButton))
355 if ((event->pos() -
m_d->dragStartPosition).manhattanLength()
356 < QApplication::startDragDistance())
359 QDrag *drag =
new QDrag(
this);
360 QMimeData *mimeData =
new QMimeData;
369 mimeData->setData(
"vp1/material", byteArray);
398 drag->setMimeData(mimeData);
399 drag->exec(Qt::CopyAction | Qt::MoveAction);
405 QByteArray
data =
event->mimeData()->data(
"vp1/material");
406 event->acceptProposedAction();
416 serialise.save(
m_d->matButton);
418 serialise.save(
m_d->editwindow_ui.horizontalSlider_trackWidth);
419 serialise.save(
m_d->editwindow_ui.checkBox_trackTubes);
420 serialise.save(
m_d->editwindow_ui.doubleSpinBox_trackTubesRadiusMM);
421 serialise.save(
m_d->editwindow_ui.checkBox_tracksUseBaseLightModel);
422 serialise.save(
m_d->editwindow_ui.checkBox_hideactualpaths);
424 serialise.widgetHandled(
this);
425 serialise.warnUnsaved(
this);
426 return serialise.result();
435 state.
restore(
m_d->editwindow_ui.horizontalSlider_trackWidth);
436 state.
restore(
m_d->editwindow_ui.checkBox_trackTubes);
437 state.
restore(
m_d->editwindow_ui.doubleSpinBox_trackTubesRadiusMM);
438 state.
restore(
m_d->editwindow_ui.checkBox_tracksUseBaseLightModel);
439 state.
restore(
m_d->editwindow_ui.checkBox_hideactualpaths);
453 if (!
m_d->editwindow)
454 m_d->initEditWindow();
455 if (!
m_d->editwindow_ui.checkBox_cut_minpt)
463 bool isPCut =
m_d->editwindow_ui.comboBox_momtype->currentText()==
"P";
465 const double minFromInterface=
m_d->editwindow_ui.doubleSpinBox_cut_minpt_gev->value()*1000;
466 const double maxFromInterface=
m_d->editwindow_ui.doubleSpinBox_cut_maxpt_gev->value()*1000;
471 min = (
m_d->editwindow_ui.checkBox_cut_minpt->isChecked() ? minFromInterface : -std::numeric_limits<double>::infinity());
472 max = (
m_d->editwindow_ui.checkBox_cut_maxpt->isChecked() ? maxFromInterface : std::numeric_limits<double>::infinity());
474 min = (
m_d->editwindow_ui.checkBox_cut_maxpt->isChecked() ? -maxFromInterface : -std::numeric_limits<double>::infinity());
475 max = (
m_d->editwindow_ui.checkBox_cut_minpt->isChecked() ? -minFromInterface : std::numeric_limits<double>::infinity());
489 if (!
m_d->editwindow)
490 m_d->initEditWindow();
491 return m_d->editwindow_ui.etaPhiCutWidget->allowedEta();
497 if (!
m_d->editwindow)
498 m_d->initEditWindow();
499 return m_d->editwindow_ui.etaPhiCutWidget->allowedPhi();
char data[hepevt_bytes_allocation_ATLAS]
void restore(QCheckBox *sb)
void warnUnrestored(QObject *)
void widgetHandled(QWidget *)
void messageVerbose(const QString &) const
void message(const QString &) const
IVP1System * systemBase() const
static double getValueLineWidthSlider(const QSlider *)
static void setLimitsLineWidthSlider(QSlider *)
static void setValueLineWidthSlider(QSlider *, const double &value)
ParameterPosition
Enum allowing us to know where in ATLAS the parameters are defined.