diff --git a/graphics/VTI12/VTI12Plugins/VTI12WaveformPlugin/src/VP1WaveformChannel.cxx b/graphics/VTI12/VTI12Plugins/VTI12WaveformPlugin/src/VP1WaveformChannel.cxx
index 7187a1af1fc23e55c6da1a25ea44f9691e217b78..de7dda032b9eeaee1087a3e57c4015ccd615a429 100755
--- a/graphics/VTI12/VTI12Plugins/VTI12WaveformPlugin/src/VP1WaveformChannel.cxx
+++ b/graphics/VTI12/VTI12Plugins/VTI12WaveformPlugin/src/VP1WaveformChannel.cxx
@@ -14,6 +14,7 @@
 
 #include "VTI12WaveformPlugin/VP1WaveformChannel.h"
 #include "VTI12WaveformSystems/VP1WaveformSystem.h"
+#include "VTI12WaveformSystems/VP1WaveformHitSystem.h"
 #include "VP1Base/VP1QtUtils.h"
 
 VP1WaveformChannel::VP1WaveformChannel()
@@ -26,6 +27,7 @@ VP1WaveformChannel::VP1WaveformChannel()
 void VP1WaveformChannel::init()
 {
   addSystem(new VP1WaveformSystem);
+  addSystem(new VP1WaveformHitSystem);
   // addSystem(new VP1GeometrySystem);
   // if (VP1QtUtils::environmentVariableIsOn("VP1_SECOND_GEOMSYS"))
   //   addSystem(new VP1GeometrySystem(VP1GeoFlags::None,"AltGeo"),IVP13DStandardChannelWidget::StartDisabled);
diff --git a/graphics/VTI12/VTI12Systems/VTI12WaveformSystems/CMakeLists.txt b/graphics/VTI12/VTI12Systems/VTI12WaveformSystems/CMakeLists.txt
index 8dcd3e3281ab36fbcb18fe0a5bf5f8b84b2fa998..dacc9d7703d3b1fdf61aa50a4f020bf40a3ffe2e 100644
--- a/graphics/VTI12/VTI12Systems/VTI12WaveformSystems/CMakeLists.txt
+++ b/graphics/VTI12/VTI12Systems/VTI12WaveformSystems/CMakeLists.txt
@@ -18,7 +18,7 @@ set( CMAKE_AUTOMOC TRUE )
 atlas_add_library( VTI12WaveformSystems VTI12WaveformSystems/*.h src/*.cxx
    PUBLIC_HEADERS VTI12WaveformSystems
    INCLUDE_DIRS ${COIN3D_INCLUDE_DIRS} ${QT5_INCLUDE_DIRS}
-   LINK_LIBRARIES ${COIN3D_LIBRARIES} GeoPrimitives VP1Base VTI12Utils ScintRawEvent
+   LINK_LIBRARIES ${COIN3D_LIBRARIES} GeoPrimitives VP1Base VTI12Utils ScintRawEvent xAODFaserWaveform
    Qt5::Core Qt5::Gui Qt5::Charts
    PRIVATE_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}
    PRIVATE_LINK_LIBRARIES GaudiKernel VP1HEPVis )
diff --git a/graphics/VTI12/VTI12Systems/VTI12WaveformSystems/VTI12WaveformSystems/VP1WaveformHitSystem.h b/graphics/VTI12/VTI12Systems/VTI12WaveformSystems/VTI12WaveformSystems/VP1WaveformHitSystem.h
new file mode 100644
index 0000000000000000000000000000000000000000..fa0831b3f579c8c052fd3d38639da1a491888d7c
--- /dev/null
+++ b/graphics/VTI12/VTI12Systems/VTI12WaveformSystems/VTI12WaveformSystems/VP1WaveformHitSystem.h
@@ -0,0 +1,59 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef VP1WAVEFORMHITSYSTEM_H
+#define VP1WAVEFORMHITSYSTEM_H
+
+/////////////////////////////////////////////////////////////////////////
+//                                                                     //
+//  Header file for class VP1WaveformHitSystem                         //
+//                                                                     //
+//  Author: Dave Casper <dcasper@uci.edu>                              //
+//                                                                     //
+//  Initial version: August 2021                                       //
+//                                                                     //
+/////////////////////////////////////////////////////////////////////////
+
+#include "VP1Base/IVP12DSystemSimple.h"
+#include <QColor>//Fixme obsolete
+
+class VP1WaveformHitSystem : public IVP12DSystemSimple {
+
+  Q_OBJECT
+
+public:
+
+  ///////////////////
+  //  Constructor  //
+  ///////////////////
+
+  VP1WaveformHitSystem();
+
+  //////////////////////////////////////////
+  //  Reimplementations from base class:  //
+  //////////////////////////////////////////
+
+  virtual ~VP1WaveformHitSystem();
+  void buildPermanentItemCollection(StoreGateSvc* detstore, VP1GraphicsItemCollection *root);
+  void buildEventItemCollection(StoreGateSvc*, VP1GraphicsItemCollection *root);
+  void systemuncreate();
+  QWidget * buildController();
+  QByteArray saveState();
+  void restoreFromState(QByteArray ba);
+
+public slots:
+
+  void updateVetoElements(bool);
+  void updateTriggerElements(bool);
+  void updatePreshowerElements(bool);
+  void updateCalorimeterElements(bool);
+  // void updateClockElements(bool);
+  void updateTestElements(bool);
+
+private:
+  class Imp;
+  Imp * m_d;
+};
+
+#endif
diff --git a/graphics/VTI12/VTI12Systems/VTI12WaveformSystems/VTI12WaveformSystems/WaveformSysController.h b/graphics/VTI12/VTI12Systems/VTI12WaveformSystems/VTI12WaveformSystems/WaveformSysController.h
index 95db09acdb978546a777e5c9ce8cfc117b62ac97..ebb3c4c34ca693d245a300b2f47813ce738b4597 100644
--- a/graphics/VTI12/VTI12Systems/VTI12WaveformSystems/VTI12WaveformSystems/WaveformSysController.h
+++ b/graphics/VTI12/VTI12Systems/VTI12WaveformSystems/VTI12WaveformSystems/WaveformSysController.h
@@ -39,7 +39,6 @@ public:
   //  Access Methods for settings  //
   ///////////////////////////////////
 
-  //Fixme: SoGroup * drawOptions() const;
   bool vetoEnabled() const;
   bool triggerEnabled() const;
   bool preshowerEnabled() const;
diff --git a/graphics/VTI12/VTI12Systems/VTI12WaveformSystems/src/VP1WaveformHitSystem.cxx b/graphics/VTI12/VTI12Systems/VTI12WaveformSystems/src/VP1WaveformHitSystem.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..7d0c07c942414273964ffed851b27b745cca2756
--- /dev/null
+++ b/graphics/VTI12/VTI12Systems/VTI12WaveformSystems/src/VP1WaveformHitSystem.cxx
@@ -0,0 +1,402 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+
+/////////////////////////////////////////////////////////////////////////
+//                                                                     //
+//  Implementation of class VP1WaveformHitSystem                       //
+//                                                                     //
+//  Author: Dave Casper <dcasper@uci.edu>                              //
+//                                                                     //
+//  Initial version: August 2021                                       //
+//                                                                     //
+/////////////////////////////////////////////////////////////////////////
+
+#include "VTI12WaveformSystems/VP1WaveformHitSystem.h"
+#include "VTI12WaveformSystems/WaveformSysController.h"
+
+#include "VP1Base/VP1GraphicsItemCollection.h"
+#include "VP1Base/VP1Serialise.h"
+#include "VP1Base/VP1Deserialise.h"
+#include "VP1Base/VP1Msg.h"
+
+#include "StoreGate/StoreGateSvc.h"
+
+#include "xAODFaserWaveform/WaveformHitContainer.h"
+#include "xAODFaserWaveform/WaveformHit.h"
+
+#include <Inventor/nodes/SoSeparator.h>
+#include <Inventor/nodes/SoPickStyle.h>
+#include <Inventor/nodes/SoComplexity.h>
+#include <Inventor/SbVec3f.h>
+
+#include <QtCharts>
+#include <QtWidgets>
+#include <QGraphicsEllipseItem>
+
+using namespace QtCharts;
+
+#include <map>
+
+class VP1WaveformHitSystem::Imp {
+public:
+  Imp(VP1WaveformHitSystem*tc) : theclass(tc),
+			       controller(0) {}
+  VP1WaveformHitSystem *theclass;
+  WaveformSysController * controller;
+  std::vector<QChart*> vetoCharts;
+  std::vector<QChart*> triggerCharts;
+  std::vector<QChart*> preshowerCharts;
+  std::vector<QChart*> calorimeterCharts;
+  // std::vector<QChart*> clockCharts;
+  std::vector<QChart*> testCharts;
+  std::vector<QChart*> visibleCharts;
+  void fillFit(const std::vector<float>& time, std::vector<float>& fit, float peak, float mean, float width, float alpha, float n);
+  QChart* createChart(const std::vector<float>& time, const std::vector<float>& data, const std::vector<float>& spline, QGraphicsItem* parent = nullptr, const QString& title = "Default title");
+  void createCharts(StoreGateSvc* sg, VP1GraphicsItemCollection* items, bool visible, std::vector<QChart*>& list, const std::string& collectionName);
+  void getVisible(const std::vector<QChart*>& list);
+  void getVisible();
+  void layoutCharts();
+
+};
+
+//_____________________________________________________________________________________
+VP1WaveformHitSystem::VP1WaveformHitSystem()
+  : IVP12DSystemSimple("Waveform Hits",
+		       "System displaying reconstructed waveform data",
+		       "dcasper@uci.edu"), m_d(new Imp(this))
+{
+}
+
+
+//_____________________________________________________________________________________
+VP1WaveformHitSystem::~VP1WaveformHitSystem()
+{
+  delete m_d;
+}
+
+//_____________________________________________________________________________________
+QWidget * VP1WaveformHitSystem::buildController()
+{
+  m_d->controller = new WaveformSysController(this);
+
+  connect(m_d->controller,SIGNAL(vetoEnabledChanged(bool)),this,SLOT(updateVetoElements(bool)));
+  connect(m_d->controller,SIGNAL(triggerEnabledChanged(bool)),this,SLOT(updateTriggerElements(bool)));
+  connect(m_d->controller,SIGNAL(preshowerEnabledChanged(bool)),this,SLOT(updatePreshowerElements(bool)));
+  connect(m_d->controller,SIGNAL(calorimeterEnabledChanged(bool)),this,SLOT(updateCalorimeterElements(bool)));
+  // connect(m_d->controller,SIGNAL(clockEnabledChanged(bool)),this,SLOT(updateClockElements(bool)));
+  connect(m_d->controller,SIGNAL(testEnabledChanged(bool)),this,SLOT(updateTestElements(bool)));
+
+  return m_d->controller;
+}
+
+//_____________________________________________________________________________________
+void VP1WaveformHitSystem::buildEventItemCollection(StoreGateSvc* sg, VP1GraphicsItemCollection* root)
+{
+  if(VP1Msg::verbose() || true){
+    messageVerbose("buildEventItemCollection");
+  }
+
+  m_d->vetoCharts.clear();
+  m_d->triggerCharts.clear();
+  m_d->preshowerCharts.clear();
+  m_d->calorimeterCharts.clear();
+  // m_d->clockCharts.clear();
+  m_d->testCharts.clear();
+//   m_d->nCharts = 0;
+
+  m_d->createCharts(sg, root, m_d->controller->vetoEnabled(), m_d->vetoCharts, "VetoWaveformHits");
+  m_d->createCharts(sg, root, m_d->controller->triggerEnabled(), m_d->triggerCharts, "TriggerWaveformHits");
+  m_d->createCharts(sg, root, m_d->controller->preshowerEnabled(), m_d->preshowerCharts, "PreshowerWaveformHits");
+  m_d->createCharts(sg, root, m_d->controller->calorimeterEnabled(), m_d->calorimeterCharts, "CaloWaveformHits");
+  // m_d->createCharts(sg, root, m_d->controller->clockEnabled(), m_d->clockCharts, "ClockWaveforms");
+  m_d->createCharts(sg, root, m_d->controller->testEnabled(), m_d->testCharts, "TestWaveformHits");
+  
+  m_d->layoutCharts();
+}
+
+void VP1WaveformHitSystem::Imp::createCharts(StoreGateSvc* sg, 
+                                             VP1GraphicsItemCollection* items, 
+                                             bool visible, 
+                                             std::vector<QChart*>& list, 
+                                             const std::string& collectionName)
+{
+    const xAOD::WaveformHitContainer* p_container {nullptr};
+    if(sg->retrieve(p_container, collectionName)==StatusCode::SUCCESS)
+    {
+      for(xAOD::WaveformHitContainer::const_iterator i_wf=p_container->begin(); i_wf!=p_container->end(); ++i_wf)
+      {
+        const xAOD::WaveformHit* hit = (*i_wf);
+        if (hit->time_vector().size() > 0 && hit->wave_vector().size() == hit->time_vector().size())
+        {
+          QString title { collectionName.c_str() };
+          title.append(" ").append(QString::number(hit->channel()));
+
+          std::vector<float> cb;
+          if (!hit->status_bit(xAOD::WaveformStatus::CBFIT_FAILED) && hit->width() > 0 && hit->alpha() != 0 && hit->nval() != 0)
+          {
+            fillFit(hit->time_vector(), cb, hit->peak(), hit->mean(), hit->width(), hit->alpha(), hit->nval());
+          }
+          QChart* chart = createChart((*i_wf)->time_vector(), (*i_wf)->wave_vector(), cb, nullptr, title);
+
+          QFont fitFont;
+          fitFont.setPixelSize(18);
+
+          QGraphicsTextItem* meanText = new QGraphicsTextItem("Mean: " + QString::number(hit->mean(),'f',1), chart);
+          meanText->setFont(fitFont);
+          meanText->setDefaultTextColor(QRgb(0xb157fd));
+          meanText->setPos(290, 75);
+
+          QGraphicsTextItem* peakText = new QGraphicsTextItem("Peak: " + QString::number(hit->peak(),'f',1), chart);
+          peakText->setFont(fitFont);
+          peakText->setDefaultTextColor(QRgb(0xb157fd));
+          peakText->setPos(290, 100);
+
+          QGraphicsTextItem* intText = new QGraphicsTextItem("Integral: " + QString::number(hit->integral(),'f',1), chart);
+          intText->setFont(fitFont);
+          intText->setDefaultTextColor(QRgb(0xb157fd));
+          intText->setPos(290, 125);
+
+
+          chart->setVisible(visible);
+          list.push_back(chart);
+          items->addItem(chart, true, true);
+        }
+      }
+    }
+    else
+    {
+      QString errorMsg {"Unable to retrieve "};
+      theclass->message(errorMsg.append(collectionName.c_str()));
+    }
+}
+
+void VP1WaveformHitSystem::Imp::fillFit(const std::vector<float>& time, 
+                                        std::vector<float>& fit, 
+                                        float peak, 
+                                        float mean, 
+                                        float width, 
+                                        float alpha, 
+                                        float nval)
+{
+    for (size_t i = 0; i < time.size(); i++)
+    {
+      float z = (time[i] - mean)/width;
+      if (alpha < 0) z = -z;
+      if (z > -fabs(alpha))
+      {
+        fit.push_back(peak * std::exp(-z*z/2));
+      }
+      else
+      {
+        fit.push_back(peak * std::pow((nval/fabs(alpha))/(((nval/fabs(alpha)-fabs(alpha)) - z)), nval) * std::exp(-alpha*alpha/2));
+      }
+    }
+}
+
+QChart* VP1WaveformHitSystem::Imp::createChart(const std::vector<float>& times, 
+                                               const std::vector<float>& data, 
+                                               const std::vector<float>& spline,
+                                               QGraphicsItem* parent, const QString& title) 
+{
+  
+  QChart* chart = new QChart(parent);
+  QLineSeries *series = new QLineSeries();
+  // unsigned int maxEntry = 0;
+  for (size_t i = 0; i < data.size(); i++)
+  {
+      // maxEntry = std::max(maxEntry, data[i]);
+      series->append(times[i], data[i]);
+  }
+
+  QPen pen(QRgb(0xfdb157));
+  pen.setWidth(1);
+  series->setPen(pen);
+  chart->addSeries(series);
+
+  if (spline.size() == times.size())
+  {
+    QSplineSeries* fit = new QSplineSeries();
+    for (size_t i = 0; i < spline.size(); i++)
+    {
+      fit->append(times[i], spline[i]);
+    }
+    QPen fitPen(QRgb(0xb157fd));
+    fitPen.setWidth(2);
+    fit->setPen(fitPen);
+    chart->addSeries(fit);
+  }
+
+  chart->legend()->hide();
+
+  chart->createDefaultAxes();
+
+  QFont font;
+  font.setPixelSize(24);
+  chart->setTitleFont(font);
+  chart->setTitleBrush(QBrush(Qt::blue));
+  chart->setTitle(title);
+  // QValueAxis* axisX = new QValueAxis();
+  QAbstractAxis* axisX = chart->axes(Qt::Horizontal)[0];
+  QFont labelsFont;
+  labelsFont.setPixelSize(8);
+  QPen axisPen(QRgb(0xd18952));
+  axisPen.setWidth(2);
+  // axisX->setRange(times[0]-2.0, times[times.size()-1]+2.0);
+  // axisX->setTickCount(13);
+  axisX->setLabelsFont(labelsFont);
+  axisX->setLinePen(axisPen);
+  // chart->addAxis(axisX, Qt::AlignBottom);
+  // series->attachAxis(axisX);
+  // QValueAxis* axisY = new QValueAxis();
+  QAbstractAxis* axisY = chart->axes(Qt::Vertical)[0];
+  // axisY->setRange(-256, 0x4000);
+  // axisY->setTickCount(17);
+  axisY->setLabelsFont(labelsFont);
+  axisY->setLinePen(axisPen);
+  // chart->addAxis(axisY, Qt::AlignLeft);
+  // series->attachAxis(axisY);
+
+  return chart;
+}
+
+void VP1WaveformHitSystem::Imp::getVisible()
+{
+    visibleCharts.clear();
+    getVisible(vetoCharts);
+    getVisible(triggerCharts);
+    getVisible(preshowerCharts);
+    getVisible(calorimeterCharts);
+    // getVisible(clockCharts);
+    getVisible(testCharts);
+}
+
+void VP1WaveformHitSystem::Imp::getVisible(const std::vector<QChart*>& list)
+{
+    for (QChart* c : list)
+    {
+        if (c != nullptr && c->isVisible()) 
+        {
+            visibleCharts.push_back(c);
+        }
+    }
+}
+
+void VP1WaveformHitSystem::Imp::layoutCharts()
+{
+    getVisible();
+    unsigned int nVisible = visibleCharts.size();
+    if (nVisible == 0) return;
+    // unsigned int nRows = (nVisible - 1)/5 + 1;
+    for (unsigned int i = 0; i < nVisible; i++)
+    {
+        qreal x = i%6 * 550.0;
+        // qreal y = ( (i/5) - nRows ) * 550.0;
+        qreal y = ( i/6 ) * 550.0 + 550.0*2;
+        visibleCharts[i]->setGeometry(x, y, 500.0, 500.0);
+    }
+}
+
+//_____________________________________________________________________________________
+void VP1WaveformHitSystem::buildPermanentItemCollection(StoreGateSvc* /*detstore*/, VP1GraphicsItemCollection* /*root*/)
+{
+  if(VP1Msg::verbose() || true){
+    messageVerbose("buildPermanentItemCollection");
+  }
+
+}
+
+//_____________________________________________________________________________________
+void VP1WaveformHitSystem::systemuncreate()
+{
+  m_d->controller=0;
+}
+
+
+//_____________________________________________________________________________________
+QByteArray VP1WaveformHitSystem::saveState() {
+
+  if (m_d->controller == nullptr) buildController();
+
+  VP1Serialise serialise(0/*version*/,this);
+  serialise.save(IVP12DSystemSimple::saveState());
+  serialise.save(m_d->controller->saveSettings());
+  serialise.disableUnsavedChecks();//We do the testing in the controller
+  return serialise.result();
+}
+
+//_____________________________________________________________________________________
+void VP1WaveformHitSystem::restoreFromState(QByteArray ba) {
+
+  VP1Deserialise state(ba,this);
+  if (state.version() != 0) {
+    message("Warning: State data in .vp1 file is in wrong format - ignoring!");
+    state.disableUnrestoredChecks();//We do the testing in the controller
+    return;
+  }
+//   if (state.version() > 0 &&state.version()<=3) {
+//     message("Warning: State data in .vp1 file is in obsolete format - ignoring!");
+//     state.disableUnrestoredChecks();//We do the testing in the controller
+//     return;
+//   }
+  if (m_d->controller == nullptr) buildController();
+
+  IVP12DSystemSimple::restoreFromState(state.restoreByteArray());
+  m_d->controller->restoreSettings(state.restoreByteArray());
+  state.disableUnrestoredChecks();//We do the testing in the controller
+}
+
+void VP1WaveformHitSystem::updateVetoElements(bool enabled)
+{
+    for (QChart* c : m_d->vetoCharts)
+    {
+        c->setVisible(enabled);
+    }
+    m_d->layoutCharts();
+}
+
+void VP1WaveformHitSystem::updateTriggerElements(bool enabled)
+{
+    for (QChart* c : m_d->triggerCharts)
+    {
+        c->setVisible(enabled);
+    }
+    m_d->layoutCharts();
+}
+
+void VP1WaveformHitSystem::updatePreshowerElements(bool enabled)
+{
+    for (QChart* c : m_d->preshowerCharts)
+    {
+        c->setVisible(enabled);
+    }
+    m_d->layoutCharts();
+}
+
+void VP1WaveformHitSystem::updateCalorimeterElements(bool enabled)
+{
+    for (QChart* c : m_d->calorimeterCharts)
+    {
+        c->setVisible(enabled);
+    }
+    m_d->layoutCharts();
+}
+
+// void VP1WaveformHitSystem::updateClockElements(bool enabled)
+// {
+//     for (QChart* c : m_d->clockCharts)
+//     {
+//         c->setVisible(enabled);
+//     }
+//     m_d->layoutCharts();
+// }
+
+void VP1WaveformHitSystem::updateTestElements(bool enabled)
+{
+    for (QChart* c : m_d->testCharts)
+    {
+        c->setVisible(enabled);
+    }
+    m_d->layoutCharts();
+}
diff --git a/graphics/VTI12/VTI12Systems/VTI12WaveformSystems/src/VP1WaveformSystem.cxx b/graphics/VTI12/VTI12Systems/VTI12WaveformSystems/src/VP1WaveformSystem.cxx
index 90eb8b57ff201b69bdf41d295667f043b3f5a20b..5551a33cf4b50233704cc0b7d46e65a45047f399 100644
--- a/graphics/VTI12/VTI12Systems/VTI12WaveformSystems/src/VP1WaveformSystem.cxx
+++ b/graphics/VTI12/VTI12Systems/VTI12WaveformSystems/src/VP1WaveformSystem.cxx
@@ -15,15 +15,6 @@
 
 #include "VTI12WaveformSystems/VP1WaveformSystem.h"
 #include "VTI12WaveformSystems/WaveformSysController.h"
-// #include "VTI12GuideLineSystems/ProjectionSurfacesHelper.h"
-// #include "VTI12GuideLineSystems/VP1CoordinateAxes.h"
-// #include "VTI12GuideLineSystems/VP1Floor.h"
-// #include "VTI12GuideLineSystems/VP1Letters.h"
-// #include "VTI12GuideLineSystems/VP1EtaCone.h"
-// #include "VTI12GuideLineSystems/VP1CartesianGrid.h"
-// #include "VTI12GuideLineSystems/VP1CylindricalGrid.h"
-// #include "VTI12GuideLineSystems/VP1TrackingVolumes.h"
-// #include "VTI12GuideLineSystems/VP1Lines.h"
 
 #include "VP1Base/VP1GraphicsItemCollection.h"
 #include "VP1Base/VP1Serialise.h"
@@ -51,58 +42,27 @@ class VP1WaveformSystem::Imp {
 public:
   Imp(VP1WaveformSystem*tc) : theclass(tc),
 			       controller(0) {}
-			    //    coordinateaxes(0),
-			    //    floor(0),
-			    //    cartesiangrid(0),
-			    //    cylindricalgrid(0),
-			    //    letters(0),
-			    //    etacone1(0),
-			    //    etacone2(0),
-			    //    etacone3(0),
-			    //    trackingVolumes(0),
-			    //    projsurfhelper_pixel(0),
-			    //    projsurfhelper_sct(0),
-			    //    projsurfhelper_trt(0),
-			    //    lastemit_pixel(InDetProjFlags::NoProjections),
-			    //    lastemit_sct(InDetProjFlags::NoProjections),
-			    //    lastemit_trt(InDetProjFlags::NoProjections) {}
   VP1WaveformSystem *theclass;
   WaveformSysController * controller;
-  int nCharts {0};
   std::vector<QChart*> vetoCharts;
   std::vector<QChart*> triggerCharts;
   std::vector<QChart*> preshowerCharts;
   std::vector<QChart*> calorimeterCharts;
   std::vector<QChart*> clockCharts;
   std::vector<QChart*> testCharts;
+  std::vector<QChart*> visibleCharts;
   QChart* createChart(const std::vector<unsigned int>& data, QGraphicsItem* parent = nullptr, const QString& title = "Default title");
   void createCharts(StoreGateSvc* sg, VP1GraphicsItemCollection* items, bool visible, std::vector<QChart*>& list, const std::string& collectionName);
-//   VP1CoordinateAxes * coordinateaxes;
-//   VP1Floor * floor;
-//   VP1CartesianGrid * cartesiangrid;
-//   VP1CylindricalGrid * cylindricalgrid;
-//   VP1Letters * letters;
-//   VP1EtaCone * etacone1;
-//   VP1EtaCone * etacone2;
-//   VP1EtaCone * etacone3;
-//   VP1TrackingVolumes * trackingVolumes;
-//   VP1Lines * lines;
-
-//   ProjectionSurfacesHelper * projsurfhelper_pixel;
-//   ProjectionSurfacesHelper * projsurfhelper_sct;
-//   ProjectionSurfacesHelper * projsurfhelper_trt;
-//   InDetProjFlags::InDetProjPartsFlags lastemit_pixel;
-//   InDetProjFlags::InDetProjPartsFlags lastemit_sct;
-//   InDetProjFlags::InDetProjPartsFlags lastemit_trt;
-
-  //For knowing which ID parts are used by data systems:
-//   std::map<QObject*,InDetProjFlags::DetTypeFlags> sender2iddettypeswithprojs;
+  void getVisible(const std::vector<QChart*>& list);
+  void getVisible();
+  void layoutCharts();
+
 };
 
 //_____________________________________________________________________________________
 VP1WaveformSystem::VP1WaveformSystem()
-  : IVP12DSystemSimple("Waveforms",
-		       "System displaying waveform data",
+  : IVP12DSystemSimple("Raw Waveforms",
+		       "System displaying raw waveform data",
 		       "dcasper@uci.edu"), m_d(new Imp(this))
 {
 }
@@ -142,7 +102,7 @@ void VP1WaveformSystem::buildEventItemCollection(StoreGateSvc* sg, VP1GraphicsIt
   m_d->calorimeterCharts.clear();
   m_d->clockCharts.clear();
   m_d->testCharts.clear();
-  m_d->nCharts = 0;
+//   m_d->nCharts = 0;
 
   m_d->createCharts(sg, root, m_d->controller->vetoEnabled(), m_d->vetoCharts, "VetoWaveforms");
   m_d->createCharts(sg, root, m_d->controller->triggerEnabled(), m_d->triggerCharts, "TriggerWaveforms");
@@ -151,6 +111,7 @@ void VP1WaveformSystem::buildEventItemCollection(StoreGateSvc* sg, VP1GraphicsIt
   m_d->createCharts(sg, root, m_d->controller->clockEnabled(), m_d->clockCharts, "ClockWaveforms");
   m_d->createCharts(sg, root, m_d->controller->testEnabled(), m_d->testCharts, "TestWaveforms");
   
+  m_d->layoutCharts();
 }
 
 void VP1WaveformSystem::Imp::createCharts(StoreGateSvc* sg, 
@@ -189,7 +150,6 @@ QChart* VP1WaveformSystem::Imp::createChart(const std::vector<unsigned int>& dat
   
   QChart* chart = new QChart(parent);
   QLineSeries *series = new QLineSeries();
-//   *series << QPointF(0, 6) << QPointF(9, 4) << QPointF(15, 20) << QPointF(25, 12) << QPointF(29, 26);
   unsigned int maxEntry = 0;
   for (size_t i = 0; i < data.size(); i++)
   {
@@ -213,190 +173,73 @@ QChart* VP1WaveformSystem::Imp::createChart(const std::vector<unsigned int>& dat
   labelsFont.setPixelSize(8);
   QPen axisPen(QRgb(0xd18952));
   axisPen.setWidth(2);
-  axisX->setRange(0, data.size()-1);
-  axisX->setTickCount(10);
+  axisX->setRange(0, data.size());
+  axisX->setTickCount(13);
   axisX->setLabelsFont(labelsFont);
   axisX->setLinePen(axisPen);
   chart->addAxis(axisX, Qt::AlignBottom);
+  series->attachAxis(axisX);
   QValueAxis* axisY = new QValueAxis();
-  axisY->setRange(0, maxEntry);
-  axisY->setTickCount(8);
+  axisY->setRange(0, 0x4000);
+  axisY->setTickCount(9);
   axisY->setLabelsFont(labelsFont);
   axisY->setLinePen(axisPen);
   chart->addAxis(axisY, Qt::AlignLeft);
-//   chart->resize(500,500);
-
-  qreal x = (nCharts%5) * 550;
-  qreal y = (nCharts/5) * 550;
+  series->attachAxis(axisY);
 
-  chart->setGeometry(x, y, 500, 500);
-  nCharts++;
   return chart;
 }
 
+void VP1WaveformSystem::Imp::getVisible()
+{
+    visibleCharts.clear();
+    getVisible(vetoCharts);
+    getVisible(triggerCharts);
+    getVisible(preshowerCharts);
+    getVisible(calorimeterCharts);
+    getVisible(clockCharts);
+    getVisible(testCharts);
+}
+
+void VP1WaveformSystem::Imp::getVisible(const std::vector<QChart*>& list)
+{
+    for (QChart* c : list)
+    {
+        if (c != nullptr && c->isVisible()) 
+        {
+            visibleCharts.push_back(c);
+        }
+    }
+}
+
+void VP1WaveformSystem::Imp::layoutCharts()
+{
+    getVisible();
+    unsigned int nVisible = visibleCharts.size();
+    std::cout << "Laying out " << nVisible << " raw hits" << std::endl;
+    if (nVisible == 0) return;
+    // unsigned int nRows = (nVisible - 1)/5 + 1;
+    for (unsigned int i = 0; i < nVisible; i++)
+    {
+        qreal x = i%6 * 550.0;
+        // qreal y = ( (i/5) - nRows ) * 550.0;
+        qreal y = ( i/6 ) * 550.0;
+        visibleCharts[i]->setGeometry(x, y, 500.0, 500.0);
+    }
+}
+
 //_____________________________________________________________________________________
 void VP1WaveformSystem::buildPermanentItemCollection(StoreGateSvc* /*detstore*/, VP1GraphicsItemCollection* /*root*/)
 {
   if(VP1Msg::verbose() || true){
     messageVerbose("buildPermanentItemCollection");
   }
-//   //No guidelines are pickable:
-//   SoPickStyle *pickStyle = new SoPickStyle;
-//   pickStyle->style=SoPickStyle::UNPICKABLE;
-//   root->addChild(pickStyle);
-
-//   //High complexity val for eta cones:
-//   SoComplexity * complexity = new SoComplexity;
-//   complexity->value.setValue(2.0f);
-//   root->addChild(complexity);
-
-//   //Floor:
-//   m_d->floor = new VP1Floor(root,this);
-//   connect(m_d->controller,SIGNAL(floorExtentChanged(const double&)),m_d->floor,SLOT(setExtent(const double&)));
-//   m_d->floor->setExtent(m_d->controller->floorExtent());
-//   connect(m_d->controller,SIGNAL(floorSpacingChanged(const double&)),m_d->floor,SLOT(setSpacing(const double&)));
-//   m_d->floor->setSpacing(m_d->controller->floorSpacing());
-//   connect(m_d->controller,SIGNAL(floorHeightChanged(const double&)),m_d->floor,SLOT(setVerticalPosition(const double&)));
-//   m_d->floor->setVerticalPosition(m_d->controller->floorHeight());
-//   connect(m_d->controller,SIGNAL(floorColourAndTranspChanged( const SbColor4f&)),m_d->floor,SLOT(setColourAndTransp(const SbColor4f&)));
-//   m_d->floor->setColourAndTransp(m_d->controller->floorColourAndTransp());
-//   connect(m_d->controller,SIGNAL(showFloorChanged(bool)),m_d->floor,SLOT(setShown(bool)));
-//   m_d->floor->setShown(m_d->controller->showFloor());
-
-//   //CartesianGrid:
-//   m_d->cartesiangrid = new VP1CartesianGrid(root,this);
-//   connect(m_d->controller,SIGNAL(gridExtentChanged(const double&)),m_d->cartesiangrid,SLOT(setExtent(const double&)));
-//   m_d->cartesiangrid->setExtent(m_d->controller->gridExtent());
-//   connect(m_d->controller,SIGNAL(gridSpacingChanged(const double&)),m_d->cartesiangrid,SLOT(setSpacing(const double&)));
-//   m_d->cartesiangrid->setSpacing(m_d->controller->gridSpacing());
-//   connect(m_d->controller,SIGNAL(gridColourAndTranspChanged( const SbColor4f&)),m_d->cartesiangrid,SLOT(setColourAndTransp(const SbColor4f&)));
-//   m_d->cartesiangrid->setColourAndTransp(m_d->controller->gridColourAndTransp());
-//   connect(m_d->controller,SIGNAL(showCartesianGridChanged(bool)),m_d->cartesiangrid,SLOT(setShown(bool)));
-//   m_d->cartesiangrid->setShown(m_d->controller->showCartesianGrid());
-
-//   //CylindricalGrid:
-//   m_d->cylindricalgrid = new VP1CylindricalGrid(root,this);
-//   connect(m_d->controller,SIGNAL(gridExtentChanged(const double&)),m_d->cylindricalgrid,SLOT(setExtent(const double&)));
-//   m_d->cylindricalgrid->setExtent(m_d->controller->gridExtent());
-//   connect(m_d->controller,SIGNAL(gridSpacingChanged(const double&)),m_d->cylindricalgrid,SLOT(setSpacing(const double&)));
-//   m_d->cylindricalgrid->setSpacing(m_d->controller->gridSpacing());
-//   connect(m_d->controller,SIGNAL(gridColourAndTranspChanged( const SbColor4f&)),m_d->cylindricalgrid,SLOT(setColourAndTransp(const SbColor4f&)));
-//   m_d->cylindricalgrid->setColourAndTransp(m_d->controller->gridColourAndTransp());
-//   connect(m_d->controller,SIGNAL(showCylindricalGridChanged(bool)),m_d->cylindricalgrid,SLOT(setShown(bool)));
-//   m_d->cylindricalgrid->setShown(m_d->controller->showCylindricalGrid());
-
-//   //Letters:
-//   m_d->letters = new VP1Letters(m_d->controller->lettersMaterial(),root,this);
-//   connect(m_d->controller,SIGNAL(lettersZPosChanged(const double&)),m_d->letters,SLOT(setZPos(const double&)));
-//   m_d->letters->setZPos(m_d->controller->lettersZPos());
-//   connect(m_d->controller,SIGNAL(lettersVerticalPosChanged(const double&)),m_d->letters,SLOT(setVerticalPosition(const double&)));
-//   m_d->letters->setVerticalPosition(m_d->controller->lettersVerticalPos());
-//   connect(m_d->controller,SIGNAL(showLettersChanged(bool)),m_d->letters,SLOT(setShown(bool)));
-//   m_d->letters->setShown(m_d->controller->showLetters());
-
-//   //Coordinate axes:
-//   m_d->coordinateaxes = new VP1CoordinateAxes(m_d->controller->xAxisMaterial(),
-// 					    m_d->controller->yAxisMaterial(),
-// 					    m_d->controller->zAxisMaterial(),
-// 					    root,this);
-//   connect(m_d->controller,SIGNAL(axesLengthChanged(const double&)),m_d->coordinateaxes,SLOT(setLength(const double&)));
-//   m_d->coordinateaxes->setLength(m_d->controller->axesLength());
-//   connect(m_d->controller,SIGNAL(axesPositionChanged(const SbVec3f&)),m_d->coordinateaxes,SLOT(setPosition(const SbVec3f&)));
-//   m_d->coordinateaxes->setPosition(m_d->controller->axesPosition());
-//   connect(m_d->controller,SIGNAL(relAxesThicknessChanged(const double&)),m_d->coordinateaxes,SLOT(setRelativeAxisThickness(const double&)));
-//   m_d->coordinateaxes->setRelativeAxisThickness(m_d->controller->relAxesThickness());
-//   connect(m_d->controller,SIGNAL(showAxesChanged(bool)),m_d->coordinateaxes,SLOT(setShown(bool)));
-//   m_d->coordinateaxes->setShown(m_d->controller->showAxes());
-
-//   //Eta cones:
-//   m_d->etacone1 = new VP1EtaCone(m_d->controller->etaCone1Material(),root,this);
-//   connect(m_d->controller,SIGNAL(etaExtentChanged(const double&)),m_d->etacone1,SLOT(setExtent(const double&)));
-//   m_d->etacone1->setExtent(m_d->controller->etaExtent());
-//   connect(m_d->controller,SIGNAL(etaConeValue1Changed(const double&)),m_d->etacone1,SLOT(setEtaValue(const double&)));
-//   m_d->etacone1->setEtaValue(m_d->controller->etaConeValue1());
-//   connect(m_d->controller,SIGNAL(showEtaCone1Changed(bool)),m_d->etacone1,SLOT(setShown(bool)));
-//   m_d->etacone1->setShown(m_d->controller->showEtaCone1());
-
-//   m_d->etacone2 = new VP1EtaCone(m_d->controller->etaCone2Material(),root,this);
-//   connect(m_d->controller,SIGNAL(etaExtentChanged(const double&)),m_d->etacone2,SLOT(setExtent(const double&)));
-//   m_d->etacone2->setExtent(m_d->controller->etaExtent());
-//   connect(m_d->controller,SIGNAL(etaConeValue2Changed(const double&)),m_d->etacone2,SLOT(setEtaValue(const double&)));
-//   m_d->etacone2->setEtaValue(m_d->controller->etaConeValue2());
-//   connect(m_d->controller,SIGNAL(showEtaCone2Changed(bool)),m_d->etacone2,SLOT(setShown(bool)));
-//   m_d->etacone2->setShown(m_d->controller->showEtaCone2());
-
-//   m_d->etacone3 = new VP1EtaCone(m_d->controller->etaCone3Material(),root,this);
-//   connect(m_d->controller,SIGNAL(etaExtentChanged(const double&)),m_d->etacone3,SLOT(setExtent(const double&)));
-//   m_d->etacone3->setExtent(m_d->controller->etaExtent());
-//   connect(m_d->controller,SIGNAL(etaConeValue3Changed(const double&)),m_d->etacone3,SLOT(setEtaValue(const double&)));
-//   m_d->etacone3->setEtaValue(m_d->controller->etaConeValue3());
-//   connect(m_d->controller,SIGNAL(showEtaCone3Changed(bool)),m_d->etacone3,SLOT(setShown(bool)));
-//   m_d->etacone3->setShown(m_d->controller->showEtaCone3());
-
-// 	//Tracking Volumes:
-// 	m_d->trackingVolumes = new VP1TrackingVolumes(m_d->controller->idTrkVolumesMaterial(),
-//                                               m_d->controller->caloTrkVolumesMaterial(),
-//                                               m_d->controller->msTrkVolumesMaterial(),
-//                                               m_d->controller->showInnerDetector(),
-//                                               m_d->controller->showCalorimeters(),
-//                                               m_d->controller->showMuonSpectrometer(),
-//                                               root,this);
-// 	connect(m_d->controller,SIGNAL(showTrackingVolumesChanged(bool)),m_d->trackingVolumes,SLOT(setShown(bool)));
-// 	connect(m_d->controller,SIGNAL(showInnerDetectorChanged(bool)),m_d->trackingVolumes,SLOT(setShownID(bool)));
-// 	connect(m_d->controller,SIGNAL(showCalorimetersChanged(bool)),m_d->trackingVolumes,SLOT(setShownCalo(bool)));
-// 	connect(m_d->controller,SIGNAL(showMuonSpectrometerChanged(bool)),m_d->trackingVolumes,SLOT(setShownMS(bool)));
-// 	m_d->trackingVolumes->setShown(m_d->controller->showTrackingVolumes());	
-  
-//   //Lines
-//   m_d->lines = new VP1Lines(root, this);
-//   connect(m_d->controller,SIGNAL(showLinesChanged(bool)),m_d->lines,SLOT(setShown(bool)));
-// 	m_d->lines->setShown(m_d->controller->showLines());	
-//   connect(m_d->controller,SIGNAL(lineDirectionChanged(const SbVec3f&)),m_d->lines,SLOT(setDirection(const SbVec3f&)));
-//   m_d->lines->setDirection(m_d->controller->lineDirection());  
-  
-//   SoSeparator * projsep = new SoSeparator;
-//   root->addChild(projsep);
-
-//   m_d->projsurfhelper_pixel = ProjectionSurfacesHelper::createPixelHelper(m_d->controller->pixelProjSurfMaterial(),projsep,this,this);
-//   m_d->projsurfhelper_sct = ProjectionSurfacesHelper::createSCTHelper(m_d->controller->sctProjSurfMaterial(),projsep,this,this);
-//   m_d->projsurfhelper_trt = ProjectionSurfacesHelper::createTRTHelper(m_d->controller->trtProjSurfMaterial(),projsep,this,this);
-
-//   connect(m_d->controller,SIGNAL(shownPixelProjSurfacesChanged(InDetProjFlags::InDetProjPartsFlags)),
-// 	  m_d->projsurfhelper_pixel,SLOT(setSurfaces(InDetProjFlags::InDetProjPartsFlags)));
-//   m_d->projsurfhelper_pixel->setSurfaces(m_d->controller->shownPixelProjSurfaces());
-
-//   connect(m_d->controller,SIGNAL(shownSCTProjSurfacesChanged(InDetProjFlags::InDetProjPartsFlags)),
-// 	  m_d->projsurfhelper_sct,SLOT(setSurfaces(InDetProjFlags::InDetProjPartsFlags)));
-//   m_d->projsurfhelper_sct->setSurfaces(m_d->controller->shownSCTProjSurfaces());
-
-//   connect(m_d->controller,SIGNAL(shownTRTProjSurfacesChanged(InDetProjFlags::InDetProjPartsFlags)),
-// 	  m_d->projsurfhelper_trt,SLOT(setSurfaces(InDetProjFlags::InDetProjPartsFlags)));
-//   m_d->projsurfhelper_trt->setSurfaces(m_d->controller->shownTRTProjSurfaces());
 
-//   connect(m_d->controller,SIGNAL(applicablePixelProjPartsChanged(InDetProjFlags::InDetProjPartsFlags)),this,SLOT(possiblyEmit_ApplicableProjectionsChanged()));
-//   connect(m_d->controller,SIGNAL(applicableSCTProjPartsChanged(InDetProjFlags::InDetProjPartsFlags)),this,SLOT(possiblyEmit_ApplicableProjectionsChanged()));
-//   connect(m_d->controller,SIGNAL(applicableTRTProjPartsChanged(InDetProjFlags::InDetProjPartsFlags)),this,SLOT(possiblyEmit_ApplicableProjectionsChanged()));
-
-//   possiblyEmit_ApplicableProjectionsChanged();//fixme; late enough??? Problem with new delayed init: until guides are enabled, proper projections won't be known!!
-//   //Thus, the channel should call this slot explicitly after making all connections!!!
 }
 
 //_____________________________________________________________________________________
 void VP1WaveformSystem::systemuncreate()
 {
-//   delete m_d->coordinateaxes; m_d->coordinateaxes = 0;
-//   delete m_d->floor; m_d->floor = 0;
-//   delete m_d->cartesiangrid; m_d->cartesiangrid = 0;
-//   delete m_d->cylindricalgrid; m_d->cylindricalgrid = 0;
-//   delete m_d->letters; m_d->letters = 0;
-//   delete m_d->etacone1; m_d->etacone1 = 0;
-//   delete m_d->etacone2; m_d->etacone2 = 0;
-//   delete m_d->etacone3; m_d->etacone3 = 0;
-//   delete m_d->projsurfhelper_pixel; m_d->projsurfhelper_pixel = 0;
-//   delete m_d->projsurfhelper_sct; m_d->projsurfhelper_sct = 0;
-//   delete m_d->projsurfhelper_trt; m_d->projsurfhelper_trt = 0;
-//   delete m_d->trackingVolumes; m_d->trackingVolumes = 0;
-
   m_d->controller=0;
 }
 
@@ -440,6 +283,7 @@ void VP1WaveformSystem::updateVetoElements(bool enabled)
     {
         c->setVisible(enabled);
     }
+    m_d->layoutCharts();
 }
 
 void VP1WaveformSystem::updateTriggerElements(bool enabled)
@@ -448,6 +292,7 @@ void VP1WaveformSystem::updateTriggerElements(bool enabled)
     {
         c->setVisible(enabled);
     }
+    m_d->layoutCharts();
 }
 
 void VP1WaveformSystem::updatePreshowerElements(bool enabled)
@@ -456,6 +301,7 @@ void VP1WaveformSystem::updatePreshowerElements(bool enabled)
     {
         c->setVisible(enabled);
     }
+    m_d->layoutCharts();
 }
 
 void VP1WaveformSystem::updateCalorimeterElements(bool enabled)
@@ -464,6 +310,7 @@ void VP1WaveformSystem::updateCalorimeterElements(bool enabled)
     {
         c->setVisible(enabled);
     }
+    m_d->layoutCharts();
 }
 
 void VP1WaveformSystem::updateClockElements(bool enabled)
@@ -472,6 +319,7 @@ void VP1WaveformSystem::updateClockElements(bool enabled)
     {
         c->setVisible(enabled);
     }
+    m_d->layoutCharts();
 }
 
 void VP1WaveformSystem::updateTestElements(bool enabled)
@@ -480,42 +328,5 @@ void VP1WaveformSystem::updateTestElements(bool enabled)
     {
         c->setVisible(enabled);
     }
+    m_d->layoutCharts();
 }
-
-//_____________________________________________________________________________________
-// void VP1GuideLineSystem::setIDDetTypesUsingProjections( InDetProjFlags::DetTypeFlags f )
-// {
-//   ensureBuildController();
-//   if (!m_d->controller)
-//     return;//if receiving signals after uncreate
-//   if(VP1Msg::verbose()){
-//     messageVerbose("Signal received in setIDDetTypesUsingProjections("+str(f)+") slot (from "
-//   		 +QString(sender()?sender()->objectName():"NULL sender")+")");
-//   }
-//   m_d->sender2iddettypeswithprojs[sender()] = f;
-//   InDetProjFlags::DetTypeFlags used(InDetProjFlags::NoDet);
-//   std::map<QObject*,InDetProjFlags::DetTypeFlags>::iterator it, itE = m_d->sender2iddettypeswithprojs.end();
-//   for (it=m_d->sender2iddettypeswithprojs.begin();it!=itE;++it)
-//     used |= it->second;
-//   m_d->controller->setInDetDetTypesUsingProjections(used);
-// }
-
-// //_____________________________________________________________________________________
-// void VP1GuideLineSystem::possiblyEmit_ApplicableProjectionsChanged()
-// {
-//   ensureBuildController();
-//   if (!m_d->controller)
-//     return;//if receiving signals after uncreate
-//   InDetProjFlags::InDetProjPartsFlags new_pixel = m_d->controller->applicablePixelProjParts();
-//   InDetProjFlags::InDetProjPartsFlags new_sct = m_d->controller->applicableSCTProjParts();
-//   InDetProjFlags::InDetProjPartsFlags new_trt = m_d->controller->applicableTRTProjParts();
-//   if (m_d->lastemit_pixel==new_pixel&&m_d->lastemit_sct==new_sct&&m_d->lastemit_trt==new_trt)
-//     return;
-//   m_d->lastemit_pixel=new_pixel;
-//   m_d->lastemit_sct=new_sct;
-//   m_d->lastemit_trt=new_trt;
-//   if(VP1Msg::verbose()){
-//     messageVerbose("Emitting applicableProjectionsChanged("+str(m_d->lastemit_pixel)+", "+str(m_d->lastemit_sct)+", "+str(m_d->lastemit_trt)+")");
-//   }
-//   emit applicableProjectionsChanged( m_d->lastemit_pixel,m_d->lastemit_sct,m_d->lastemit_trt );
-// }
diff --git a/graphics/VTI12/VTI12Systems/VTI12WaveformSystems/src/WaveformSysController.cxx b/graphics/VTI12/VTI12Systems/VTI12WaveformSystems/src/WaveformSysController.cxx
index 17702c4ed548b83326b1223c83e30d70e1d403cc..765ce0d4d702245b2c2733f4003824b21a150ba2 100644
--- a/graphics/VTI12/VTI12Systems/VTI12WaveformSystems/src/WaveformSysController.cxx
+++ b/graphics/VTI12/VTI12Systems/VTI12WaveformSystems/src/WaveformSysController.cxx
@@ -16,14 +16,7 @@
 
 #include "VTI12WaveformSystems/WaveformSysController.h"
 #include "ui_waveformcontrollerform.h"
-// #include "ui_guidelinescontrollerform.h"
-// #include "ui_guides_settings_coordinateaxes_form.h"
-// #include "ui_guides_settings_etacones_form.h"
-// #include "ui_guides_settings_floorandletters_form.h"
-// #include "ui_guides_settings_grid_form.h"
-// #include "ui_guides_settings_idprojsurfs_form.h"
-// #include "ui_guides_settings_trkvolumes_form.h"
-// #include "ui_guides_settings_lines_form.h"
+
 #include "VP1Base/VP1Serialise.h"
 #include "VP1Base/VP1Deserialise.h"
 
@@ -44,15 +37,6 @@ public:
   WaveformSysController * theclass;
   Ui::VP1WaveformControllerForm ui;
 
-  // Ui::VP1GuidesControllerForm ui;
-  // Ui::VP1GuidesSysSettingsCoordinateAxesForm ui_axes;
-  // Ui::VP1GuidesSysSettingsEtaConeForm ui_etacones;
-  // Ui::VP1GuidesSysSettingsFloorAndLettersForm ui_floorandletters;
-  // Ui::VP1GuidesSysSettingsGridForm ui_grid;
-  // Ui::VP1GuidesSysSettingsIDProjSurfsForm ui_idprojsurfs;
-  // Ui::VP1TrackingVolumesForm ui_trkvolumes;
-  // Ui::VP1LinesForm ui_lines;
-
   static SbColor4f color4f(const QColor& col, int transp_int) {
     return SbColor4f(std::max<float>(0.0f,std::min<float>(1.0f,col.redF())),
 		     std::max<float>(0.0f,std::min<float>(1.0f,col.greenF())),
@@ -66,38 +50,6 @@ public:
   bool last_calorimeterEnabled;
   bool last_clockEnabled;
   bool last_testEnabled;
-  // bool last_showFloor;
-  // SbColor4f last_floorColourAndTransp;
-  // double last_floorExtent;
-  // double last_floorSpacing;
-  // double last_floorHeight;
-  // bool last_showLetters;
-  // double last_lettersZPos;
-  // double last_lettersVerticalPos;
-  // bool last_showAxes;
-  // double last_axesLength;
-  // SbVec3f last_axesPosition;
-  // double last_relAxesThickness;
-  // bool last_showCartesianGrid;
-  // bool last_showCylindricalGrid;
-  // SbColor4f last_gridColourAndTransp;
-  // double last_gridSpacing;
-  // double last_gridExtent;
-  // bool last_showEtaCone1;
-  // bool last_showEtaCone2;
-  // bool last_showEtaCone3;
-  // double last_etaConeValue1;
-  // double last_etaConeValue2;
-  // double last_etaConeValue3;
-  // double last_etaExtent;
-  // bool last_showTrackingVolumes;
-  // bool last_showInnerDetector;
-  // bool last_showCalorimeters;
-  // bool last_showMuonSpectrometer;
-  // bool last_showLines;
-  // SbVec3f last_lineDirection;
-  // double last_line_eta; // This is needed to update the display in possibleChange_lineDirection
-
 };
 
 //____________________________________________________________________
@@ -107,228 +59,6 @@ WaveformSysController::WaveformSysController(IVP1System * sys)
   m_d->theclass = this;
   m_d->ui.setupUi(this);
 
-  // initDialog(m_d->ui_axes, m_d->ui.pushButton_settings_coordinateAxes,m_d->ui.checkBox_coordinateAxes);
-  // initDialog(m_d->ui_etacones, m_d->ui.pushButton_settings_etaCones,m_d->ui.checkBox_etaCones);
-  // initDialog(m_d->ui_floorandletters, m_d->ui.pushButton_settings_floorAndLetters,m_d->ui.checkBox_floorAndLetters);
-  // initDialog(m_d->ui_grid, m_d->ui.pushButton_settings_grid,m_d->ui.checkBox_grid);
-  // initDialog(m_d->ui_idprojsurfs, m_d->ui.pushButton_settings_inDetProjSurfs,m_d->ui.checkBox_inDetProjSurfs);
-  // initDialog(m_d->ui_trkvolumes, m_d->ui.pushButton_settings_trkVolumes,m_d->ui.checkBox_trkVolumes);
-  // initDialog(m_d->ui_lines, m_d->ui.pushButton_settings_lines,m_d->ui.checkBox_lines);
-
-  //Hide SCT/Pixel projection surface controls for now:
-  // m_d->ui_idprojsurfs.groupBox_pixelproj->setVisible(false);
-  // m_d->ui_idprojsurfs.groupBox_sctproj->setVisible(false);
-
-  //Since we have different logical groups of radio buttons inside
-  //same groupboxes, we make sure they are coordinated correctly:
-
-  // QButtonGroup * pixelproj_barrel_radiogroup = defineRadioButtonGroup(m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_inner,
-	// 							      m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_outer,
-	// 							      m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_both);
-  // m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_inner->setChecked(true);
-  // QButtonGroup * pixelproj_endcap_radiogroup = defineRadioButtonGroup(m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_inner,
-	// 							      m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_outer,
-	// 							      m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_both);
-  // m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_inner->setChecked(true);
-
-
-  // QButtonGroup * sctproj_barrel_radiogroup = defineRadioButtonGroup(m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_inner,
-	// 							    m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_outer,
-	// 							    m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_both);
-  // m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_inner->setChecked(true);
-  // QButtonGroup * sctproj_endcap_radiogroup = defineRadioButtonGroup(m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_inner,
-	// 							    m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_outer,
-	// 							    m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_both);
-  // m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_inner->setChecked(true);
-
-
-  // QButtonGroup * trtproj_barrel_radiogroup = defineRadioButtonGroup(m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_inner,
-	// 							    m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_outer,
-	// 							    m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_both);
-  // m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_inner->setChecked(true);
-  // QButtonGroup * trtproj_endcap_radiogroup = defineRadioButtonGroup(m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_inner,
-	// 							    m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_outer,
-	// 							    m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_both);
-  // m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_inner->setChecked(true);
-
-  //Setup material buttons:
-  // m_d->ui_floorandletters.colorButton_floor->setColor(QColor::fromRgbF(0.5,0.5,0.5));
-  // m_d->ui_grid.colorButton_grid->setColor(QColor::fromRgbF(1.0,1.0,1.0));
-  // m_d->ui_floorandletters.matButton_letters->setMaterial(VP1MaterialButton::createMaterial(0.5,0.5,0.5,0.1));
-  // m_d->ui_axes.matButton_axes_x->setMaterial(VP1MaterialButton::createMaterial(1,0,0,0.15));
-  // m_d->ui_axes.matButton_axes_y->setMaterial(VP1MaterialButton::createMaterial(0,1,0,0.15));
-  // m_d->ui_axes.matButton_axes_z->setMaterial(VP1MaterialButton::createMaterial(0,0,2,0.15));
-  // m_d->ui_etacones.matButton_etaCone1->setMaterial(VP1MaterialButton::createMaterial(1,1,0,0.2,0.5));
-  // m_d->ui_etacones.matButton_etaCone2->setMaterial(VP1MaterialButton::createMaterial(1,0.56471,0.20784,0.2,0.5));
-  // m_d->ui_etacones.matButton_etaCone3->setMaterial(VP1MaterialButton::createMaterial(1,0.15686,0.08235,0.2,0.5));
-  // m_d->ui_idprojsurfs.pushButton_projsurfmaterial_pixel->setMaterial(VP1MaterialButton::createMaterial(126/255.0, 194/255.0, 204/255.0,0.05,0.35));
-  // m_d->ui_idprojsurfs.pushButton_projsurfmaterial_sct->setMaterial(VP1MaterialButton::createMaterial(126/255.0, 194/255.0, 204/255.0,0.05,0.35));
-  // m_d->ui_idprojsurfs.pushButton_projsurfmaterial_trt->setMaterial(VP1MaterialButton::createMaterial(126/255.0, 194/255.0, 204/255.0,0.05,0.35));
-  // m_d->ui_trkvolumes.matButton_ID->setMaterial(VP1MaterialButton::createMaterial(1,0,0,0.15));
-  // m_d->ui_trkvolumes.matButton_Calo->setMaterial(VP1MaterialButton::createMaterial(0,1,0,0.15));
-  // m_d->ui_trkvolumes.matButton_MS->setMaterial(VP1MaterialButton::createMaterial(0,0,2,0.15));
-	
-  /////////////////////////////////////////////////////////////////////////////////////////////////////////////
-  //  Setup connections which monitor changes in the controller so that we may emit signals as appropriate:  //
-  /////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-  // addUpdateSlot(SLOT(possibleChange_showFloor()));
-  // connectToLastUpdateSlot(m_d->ui.checkBox_floorAndLetters);
-  // connectToLastUpdateSlot(m_d->ui_floorandletters.checkBox_floorenabled);
-
-  // addUpdateSlot(SLOT(possibleChange_floorColourAndTransp()));
-  // connectToLastUpdateSlot(m_d->ui_floorandletters.colorButton_floor);
-  // connectToLastUpdateSlot(m_d->ui_floorandletters.spinBox_floortransp);
-
-  // addUpdateSlot(SLOT(possibleChange_floorExtent()));
-  // connectToLastUpdateSlot(m_d->ui_floorandletters.doubleSpinBox_floorextent);
-
-  // addUpdateSlot(SLOT(possibleChange_floorSpacing()));
-  // connectToLastUpdateSlot(m_d->ui_floorandletters.doubleSpinBox_floorspacing);
-
-  // addUpdateSlot(SLOT(possibleChange_floorHeight()));
-  // connectToLastUpdateSlot(m_d->ui_floorandletters.doubleSpinBox_floorheight);
-
-  // addUpdateSlot(SLOT(possibleChange_showLetters()));
-  // connectToLastUpdateSlot(m_d->ui.checkBox_floorAndLetters);
-  // connectToLastUpdateSlot(m_d->ui_floorandletters.checkBox_acdesignations);
-
-  // addUpdateSlot(SLOT(possibleChange_lettersZPos()));
-  // connectToLastUpdateSlot(this,SIGNAL(floorExtentChanged(const double&)));
-  // connectToLastUpdateSlot(this,SIGNAL(floorSpacingChanged(const double&)));
-
-  // addUpdateSlot(SLOT(possibleChange_lettersVerticalPos()));
-  // connectToLastUpdateSlot(this,SIGNAL(floorHeightChanged(const double&)));
-
-  // addUpdateSlot(SLOT(possibleChange_showAxes()));
-  // connectToLastUpdateSlot(m_d->ui.checkBox_coordinateAxes);
-
-  // addUpdateSlot(SLOT(possibleChange_axesLength()));
-  // connectToLastUpdateSlot(m_d->ui_axes.checkBox_axes_shownegativeparts);
-  // connectToLastUpdateSlot(m_d->ui_axes.doubleSpinBox_axes_lengths_m);
-
-  // addUpdateSlot(SLOT(possibleChange_axesPosition()));
-  // connectToLastUpdateSlot(m_d->ui_axes.doubleSpinBox_axes_xpos_m);
-  // connectToLastUpdateSlot(m_d->ui_axes.doubleSpinBox_axes_ypos_m);
-  // connectToLastUpdateSlot(m_d->ui_axes.doubleSpinBox_axes_zpos_m);
-
-  // addUpdateSlot(SLOT(possibleChange_relAxesThickness()));
-  // connectToLastUpdateSlot(m_d->ui_axes.doubleSpinBox_axes_relthickness);
-
-  // addUpdateSlot(SLOT(possibleChange_showCartesianGrid()));
-  // connectToLastUpdateSlot(m_d->ui.checkBox_grid);
-  // connectToLastUpdateSlot(m_d->ui_grid.radioButton_grid_cartesian);
-
-  // addUpdateSlot(SLOT(possibleChange_showCylindricalGrid()));
-  // connectToLastUpdateSlot(m_d->ui.checkBox_grid);
-  // connectToLastUpdateSlot(m_d->ui_grid.radioButton_grid_cylindrical);
-
-  // addUpdateSlot(SLOT(possibleChange_gridColourAndTransp()));
-  // connectToLastUpdateSlot(m_d->ui_grid.colorButton_grid);
-  // connectToLastUpdateSlot(m_d->ui_grid.spinBox_gridtransp);
-
-  // addUpdateSlot(SLOT(possibleChange_gridSpacing()));
-  // connectToLastUpdateSlot(m_d->ui_grid.doubleSpinBox_gridspacing);
-
-  // addUpdateSlot(SLOT(possibleChange_gridExtent()));
-  // connectToLastUpdateSlot(m_d->ui_grid.doubleSpinBox_gridextent);
-
-  // addUpdateSlot(SLOT(possibleChange_showEtaCone1()));
-  // connectToLastUpdateSlot(m_d->ui.checkBox_etaCones);
-  // connectToLastUpdateSlot(m_d->ui_etacones.checkBox_etacone1);
-
-  // addUpdateSlot(SLOT(possibleChange_showEtaCone2()));
-  // connectToLastUpdateSlot(m_d->ui.checkBox_etaCones);
-  // connectToLastUpdateSlot(m_d->ui_etacones.checkBox_etacone2);
-
-  // addUpdateSlot(SLOT(possibleChange_showEtaCone3()));
-  // connectToLastUpdateSlot(m_d->ui.checkBox_etaCones);
-  // connectToLastUpdateSlot(m_d->ui_etacones.checkBox_etacone3);
-
-  // addUpdateSlot(SLOT(possibleChange_etaConeValue1()));
-  // connectToLastUpdateSlot(m_d->ui_etacones.doubleSpinBox_etaval1);
-
-  // addUpdateSlot(SLOT(possibleChange_etaConeValue2()));
-  // connectToLastUpdateSlot(m_d->ui_etacones.doubleSpinBox_etaval2);
-
-  // addUpdateSlot(SLOT(possibleChange_etaConeValue3()));
-  // connectToLastUpdateSlot(m_d->ui_etacones.doubleSpinBox_etaval3);
-
-  // addUpdateSlot(SLOT(possibleChange_etaExtent()));
-  // connectToLastUpdateSlot(m_d->ui_etacones.doubleSpinBox_etaconeextent);
-  // connectToLastUpdateSlot(m_d->ui_etacones.radioButton_etaconeextentisr);
-
-  // addUpdateSlot(SLOT(possibleChange_applicablePixelProjParts()));
-  // connectToLastUpdateSlot(pixelproj_barrel_radiogroup);
-  // connectToLastUpdateSlot(pixelproj_endcap_radiogroup);
-
-  // addUpdateSlot(SLOT(possibleChange_applicableSCTProjParts()));
-  // connectToLastUpdateSlot(sctproj_barrel_radiogroup);
-  // connectToLastUpdateSlot(sctproj_endcap_radiogroup);
-
-  // addUpdateSlot(SLOT(possibleChange_applicableTRTProjParts()));
-  // connectToLastUpdateSlot(trtproj_barrel_radiogroup);
-  // connectToLastUpdateSlot(trtproj_endcap_radiogroup);
-  // connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_trtprojsurf_z2r);
-
-  // addUpdateSlot(SLOT(possibleChange_shownPixelProjSurfaces()));
-  // connectToLastUpdateSlot(m_d->ui.checkBox_inDetProjSurfs);
-  // connectToLastUpdateSlot(this,SIGNAL(applicablePixelProjPartsChanged(InDetProjFlags::InDetProjPartsFlags)));
-  // connectToLastUpdateSlot(m_d->ui_idprojsurfs.groupBox_pixelproj);
-  // connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_asneeded);
-  // connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelA);
-  // connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelC);
-  // connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapA);
-  // connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapC);
-
-  // addUpdateSlot(SLOT(possibleChange_shownSCTProjSurfaces()));
-  // connectToLastUpdateSlot(m_d->ui.checkBox_inDetProjSurfs);
-  // connectToLastUpdateSlot(this,SIGNAL(applicableSCTProjPartsChanged(InDetProjFlags::InDetProjPartsFlags)));
-  // connectToLastUpdateSlot(m_d->ui_idprojsurfs.groupBox_sctproj);
-  // connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_asneeded);
-  // connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelA);
-  // connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelC);
-  // connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapA);
-  // connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapC);
-
-  // addUpdateSlot(SLOT(possibleChange_shownTRTProjSurfaces()));
-  // connectToLastUpdateSlot(m_d->ui.checkBox_inDetProjSurfs);
-  // connectToLastUpdateSlot(this,SIGNAL(applicableTRTProjPartsChanged(InDetProjFlags::InDetProjPartsFlags)));
-  // connectToLastUpdateSlot(m_d->ui_idprojsurfs.groupBox_trtproj);
-  // connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_asneeded);
-  // connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelA);
-  // connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelC);
-  // connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapA);
-  // connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapC);
-
-  // addUpdateSlot(SLOT(updateProjPartsCheckboxStates_Pixel()));
-  // connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_asneeded);
-
-  // addUpdateSlot(SLOT(updateProjPartsCheckboxStates_SCT()));
-  // connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_asneeded);
-
-  // addUpdateSlot(SLOT(updateProjPartsCheckboxStates_TRT()));
-  // connectToLastUpdateSlot(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_asneeded);
-
-  // addUpdateSlot(SLOT(possibleChange_showTrackingVolumes()));
-  // connectToLastUpdateSlot(m_d->ui.checkBox_trkVolumes);
-  
-  // addUpdateSlot(SLOT(possibleChange_showInnerDetector()));
-	// connectToLastUpdateSlot(m_d->ui_trkvolumes.checkBox_ID);
-  // addUpdateSlot(SLOT(possibleChange_showCalorimeters()));
-	// connectToLastUpdateSlot(m_d->ui_trkvolumes.checkBox_Calo);
-  // addUpdateSlot(SLOT(possibleChange_showMuonSpectrometer()));
-	// connectToLastUpdateSlot(m_d->ui_trkvolumes.checkBox_MS);
-
-  // addUpdateSlot(SLOT(possibleChange_showLines()));
-  // connectToLastUpdateSlot(m_d->ui.checkBox_lines);
-  
-  // addUpdateSlot(SLOT(possibleChange_lineDirection()));
-  // connectToLastUpdateSlot(m_d->ui_lines.doubleSpinBox_phi);
-  // connectToLastUpdateSlot(m_d->ui_lines.doubleSpinBox_theta);
-  // connectToLastUpdateSlot(m_d->ui_lines.doubleSpinBox_eta);
-  // connectToLastUpdateSlot(m_d->ui_lines.doubleSpinBox_length);
-  
   addUpdateSlot(SLOT(possibleChange_vetoEnabled()));
   connectToLastUpdateSlot(m_d->ui.checkBox_vetoEnabled);
 
@@ -356,23 +86,6 @@ WaveformSysController::~WaveformSysController()
   delete m_d;
 }
 
-//____________________________________________________________________
-//Material access methods:
-// SoMaterial * GuideSysController::lettersMaterial() const { return m_d->ui_floorandletters.matButton_letters->handledMaterials().at(0); }
-// SoMaterial * GuideSysController::xAxisMaterial() const { return m_d->ui_axes.matButton_axes_x->handledMaterials().at(0); }
-// SoMaterial * GuideSysController::yAxisMaterial() const { return m_d->ui_axes.matButton_axes_y->handledMaterials().at(0); }
-// SoMaterial * GuideSysController::zAxisMaterial() const { return m_d->ui_axes.matButton_axes_z->handledMaterials().at(0); }
-// SoMaterial * GuideSysController::etaCone1Material() const { return m_d->ui_etacones.matButton_etaCone1->handledMaterials().at(0); }
-// SoMaterial * GuideSysController::etaCone2Material() const { return m_d->ui_etacones.matButton_etaCone2->handledMaterials().at(0); }
-// SoMaterial * GuideSysController::etaCone3Material() const { return m_d->ui_etacones.matButton_etaCone3->handledMaterials().at(0); }
-// SoMaterial * GuideSysController::pixelProjSurfMaterial() const { return m_d->ui_idprojsurfs.pushButton_projsurfmaterial_pixel->handledMaterials().at(0); }
-// SoMaterial * GuideSysController::sctProjSurfMaterial() const { return m_d->ui_idprojsurfs.pushButton_projsurfmaterial_sct->handledMaterials().at(0); }
-// SoMaterial * GuideSysController::trtProjSurfMaterial() const { return m_d->ui_idprojsurfs.pushButton_projsurfmaterial_trt->handledMaterials().at(0); }
-// SoMaterial * GuideSysController::idTrkVolumesMaterial() const { return m_d->ui_trkvolumes.matButton_ID->handledMaterials().at(0); }
-// SoMaterial * GuideSysController::caloTrkVolumesMaterial() const { return m_d->ui_trkvolumes.matButton_Calo->handledMaterials().at(0); }
-// SoMaterial * GuideSysController::msTrkVolumesMaterial() const { return m_d->ui_trkvolumes.matButton_MS->handledMaterials().at(0); }
-
-//____________________________________________________________________
 bool WaveformSysController::vetoEnabled() const
 {
   return m_d->ui.checkBox_vetoEnabled->isChecked();
@@ -403,412 +116,6 @@ bool WaveformSysController::testEnabled() const
   return m_d->ui.checkBox_testEnabled->isChecked();
 }
 
-// bool GuideSysController::showFloor() const
-// {
-//   return m_d->ui.checkBox_floorAndLetters->isChecked() &&
-//     m_d->ui_floorandletters.checkBox_floorenabled->isChecked();
-// }
-
-// //____________________________________________________________________
-// SbColor4f GuideSysController::floorColourAndTransp() const
-// {
-//   return Imp::color4f(m_d->ui_floorandletters.colorButton_floor->color(),m_d->ui_floorandletters.spinBox_floortransp->value());
-// }
-
-// //____________________________________________________________________
-// double GuideSysController::floorExtent() const
-// {
-//   return m_d->ui_floorandletters.doubleSpinBox_floorextent->value()*SYSTEM_OF_UNITS::m;
-// }
-
-// //____________________________________________________________________
-// double GuideSysController::floorSpacing() const
-// {
-//   return m_d->ui_floorandletters.doubleSpinBox_floorspacing->value()*SYSTEM_OF_UNITS::m;
-// }
-
-// //____________________________________________________________________
-// double GuideSysController::floorHeight() const
-// {
-//   return m_d->ui_floorandletters.doubleSpinBox_floorheight->value()*SYSTEM_OF_UNITS::m;
-// }
-
-// //____________________________________________________________________
-// bool GuideSysController::showLetters() const
-// {
-//   return m_d->ui.checkBox_floorAndLetters->isChecked() &&
-//     m_d->ui_floorandletters.checkBox_acdesignations->isChecked();
-// }
-
-// //____________________________________________________________________
-// double GuideSysController::lettersZPos() const
-// {
-
-//   int nmax; double distmax;
-//   if (!VP1Floor::calcParsFromExtentAndSpacing( (VP1HelperClassBase*)this, floorExtent(), floorSpacing(), VP1Floor::nMax(), nmax, distmax )) {
-//     nmax = 10;
-//     distmax = 10*SYSTEM_OF_UNITS::m;
-//     message("lettersZPos  ERROR: Problems calculating floor nmax/distmax.");
-//   }
-//   return distmax*1.1;
-// }
-
-// //____________________________________________________________________
-// double GuideSysController::lettersVerticalPos() const
-// {
-//   return floorHeight()+1.5*SYSTEM_OF_UNITS::m;
-// }
-
-// //____________________________________________________________________
-// bool GuideSysController::showAxes() const
-// {
-//   return m_d->ui.checkBox_coordinateAxes->isChecked();
-// }
-
-// //____________________________________________________________________
-// double GuideSysController::axesLength() const
-// {
-//   return m_d->ui_axes.doubleSpinBox_axes_lengths_m->value()*SYSTEM_OF_UNITS::m *
-//     (m_d->ui_axes.checkBox_axes_shownegativeparts->isChecked()?-1.0:1.0);
-// }
-
-// //____________________________________________________________________
-// SbVec3f GuideSysController::axesPosition() const
-// {
-//   return SbVec3f(m_d->ui_axes.doubleSpinBox_axes_xpos_m->value()*SYSTEM_OF_UNITS::m,
-//          m_d->ui_axes.doubleSpinBox_axes_ypos_m->value()*SYSTEM_OF_UNITS::m,
-//          m_d->ui_axes.doubleSpinBox_axes_zpos_m->value()*SYSTEM_OF_UNITS::m);
-// }
-
-// //____________________________________________________________________
-// double GuideSysController::relAxesThickness() const
-// {
-//   return m_d->ui_axes.doubleSpinBox_axes_relthickness->value();
-// }
-
-// //____________________________________________________________________
-// bool GuideSysController::showCartesianGrid() const
-// {
-//   return m_d->ui.checkBox_grid->isChecked() &&
-//     m_d->ui_grid.radioButton_grid_cartesian->isChecked();
-// }
-
-// //____________________________________________________________________
-// bool GuideSysController::showCylindricalGrid() const
-// {
-//   return m_d->ui.checkBox_grid->isChecked() &&
-//     m_d->ui_grid.radioButton_grid_cylindrical->isChecked();
-// }
-
-// //____________________________________________________________________
-// SbColor4f GuideSysController::gridColourAndTransp() const
-// {
-//   return Imp::color4f(m_d->ui_grid.colorButton_grid->color(),m_d->ui_grid.spinBox_gridtransp->value());
-// }
-
-// //____________________________________________________________________
-// double GuideSysController::gridSpacing() const
-// {
-//   return m_d->ui_grid.doubleSpinBox_gridspacing->value()*SYSTEM_OF_UNITS::m;
-// }
-
-// //____________________________________________________________________
-// double GuideSysController::gridExtent() const
-// {
-//   return m_d->ui_grid.doubleSpinBox_gridextent->value()*SYSTEM_OF_UNITS::m;
-// }
-
-// //____________________________________________________________________
-// bool GuideSysController::showEtaCone1() const
-// {
-//   return m_d->ui.checkBox_etaCones->isChecked() &&
-//     m_d->ui_etacones.checkBox_etacone1->isChecked();
-// }
-
-// //____________________________________________________________________
-// bool GuideSysController::showEtaCone2() const
-// {
-//   return m_d->ui.checkBox_etaCones->isChecked() &&
-//     m_d->ui_etacones.checkBox_etacone2->isChecked();
-// }
-
-// //____________________________________________________________________
-// bool GuideSysController::showEtaCone3() const
-// {
-//   return m_d->ui.checkBox_etaCones->isChecked() &&
-//     m_d->ui_etacones.checkBox_etacone3->isChecked();
-// }
-
-// //____________________________________________________________________
-// double GuideSysController::etaConeValue1() const
-// {
-//   return std::max(1.0e-5,m_d->ui_etacones.doubleSpinBox_etaval1->value());
-// }
-
-// //____________________________________________________________________
-// double GuideSysController::etaConeValue2() const
-// {
-//   return std::max(1.0e-5,m_d->ui_etacones.doubleSpinBox_etaval2->value());
-// }
-
-// //____________________________________________________________________
-// double GuideSysController::etaConeValue3() const
-// {
-//   return std::max(1.0e-5,m_d->ui_etacones.doubleSpinBox_etaval3->value());
-// }
-
-// //____________________________________________________________________
-// double GuideSysController::etaExtent() const
-// {
-//   return m_d->ui_etacones.doubleSpinBox_etaconeextent->value() * SYSTEM_OF_UNITS::m
-//     * (m_d->ui_etacones.radioButton_etaconeextentisr->isChecked() ? 1.0 : -1.0);
-// }
-
-// //____________________________________________________________________
-// bool GuideSysController::showLines() const
-// {
-//   return m_d->ui.checkBox_lines->isChecked();
-// }
-
-
-// //____________________________________________________________________
-// SbVec3f GuideSysController::lineDirection() const
-// {
-//   double r = lineLength();
-//   double phi = m_d->ui_lines.doubleSpinBox_phi->value();
-//   double theta = m_d->ui_lines.doubleSpinBox_theta->value();
-//   SbVec3f direction(r*sin(theta)*cos(phi),r*sin(theta)*sin(phi), r*cos(theta));
-//   return direction;
-// }
-
-// //____________________________________________________________________
-// double GuideSysController::lineLength() const
-// {
-//   return m_d->ui_lines.doubleSpinBox_length->value() * SYSTEM_OF_UNITS::m;
-// }
-
-// //_____________________________________________________________________________________
-// InDetProjFlags::InDetProjPartsFlags GuideSysController::Imp::projPartsFlag( bool barrelinner, bool barrelouter,
-// 									    bool endcapinner, bool endcapouter,
-// 									    bool endcap_hidenormalcyls_when_zasr,
-// 									    bool endcap_zasr )
-// {
-//   InDetProjFlags::InDetProjPartsFlags parts(InDetProjFlags::NoProjections);
-//   //Given the general parts needed, what specific surfaces do we need:
-//   if ( barrelinner )
-//     parts |= InDetProjFlags::BarrelCentral;
-//   if ( barrelouter ) {
-//     parts |= InDetProjFlags::BarrelPositive;
-//     parts |= InDetProjFlags::BarrelNegative;
-//   }
-
-//   if ( !( endcap_zasr && endcap_hidenormalcyls_when_zasr ) ) {
-//     if ( endcapinner ) {
-//       //Inner:
-//       parts |= InDetProjFlags::EndCapInnerPositive;
-//       parts |= InDetProjFlags::EndCapInnerNegative;
-//     }
-//     if ( endcapouter ) {
-//       //Outer:
-//       parts |= InDetProjFlags::EndCapOuterPositive;
-//       parts |= InDetProjFlags::EndCapOuterNegative;
-//     }
-//   }
-//   //Special ZasR surfaces for the endcaps, placed in the barrel positions:
-//   if (endcap_zasr) {
-//     if ( barrelinner )
-//       parts |= InDetProjFlags::TRT_EndCapZToRCentral;
-//     if ( barrelouter ) {
-//       parts |= InDetProjFlags::TRT_EndCapZToRPositive;
-//       parts |= InDetProjFlags::TRT_EndCapZToRNegative;
-//     }
-//   }
-//   return parts;
-// }
-
-// //____________________________________________________________________
-// InDetProjFlags::InDetProjPartsFlags GuideSysController::applicablePixelProjParts() const
-// {
-//   return Imp::projPartsFlag( m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_inner->isChecked() || m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_both->isChecked(),
-// 			     m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_outer->isChecked() || m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_both->isChecked(),
-// 			     m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_inner->isChecked() || m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_both->isChecked(),
-// 			     m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_outer->isChecked() || m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_both->isChecked() );
-// }
-
-// //____________________________________________________________________
-// InDetProjFlags::InDetProjPartsFlags GuideSysController::applicableSCTProjParts() const
-// {
-//   return Imp::projPartsFlag( m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_inner->isChecked() || m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_both->isChecked(),
-// 			     m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_outer->isChecked() || m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_both->isChecked(),
-// 			     m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_inner->isChecked() || m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_both->isChecked(),
-// 			     m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_outer->isChecked() || m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_both->isChecked() );
-// }
-
-// //____________________________________________________________________
-// InDetProjFlags::InDetProjPartsFlags GuideSysController::applicableTRTProjParts() const
-// {
-//   return Imp::projPartsFlag( m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_inner->isChecked() || m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_both->isChecked(),
-// 			     m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_outer->isChecked() || m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_both->isChecked(),
-// 			     m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_inner->isChecked() || m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_both->isChecked(),
-// 			     m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_outer->isChecked() || m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_both->isChecked(),
-// 			     true, m_d->ui_idprojsurfs.checkBox_trtprojsurf_z2r->isChecked() );
-// }
-
-// //_____________________________________________________________________________________
-// InDetProjFlags::DetTypeFlags GuideSysController::Imp::trtPartsEnabledByGUIOrDataUsage() const
-// {
-//   InDetProjFlags::DetTypeFlags  f(InDetProjFlags::NoDet);
-//   if (ui_idprojsurfs.groupBox_trtproj->isChecked()) {
-//     if (ui_idprojsurfs.checkBox_trtprojsurf_parts_asneeded->isChecked()) {
-//       f |= (inDetDetTypesUsingProjections&InDetProjFlags::TRT_all);
-//     } else {
-//       if (ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelA->isChecked()) f |= InDetProjFlags::TRT_brlpos;
-//       if (ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelC->isChecked()) f |= InDetProjFlags::TRT_brlneg;
-//       if (ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapA->isChecked()) f |= InDetProjFlags::TRT_ecpos;
-//       if (ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapC->isChecked()) f |= InDetProjFlags::TRT_ecneg;
-//     }
-//   }
-//   return f;
-// }
-
-// //_____________________________________________________________________________________
-// InDetProjFlags::DetTypeFlags GuideSysController::Imp::sctPartsEnabledByGUIOrDataUsage() const
-// {
-//   InDetProjFlags::DetTypeFlags  f(InDetProjFlags::NoDet);
-//   if (ui_idprojsurfs.groupBox_sctproj->isChecked()) {
-//     if (ui_idprojsurfs.checkBox_sctprojsurf_parts_asneeded->isChecked()) {
-//       f |= (inDetDetTypesUsingProjections&InDetProjFlags::SCT_all);
-//     } else {
-//       if (ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelA->isChecked()) f |= InDetProjFlags::SCT_brlpos;
-//       if (ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelC->isChecked()) f |= InDetProjFlags::SCT_brlneg;
-//       if (ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapA->isChecked()) f |= InDetProjFlags::SCT_ecpos;
-//       if (ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapC->isChecked()) f |= InDetProjFlags::SCT_ecneg;
-//     }
-//   }
-//   return f;
-// }
-
-// //_____________________________________________________________________________________
-// InDetProjFlags::DetTypeFlags GuideSysController::Imp::pixelPartsEnabledByGUIOrDataUsage() const
-// {
-//   InDetProjFlags::DetTypeFlags  f(InDetProjFlags::NoDet);
-//   if (ui_idprojsurfs.groupBox_pixelproj->isChecked()) {
-//     if (ui_idprojsurfs.checkBox_pixelprojsurf_parts_asneeded->isChecked()) {
-//       f |= (inDetDetTypesUsingProjections&InDetProjFlags::Pixel_all);
-//     } else {
-//       if (ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelA->isChecked()) f |= InDetProjFlags::Pixel_brlpos;
-//       if (ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelC->isChecked()) f |= InDetProjFlags::Pixel_brlneg;
-//       if (ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapA->isChecked()) f |= InDetProjFlags::Pixel_ecpos;
-//       if (ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapC->isChecked()) f |= InDetProjFlags::Pixel_ecneg;
-//     }
-//   }
-//   return f;
-// }
-
-// //____________________________________________________________________
-// InDetProjFlags::InDetProjPartsFlags GuideSysController::shownPixelProjSurfaces() const
-// {
-//   InDetProjFlags::DetTypeFlags enabledDetRegions = m_d->pixelPartsEnabledByGUIOrDataUsage();
-//   if (!(InDetProjFlags::Pixel_all&enabledDetRegions)||!m_d->ui.checkBox_inDetProjSurfs->isChecked())
-//     return InDetProjFlags::NoProjections;
-//   InDetProjFlags::InDetProjPartsFlags pixelProjParts(applicablePixelProjParts());
-//   if (pixelProjParts==InDetProjFlags::NoProjections)
-//     return InDetProjFlags::NoProjections;
-//   InDetProjFlags::InDetProjPartsFlags dummy_sct(InDetProjFlags::NoProjections), dummy_trt(InDetProjFlags::NoProjections);
-//   InDetProjFlags::projectionPartsGivenUsedDetectors( pixelProjParts, dummy_sct, dummy_trt, enabledDetRegions );
-//   return pixelProjParts;
-// }
-
-// //____________________________________________________________________
-// InDetProjFlags::InDetProjPartsFlags GuideSysController::shownSCTProjSurfaces() const
-// {
-//   InDetProjFlags::DetTypeFlags enabledDetRegions = m_d->sctPartsEnabledByGUIOrDataUsage();
-//   if (!(InDetProjFlags::SCT_all&enabledDetRegions)||!m_d->ui.checkBox_inDetProjSurfs->isChecked())
-//     return InDetProjFlags::NoProjections;
-//   InDetProjFlags::InDetProjPartsFlags sctProjParts(applicableSCTProjParts());
-//   if (sctProjParts==InDetProjFlags::NoProjections)
-//     return InDetProjFlags::NoProjections;
-//   InDetProjFlags::InDetProjPartsFlags dummy_pixel(InDetProjFlags::NoProjections), dummy_trt(InDetProjFlags::NoProjections);
-//   InDetProjFlags::projectionPartsGivenUsedDetectors( dummy_pixel, sctProjParts, dummy_trt, enabledDetRegions );
-//   return sctProjParts;
-// }
-
-// //____________________________________________________________________
-// InDetProjFlags::InDetProjPartsFlags GuideSysController::shownTRTProjSurfaces() const
-// {
-//   InDetProjFlags::DetTypeFlags enabledDetRegions = m_d->trtPartsEnabledByGUIOrDataUsage();
-//   if (!(InDetProjFlags::TRT_all&enabledDetRegions)||!m_d->ui.checkBox_inDetProjSurfs->isChecked())
-//     return InDetProjFlags::NoProjections;
-//   InDetProjFlags::InDetProjPartsFlags trtProjParts(applicableTRTProjParts());
-//   if (trtProjParts==InDetProjFlags::NoProjections)
-//     return InDetProjFlags::NoProjections;
-//   InDetProjFlags::InDetProjPartsFlags dummy_pixel(InDetProjFlags::NoProjections), dummy_sct(InDetProjFlags::NoProjections);
-//   InDetProjFlags::projectionPartsGivenUsedDetectors( dummy_pixel, dummy_sct, trtProjParts,enabledDetRegions );
-//   return trtProjParts;
-// }
-
-// //____________________________________________________________________
-// void GuideSysController::setInDetDetTypesUsingProjections(InDetProjFlags::DetTypeFlags f)
-// {
-//   if (m_d->inDetDetTypesUsingProjections==f)
-//     return;
-//   m_d->inDetDetTypesUsingProjections=f;
-//   possibleChange_shownPixelProjSurfaces();
-//   possibleChange_shownSCTProjSurfaces();
-//   possibleChange_shownTRTProjSurfaces();
-// }
-
-// //____________________________________________________________________
-// void GuideSysController::updateProjPartsCheckboxStates_Pixel()
-// {
-//   const bool e(!m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_asneeded->isChecked());
-//   m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelA->setEnabled(e);
-//   m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelC->setEnabled(e);
-//   m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapA->setEnabled(e);
-//   m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapC->setEnabled(e);
-// }
-
-// //____________________________________________________________________
-// void GuideSysController::updateProjPartsCheckboxStates_SCT()
-// {
-//   const bool e(!m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_asneeded->isChecked());
-//   m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelA->setEnabled(e);
-//   m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelC->setEnabled(e);
-//   m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapA->setEnabled(e);
-//   m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapC->setEnabled(e);
-// }
-
-// //____________________________________________________________________
-// void GuideSysController::updateProjPartsCheckboxStates_TRT()
-// {
-//   const bool e(!m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_asneeded->isChecked());
-//   m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelA->setEnabled(e);
-//   m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelC->setEnabled(e);
-//   m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapA->setEnabled(e);
-//   m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapC->setEnabled(e);
-// }
-
-// bool GuideSysController::showTrackingVolumes() const
-// {
-// 	return m_d->ui.checkBox_trkVolumes->isChecked();
-// }
-
-// bool GuideSysController::showInnerDetector() const
-// {
-// 	return m_d->ui_trkvolumes.checkBox_ID->isChecked();
-// }
-
-// bool GuideSysController::showCalorimeters() const
-// {
-// 	return m_d->ui_trkvolumes.checkBox_Calo->isChecked();
-// }
-
-// bool GuideSysController::showMuonSpectrometer() const
-// {
-// 	return m_d->ui_trkvolumes.checkBox_MS->isChecked();
-// }
-
-//____________________________________________________________________
 int WaveformSysController::currentSettingsVersion() const
 {
   return 0;
@@ -825,111 +132,6 @@ void WaveformSysController::actualSaveSettings(VP1Serialise&s) const
   s.save(m_d->ui.checkBox_clockEnabled);
   s.save(m_d->ui.checkBox_testEnabled);
 
-  //Materials
-  // s.save(m_d->ui_floorandletters.matButton_letters);
-  // s.save(m_d->ui_axes.matButton_axes_x);
-  // s.save(m_d->ui_axes.matButton_axes_y);
-  // s.save(m_d->ui_axes.matButton_axes_z);
-  // s.save(m_d->ui_etacones.matButton_etaCone1);
-  // s.save(m_d->ui_etacones.matButton_etaCone2);
-  // s.save(m_d->ui_etacones.matButton_etaCone3);
-  // s.save(m_d->ui_idprojsurfs.pushButton_projsurfmaterial_pixel);
-  // s.save(m_d->ui_idprojsurfs.pushButton_projsurfmaterial_sct);
-  // s.save(m_d->ui_idprojsurfs.pushButton_projsurfmaterial_trt);
-  
-  // //Everything apart from projection surfaces:
-  // s.save(m_d->ui_grid.colorButton_grid);
-  // s.save(m_d->ui_grid.spinBox_gridtransp);
-  // s.save(m_d->ui_floorandletters.colorButton_floor);
-  // s.save(m_d->ui_floorandletters.spinBox_floortransp);
-  // s.save(m_d->ui_floorandletters.doubleSpinBox_floorheight);
-  // s.save(m_d->ui_floorandletters.checkBox_floorenabled);
-  // s.save(m_d->ui_floorandletters.doubleSpinBox_floorspacing);
-  // s.save(m_d->ui_floorandletters.doubleSpinBox_floorextent);
-  // s.save(m_d->ui_floorandletters.checkBox_acdesignations);
-  // //Version 0 output bool here
-  // s.save(m_d->ui_axes.checkBox_axes_shownegativeparts);
-  // s.save(m_d->ui_axes.doubleSpinBox_axes_lengths_m);
-  // s.save(m_d->ui_axes.doubleSpinBox_axes_relthickness);
-  // s.save(m_d->ui_axes.doubleSpinBox_axes_xpos_m);
-  // s.save(m_d->ui_axes.doubleSpinBox_axes_ypos_m);
-  // s.save(m_d->ui_axes.doubleSpinBox_axes_zpos_m);
-  // s.save(0/*backwards compat*/,m_d->ui_grid.radioButton_grid_cartesian,m_d->ui_grid.radioButton_grid_cylindrical);
-  // s.save(m_d->ui_grid.doubleSpinBox_gridspacing);
-  // s.save(m_d->ui_grid.doubleSpinBox_gridextent);
-  // s.save(m_d->ui_etacones.checkBox_etacone1);
-  // s.save(m_d->ui_etacones.doubleSpinBox_etaval1);
-  // s.save(m_d->ui_etacones.checkBox_etacone2);
-  // s.save(m_d->ui_etacones.doubleSpinBox_etaval2);
-  // s.save(m_d->ui_etacones.checkBox_etacone3);
-  // s.save(m_d->ui_etacones.doubleSpinBox_etaval3);
-  // s.save(m_d->ui_etacones.doubleSpinBox_etaconeextent);
-  // s.save(m_d->ui_etacones.radioButton_etaconeextentisr,m_d->ui_etacones.radioButton_etaconeextentisz);
-
-  // //Projection surfaces:
-
-  // s.save(m_d->ui_idprojsurfs.groupBox_pixelproj);
-  // s.save(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_asneeded);
-  // s.save(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelA);
-  // s.save(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelC);
-  // s.save(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapA);
-  // s.save(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapC);
-  // s.save(m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_inner,
-	// 	 m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_outer,
-	// 	 m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_both);
-  // s.save(m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_inner,
-	// 	 m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_outer,
-	// 	 m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_both);
-  // s.save(m_d->ui_idprojsurfs.groupBox_sctproj);
-  // s.save(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_asneeded);
-  // s.save(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelA);
-  // s.save(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelC);
-  // s.save(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapA);
-  // s.save(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapC);
-  // s.save(m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_inner,
-	// 	 m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_outer,
-	// 	 m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_both);
-  // s.save(m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_inner,
-	// 	 m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_outer,
-	// 	 m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_both);
-  // s.save(m_d->ui_idprojsurfs.groupBox_trtproj);
-  // s.save(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_asneeded);
-  // s.save(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelA);
-  // s.save(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelC);
-  // s.save(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapA);
-  // s.save(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapC);
-  // s.save(m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_inner,
-	// 	 m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_outer,
-	// 	 m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_both);
-  // s.save(m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_inner,
-	// 	 m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_outer,
-	// 	 m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_both);
-  // s.save(m_d->ui_idprojsurfs.checkBox_trtprojsurf_z2r);
-
-  // s.save(m_d->ui.checkBox_coordinateAxes);//version 1+
-  // s.save(m_d->ui.checkBox_etaCones);
-  // s.save(m_d->ui.checkBox_floorAndLetters);//version 1+
-  // s.save(m_d->ui.checkBox_grid);//version 1+
-  // s.save(m_d->ui.checkBox_inDetProjSurfs);//version 1+
-  
-  // //Tracking volumes:
-  // // All version 2+
-  // s.save(m_d->ui.checkBox_trkVolumes);
-
-  // //material
-  // s.save(m_d->ui_trkvolumes.matButton_ID); 
-  // s.save(m_d->ui_trkvolumes.matButton_Calo);
-  // s.save(m_d->ui_trkvolumes.matButton_MS);
-  // s.save(m_d->ui_trkvolumes.checkBox_ID);
-  // s.save(m_d->ui_trkvolumes.checkBox_Calo);
-  // s.save(m_d->ui_trkvolumes.checkBox_MS);
-  
-  // // Line from origin
-  // s.save(m_d->ui.checkBox_lines);
-  // s.save(m_d->ui_lines.doubleSpinBox_phi); 
-  // s.save(m_d->ui_lines.doubleSpinBox_phi);
-  // s.save(m_d->ui_lines.doubleSpinBox_eta);
-  // s.save(m_d->ui_lines.doubleSpinBox_length);
 }
 
 //____________________________________________________________________
@@ -947,139 +149,8 @@ void WaveformSysController::actualRestoreSettings(VP1Deserialise& s)
   s.restore(m_d->ui.checkBox_clockEnabled);
   s.restore(m_d->ui.checkBox_testEnabled);
 
-  // if (s.version()==0)
-  //   s.ignoreInt();
-
-  // //Materials
-  // s.restore(m_d->ui_floorandletters.matButton_letters);
-  // s.restore(m_d->ui_axes.matButton_axes_x);
-  // s.restore(m_d->ui_axes.matButton_axes_y);
-  // s.restore(m_d->ui_axes.matButton_axes_z);
-  // s.restore(m_d->ui_etacones.matButton_etaCone1);
-  // s.restore(m_d->ui_etacones.matButton_etaCone2);
-  // s.restore(m_d->ui_etacones.matButton_etaCone3);
-  // s.restore(m_d->ui_idprojsurfs.pushButton_projsurfmaterial_pixel);
-  // s.restore(m_d->ui_idprojsurfs.pushButton_projsurfmaterial_sct);
-  // s.restore(m_d->ui_idprojsurfs.pushButton_projsurfmaterial_trt);
-
-  
-  // //Everything apart from projection surfaces:
-  // s.restore(m_d->ui_grid.colorButton_grid);
-  // s.restore(m_d->ui_grid.spinBox_gridtransp);
-  // s.restore(m_d->ui_floorandletters.colorButton_floor);
-  // s.restore(m_d->ui_floorandletters.spinBox_floortransp);
-  // s.restore(m_d->ui_floorandletters.doubleSpinBox_floorheight);
-  // s.restore(m_d->ui_floorandletters.checkBox_floorenabled);
-  // s.restore(m_d->ui_floorandletters.doubleSpinBox_floorspacing);
-  // s.restore(m_d->ui_floorandletters.doubleSpinBox_floorextent);
-  // s.restore(m_d->ui_floorandletters.checkBox_acdesignations);
-  // if (s.version()==0)
-  //   s.ignoreBool();
-  // s.restore(m_d->ui_axes.checkBox_axes_shownegativeparts);
-  // s.restore(m_d->ui_axes.doubleSpinBox_axes_lengths_m);
-  // s.restore(m_d->ui_axes.doubleSpinBox_axes_relthickness);
-  // s.restore(m_d->ui_axes.doubleSpinBox_axes_xpos_m);
-  // s.restore(m_d->ui_axes.doubleSpinBox_axes_ypos_m);
-  // s.restore(m_d->ui_axes.doubleSpinBox_axes_zpos_m);
-  // s.restore(0/*backwards compat*/,m_d->ui_grid.radioButton_grid_cartesian,m_d->ui_grid.radioButton_grid_cylindrical);
-  // s.restore(m_d->ui_grid.doubleSpinBox_gridspacing);
-  // s.restore(m_d->ui_grid.doubleSpinBox_gridextent);
-  // s.restore(m_d->ui_etacones.checkBox_etacone1);
-  // s.restore(m_d->ui_etacones.doubleSpinBox_etaval1);
-  // s.restore(m_d->ui_etacones.checkBox_etacone2);
-  // s.restore(m_d->ui_etacones.doubleSpinBox_etaval2);
-  // s.restore(m_d->ui_etacones.checkBox_etacone3);
-  // s.restore(m_d->ui_etacones.doubleSpinBox_etaval3);
-  // s.restore(m_d->ui_etacones.doubleSpinBox_etaconeextent);
-  // s.restore(m_d->ui_etacones.radioButton_etaconeextentisr,m_d->ui_etacones.radioButton_etaconeextentisz);
-
-  // //Projection surfaces:
-
-  // s.restore(m_d->ui_idprojsurfs.groupBox_pixelproj);
-  // s.restore(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_asneeded);
-  // s.restore(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelA);
-  // s.restore(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_barrelC);
-  // s.restore(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapA);
-  // s.restore(m_d->ui_idprojsurfs.checkBox_pixelprojsurf_parts_endcapC);
-  // s.restore(m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_inner,
-	// 	m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_outer,
-	// 	m_d->ui_idprojsurfs.radioButton_pixelprojsurf_barrel_both);
-  // s.restore(m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_inner,
-	// 	m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_outer,
-	// 	m_d->ui_idprojsurfs.radioButton_pixelprojsurf_endcap_both);
-  // s.restore(m_d->ui_idprojsurfs.groupBox_sctproj);
-  // s.restore(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_asneeded);
-  // s.restore(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelA);
-  // s.restore(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_barrelC);
-  // s.restore(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapA);
-  // s.restore(m_d->ui_idprojsurfs.checkBox_sctprojsurf_parts_endcapC);
-  // s.restore(m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_inner,
-	// 	m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_outer,
-	// 	m_d->ui_idprojsurfs.radioButton_sctprojsurf_barrel_both);
-  // s.restore(m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_inner,
-	// 	m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_outer,
-	// 	m_d->ui_idprojsurfs.radioButton_sctprojsurf_endcap_both);
-  // s.restore(m_d->ui_idprojsurfs.groupBox_trtproj);
-  // s.restore(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_asneeded);
-  // s.restore(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelA);
-  // s.restore(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_barrelC);
-  // s.restore(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapA);
-  // s.restore(m_d->ui_idprojsurfs.checkBox_trtprojsurf_parts_endcapC);
-  // s.restore(m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_inner,
-	// 	m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_outer,
-	// 	m_d->ui_idprojsurfs.radioButton_trtprojsurf_barrel_both);
-  // s.restore(m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_inner,
-	// 	m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_outer,
-	// 	m_d->ui_idprojsurfs.radioButton_trtprojsurf_endcap_both);
-  // s.restore(m_d->ui_idprojsurfs.checkBox_trtprojsurf_z2r);
-  
-  // if (s.version()>=1) {
-  //   s.restore(m_d->ui.checkBox_coordinateAxes);
-  //   s.restore(m_d->ui.checkBox_etaCones);
-  //   s.restore(m_d->ui.checkBox_floorAndLetters);
-  //   s.restore(m_d->ui.checkBox_grid);
-  //   s.restore(m_d->ui.checkBox_inDetProjSurfs);
-  // }
-  
-  // if (s.version()>=2) {
-  //   s.restore(m_d->ui.checkBox_trkVolumes);
-  //   s.restore(m_d->ui_trkvolumes.matButton_ID); 
-  //   s.restore(m_d->ui_trkvolumes.matButton_Calo);
-  //   s.restore(m_d->ui_trkvolumes.matButton_MS);  
-  //   s.restore(m_d->ui_trkvolumes.checkBox_ID);
-  //   s.restore(m_d->ui_trkvolumes.checkBox_Calo);
-  //   s.restore(m_d->ui_trkvolumes.checkBox_MS);
-  // } 
-  // if (s.version()>=3) {
-  //   s.restore(m_d->ui.checkBox_lines);
-  //   s.restore(m_d->ui_lines.doubleSpinBox_phi); 
-  //   s.restore(m_d->ui_lines.doubleSpinBox_phi);
-  //   s.restore(m_d->ui_lines.doubleSpinBox_eta);
-  //   s.restore(m_d->ui_lines.doubleSpinBox_length);
-  // } 
 }
 
-// void GuideSysController::possibleChange_lineDirection() {	
-//   // Bit of a hack possibly to do this here, but I want to be able to update the direction by changing either theta or eta
-//   double eta = m_d->ui_lines.doubleSpinBox_eta->value();
-//   double theta = m_d->ui_lines.doubleSpinBox_theta->value();
-  
-//   if (m_d->last_line_eta != eta){
-//     // eta has changed, so update theta in the UI
-//     theta = 2*std::atan(std::exp(-1.0 * eta));
-//     m_d->ui_lines.doubleSpinBox_theta->setValue(theta);
-//   } else if ( theta!= std::acos(m_d->last_lineDirection[2] / lineLength() ) ){
-//     eta = -1.0 * std::log(std::tan(theta/2.0));
-//     m_d->ui_lines.doubleSpinBox_eta->setValue(eta);  
-//   }
-//   m_d->last_line_eta = m_d->ui_lines.doubleSpinBox_eta->value();
-//   if (changed( m_d->last_lineDirection , lineDirection() ) ) { 
-//     if (verbose()&&!initVarsMode()) messageVerbose("Emitting "+QString()+"( lineDirectionChanged"+toString(m_d->last_lineDirection)+" )"); 
-//     emit lineDirectionChanged(m_d->last_lineDirection); 
-//   }  
-// }
-
-
 ///////////////////////////////////////////////////////////////////////////
 // Test for possible changes in values and emit signals as appropriate:
 // (possibleChange_XXX() slots code provided by macros)
@@ -1091,40 +162,3 @@ POSSIBLECHANGE_IMP(preshowerEnabled)
 POSSIBLECHANGE_IMP(calorimeterEnabled)
 POSSIBLECHANGE_IMP(clockEnabled)
 POSSIBLECHANGE_IMP(testEnabled)
-
-// POSSIBLECHANGE_IMP(showFloor)
-// POSSIBLECHANGE_IMP(floorColourAndTransp)
-// POSSIBLECHANGE_IMP(floorExtent)
-// POSSIBLECHANGE_IMP(floorSpacing)
-// POSSIBLECHANGE_IMP(floorHeight)
-// POSSIBLECHANGE_IMP(showLetters)
-// POSSIBLECHANGE_IMP(lettersZPos)
-// POSSIBLECHANGE_IMP(lettersVerticalPos)
-// POSSIBLECHANGE_IMP(showAxes)
-// POSSIBLECHANGE_IMP(axesLength)
-// POSSIBLECHANGE_IMP(axesPosition)
-// POSSIBLECHANGE_IMP(relAxesThickness)
-// POSSIBLECHANGE_IMP(showCartesianGrid)
-// POSSIBLECHANGE_IMP(showCylindricalGrid)
-// POSSIBLECHANGE_IMP(gridColourAndTransp)
-// POSSIBLECHANGE_IMP(gridSpacing)
-// POSSIBLECHANGE_IMP(gridExtent)
-// POSSIBLECHANGE_IMP(showEtaCone1)
-// POSSIBLECHANGE_IMP(showEtaCone2)
-// POSSIBLECHANGE_IMP(showEtaCone3)
-// POSSIBLECHANGE_IMP(etaConeValue1)
-// POSSIBLECHANGE_IMP(etaConeValue2)
-// POSSIBLECHANGE_IMP(etaConeValue3)
-// POSSIBLECHANGE_IMP(etaExtent)
-// POSSIBLECHANGE_IMP(applicablePixelProjParts)
-// POSSIBLECHANGE_IMP(applicableSCTProjParts)
-// POSSIBLECHANGE_IMP(applicableTRTProjParts)
-// POSSIBLECHANGE_IMP(shownPixelProjSurfaces)
-// POSSIBLECHANGE_IMP(shownSCTProjSurfaces)
-// POSSIBLECHANGE_IMP(shownTRTProjSurfaces)
-// POSSIBLECHANGE_IMP(showTrackingVolumes)
-// POSSIBLECHANGE_IMP(showInnerDetector)
-// POSSIBLECHANGE_IMP(showCalorimeters)
-// POSSIBLECHANGE_IMP(showMuonSpectrometer)
-// POSSIBLECHANGE_IMP(showLines)  
-//POSSIBLECHANGE_IMP(lineDirection) Implemented this manually so we can update eta/theta
diff --git a/graphics/VTI12/VTI12Systems/VTI12WaveformSystems/src/waveformcontrollerform.ui b/graphics/VTI12/VTI12Systems/VTI12WaveformSystems/src/waveformcontrollerform.ui
index 75fddd8e6b0f311a5ab39a0ca5163152c385f712..cb854170cb4351c4f61e0672cd51cf6853af6fe2 100644
--- a/graphics/VTI12/VTI12Systems/VTI12WaveformSystems/src/waveformcontrollerform.ui
+++ b/graphics/VTI12/VTI12Systems/VTI12WaveformSystems/src/waveformcontrollerform.ui
@@ -91,108 +91,6 @@
        </property>
       </widget>
      </item>
-     <!--
-     <item row="0" column="1">
-      <widget class="QPushButton" name="pushButton_settings_floorAndLetters">
-       <property name="text">
-        <string>Configure</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="0">
-      <widget class="QCheckBox" name="checkBox_coordinateAxes">
-       <property name="text">
-        <string>Coordinate axes</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="QPushButton" name="pushButton_settings_coordinateAxes">
-       <property name="text">
-        <string>Configure</string>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="0">
-      <widget class="QCheckBox" name="checkBox_grid">
-       <property name="text">
-        <string>Grid</string>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="1">
-      <widget class="QPushButton" name="pushButton_settings_grid">
-       <property name="text">
-        <string>Configure</string>
-       </property>
-      </widget>
-     </item>
-     <item row="3" column="0">
-      <widget class="QCheckBox" name="checkBox_etaCones">
-       <property name="text">
-        <string>Eta Cones</string>
-       </property>
-      </widget>
-     </item>
-     <item row="3" column="1">
-      <widget class="QPushButton" name="pushButton_settings_etaCones">
-       <property name="text">
-        <string>Configure</string>
-       </property>
-      </widget>
-     </item>
-     <item row="4" column="0">
-      <widget class="QCheckBox" name="checkBox_inDetProjSurfs">
-       <property name="text">
-        <string>ID projection surfaces</string>
-       </property>
-       <property name="checked">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="4" column="1">
-      <widget class="QPushButton" name="pushButton_settings_inDetProjSurfs">
-       <property name="text">
-        <string>Configure</string>
-       </property>
-      </widget>
-     </item>
-     <item row="5" column="1">
-      <widget class="QPushButton" name="pushButton_settings_trkVolumes">
-       <property name="text">
-        <string>Configure</string>
-       </property>
-      </widget>
-     </item>
-     <item row="5" column="0">
-      <widget class="QCheckBox" name="checkBox_trkVolumes">
-       <property name="text">
-        <string>Tracking Volumes</string>
-       </property>
-       <property name="checked">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="7" column="0">
-      <widget class="QCheckBox" name="checkBox_lines">
-       <property name="text">
-        <string>Line from origin</string>
-       </property>
-       <property name="checked">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="7" column="1">
-      <widget class="QPushButton" name="pushButton_settings_lines">
-       <property name="text">
-        <string>Configure</string>
-       </property>
-      </widget>
-     </item>
-     -->
     </layout>
    </item>
    <item row="0" column="1">