16 #define VP1IMPVARNAME m_d
19 #include <Inventor/C/errors/debugerror.h>
20 #include <Inventor/nodes/SoSelection.h>
31 #include "ui_vp1trackcontrollerform.h"
32 #include "ui_settings_ascobjs_form.h"
33 #include "ui_settings_colouring_form.h"
34 #include "ui_settings_extrapolation_form.h"
35 #include "ui_settings_interactions_form.h"
36 #include "ui_settings_projections_form.h"
37 #include "ui_settings_cuts_form.h"
38 #include "ui_shift_muon_chamber_form.h"
39 #include "ui_objectbrowser.h"
62 #include "Inventor/nodes/SoMaterial.h"
63 #include "Inventor/nodes/SoDrawStyle.h"
64 #include "Inventor/nodes/SoComplexity.h"
65 #include "Inventor/nodes/SoLightModel.h"
66 #include <Inventor/nodes/SoSeparator.h>
67 #include <Inventor/actions/SoSearchAction.h>
69 #include "CLHEP/Units/SystemOfUnits.h"
71 #include <QTreeWidget>
72 #include <QTreeWidgetItem>
73 #include <QtCoreVersion>
82 Ui::VP1TrackControllerForm
ui{};
144 Ui::TrackSysSettingsColouringForm
ui_col{};
146 Ui::TrackSysSettingsInteractionsForm
ui_int{};
147 Ui::TrackSysSettingsProjectionsForm
ui_proj{};
174 for(
unsigned i :
l) {
175 if (!
s.isEmpty())
s+=
", ";
186 if (!
s.isEmpty())
s+=
", ";
200 QString tooltype(
"Trk::Extrapolator");
207 #if QTCORE_VERSION >= 0x050E00
213 if (existingExtrapolators.contains(
key))
215 sys->messageDebug(
"Attempting creation of fitter with tooltype/key "+
key);
218 sys->message(
"WARNING: Could not create tool type/key "+
key);
227 if (fittersCreated||!
sys)
229 fittersCreated =
true;
232 QStringList fittertypes;
233 fittertypes <<
"Trk::KalmanFitter"
234 <<
"Trk::GlobalChi2Fitter"
235 <<
"Trk::GaussianSumFilter"
236 <<
"Trk::DistributedKalmanFilter"
237 <<
"Trk::DeterministicAnnealingFilter";
244 #if QTCORE_VERSION >= 0x050E00
250 if (existingFitters.contains(
instance))
252 sys->messageDebug(
"Attempting creation of fitter with tooltype/key "+
instance);
255 sys->message(
"WARNING: Could not create tool with type/key "+
instance);
274 m_d->
ui.setupUi(
this);
320 m_d->
ui_proj.checkBox_projections_muonchambers->setChecked(
false);
321 m_d->
ui_proj.checkBox_projections_muonchambers->setEnabled(
false);
326 m_d->
ui_proj.checkBox_projections_indet->setChecked(
false);
327 m_d->
ui_proj.checkBox_projections_indet->setEnabled(
false);
508 l<<
"Object"<<
"Information";
515 QWidget *widget =
new QWidget;
523 m_d->
ui_int.checkBox_selsingle_printinfo->setChecked(
true);
544 messageVerbose(
"Setting up tool helper to monitor extrapolators - start");
551 messageVerbose(
"Setting up tool helper to monitor extrapolators - end");
553 messageVerbose(
"Setting up tool helper to monitor fitters - start");
555 QStringList fittertypes;
556 fittertypes <<
"Trk::KalmanFitter"
557 <<
"Trk::GlobalChi2Fitter"
558 <<
"Trk::GaussianSumFilter"
559 <<
"Trk::DistributedKalmanFilter"
560 <<
"Trk::DeterministicAnnealingFilter";
565 messageVerbose(
"Setting up tool helper to monitor fitters - end");
572 m_d->
ui_extrap.radioButton_athenaExtrapolator->setEnabled(
false);
576 m_d->
ui_int.comboBox_fitters->setEnabled(
false);
620 ui_col.matButton_electrons->setMaterial(createMaterial(255,0,0));
621 ui_col.matButton_muons->setMaterial(createMaterial(71,255,51));
624 ui_col.matButton_pions->setMaterial(createMaterial(74,146,255));
625 ui_col.matButton_protons->setMaterial(createMaterial(56,49,255));
626 ui_col.matButton_chargedkaons->setMaterial(createMaterial(116,255,228));
627 ui_col.matButton_othercharged->setMaterial(createMaterial(142,163,255));
630 ui_col.matButton_neutrons->setMaterial(createMaterial(245,255,42));
631 ui_col.matButton_photons->setMaterial(createMaterial(255,227,82));
632 ui_col.matButton_neutrinos->setMaterial(createMaterial(255,152,61));
633 ui_col.matButton_otherneutrals->setMaterial(createMaterial(248,255,102));
636 ui_col.matButton_charge_pos->setMaterial(createMaterial(255,71,10));
637 ui_col.matButton_charge_neg->setMaterial(createMaterial(116,255,10));
638 ui_col.matButton_charge_neutral->setMaterial(createMaterial(255,227,82));
641 ui_col.matButton_0GeV->setMaterial(createMaterial(0,50,0));
642 ui_col.matButton_15GeV->setMaterial(createMaterial(0,255,0));
645 ui_ascobjs.matButton_measurements->setMaterial(createMaterial(55,200,55));
646 ui_ascobjs.matButton_meas_outliers->setMaterial(createMaterial(155,155,155));
647 ui_ascobjs.matButton_parameters->setMaterial(createMaterial(100,150,200));
648 ui_ascobjs.matButton_holeParameters->setMaterial(createMaterial(100,100,100));
649 ui_ascobjs.matButton_parerrors->setMaterial(createMaterial(255,100,0));
650 SoMaterial * materialeffectsontrackMat = createMaterial(200,255,75);
651 materialeffectsontrackMat->transparency=0.5;
652 ui_ascobjs.matButton_materialeffectsontrack->setMaterial(materialeffectsontrackMat);
653 ui_ascobjs.matButton_surfaces->setMaterial(createMaterial(228,210,165));
700 s.save(QString(
"TrackSystemSettings"));
712 s.save(QString(
"Projections options"));
714 s.save(
m_d->
ui_proj.checkBox_projections_muonchambers);
717 s.save(
m_d->
ui_proj.horizontalSlider_projections_vertex);
730 s.save(QString(
"Propagation options"));
741 s.save(QString(
"Interactions options"));
742 s.save(
m_d->
ui_int.lineEdit_fittedTrackCollName);
761 s.save(QString(
"Colour options"));
792 s.save(QString(
"Cuts options"));
814 s.save(
m_d->
ui_cuts.checkBox_cut_truthtracks_creationvertexinIR);
815 s.save(
m_d->
ui_cuts.checkBox_cut_truthtracks_excludeneutrals);
816 s.save(
m_d->
ui_cuts.checkBox_cut_truthtracks_excludebarcode0);
827 s.save(QString(
"Interactions options"));
829 s.save(
m_d->
ui_int.radioButton_selmode_single,
830 m_d->
ui_int.radioButton_selmode_multitracks,
831 m_d->
ui_int.radioButton_selmode_trackfits);
833 s.save(
m_d->
ui_int.checkBox_selsingle_printinfo);
834 s.save(
m_d->
ui_int.checkBox_selsingle_printinfo_verbose);
835 s.save(
m_d->
ui_int.checkBox_selsingle_orientzoom);
847 s.save(QString(
"AscObjs options"));
849 s.save(
m_d->
ui_ascobjs.checkBox_materialeffectsontrack_forceposontrack);
858 s.save(
m_d->
ui_ascobjs.checkBox_usecolour_materialeffectsontrack);
876 s.save(
m_d->
ui_ascobjs.horizontalSlider_materialeffectsontrack_scale);
885 s.save(
m_d->
ui_ascobjs.doubleSpinBox_measurements_shorttubes_scale);
892 s.save(QString(
"Colouring options"));
895 s.save(
m_d->
ui_col.horizontalSlider_labels_trkOffset);
896 s.save(
m_d->
ui_col.horizontalSlider_labels_xOffset);
897 s.save(
m_d->
ui_col.horizontalSlider_labels_yOffset);
898 s.save(
m_d->
ui_col.horizontalSlider_labels_zOffset);
903 s.save(
m_d->
ui_col.checkBox_trkLabels_fitQuality);
904 s.save(
m_d->
ui_col.checkBox_trkLabels_direction);
913 s.save(QString(
"Extrapolator options"));
923 messageVerbose(
"TrackSystemController::actualSaveSettings() - DONE.");
930 messageDebug(
"TrackSystemController::actualRestoreSettings()");
944 message(
"Warning: State data in .vp1 file has unsupported version ("+
str(
s.version())+
")");
948 if (
s.version()<17) {
949 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.");
952 if (
s.version()<17) {
955 QString
tt =
s.restoreString();
957 if (
tt !=
"TrackSystemSettings") {
958 messageDebug(
"\n\nERROR!! Settings order does not match!!");
985 if (
s.version()>=17 &&
s.restoreString() !=
"Projections options")
messageDebug(
"\n\nERROR! --> 'Projections options'");
986 s.restore(
m_d->
ui_proj.checkBox_projections_indet);
987 s.restore(
m_d->
ui_proj.checkBox_projections_muonchambers);
988 if (
s.version()>=15){
989 s.restore(
m_d->
ui_proj.groupBox_projections_vertex);
990 s.restore(
m_d->
ui_proj.spinBox_projections_vertex);
991 s.restore(
m_d->
ui_proj.horizontalSlider_projections_vertex);
1006 if (
s.version()<17){
1018 if (
s.version()>=17 &&
s.restoreString() !=
"Propagation options")
messageDebug(
"\n\nERROR! --> 'Propagation options'");
1031 if (
s.version()>=17 &&
s.restoreString() !=
"Interactions options")
messageDebug(
"\n\nERROR! --> 'Interactions options'");
1032 if (
s.version()>=6) {
1033 s.restore(
m_d->
ui_int.lineEdit_fittedTrackCollName);
1035 s.widgetHandled(
m_d->
ui_int.comboBox_fitters);
1045 if (
s.version()==0) {
1055 if (
s.version()<=2) {
1065 if (
s.version()>=17 &&
s.restoreString() !=
"Colour options")
messageDebug(
"\n\nERROR! --> 'Colour options'");
1071 s.restore(
m_d->
ui_col.matButton_chargedkaons);
1072 s.restore(
m_d->
ui_col.matButton_othercharged);
1076 s.restore(
m_d->
ui_col.matButton_otherneutrals);
1077 if (
s.version()>=2) {
1081 s.restore(
m_d->
ui_col.matButton_charge_neutral);
1094 if (
s.version()>=17 &&
s.restoreString() !=
"Cuts options")
messageDebug(
"\n\nERROR! --> 'Cuts options'");
1097 s.restore(
m_d->
ui_cuts.doubleSpinBox_cut_minpt_gev);
1099 s.restore(
m_d->
ui_cuts.doubleSpinBox_cut_maxpt_gev);
1101 if (
s.version()>=10) {
1105 if (
s.version()>=7) {
1113 s.ignoreObsoletePhiSectionWidgetState();
1116 if (
s.version()>=9) {
1128 s.restore(
m_d->
ui_cuts.checkBox_cut_truthtracks_creationvertexinIR);
1129 s.restore(
m_d->
ui_cuts.checkBox_cut_truthtracks_excludeneutrals);
1130 s.restore(
m_d->
ui_cuts.checkBox_cut_truthtracks_excludebarcode0);
1132 if (
s.version()>=14)
s.restore(
m_d->
ui_cuts.checkBox_vertexAssociated);
1140 if (
s.version()>=17 &&
s.restoreString() !=
"Interactions options")
messageDebug(
"\n\nERROR! --> 'Interactions options'");
1142 s.restore(
m_d->
ui_int.radioButton_selmode_single,
1143 m_d->
ui_int.radioButton_selmode_multitracks,
1144 m_d->
ui_int.radioButton_selmode_trackfits);
1146 s.restore(
m_d->
ui_int.checkBox_selsingle_printinfo);
1147 s.restore(
m_d->
ui_int.checkBox_selsingle_printinfo_verbose);
1148 s.restore(
m_d->
ui_int.checkBox_selsingle_orientzoom);
1149 s.restore(
m_d->
ui_int.checkBox_sel_printtotmom);
1150 s.restore(
m_d->
ui_int.checkBox_sel_showtotmom);
1151 if (
s.version()>=12){
1153 s.restore(
m_d->
ui_int.checkBox_removeOutliers);
1154 s.restore(
m_d->
ui_int.comboBox_particleHypo);
1165 if (
s.version()>=17 &&
s.restoreString() !=
"AscObjs options")
messageDebug(
"\n\nERROR! --> 'AscObjs options'");
1167 s.restore(
m_d->
ui_ascobjs.checkBox_materialeffectsontrack_forceposontrack);
1168 s.restore(
m_d->
ui_ascobjs.checkBox_materialeffectsontrack_hideNoDE);
1171 if (
s.version()>=11)
s.restore(
m_d->
ui_ascobjs.checkBox_measurements_drawGP);
1175 if (
s.version()>=11)
s.restore(
m_d->
ui_ascobjs.checkBox_surfaces_hidetubesurfaces);
1176 s.restore(
m_d->
ui_ascobjs.checkBox_usecolour_materialeffectsontrack);
1179 if (
s.version()<12)
s.restore(
m_d->
ui_ascobjs.checkBox_parametererrors);
1182 if (
s.version()>=14)
1188 if (
s.version()>=12) {
1197 s.restore(
m_d->
ui_ascobjs.horizontalSlider_materialeffectsontrack_scale);
1203 if (
s.version()>=14)
1208 s.restore(
m_d->
ui_ascobjs.doubleSpinBox_measurements_shorttubes_scale);
1221 if (
s.version()>=17 &&
s.restoreString() !=
"Colouring options")
messageDebug(
"\n\nERROR! --> 'Colouring options'");
1222 if (
s.version()>=12){
1224 s.restore(
m_d->
ui_col.horizontalSlider_labels_trkOffset);
1225 s.restore(
m_d->
ui_col.horizontalSlider_labels_xOffset);
1226 s.restore(
m_d->
ui_col.horizontalSlider_labels_yOffset);
1227 s.restore(
m_d->
ui_col.horizontalSlider_labels_zOffset);
1229 s.restore(
m_d->
ui_col.checkBox_trkLabels_Pt);
1230 s.restore(
m_d->
ui_col.checkBox_trkLabels_pid);
1231 s.restore(
m_d->
ui_col.checkBox_trkLabels_hits);
1232 s.restore(
m_d->
ui_col.checkBox_trkLabels_fitQuality);
1234 if (
s.version()>=16)
1235 s.restore(
m_d->
ui_col.checkBox_trkLabels_direction);
1243 if (
s.version()>=17 &&
s.restoreString() !=
"Extrapolator options")
messageDebug(
"\n\nERROR! --> 'Extrapolator options'");
1244 if (
s.version()>=14){
1247 s.restore(
m_d->
ui_extrap.comboBox_extendAllInDetTracksToHere);
1251 if (
s.version()>=15){
1259 messageDebug(
"TrackSystemController::actualRestoreSettings() - DONE.");
1275 theclass->message(
"ERROR: Null material button pointer");
1276 return materialFallback;
1278 QList<SoMaterial*> mats =
mb->handledMaterials();
1279 if (mats.count()!=1) {
1280 theclass->message(
"ERROR: No material in button");
1281 return materialFallback;
1290 int abspdg = abs(pdgCode);
1292 case 211: matbutton =
m_d->
ui_col.matButton_pions;
break;
1293 case 11: matbutton =
m_d->
ui_col.matButton_electrons;
break;
1294 case 22: matbutton =
m_d->
ui_col.matButton_photons;
break;
1295 case 13: matbutton =
m_d->
ui_col.matButton_muons;
break;
1296 case 2212: matbutton =
m_d->
ui_col.matButton_protons;
break;
1297 case 2112: matbutton =
m_d->
ui_col.matButton_neutrons;
break;
1307 matbutton =
m_d->
ui_col.matButton_chargedkaons;
break;
1312 matbutton =
m_d->
ui_col.matButton_neutrinos;
break;
1318 message(
"WARNING: Could not look up charge of pdg code "+
str(abspdg)+
". Assuming charged.");
1322 matbutton =
m_d->
ui_col.matButton_otherneutrals;
1324 matbutton =
m_d->
ui_col.matButton_othercharged;
1347 else if (absmom>=high)
1353 const double x = (absmom-low)/(high-low);
1437 const double val = std::min<double>(1.0,std::max<double>(0.0,0.01+0.991*
1440 (
m_d->
ui_ascobjs.horizontalSlider_complexity->maximum()*1.0)));
1472 QString
name =
m_d->
ui_int.lineEdit_fittedTrackCollName->text().simplified();
1473 return name.isEmpty() ?
"<noname>" :
name;
1491 if (!
m_d->
ui_proj.groupBox_projections_vertex->isChecked())
return -1;
1492 return m_d->
ui_proj.spinBox_projections_vertex->value();
1510 if (!
m_d->
ui_ascobjs.checkBox_parerror_hideperigeeerrors->isChecked())
1522 if (!
m_d->
ui_ascobjs.checkBox_surfaces_hidecustomsurfaces->isChecked())
1524 if (!
m_d->
ui_ascobjs.checkBox_surfaces_hidetubesurfaces->isChecked())
1527 if (
m_d->
ui_ascobjs.groupBox_materialeffectsontrack->isChecked()) {
1529 if (!
m_d->
ui_ascobjs.checkBox_materialeffectsontrack_hideNoDE->isChecked())
1540 if (
m_d->
ui_ascobjs.checkBox_usecolour_measurements->isChecked())
1542 if (
m_d->
ui_ascobjs.checkBox_usecolour_meas_outliers->isChecked())
1544 if (
m_d->
ui_ascobjs.checkBox_usecolour_parameters->isChecked())
1546 if (
m_d->
ui_ascobjs.checkBox_useHoleColour_parameters->isChecked())
1548 if (
m_d->
ui_ascobjs.checkBox_usecolour_parametererrors->isChecked())
1550 if (
m_d->
ui_ascobjs.checkBox_usecolour_materialeffectsontrack->isChecked())
1552 if (
m_d->
ui_ascobjs.checkBox_usecolour_surfaces->isChecked())
1561 return m_d->
ui_ascobjs.checkBox_measurements_shorttubes_trt->isChecked();
1567 return m_d->
ui_ascobjs.checkBox_measurements_shorttubes_mdt->isChecked();
1573 return m_d->
ui_ascobjs.checkBox_surfaces_hidetubesurfaces->isChecked();
1579 return m_d->
ui_ascobjs.checkBox_surfaces_hidecustomsurfaces->isChecked();
1585 return m_d->
ui_ascobjs.checkBox_measurements_drawGP->isChecked();
1598 return std::min<double>(1.0
e3,std::max<double>(1.0
e-3,
m_d->
ui_ascobjs.doubleSpinBox_parerror_stddev->value()));
1604 return m_d->
ui_ascobjs.checkBox_parerror_drawcylinder->isChecked();
1620 const int n(1+
static_cast<int>(0.5+7.0*(
val-
min)/(1.0*
max)));
1621 return std::min<int>(32,std::max<int>(4,4*
n));
1627 return m_d->
ui_ascobjs.horizontalSlider_materialeffectsontrack_scale->value()/5.0;
1634 ||!
m_d->
ui_extrap.radioButton_athenaExtrapolator->isChecked()
1652 if (!
m_d->
ui_extrap.checkBox_maxRadius->isChecked())
return -1.0;
1662 return m_d->
ui_extrap.checkBox_ignoreMEoT->isChecked();
1669 ||
m_d->
ui_int.comboBox_fitters->count()==0)
1672 QString
key =
m_d->
ui_int.comboBox_fitters->currentText();
1680 QString
key =
"Muon::MuonEDMPrinterTool/MuonEDMPrinterTool";
1691 if (
m_d->
ui_extrap.comboBox_extendAllInDetTracksToHere->currentText()==
"Calorimeter")
1693 if (
m_d->
ui_extrap.comboBox_extendAllInDetTracksToHere->currentText()==
"Muon Entrance")
1695 if (
m_d->
ui_extrap.comboBox_extendAllInDetTracksToHere->currentText()==
"Muon Exit")
1703 if (
m_d->
ui_int.radioButton_selmode_single->isChecked())
1705 else if (
m_d->
ui_int.radioButton_selmode_multitracks->isChecked())
1707 else if (
m_d->
ui_int.radioButton_selmode_trackfits->isChecked())
1709 message(
"selectionMode ERROR: Inconsistency detected.");
1715 if (
m_d->
ui_int.comboBox_fitterMode->currentText()==
"Fit PRDs")
1717 else if (
m_d->
ui_int.comboBox_fitterMode->currentText()==
"Refit Track")
1719 else if (
m_d->
ui_int.comboBox_fitterMode->currentText()==
"Extend Track with PRDs")
1721 else if (
m_d->
ui_int.comboBox_fitterMode->currentText()==
"Combine Two Tracks")
1724 message(
"fitterMode ERROR: Inconsistency detected. Mode not known.");
1731 return m_d->
ui_int.checkBox_removeOutliers->isChecked();
1736 if (
m_d->
ui_int.comboBox_particleHypo->currentText()==
"Pion")
1738 else if (
m_d->
ui_int.comboBox_particleHypo->currentText()==
"Non Interacting")
1740 else if (
m_d->
ui_int.comboBox_particleHypo->currentText()==
"Electron")
1742 else if (
m_d->
ui_int.comboBox_particleHypo->currentText()==
"Muon")
1744 else if (
m_d->
ui_int.comboBox_particleHypo->currentText()==
"Kaon")
1746 else if (
m_d->
ui_int.comboBox_particleHypo->currentText()==
"Proton")
1748 else if (
m_d->
ui_int.comboBox_particleHypo->currentText()==
"Photon")
1751 message(
"fitterMode ERROR: Inconsistency detected. Mode not known.");
1758 return m_d->
ui_ascobjs.checkBox_truthtracks_display_points->isChecked();
1764 if (
m_d->
ui_ascobjs.comboBox_assocobj_detaillevel->currentText()==
"Auto")
1766 else if (
m_d->
ui_ascobjs.comboBox_assocobj_detaillevel->currentText()==
"Simple")
1773 if (
m_d->
ui_cuts.checkBox_vertexAssociated->isEnabled()!=
b) {
1774 m_d->
ui_cuts.checkBox_vertexAssociated->setEnabled(
b);
1780 if (!
m_d->
ui_cuts.checkBox_vertexAssociated->isEnabled())
return false;
1781 return m_d->
ui_cuts.checkBox_vertexAssociated->isChecked();
1796 bool isPCut =
m_d->
ui_cuts.comboBox_momtype->currentText()==
"P";
1804 min = (
m_d->
ui_cuts.checkBox_cut_minpt->isChecked() ? minFromInterface : -std::numeric_limits<double>::infinity());
1805 max = (
m_d->
ui_cuts.checkBox_cut_maxpt->isChecked() ? maxFromInterface : std::numeric_limits<double>::infinity());
1807 min = (
m_d->
ui_cuts.checkBox_cut_maxpt->isChecked() ? -maxFromInterface : -std::numeric_limits<double>::infinity());
1808 max = (
m_d->
ui_cuts.checkBox_cut_minpt->isChecked() ? -minFromInterface : std::numeric_limits<double>::infinity());
1822 return m_d->
ui_cuts.etaPhiCutWidget->allowedEta();
1828 return m_d->
ui_cuts.etaPhiCutWidget->allowedPhi();
1834 unsigned npixel =
m_d->
ui_cuts.checkBox_cut_nhits_pixel->isChecked() ?
m_d->
ui_cuts.spinBox_cut_nhits_pixel->value() : 0;
1835 unsigned nsct =
m_d->
ui_cuts.checkBox_cut_nhits_sct->isChecked() ?
m_d->
ui_cuts.spinBox_cut_nhits_sct->value() : 0;
1836 unsigned ntrt =
m_d->
ui_cuts.checkBox_cut_nhits_trt->isChecked() ?
m_d->
ui_cuts.spinBox_cut_nhits_trt->value() : 0;
1837 unsigned nmuon =
m_d->
ui_cuts.checkBox_cut_nhits_muon->isChecked() ?
m_d->
ui_cuts.spinBox_cut_nhits_muon->value() : 0;
1838 unsigned nprecmuon =
m_d->
ui_cuts.checkBox_cut_nprecisionhits_muon->isChecked() ?
m_d->
ui_cuts.spinBox_cut_nprecisionhits_muon->value() : 0;
1841 if (!npixel&&!nsct&&!ntrt&&!nmuon&&!nprecmuon)
1843 l << npixel << nsct << ntrt << nmuon << nprecmuon;
1848 QString
tmp =
m_d->
ui_cuts.checkBox_requireDetectorElement->isChecked() ?
m_d->
ui_cuts.lineEdit_detectorElementId->text(): QString();
1856 return m_d->
ui_cuts.checkBox_cut_truthtracks_creationvertexinIR->isChecked();
1862 return m_d->
ui_cuts.checkBox_cut_truthtracks_excludebarcode0->isChecked();
1868 return m_d->
ui_cuts.checkBox_cut_truthtracks_excludeneutrals->isChecked();
1876 QString
ct = cb->currentText();
1880 bool save = cb->blockSignals(
true);
1884 bool enabled =
false;
1887 cb->setEnabled(
false);
1891 int i = restoredSelection.isEmpty() ? -1 : cb->findText(restoredSelection);
1893 i =
ct.isEmpty() ? -1 : cb->findText(
ct);
1894 restoredSelection =
"";
1897 cb->setCurrentIndex(
i);
1901 int i_vp1(-1), i_atlas(-1);
1902 for (
int j = 0; j <cb->count();++j) {
1903 if (i_vp1==-1&&cb->itemText(j).contains(
"vp1",Qt::CaseInsensitive))
1905 if (i_atlas==-1&&cb->itemText(j).contains(
"atlas",Qt::CaseInsensitive))
1909 cb->setCurrentIndex(i_vp1);
1910 else if (i_atlas>=0)
1911 cb->setCurrentIndex(i_atlas);
1915 cb->setEnabled(
true);
1919 cb->blockSignals(
false);
1943 m_d->
ui_extrap.radioButton_athenaExtrapolator->setEnabled(
false);
1944 bool save1 =
m_d->
ui_extrap.radioButton_none->blockSignals(
true);
1945 bool save2 =
m_d->
ui_extrap.radioButton_helical->blockSignals(
true);
1946 bool save3 =
m_d->
ui_extrap.radioButton_athenaExtrapolator->blockSignals(
true);
1949 m_d->
ui_extrap.radioButton_athenaExtrapolator->setChecked(
false);
1950 if (!save1)
m_d->
ui_extrap.radioButton_none->blockSignals(
false);
1951 if (!save2)
m_d->
ui_extrap.radioButton_helical->blockSignals(
false);
1952 if (!save3)
m_d->
ui_extrap.radioButton_athenaExtrapolator->blockSignals(
false);
1954 m_d->
ui_extrap.radioButton_athenaExtrapolator->setEnabled(
true);
1963 return m_d->
ui_int.checkBox_selsingle_orientzoom->isChecked();
1969 return m_d->
ui_int.checkBox_selsingle_printinfo->isChecked();
1981 return m_d->
ui_int.checkBox_sel_printtotmom->isChecked();
1987 return m_d->
ui_int.checkBox_sel_showtotmom->isChecked();
2007 switch (theclass->fitterMode()) {
2008 case TrackCommonFlags::FROMPRDS: ui_int.pushButton_refit->setEnabled( numberOfSelectedPRDs>=3 && theclass->trackFitter() );
break;
2066 messageVerbose(
"TrackSystemController::objectBrowserClicked: Couldn't get VP1TrackSystem pointer");
2087 if (index<trkHandle->trkTrackPointer()->trackStateOnSurfaces()->size() ){
2092 for (
int i = 0;
i <
list.size(); ++
i) {
2101 messageVerbose(
"TrackSystemController::objectBrowserClicked: no matching Asc found");
2109 messageVerbose(
"TrackSystemController::objectBrowserClicked: Couldn't get node pointer. Maybe object not visible?");
2161 std::vector<double>
values(6,0.0);
2185 return m_d->
ui_col.groupBox_labels->isChecked();
2190 return static_cast<float>(
m_d->
ui_col.horizontalSlider_labels_trkOffset->value())/
static_cast<float>(
m_d->
ui_col.horizontalSlider_labels_trkOffset->maximum());
2204 return m_d->
ui_col.horizontalSlider_labels_xOffset->value();
2209 return m_d->
ui_col.horizontalSlider_labels_yOffset->value();
2214 return m_d->
ui_col.horizontalSlider_labels_zOffset->value();
2218 if (!
m_d->
ui_col.groupBox_labels->isChecked())
2234 #define VP1CONTROLLERCLASSNAME TrackSystemController