9#include "ui_periparticlecollectionsettings_form.h"
10#include "ui_jet_settings_display_form.h"
19#include "Inventor/nodes/SoDrawStyle.h"
20#include "Inventor/nodes/SoLightModel.h"
21#include "Inventor/nodes/SoMaterial.h"
29#include <QDragEnterEvent>
97 SoMaterial *
createMaterial(
int r,
int g,
int b,
float brightness,
float transparency)
const;
116 float transparency)
const
126 theclass->messageVerbose(
"Initialising material editor dialog");
129 editwindow =
new QWidget(0,Qt::WindowStaysOnTopHint);
135 auto jetsettings =
new QWidget();
136 editwindow_ui.verticalLayout_additional_widgets->addWidget(jetsettings);
141 editwindow_ui.groupBox_cuts_momentum->setTitle(
"Energy cuts");
154 editwindow_ui.verticalLayout_additional_widgets->layout()->addWidget(
ui_disp.groupBox_jet_display );
157 ui_disp.bTaggingComboBox->clear();
159 QStringList bTagList;
163 bTagList <<
"MV2c20" <<
"MV2c10" <<
"MV2c00";
164 ui_disp.bTaggingComboBox->insertItems(0, bTagList);
167 ui_disp.radioButton_material->setChecked(
true);
170 ui_disp.groupBox_IDprojection->setEnabled(
false);
174 if (
ui_disp.bTaggingCheckBox->isChecked())
175 theclass->possibleChange_bTaggingEnabled(
true);
177 theclass->possibleChange_bTaggingEnabled(
false);
185 m_d->editwindow->setWindowTitle(t);
194 double val =
m_d->ui_disp.doubleSpinBox_lengthOf100GeV->value();
195 bool isEt =
m_d->ui_disp.comboBox_energytype->currentText()==
"Et";
196 val = val * ( isEt ? 1:-1);
204 double val =
m_d->ui_disp.checkBox_maxR->isChecked() ? (
m_d->ui_disp.doubleSpinBox_maxR->value() ) : -1;
212 return m_d->ui_disp.bTaggingSpinBox->value();
216 return m_d->ui_disp.bTaggingComboBox->currentText();
220 return m_d->ui_disp.skinsComboBox->currentText();
228 return m_d->ui_disp.bTaggingCheckBox->isChecked();
232 return m_d->ui_disp.radioButton_skins->isChecked();
236 return m_d->ui_disp.radioButton_material->isChecked();
242 return m_d->ui_disp.radioButton_skins->isChecked();
248 return m_d->ui_disp.radioButton_material->isChecked();
263 m_d->theclass =
this;
264 m_d->initEditWindow();
302 connect(
m_d->ui_disp.doubleSpinBox_lengthOf100GeV,SIGNAL(valueChanged(
double)),
this,SLOT(
possibleChange_scale()));
320 connect(
m_d->ui_disp.checkBox_randomColours, SIGNAL(toggled(
bool)),
this, SLOT(
enableRandomColours(
bool)));
322 connect(
m_d->ui_disp.pushButton_colourbyrandom_rerandomise,SIGNAL(clicked()),
this,SLOT(
emitRerandomise()));
326 connect(
m_d->ui_disp.checkBox_maxR, SIGNAL(toggled(
bool)),
this, SLOT(
enableMaxR(
bool)));
328 connect(
m_d->ui_disp.doubleSpinBox_maxR, SIGNAL(valueChanged(
double)),
this, SLOT(
possibleChange_maxR()));
351 setAcceptDrops(
true);
361 m_d->materialFallback =
m_d->createMaterial(116,255,228, 0.2, 0.3);
362 m_d->materialFallback->ref();
367 m_d->ui_disp.matButton_btaggedJets->setMaterial(
m_d->materialFallback);
381 delete m_d->editwindow;
389 if (objectName().isEmpty())
390 setObjectName(
"JetCollectionSettingsButton");
391 messageVerbose(
"jet - setColButtonProperties: color=" +
str(
m_d->matButton->lastAppliedDiffuseColour()));
405 if (!
m_d->editwindow)
406 m_d->initEditWindow();
408 if (
m_d->editwindow->isHidden())
409 m_d->editwindow->show();
411 m_d->editwindow->hide();
417 if (!
m_d->matButton)
m_d->initEditWindow();
418 m_d->matButton->setMaterial(mat);
424 return m_d->matButton;
429 if (!
m_d->matButton)
m_d->initEditWindow();
430 m_d->matButton->setMaterial(mat);
434 if (!
m_d->matButton)
m_d->initEditWindow();
435 return m_d->matButton->lastAppliedTransparency();
439 if (!
m_d->matButton)
m_d->initEditWindow();
440 return m_d->matButton->lastAppliedShininess();
444 if (!
m_d->matButton)
m_d->initEditWindow();
445 return m_d->matButton->lastAppliedBrightness();
549 if (event->button() == Qt::LeftButton)
550 m_d->dragStartPosition =
event->pos();
551 QPushButton::mousePressEvent(event);
557 if (event->source()!=
this && event->mimeData()->hasFormat(
"vp1/material"))
558 event->acceptProposedAction();
564 if (!(event->buttons() & Qt::LeftButton))
566 if ((event->pos() -
m_d->dragStartPosition).manhattanLength()
567 < QApplication::startDragDistance())
570 QDrag *drag =
new QDrag(
this);
571 QMimeData *mimeData =
new QMimeData;
580 mimeData->setData(
"vp1/material", byteArray);
609 drag->setMimeData(mimeData);
610 drag->exec(Qt::CopyAction | Qt::MoveAction);
616 QByteArray
data =
event->mimeData()->data(
"vp1/material");
617 event->acceptProposedAction();
624 messageDebug(
"JetCollectionSettingsButton::saveState()");
631 serialise.save(
m_d->matButton);
635 serialise.save(
m_d->editwindow_ui.checkBox_tracksUseBaseLightModel);
636 serialise.save(
m_d->editwindow_ui.checkBox_cut_minpt);
637 serialise.save(
m_d->editwindow_ui.doubleSpinBox_cut_minpt_gev);
638 serialise.save(
m_d->editwindow_ui.checkBox_cut_maxpt);
639 serialise.save(
m_d->editwindow_ui.doubleSpinBox_cut_maxpt_gev);
640 serialise.save(
m_d->editwindow_ui.comboBox_momtype);
643 serialise.save(
m_d->editwindow_ui.etaPhiCutWidget);
646 serialise.save(
m_d->ui_disp.checkBox_randomColours);
647 serialise.save(
m_d->ui_disp.doubleSpinBox_lengthOf100GeV);
648 serialise.save(
m_d->ui_disp.comboBox_energytype);
649 serialise.save(
m_d->ui_disp.checkBox_maxR);
650 serialise.save(
m_d->ui_disp.doubleSpinBox_maxR);
652 serialise.save(
m_d->ui_disp.groupBox_IDprojection);
653 serialise.save(
m_d->ui_disp.checkBox_radialScale);
654 serialise.save(
m_d->ui_disp.doubleSpinBox_radialScale);
656 serialise.save(
m_d->ui_disp.bTaggingCheckBox);
657 serialise.save(
m_d->ui_disp.bTaggingComboBox);
658 serialise.save(
m_d->ui_disp.bTaggingSpinBox);
659 serialise.save(
m_d->ui_disp.radioButton_material,
m_d->ui_disp.radioButton_skins);
660 serialise.save(
m_d->ui_disp.matButton_btaggedJets);
661 serialise.save(
m_d->ui_disp.skinsComboBox);
667 serialise.widgetHandled(
this);
668 serialise.warnUnsaved(
this);
669 return serialise.result();
674 messageDebug(
"JetCollectionSettingsButton::restoreFromState()");
685 state.
restore(
m_d->editwindow_ui.checkBox_tracksUseBaseLightModel);
686 state.
restore(
m_d->editwindow_ui.checkBox_cut_minpt);
687 state.
restore(
m_d->editwindow_ui.doubleSpinBox_cut_minpt_gev);
688 state.
restore(
m_d->editwindow_ui.checkBox_cut_maxpt);
689 state.
restore(
m_d->editwindow_ui.doubleSpinBox_cut_maxpt_gev);
690 state.
restore(
m_d->editwindow_ui.comboBox_momtype);
693 state.
restore(
m_d->editwindow_ui.etaPhiCutWidget);
696 state.
restore(
m_d->ui_disp.checkBox_randomColours);
697 state.
restore(
m_d->ui_disp.doubleSpinBox_lengthOf100GeV);
698 state.
restore(
m_d->ui_disp.comboBox_energytype);
700 state.
restore(
m_d->ui_disp.doubleSpinBox_maxR);
702 state.
restore(
m_d->ui_disp.groupBox_IDprojection);
703 state.
restore(
m_d->ui_disp.checkBox_radialScale);
704 state.
restore(
m_d->ui_disp.doubleSpinBox_radialScale);
709 state.
restore(
m_d->ui_disp.radioButton_material,
m_d->ui_disp.radioButton_skins);
710 state.
restore(
m_d->ui_disp.matButton_btaggedJets);
735 messageDebug(
"JetCollectionSettingsButton::checkSelection()");
738 messageDebug(
"updating b-tagging status for collection " +
m_d->name +
"...");
739 if (
m_d->ui_disp.bTaggingCheckBox->isChecked()) {
742 if (
m_d->ui_disp.radioButton_material->isChecked())
744 else if (
m_d->ui_disp.radioButton_skins->isChecked())
752 messageDebug(
"updating other selection cuts for collection " +
m_d->name +
"...");
765 if (!
m_d->editwindow)
766 m_d->initEditWindow();
767 if (!
m_d->editwindow_ui.checkBox_cut_minpt)
775 bool isPCut =
m_d->editwindow_ui.comboBox_momtype->currentText()==
"P";
777 const double minFromInterface=
m_d->editwindow_ui.doubleSpinBox_cut_minpt_gev->value()*1000;
778 const double maxFromInterface=
m_d->editwindow_ui.doubleSpinBox_cut_maxpt_gev->value()*1000;
783 min = (
m_d->editwindow_ui.checkBox_cut_minpt->isChecked() ? minFromInterface : -std::numeric_limits<double>::infinity());
784 max = (
m_d->editwindow_ui.checkBox_cut_maxpt->isChecked() ? maxFromInterface : std::numeric_limits<double>::infinity());
786 min = (
m_d->editwindow_ui.checkBox_cut_maxpt->isChecked() ? -maxFromInterface : -std::numeric_limits<double>::infinity());
787 max = (
m_d->editwindow_ui.checkBox_cut_minpt->isChecked() ? -minFromInterface : std::numeric_limits<double>::infinity());
801 if (!
m_d->editwindow)
802 m_d->initEditWindow();
803 return m_d->editwindow_ui.etaPhiCutWidget->allowedEta();
809 if (!
m_d->editwindow)
810 m_d->initEditWindow();
811 return m_d->editwindow_ui.etaPhiCutWidget->allowedPhi();
867 m_d->ui_disp.pushButton_colourbyrandom_rerandomise->setEnabled(bb);
873 return m_d->ui_disp.checkBox_randomColours->isChecked();
880 messageVerbose(
"JetCollectionSettingsButton - Emitting rerandomise");
894 m_d->ui_disp.doubleSpinBox_maxR->setEnabled(bb);
902 if ( !
m_d->ui_disp.checkBox_maxR->isChecked() ) {
903 messageVerbose(
"maxR unchecked --> setting maxR=0.0 and returning");
918 m_d->ui_disp.bTaggingAlgLabel->setEnabled(bb);
919 m_d->ui_disp.bTagginWeightCutLabel->setEnabled(bb);
920 m_d->ui_disp.bTaggingComboBox->setEnabled(bb);
921 m_d->ui_disp.bTaggingSpinBox->setEnabled(bb);
922 m_d->ui_disp.groupBox_btagging_render->setEnabled(bb);
923 m_d->ui_disp.matButton_btaggedJets->setEnabled(bb);
952 messageVerbose(
"radioButton_material changed - " + QString::number(ok) );
983 messageVerbose(
"radioButton_skins changed - " + QString::number(ok) );
char data[hepevt_bytes_allocation_ATLAS]
void restore(QCheckBox *sb)
void warnUnrestored(QObject *)
void widgetHandled(QWidget *)
void messageVerbose(const QString &) const
IVP1System * systemBase() const
void messageDebug(const QString &) const
static void messageVerbose(const QString &)