15#define VP1IMPVARNAME m_d
18#include "ui_vp1vertexcontrollerform.h"
19#include "ui_vertex_settings_display_form.h"
20#include "ui_vertex_settings_interactions_form.h"
21#include "ui_vertex_settings_cuts_form.h"
27#include "GaudiKernel/SystemOfUnits.h"
32 Ui::VP1VertexControllerForm
ui{};
34 Ui::VertexSysSettingsInteractionsForm
ui_int{};
51 m_d->ui.setupUi(
this);
60 m_d->ui_cuts.etaPhiCutWidget->setEtaCutEnabled(
false);
61 m_d->ui_display.widget_drawOptions->setBaseLightingDisabled();
64 m_d->ui_display.radioButton_truthCrossSize_Fixed);
65 m_d->ui_display.radioButton_truthCrossSize_Fixed->setChecked(
true);
68 m_d->ui_display.radioButton_truthCrossSize_quantityIsAbsMomentum,
69 m_d->ui_display.radioButton_truthCrossSize_quantityIsAbsTransverseMomentum,
70 m_d->ui_display.radioButton_truthCrossSize_quantityIsMass);
71 m_d->ui_display.radioButton_truthCrossSize_quantityIsEnergy->setChecked(
true);
120 connect(
m_d->ui_display.pushButton_colourbyrandom_rerandomise,SIGNAL(clicked()),
this,SLOT(
emitRerandomise()));
141 s.save(
m_d->ui_display.widget_drawOptions);
142 s.save(
m_d->ui_display.radioButton_reconVert_point,
143 m_d->ui_display.radioButton_reconVert_sphere,
144 m_d->ui_display.radioButton_reconVert_ellipsoid);
145 s.save(
m_d->ui_display.doubleSpinBox_reconVert_sphereRadius_mm);
146 s.save(
m_d->ui_display.doubleSpinBox_reconVert_ellipsoid_nsigma);
147 s.save(
m_d->ui_display.radioButton_truthCrossSize_ProptoQuantity,
148 m_d->ui_display.radioButton_truthCrossSize_Fixed);
149 s.save(
m_d->ui_display.radioButton_truthCrossSize_quantityIsEnergy,
150 m_d->ui_display.radioButton_truthCrossSize_quantityIsAbsMomentum,
151 m_d->ui_display.radioButton_truthCrossSize_quantityIsAbsTransverseMomentum,
152 m_d->ui_display.radioButton_truthCrossSize_quantityIsMass);
153 s.save(
m_d->ui_display.doubleSpinBox_truthCrossSize_fixed);
154 s.save(
m_d->ui_display.doubleSpinBox_truthCrossSize_ProptoQuantity);
157 s.save(
m_d->ui_int.checkBox_printinfo);
158 s.save(
m_d->ui_int.checkBox_printinfo_verbose);
159 s.save(
m_d->ui_int.checkBox_zoom);
162 s.save(
m_d->ui_cuts.etaPhiCutWidget);
163 s.save(
m_d->ui_cuts.checkBox_truthcut_primaryonly);
164 s.save(
m_d->ui_cuts.checkBox_truthcut_incomingParticleRequirement);
165 s.save(
m_d->ui_cuts.checkBox_truthcut_quantity_min);
166 s.save(
m_d->ui_cuts.checkBox_truthcut_quantity_max);
167 s.save(
m_d->ui_cuts.doubleSpinBox_truthcut_quantity_min_gev);
168 s.save(
m_d->ui_cuts.doubleSpinBox_truthcut_quantity_max_gev);
169 s.save(
m_d->ui_cuts.radioButton_truthcut_quantityIsEnergy,
170 m_d->ui_cuts.radioButton_truthcut_quantityIsAbsMomentum,
171 m_d->ui_cuts.radioButton_truthcut_quantityIsAbsTransverseMomentum,
172 m_d->ui_cuts.radioButton_truthcut_quantityIsMass);
173 s.save(
m_d->ui_cuts.checkBox_reconcuts_onlyShowTypes);
174 s.save(
m_d->ui_cuts.checkBox_reconcut_type_primary);
175 s.save(
m_d->ui_cuts.checkBox_reconcut_type_secondary);
176 s.save(
m_d->ui_cuts.checkBox_reconcut_type_v0);
177 s.save(
m_d->ui_cuts.checkBox_reconcut_type_conversion);
178 s.save(
m_d->ui_cuts.checkBox_reconcut_type_kink);
179 s.save(
m_d->ui_cuts.checkBox_reconcut_type_pileup);
180 s.save(
m_d->ui_cuts.checkBox_reconcut_type_other);
186 if (s.version()<0||s.version()>0) {
187 message(
"Warning: State data in .vp1 file has unsupported version ("+
str(s.version())+
")");
192 s.restore(
m_d->ui_display.widget_drawOptions);
193 s.restore(
m_d->ui_display.radioButton_reconVert_point,
194 m_d->ui_display.radioButton_reconVert_sphere,
195 m_d->ui_display.radioButton_reconVert_ellipsoid);
196 s.restore(
m_d->ui_display.doubleSpinBox_reconVert_sphereRadius_mm);
197 s.restore(
m_d->ui_display.doubleSpinBox_reconVert_ellipsoid_nsigma);
198 s.restore(
m_d->ui_display.radioButton_truthCrossSize_ProptoQuantity,
199 m_d->ui_display.radioButton_truthCrossSize_Fixed);
200 s.restore(
m_d->ui_display.radioButton_truthCrossSize_quantityIsEnergy,
201 m_d->ui_display.radioButton_truthCrossSize_quantityIsAbsMomentum,
202 m_d->ui_display.radioButton_truthCrossSize_quantityIsAbsTransverseMomentum,
203 m_d->ui_display.radioButton_truthCrossSize_quantityIsMass);
204 s.restore(
m_d->ui_display.doubleSpinBox_truthCrossSize_fixed);
205 s.restore(
m_d->ui_display.doubleSpinBox_truthCrossSize_ProptoQuantity);
208 s.restore(
m_d->ui_int.checkBox_printinfo);
209 s.restore(
m_d->ui_int.checkBox_printinfo_verbose);
210 s.restore(
m_d->ui_int.checkBox_zoom);
213 s.restore(
m_d->ui_cuts.etaPhiCutWidget);
214 s.restore(
m_d->ui_cuts.checkBox_truthcut_primaryonly);
215 s.restore(
m_d->ui_cuts.checkBox_truthcut_incomingParticleRequirement);
216 s.restore(
m_d->ui_cuts.checkBox_truthcut_quantity_min);
217 s.restore(
m_d->ui_cuts.checkBox_truthcut_quantity_max);
218 s.restore(
m_d->ui_cuts.doubleSpinBox_truthcut_quantity_min_gev);
219 s.restore(
m_d->ui_cuts.doubleSpinBox_truthcut_quantity_max_gev);
220 s.restore(
m_d->ui_cuts.radioButton_truthcut_quantityIsEnergy,
221 m_d->ui_cuts.radioButton_truthcut_quantityIsAbsMomentum,
222 m_d->ui_cuts.radioButton_truthcut_quantityIsAbsTransverseMomentum,
223 m_d->ui_cuts.radioButton_truthcut_quantityIsMass);
224 s.restore(
m_d->ui_cuts.checkBox_reconcuts_onlyShowTypes);
225 s.restore(
m_d->ui_cuts.checkBox_reconcut_type_primary);
226 s.restore(
m_d->ui_cuts.checkBox_reconcut_type_secondary);
227 s.restore(
m_d->ui_cuts.checkBox_reconcut_type_v0);
228 s.restore(
m_d->ui_cuts.checkBox_reconcut_type_conversion);
229 s.restore(
m_d->ui_cuts.checkBox_reconcut_type_kink);
230 s.restore(
m_d->ui_cuts.checkBox_reconcut_type_pileup);
231 s.restore(
m_d->ui_cuts.checkBox_reconcut_type_other);
249 return m_d->ui_display.widget_drawOptions->drawOptionsGroup();
266 if (
m_d->ui_display.radioButton_truthCrossSize_Fixed->isChecked()) {
267 range = -
m_d->ui_display.doubleSpinBox_truthCrossSize_fixed->value()*Gaudi::Units::mm;
269 range =
m_d->ui_display.doubleSpinBox_truthCrossSize_ProptoQuantity->value()*(Gaudi::Units::mm/Gaudi::Units::GeV);
270 if (
m_d->ui_display.radioButton_truthCrossSize_quantityIsAbsMomentum->isChecked())
272 else if (
m_d->ui_display.radioButton_truthCrossSize_quantityIsAbsTransverseMomentum->isChecked())
274 else if (
m_d->ui_display.radioButton_truthCrossSize_quantityIsMass->isChecked())
277 return QPair<VertexCommonFlags::QUANTITY,double>(quantity,range);
286 if (!
m_d->ui_cuts.checkBox_truthcut_incomingParticleRequirement->isChecked())
287 return QPair<VertexCommonFlags::QUANTITY,VP1Interval>(quantity,range);
289 if (
m_d->ui_cuts.checkBox_truthcut_quantity_min->isChecked())
290 range.setLower(
m_d->ui_cuts.doubleSpinBox_truthcut_quantity_min_gev->value()*Gaudi::Units::GeV);
291 if (
m_d->ui_cuts.checkBox_truthcut_quantity_max->isChecked())
292 range.setUpper(
m_d->ui_cuts.doubleSpinBox_truthcut_quantity_max_gev->value()*Gaudi::Units::GeV);
295 return QPair<VertexCommonFlags::QUANTITY,VP1Interval>(quantity,range);
297 if (
m_d->ui_cuts.radioButton_truthcut_quantityIsAbsMomentum->isChecked())
299 else if (
m_d->ui_cuts.radioButton_truthcut_quantityIsAbsTransverseMomentum->isChecked())
301 else if (
m_d->ui_cuts.radioButton_truthcut_quantityIsMass->isChecked())
304 return QPair<VertexCommonFlags::QUANTITY,VP1Interval>(quantity,range);
310 if (
m_d->ui_display.radioButton_reconVert_point->isChecked())
312 if (
m_d->ui_display.radioButton_reconVert_sphere->isChecked())
313 return -
m_d->ui_display.doubleSpinBox_reconVert_sphereRadius_mm->value()*Gaudi::Units::mm;
314 return m_d->ui_display.doubleSpinBox_reconVert_ellipsoid_nsigma->value();
320 if (!
m_d->ui_cuts.checkBox_reconcuts_onlyShowTypes->isChecked())
323 VertexCommonFlags::ReconVertexTypeFlags f;
325 if (
m_d->ui_cuts.checkBox_reconcut_type_primary->isChecked())
327 if (
m_d->ui_cuts.checkBox_reconcut_type_secondary->isChecked())
329 if (
m_d->ui_cuts.checkBox_reconcut_type_v0->isChecked())
331 if (
m_d->ui_cuts.checkBox_reconcut_type_conversion->isChecked())
333 if (
m_d->ui_cuts.checkBox_reconcut_type_kink->isChecked())
335 if (
m_d->ui_cuts.checkBox_reconcut_type_pileup->isChecked())
337 if (
m_d->ui_cuts.checkBox_reconcut_type_other->isChecked())
352#define VP1CONTROLLERCLASSNAME VertexSysController
#define POSSIBLECHANGE_IMP(x)
void initDialog(T &theUI, QPushButton *launchbutton, QAbstractButton *enabledButton=0)
void connectToLastUpdateSlot(QObject *sender, const char *signal)
void setupCollWidgetInScrollArea(QScrollArea *scrollarea, VP1CollectionWidget *collWidget)
const char * addUpdateSlot(const char *slot)
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)
VP1Controller(IVP1System *sys, const QString &classname)
void messageVerbose(const QString &) const
void message(const QString &) const
static QString toString(const QUANTITY &)
double last_reconVertexRepresentation
Ui::VertexSysSettingsColouringForm ui_display
bool last_truthCutPrimaryVertexOnly
VP1Interval last_truthCutAllowedEta
Ui::VP1VertexControllerForm ui
Ui::VertexSysSettingsInteractionsForm ui_int
VertexCommonFlags::ReconVertexTypeFlags last_reconCutAllowedTypes
QPair< VertexCommonFlags::QUANTITY, VP1Interval > last_truthCutQuantity
VP1CollectionWidget * collWidget
QPair< VertexCommonFlags::QUANTITY, double > last_truthCrossLength
QList< VP1Interval > last_truthCutAllowedPhi
Ui::VertexSysSettingsCutsForm ui_cuts
QPair< VertexCommonFlags::QUANTITY, VP1Interval > truthCutQuantity() const
bool printInfoOnClick() const
void actualSaveSettings(VP1Serialise &) const
void possibleChange_truthCutPrimaryVertexOnly()
QList< VP1Interval > truthCutAllowedPhi() const
QPair< VertexCommonFlags::QUANTITY, double > truthCrossLength() const
virtual ~VertexSysController()
void possibleChange_truthCutQuantity()
void possibleChange_truthCrossLength()
void possibleChange_truthCutAllowedPhi()
double reconVertexRepresentation() const
VertexCommonFlags::ReconVertexTypeFlags reconCutAllowedTypes() const
VP1CollectionWidget * collWidget() const
bool printVerboseInfoOnClick() const
void possibleChange_reconVertexRepresentation()
VertexSysController(IVP1System *sys)
void actualRestoreSettings(VP1Deserialise &)
VP1Interval truthCutAllowedEta() const
void possibleChange_truthCutAllowedEta()
bool truthCutPrimaryVertexOnly() const
int currentSettingsVersion() const
SoGroup * drawOptions() const
static QString toString(const T &t)
void possibleChange_reconCutAllowedTypes()