16 #define VP1IMPVARNAME m_d
19 #include <Inventor/C/errors/debugerror.h>
20 #include <Inventor/nodes/SoSelection.h>
33 #include "ui_vp1trackcontrollerform.h"
34 #include "ui_settings_ascobjs_form.h"
35 #include "ui_settings_colouring_form.h"
36 #include "ui_settings_extrapolation_form.h"
37 #include "ui_settings_interactions_form.h"
38 #include "ui_settings_projections_form.h"
39 #include "ui_settings_cuts_form.h"
40 #include "ui_shift_muon_chamber_form.h"
41 #include "ui_objectbrowser.h"
64 #include "Inventor/nodes/SoMaterial.h"
65 #include "Inventor/nodes/SoDrawStyle.h"
66 #include "Inventor/nodes/SoComplexity.h"
67 #include "Inventor/nodes/SoLightModel.h"
68 #include <Inventor/nodes/SoSeparator.h>
69 #include <Inventor/actions/SoSearchAction.h>
71 #include "CLHEP/Units/SystemOfUnits.h"
73 #include <QTreeWidget>
74 #include <QTreeWidgetItem>
75 #include <QtCoreVersion>
84 Ui::VP1TrackControllerForm
ui{};
146 Ui::TrackSysSettingsColouringForm
ui_col{};
148 Ui::TrackSysSettingsInteractionsForm
ui_int{};
149 Ui::TrackSysSettingsProjectionsForm
ui_proj{};
176 for(
unsigned i :
l) {
177 if (!
s.isEmpty())
s+=
", ";
188 if (!
s.isEmpty())
s+=
", ";
202 QString tooltype(
"Trk::Extrapolator");
209 #if QTCORE_VERSION >= 0x050E00
215 if (existingExtrapolators.contains(
key))
217 sys->messageDebug(
"Attempting creation of fitter with tooltype/key "+
key);
220 sys->message(
"WARNING: Could not create tool type/key "+
key);
229 if (fittersCreated||!
sys)
231 fittersCreated =
true;
234 QStringList fittertypes;
235 fittertypes <<
"Trk::KalmanFitter"
236 <<
"Trk::GlobalChi2Fitter"
237 <<
"Trk::GaussianSumFilter"
238 <<
"Trk::DistributedKalmanFilter"
239 <<
"Trk::DeterministicAnnealingFilter";
246 #if QTCORE_VERSION >= 0x050E00
252 if (existingFitters.contains(
instance))
254 sys->messageDebug(
"Attempting creation of fitter with tooltype/key "+
instance);
257 sys->message(
"WARNING: Could not create tool with type/key "+
instance);
276 m_d->
ui.setupUi(
this);
322 m_d->
ui_proj.checkBox_projections_muonchambers->setChecked(
false);
323 m_d->
ui_proj.checkBox_projections_muonchambers->setEnabled(
false);
328 m_d->
ui_proj.checkBox_projections_indet->setChecked(
false);
329 m_d->
ui_proj.checkBox_projections_indet->setEnabled(
false);
510 l<<
"Object"<<
"Information";
517 QWidget *widget =
new QWidget;
525 m_d->
ui_int.checkBox_selsingle_printinfo->setChecked(
true);
546 messageVerbose(
"Setting up tool helper to monitor extrapolators - start");
553 messageVerbose(
"Setting up tool helper to monitor extrapolators - end");
555 messageVerbose(
"Setting up tool helper to monitor fitters - start");
557 QStringList fittertypes;
558 fittertypes <<
"Trk::KalmanFitter"
559 <<
"Trk::GlobalChi2Fitter"
560 <<
"Trk::GaussianSumFilter"
561 <<
"Trk::DistributedKalmanFilter"
562 <<
"Trk::DeterministicAnnealingFilter";
567 messageVerbose(
"Setting up tool helper to monitor fitters - end");
574 m_d->
ui_extrap.radioButton_athenaExtrapolator->setEnabled(
false);
578 m_d->
ui_int.comboBox_fitters->setEnabled(
false);
622 ui_col.matButton_electrons->setMaterial(createMaterial(255,0,0));
623 ui_col.matButton_muons->setMaterial(createMaterial(71,255,51));
626 ui_col.matButton_pions->setMaterial(createMaterial(74,146,255));
627 ui_col.matButton_protons->setMaterial(createMaterial(56,49,255));
628 ui_col.matButton_chargedkaons->setMaterial(createMaterial(116,255,228));
629 ui_col.matButton_othercharged->setMaterial(createMaterial(142,163,255));
632 ui_col.matButton_neutrons->setMaterial(createMaterial(245,255,42));
633 ui_col.matButton_photons->setMaterial(createMaterial(255,227,82));
634 ui_col.matButton_neutrinos->setMaterial(createMaterial(255,152,61));
635 ui_col.matButton_otherneutrals->setMaterial(createMaterial(248,255,102));
638 ui_col.matButton_charge_pos->setMaterial(createMaterial(255,71,10));
639 ui_col.matButton_charge_neg->setMaterial(createMaterial(116,255,10));
640 ui_col.matButton_charge_neutral->setMaterial(createMaterial(255,227,82));
643 ui_col.matButton_0GeV->setMaterial(createMaterial(0,50,0));
644 ui_col.matButton_15GeV->setMaterial(createMaterial(0,255,0));
647 ui_ascobjs.matButton_measurements->setMaterial(createMaterial(55,200,55));
648 ui_ascobjs.matButton_meas_outliers->setMaterial(createMaterial(155,155,155));
649 ui_ascobjs.matButton_parameters->setMaterial(createMaterial(100,150,200));
650 ui_ascobjs.matButton_holeParameters->setMaterial(createMaterial(100,100,100));
651 ui_ascobjs.matButton_parerrors->setMaterial(createMaterial(255,100,0));
652 SoMaterial * materialeffectsontrackMat = createMaterial(200,255,75);
653 materialeffectsontrackMat->transparency=0.5;
654 ui_ascobjs.matButton_materialeffectsontrack->setMaterial(materialeffectsontrackMat);
655 ui_ascobjs.matButton_surfaces->setMaterial(createMaterial(228,210,165));
702 s.save(QString(
"TrackSystemSettings"));
714 s.save(QString(
"Projections options"));
716 s.save(
m_d->
ui_proj.checkBox_projections_muonchambers);
719 s.save(
m_d->
ui_proj.horizontalSlider_projections_vertex);
732 s.save(QString(
"Propagation options"));
743 s.save(QString(
"Interactions options"));
744 s.save(
m_d->
ui_int.lineEdit_fittedTrackCollName);
763 s.save(QString(
"Colour options"));
794 s.save(QString(
"Cuts options"));
816 s.save(
m_d->
ui_cuts.checkBox_cut_truthtracks_creationvertexinIR);
817 s.save(
m_d->
ui_cuts.checkBox_cut_truthtracks_excludeneutrals);
818 s.save(
m_d->
ui_cuts.checkBox_cut_truthtracks_excludebarcode0);
829 s.save(QString(
"Interactions options"));
831 s.save(
m_d->
ui_int.radioButton_selmode_single,
832 m_d->
ui_int.radioButton_selmode_multitracks,
833 m_d->
ui_int.radioButton_selmode_trackfits);
835 s.save(
m_d->
ui_int.checkBox_selsingle_printinfo);
836 s.save(
m_d->
ui_int.checkBox_selsingle_printinfo_verbose);
837 s.save(
m_d->
ui_int.checkBox_selsingle_orientzoom);
849 s.save(QString(
"AscObjs options"));
851 s.save(
m_d->
ui_ascobjs.checkBox_materialeffectsontrack_forceposontrack);
860 s.save(
m_d->
ui_ascobjs.checkBox_usecolour_materialeffectsontrack);
878 s.save(
m_d->
ui_ascobjs.horizontalSlider_materialeffectsontrack_scale);
887 s.save(
m_d->
ui_ascobjs.doubleSpinBox_measurements_shorttubes_scale);
894 s.save(QString(
"Colouring options"));
897 s.save(
m_d->
ui_col.horizontalSlider_labels_trkOffset);
898 s.save(
m_d->
ui_col.horizontalSlider_labels_xOffset);
899 s.save(
m_d->
ui_col.horizontalSlider_labels_yOffset);
900 s.save(
m_d->
ui_col.horizontalSlider_labels_zOffset);
905 s.save(
m_d->
ui_col.checkBox_trkLabels_fitQuality);
906 s.save(
m_d->
ui_col.checkBox_trkLabels_direction);
915 s.save(QString(
"Extrapolator options"));
925 messageVerbose(
"TrackSystemController::actualSaveSettings() - DONE.");
932 messageDebug(
"TrackSystemController::actualRestoreSettings()");
946 message(
"Warning: State data in .vp1 file has unsupported version ("+
str(
s.version())+
")");
950 if (
s.version()<17) {
951 message(
"Warning: the VP1 GUI has changed since .vp1 file format version ("+
str(
s.version())+
"), which means you will have lost the line thickness etc. settings formally found in the Colouring pop-up dialogue.");
954 if (
s.version()<17) {
957 QString
tt =
s.restoreString();
959 if (
tt !=
"TrackSystemSettings") {
960 messageDebug(
"\n\nERROR!! Settings order does not match!!");
987 if (
s.version()>=17 &&
s.restoreString() !=
"Projections options")
messageDebug(
"\n\nERROR! --> 'Projections options'");
988 s.restore(
m_d->
ui_proj.checkBox_projections_indet);
989 s.restore(
m_d->
ui_proj.checkBox_projections_muonchambers);
990 if (
s.version()>=15){
991 s.restore(
m_d->
ui_proj.groupBox_projections_vertex);
992 s.restore(
m_d->
ui_proj.spinBox_projections_vertex);
993 s.restore(
m_d->
ui_proj.horizontalSlider_projections_vertex);
1008 if (
s.version()<17){
1020 if (
s.version()>=17 &&
s.restoreString() !=
"Propagation options")
messageDebug(
"\n\nERROR! --> 'Propagation options'");
1033 if (
s.version()>=17 &&
s.restoreString() !=
"Interactions options")
messageDebug(
"\n\nERROR! --> 'Interactions options'");
1034 if (
s.version()>=6) {
1035 s.restore(
m_d->
ui_int.lineEdit_fittedTrackCollName);
1037 s.widgetHandled(
m_d->
ui_int.comboBox_fitters);
1047 if (
s.version()==0) {
1057 if (
s.version()<=2) {
1067 if (
s.version()>=17 &&
s.restoreString() !=
"Colour options")
messageDebug(
"\n\nERROR! --> 'Colour options'");
1073 s.restore(
m_d->
ui_col.matButton_chargedkaons);
1074 s.restore(
m_d->
ui_col.matButton_othercharged);
1078 s.restore(
m_d->
ui_col.matButton_otherneutrals);
1079 if (
s.version()>=2) {
1083 s.restore(
m_d->
ui_col.matButton_charge_neutral);
1096 if (
s.version()>=17 &&
s.restoreString() !=
"Cuts options")
messageDebug(
"\n\nERROR! --> 'Cuts options'");
1099 s.restore(
m_d->
ui_cuts.doubleSpinBox_cut_minpt_gev);
1101 s.restore(
m_d->
ui_cuts.doubleSpinBox_cut_maxpt_gev);
1103 if (
s.version()>=10) {
1107 if (
s.version()>=7) {
1115 s.ignoreObsoletePhiSectionWidgetState();
1118 if (
s.version()>=9) {
1130 s.restore(
m_d->
ui_cuts.checkBox_cut_truthtracks_creationvertexinIR);
1131 s.restore(
m_d->
ui_cuts.checkBox_cut_truthtracks_excludeneutrals);
1132 s.restore(
m_d->
ui_cuts.checkBox_cut_truthtracks_excludebarcode0);
1134 if (
s.version()>=14)
s.restore(
m_d->
ui_cuts.checkBox_vertexAssociated);
1142 if (
s.version()>=17 &&
s.restoreString() !=
"Interactions options")
messageDebug(
"\n\nERROR! --> 'Interactions options'");
1144 s.restore(
m_d->
ui_int.radioButton_selmode_single,
1145 m_d->
ui_int.radioButton_selmode_multitracks,
1146 m_d->
ui_int.radioButton_selmode_trackfits);
1148 s.restore(
m_d->
ui_int.checkBox_selsingle_printinfo);
1149 s.restore(
m_d->
ui_int.checkBox_selsingle_printinfo_verbose);
1150 s.restore(
m_d->
ui_int.checkBox_selsingle_orientzoom);
1151 s.restore(
m_d->
ui_int.checkBox_sel_printtotmom);
1152 s.restore(
m_d->
ui_int.checkBox_sel_showtotmom);
1153 if (
s.version()>=12){
1155 s.restore(
m_d->
ui_int.checkBox_removeOutliers);
1156 s.restore(
m_d->
ui_int.comboBox_particleHypo);
1167 if (
s.version()>=17 &&
s.restoreString() !=
"AscObjs options")
messageDebug(
"\n\nERROR! --> 'AscObjs options'");
1169 s.restore(
m_d->
ui_ascobjs.checkBox_materialeffectsontrack_forceposontrack);
1170 s.restore(
m_d->
ui_ascobjs.checkBox_materialeffectsontrack_hideNoDE);
1173 if (
s.version()>=11)
s.restore(
m_d->
ui_ascobjs.checkBox_measurements_drawGP);
1177 if (
s.version()>=11)
s.restore(
m_d->
ui_ascobjs.checkBox_surfaces_hidetubesurfaces);
1178 s.restore(
m_d->
ui_ascobjs.checkBox_usecolour_materialeffectsontrack);
1181 if (
s.version()<12)
s.restore(
m_d->
ui_ascobjs.checkBox_parametererrors);
1184 if (
s.version()>=14)
1190 if (
s.version()>=12) {
1199 s.restore(
m_d->
ui_ascobjs.horizontalSlider_materialeffectsontrack_scale);
1205 if (
s.version()>=14)
1210 s.restore(
m_d->
ui_ascobjs.doubleSpinBox_measurements_shorttubes_scale);
1223 if (
s.version()>=17 &&
s.restoreString() !=
"Colouring options")
messageDebug(
"\n\nERROR! --> 'Colouring options'");
1224 if (
s.version()>=12){
1226 s.restore(
m_d->
ui_col.horizontalSlider_labels_trkOffset);
1227 s.restore(
m_d->
ui_col.horizontalSlider_labels_xOffset);
1228 s.restore(
m_d->
ui_col.horizontalSlider_labels_yOffset);
1229 s.restore(
m_d->
ui_col.horizontalSlider_labels_zOffset);
1231 s.restore(
m_d->
ui_col.checkBox_trkLabels_Pt);
1232 s.restore(
m_d->
ui_col.checkBox_trkLabels_pid);
1233 s.restore(
m_d->
ui_col.checkBox_trkLabels_hits);
1234 s.restore(
m_d->
ui_col.checkBox_trkLabels_fitQuality);
1236 if (
s.version()>=16)
1237 s.restore(
m_d->
ui_col.checkBox_trkLabels_direction);
1245 if (
s.version()>=17 &&
s.restoreString() !=
"Extrapolator options")
messageDebug(
"\n\nERROR! --> 'Extrapolator options'");
1246 if (
s.version()>=14){
1249 s.restore(
m_d->
ui_extrap.comboBox_extendAllInDetTracksToHere);
1253 if (
s.version()>=15){
1261 messageDebug(
"TrackSystemController::actualRestoreSettings() - DONE.");
1277 theclass->message(
"ERROR: Null material button pointer");
1278 return materialFallback;
1280 QList<SoMaterial*> mats =
mb->handledMaterials();
1281 if (mats.count()!=1) {
1282 theclass->message(
"ERROR: No material in button");
1283 return materialFallback;
1292 int abspdg = abs(pdgCode);
1294 case 211: matbutton =
m_d->
ui_col.matButton_pions;
break;
1295 case 11: matbutton =
m_d->
ui_col.matButton_electrons;
break;
1296 case 22: matbutton =
m_d->
ui_col.matButton_photons;
break;
1297 case 13: matbutton =
m_d->
ui_col.matButton_muons;
break;
1298 case 2212: matbutton =
m_d->
ui_col.matButton_protons;
break;
1299 case 2112: matbutton =
m_d->
ui_col.matButton_neutrons;
break;
1309 matbutton =
m_d->
ui_col.matButton_chargedkaons;
break;
1314 matbutton =
m_d->
ui_col.matButton_neutrinos;
break;
1320 message(
"WARNING: Could not look up charge of pdg code "+
str(abspdg)+
". Assuming charged.");
1324 matbutton =
m_d->
ui_col.matButton_otherneutrals;
1326 matbutton =
m_d->
ui_col.matButton_othercharged;
1349 else if (absmom>=high)
1355 const double x = (absmom-low)/(high-low);
1439 const double val = std::min<double>(1.0,std::max<double>(0.0,0.01+0.991*
1442 (
m_d->
ui_ascobjs.horizontalSlider_complexity->maximum()*1.0)));
1474 QString
name =
m_d->
ui_int.lineEdit_fittedTrackCollName->text().simplified();
1475 return name.isEmpty() ?
"<noname>" :
name;
1493 if (!
m_d->
ui_proj.groupBox_projections_vertex->isChecked())
return -1;
1494 return m_d->
ui_proj.spinBox_projections_vertex->value();
1512 if (!
m_d->
ui_ascobjs.checkBox_parerror_hideperigeeerrors->isChecked())
1524 if (!
m_d->
ui_ascobjs.checkBox_surfaces_hidecustomsurfaces->isChecked())
1526 if (!
m_d->
ui_ascobjs.checkBox_surfaces_hidetubesurfaces->isChecked())
1529 if (
m_d->
ui_ascobjs.groupBox_materialeffectsontrack->isChecked()) {
1531 if (!
m_d->
ui_ascobjs.checkBox_materialeffectsontrack_hideNoDE->isChecked())
1542 if (
m_d->
ui_ascobjs.checkBox_usecolour_measurements->isChecked())
1544 if (
m_d->
ui_ascobjs.checkBox_usecolour_meas_outliers->isChecked())
1546 if (
m_d->
ui_ascobjs.checkBox_usecolour_parameters->isChecked())
1548 if (
m_d->
ui_ascobjs.checkBox_useHoleColour_parameters->isChecked())
1550 if (
m_d->
ui_ascobjs.checkBox_usecolour_parametererrors->isChecked())
1552 if (
m_d->
ui_ascobjs.checkBox_usecolour_materialeffectsontrack->isChecked())
1554 if (
m_d->
ui_ascobjs.checkBox_usecolour_surfaces->isChecked())
1563 return m_d->
ui_ascobjs.checkBox_measurements_shorttubes_trt->isChecked();
1569 return m_d->
ui_ascobjs.checkBox_measurements_shorttubes_mdt->isChecked();
1575 return m_d->
ui_ascobjs.checkBox_surfaces_hidetubesurfaces->isChecked();
1581 return m_d->
ui_ascobjs.checkBox_surfaces_hidecustomsurfaces->isChecked();
1587 return m_d->
ui_ascobjs.checkBox_measurements_drawGP->isChecked();
1600 return std::min<double>(1.0
e3,std::max<double>(1.0
e-3,
m_d->
ui_ascobjs.doubleSpinBox_parerror_stddev->value()));
1606 return m_d->
ui_ascobjs.checkBox_parerror_drawcylinder->isChecked();
1622 const int n(1+
static_cast<int>(0.5+7.0*(
val-
min)/(1.0*
max)));
1623 return std::min<int>(32,std::max<int>(4,4*
n));
1629 return m_d->
ui_ascobjs.horizontalSlider_materialeffectsontrack_scale->value()/5.0;
1636 ||!
m_d->
ui_extrap.radioButton_athenaExtrapolator->isChecked()
1654 if (!
m_d->
ui_extrap.checkBox_maxRadius->isChecked())
return -1.0;
1664 return m_d->
ui_extrap.checkBox_ignoreMEoT->isChecked();
1671 ||
m_d->
ui_int.comboBox_fitters->count()==0)
1674 QString
key =
m_d->
ui_int.comboBox_fitters->currentText();
1682 QString
key =
"Muon::MuonEDMPrinterTool/MuonEDMPrinterTool";
1693 if (
m_d->
ui_extrap.comboBox_extendAllInDetTracksToHere->currentText()==
"Calorimeter")
1695 if (
m_d->
ui_extrap.comboBox_extendAllInDetTracksToHere->currentText()==
"Muon Entrance")
1697 if (
m_d->
ui_extrap.comboBox_extendAllInDetTracksToHere->currentText()==
"Muon Exit")
1705 if (
m_d->
ui_int.radioButton_selmode_single->isChecked())
1707 else if (
m_d->
ui_int.radioButton_selmode_multitracks->isChecked())
1709 else if (
m_d->
ui_int.radioButton_selmode_trackfits->isChecked())
1711 message(
"selectionMode ERROR: Inconsistency detected.");
1717 if (
m_d->
ui_int.comboBox_fitterMode->currentText()==
"Fit PRDs")
1719 else if (
m_d->
ui_int.comboBox_fitterMode->currentText()==
"Refit Track")
1721 else if (
m_d->
ui_int.comboBox_fitterMode->currentText()==
"Extend Track with PRDs")
1723 else if (
m_d->
ui_int.comboBox_fitterMode->currentText()==
"Combine Two Tracks")
1726 message(
"fitterMode ERROR: Inconsistency detected. Mode not known.");
1733 return m_d->
ui_int.checkBox_removeOutliers->isChecked();
1738 if (
m_d->
ui_int.comboBox_particleHypo->currentText()==
"Pion")
1740 else if (
m_d->
ui_int.comboBox_particleHypo->currentText()==
"Non Interacting")
1742 else if (
m_d->
ui_int.comboBox_particleHypo->currentText()==
"Electron")
1744 else if (
m_d->
ui_int.comboBox_particleHypo->currentText()==
"Muon")
1746 else if (
m_d->
ui_int.comboBox_particleHypo->currentText()==
"Kaon")
1748 else if (
m_d->
ui_int.comboBox_particleHypo->currentText()==
"Proton")
1750 else if (
m_d->
ui_int.comboBox_particleHypo->currentText()==
"Photon")
1753 message(
"fitterMode ERROR: Inconsistency detected. Mode not known.");
1760 return m_d->
ui_ascobjs.checkBox_truthtracks_display_points->isChecked();
1766 if (
m_d->
ui_ascobjs.comboBox_assocobj_detaillevel->currentText()==
"Auto")
1768 else if (
m_d->
ui_ascobjs.comboBox_assocobj_detaillevel->currentText()==
"Simple")
1775 if (
m_d->
ui_cuts.checkBox_vertexAssociated->isEnabled()!=
b) {
1776 m_d->
ui_cuts.checkBox_vertexAssociated->setEnabled(
b);
1782 if (!
m_d->
ui_cuts.checkBox_vertexAssociated->isEnabled())
return false;
1783 return m_d->
ui_cuts.checkBox_vertexAssociated->isChecked();
1798 bool isPCut =
m_d->
ui_cuts.comboBox_momtype->currentText()==
"P";
1806 min = (
m_d->
ui_cuts.checkBox_cut_minpt->isChecked() ? minFromInterface : -std::numeric_limits<double>::infinity());
1807 max = (
m_d->
ui_cuts.checkBox_cut_maxpt->isChecked() ? maxFromInterface : std::numeric_limits<double>::infinity());
1809 min = (
m_d->
ui_cuts.checkBox_cut_maxpt->isChecked() ? -maxFromInterface : -std::numeric_limits<double>::infinity());
1810 max = (
m_d->
ui_cuts.checkBox_cut_minpt->isChecked() ? -minFromInterface : std::numeric_limits<double>::infinity());
1824 return m_d->
ui_cuts.etaPhiCutWidget->allowedEta();
1830 return m_d->
ui_cuts.etaPhiCutWidget->allowedPhi();
1836 unsigned npixel =
m_d->
ui_cuts.checkBox_cut_nhits_pixel->isChecked() ?
m_d->
ui_cuts.spinBox_cut_nhits_pixel->value() : 0;
1837 unsigned nsct =
m_d->
ui_cuts.checkBox_cut_nhits_sct->isChecked() ?
m_d->
ui_cuts.spinBox_cut_nhits_sct->value() : 0;
1838 unsigned ntrt =
m_d->
ui_cuts.checkBox_cut_nhits_trt->isChecked() ?
m_d->
ui_cuts.spinBox_cut_nhits_trt->value() : 0;
1839 unsigned nmuon =
m_d->
ui_cuts.checkBox_cut_nhits_muon->isChecked() ?
m_d->
ui_cuts.spinBox_cut_nhits_muon->value() : 0;
1840 unsigned nprecmuon =
m_d->
ui_cuts.checkBox_cut_nprecisionhits_muon->isChecked() ?
m_d->
ui_cuts.spinBox_cut_nprecisionhits_muon->value() : 0;
1843 if (!npixel&&!nsct&&!ntrt&&!nmuon&&!nprecmuon)
1845 l << npixel << nsct << ntrt << nmuon << nprecmuon;
1850 QString
tmp =
m_d->
ui_cuts.checkBox_requireDetectorElement->isChecked() ?
m_d->
ui_cuts.lineEdit_detectorElementId->text(): QString();
1858 return m_d->
ui_cuts.checkBox_cut_truthtracks_creationvertexinIR->isChecked();
1864 return m_d->
ui_cuts.checkBox_cut_truthtracks_excludebarcode0->isChecked();
1870 return m_d->
ui_cuts.checkBox_cut_truthtracks_excludeneutrals->isChecked();
1878 QString
ct = cb->currentText();
1882 bool save = cb->blockSignals(
true);
1886 bool enabled =
false;
1889 cb->setEnabled(
false);
1893 int i = restoredSelection.isEmpty() ? -1 : cb->findText(restoredSelection);
1895 i =
ct.isEmpty() ? -1 : cb->findText(
ct);
1896 restoredSelection =
"";
1899 cb->setCurrentIndex(
i);
1903 int i_vp1(-1), i_atlas(-1);
1904 for (
int j = 0; j <cb->count();++j) {
1905 if (i_vp1==-1&&cb->itemText(j).contains(
"vp1",Qt::CaseInsensitive))
1907 if (i_atlas==-1&&cb->itemText(j).contains(
"atlas",Qt::CaseInsensitive))
1911 cb->setCurrentIndex(i_vp1);
1912 else if (i_atlas>=0)
1913 cb->setCurrentIndex(i_atlas);
1917 cb->setEnabled(
true);
1921 cb->blockSignals(
false);
1945 m_d->
ui_extrap.radioButton_athenaExtrapolator->setEnabled(
false);
1946 bool save1 =
m_d->
ui_extrap.radioButton_none->blockSignals(
true);
1947 bool save2 =
m_d->
ui_extrap.radioButton_helical->blockSignals(
true);
1948 bool save3 =
m_d->
ui_extrap.radioButton_athenaExtrapolator->blockSignals(
true);
1951 m_d->
ui_extrap.radioButton_athenaExtrapolator->setChecked(
false);
1952 if (!save1)
m_d->
ui_extrap.radioButton_none->blockSignals(
false);
1953 if (!save2)
m_d->
ui_extrap.radioButton_helical->blockSignals(
false);
1954 if (!save3)
m_d->
ui_extrap.radioButton_athenaExtrapolator->blockSignals(
false);
1956 m_d->
ui_extrap.radioButton_athenaExtrapolator->setEnabled(
true);
1965 return m_d->
ui_int.checkBox_selsingle_orientzoom->isChecked();
1971 return m_d->
ui_int.checkBox_selsingle_printinfo->isChecked();
1983 return m_d->
ui_int.checkBox_sel_printtotmom->isChecked();
1989 return m_d->
ui_int.checkBox_sel_showtotmom->isChecked();
2009 switch (theclass->fitterMode()) {
2010 case TrackCommonFlags::FROMPRDS: ui_int.pushButton_refit->setEnabled( numberOfSelectedPRDs>=3 && theclass->trackFitter() );
break;
2068 messageVerbose(
"TrackSystemController::objectBrowserClicked: Couldn't get VP1TrackSystem pointer");
2100 if (trkProxyHandle){
2107 messageVerbose(
"TrackSystemController::objectBrowserClicked: Couldn't get node pointer. Maybe object not visible?");
2159 std::vector<double>
values(6,0.0);
2183 return m_d->
ui_col.groupBox_labels->isChecked();
2188 return static_cast<float>(
m_d->
ui_col.horizontalSlider_labels_trkOffset->value())/
static_cast<float>(
m_d->
ui_col.horizontalSlider_labels_trkOffset->maximum());
2202 return m_d->
ui_col.horizontalSlider_labels_xOffset->value();
2207 return m_d->
ui_col.horizontalSlider_labels_yOffset->value();
2212 return m_d->
ui_col.horizontalSlider_labels_zOffset->value();
2216 if (!
m_d->
ui_col.groupBox_labels->isChecked())
2232 #define VP1CONTROLLERCLASSNAME TrackSystemController