From f63f559ad451c0416c1b0e7377d973172baf36e1 Mon Sep 17 00:00:00 2001
From: Florian Uhlig <f.uhlig@gsi.de>
Date: Fri, 22 Jan 2021 15:26:46 +0100
Subject: [PATCH] Use unix line breaks for all files

Convert files with wrong format to unix style line breaks.
---
 .../pi0eta/CbmKresSelectGoodEvents.cxx        |  296 +-
 .../pi0eta/CbmKresSelectGoodEvents.h          |   84 +-
 cmake/scripts/cleanmacrodir.cmake             |   50 +-
 macro/KF/kf_thermal_signal_generator.C        |  180 +-
 macro/analysis/much/Pluto_analysis.C          |  496 +--
 macro/beamtime/mcbm2019/mcbm_reco.C           |  310 +-
 macro/fles/get4/parUnpack_get4.txt            |  376 +-
 macro/generators/run_CbmIonGenerator.C        |  482 +--
 macro/littrack/cbmrootlibs.C                  |   94 +-
 macro/littrack/radlength_ana.C                |  150 +-
 macro/littrack/radlength_sim.C                |  184 +-
 macro/littrack/scripts/much/much_ana.C        |  114 +-
 macro/passive/readme_pipe_v14k-p.txt          |   44 +-
 macro/rich/Import_GDML_Export_ROOT.c          |  108 +-
 macro/rich/d0/run_d0.C                        |  446 +--
 .../CreateGeo/2015_minus10deg_LowerPart.gdml  |  730 ++--
 .../2015_minus10deg_LowerPart_ModAug2015.gdml |  726 ++--
 .../CreateGeo/2015_minus10deg_UpperPart.gdml  |   90 +-
 .../minus10deg_ext_mirror_LowerPart.gdml      |  840 ++--
 .../geotest/RotPMT/Import_GDML_Export_ROOT.c  |  126 +-
 .../CreateGeo/2015_minus10degLower.txt        |  728 ++--
 .../TransPMT/CreateGeo/2015_minus10deg_.gdml  |  818 ++--
 .../CreateGeo/2015_minus10deg_LowerPart.gdml  |  730 ++--
 .../CreateGeo/2015_minus10deg_UpperPart.gdml  |   92 +-
 .../TransPMT/CreateGeo/GDML_to_ROOT_Trans.C   |  180 +-
 .../CreateGeo/Import_GDML_Export_ROOT.c       |  142 +-
 .../geotest/geoopt/rich_opt_template.gdml     | 3366 ++++++++---------
 .../geometry/gdml/Import_GDML_Export_ROOT.c   |   48 +-
 macro/sts/matbudget_ana.C                     |  420 +-
 macro/sts/matbudget_ana_phi.C                 |  428 +--
 macro/tof/beamtime/feb15/parUnpack_basic.txt  |  398 +-
 macro/tof/beamtime/feb15/parUnpack_rates.txt  |  406 +-
 .../tof/beamtime/lab16/parUnpCernNov2015.txt  |  434 +--
 macro/tof/beamtime/lab16/parUnpack_basic.txt  |  354 +-
 macro/tof/beamtime/lab16/parUnpack_rates.txt  |  356 +-
 .../tof/beamtime/nov15/parUnpCernNov2015.txt  |  434 +--
 macro/tof/beamtime/nov15/parUnpack_basic.txt  |  344 +-
 macro/tof/beamtime/nov15/parUnpack_rates.txt  |  356 +-
 macro/tof/beamtime/thuqa/parUnpack_basic.txt  |  318 +-
 macro/tof/geometry/TOF_10M.dat                |  438 +--
 macro/tools/skimming_reco.C                   |  194 +-
 macro/tracking/lx/run_reco.C                  |  802 ++--
 macro/tracking/lx/run_stat.C                  |  428 +--
 macro/trd/elid/q-p1.5.dat                     |  198 +-
 44 files changed, 9169 insertions(+), 9169 deletions(-)

diff --git a/analysis/PWGDIL/dielectron/pi0eta/CbmKresSelectGoodEvents.cxx b/analysis/PWGDIL/dielectron/pi0eta/CbmKresSelectGoodEvents.cxx
index 8933340259..ec4aacf0ad 100644
--- a/analysis/PWGDIL/dielectron/pi0eta/CbmKresSelectGoodEvents.cxx
+++ b/analysis/PWGDIL/dielectron/pi0eta/CbmKresSelectGoodEvents.cxx
@@ -1,148 +1,148 @@
-/**
- *    file CbmKresSelectGoodEvents.cxx
- *
- *    author Ievgenii Kres
- *    date 27.03.2018 
- *    modified 30.01.2020
- *
- *    Class for selection of Geant events only when special conditions are fulfilled.
- *    It was uded to select events, where eta -> gamma + gamma -> e+ e- e+ e-    --> double conversion is happening.
- *    See thesis chapter 7.3
- *
- **/
-
-#include "CbmKresSelectGoodEvents.h"
-
-#include "CbmMCTrack.h"
-
-#include "FairLogger.h"
-#include "FairRootManager.h"
-#include "FairRunSim.h"
-
-#include <iostream>
-
-using namespace std;
-
-CbmKresSelectGoodEvents::CbmKresSelectGoodEvents()
-  : FairTask(), fMcTracks(nullptr), fApp(nullptr) {}
-
-CbmKresSelectGoodEvents::~CbmKresSelectGoodEvents() {}
-
-InitStatus CbmKresSelectGoodEvents::Init() {
-
-  FairRunSim* sim = FairRunSim::Instance();
-  if (sim) { fApp = FairMCApplication::Instance(); }
-
-  FairRootManager* ioman = FairRootManager::Instance();
-  if (nullptr == ioman) {
-    Fatal("CbmKresEta::Init", "RootManager not instantised!");
-  }
-
-  fMcTracks = (TClonesArray*) ioman->GetObject("MCTrack");
-  if (nullptr == fMcTracks) {
-    Fatal("CbmKresSelectGoodEvents::Init", "No MCTrack array!");
-  }
-
-  return kSUCCESS;
-}
-
-
-void CbmKresSelectGoodEvents::Exec(Option_t*) {
-  Electrons.clear();
-  Int_t nofMcTracks = fMcTracks->GetEntriesFast();
-  for (int i = 0; i < nofMcTracks; i++) {
-    CbmMCTrack* mctrack = (CbmMCTrack*) fMcTracks->At(i);
-    if (mctrack == nullptr) continue;
-    if (mctrack->GetMotherId() == -1) continue;
-    CbmMCTrack* mcMotherTrack =
-      (CbmMCTrack*) fMcTracks->At(mctrack->GetMotherId());
-    if (mcMotherTrack == nullptr) continue;
-
-    if (TMath::Abs(mctrack->GetPdgCode()) == 11
-        && mcMotherTrack->GetPdgCode() == 22) {
-      if (mcMotherTrack->GetMotherId() == -1) continue;
-      CbmMCTrack* mcGrTrack =
-        (CbmMCTrack*) fMcTracks->At(mcMotherTrack->GetMotherId());
-      if (mcGrTrack == nullptr) continue;
-      if (mcGrTrack->GetPdgCode() == 221) { Electrons.push_back(mctrack); }
-    }
-  }
-
-  int EtaConversion = 0;
-  if (Electrons.size() >= 4) {
-    for (size_t i = 0; i < Electrons.size(); i++) {
-      for (size_t j = i + 1; j < Electrons.size(); j++) {
-        for (size_t k = j + 1; k < Electrons.size(); k++) {
-          for (size_t l = k + 1; l < Electrons.size(); l++) {
-
-            int pdg1 = Electrons.at(i)->GetPdgCode();
-            int pdg2 = Electrons.at(j)->GetPdgCode();
-            int pdg3 = Electrons.at(k)->GetPdgCode();
-            int pdg4 = Electrons.at(l)->GetPdgCode();
-
-            if (pdg1 + pdg2 + pdg3 + pdg4 != 0) continue;
-            if (TMath::Abs(pdg1) != 11 || TMath::Abs(pdg2) != 11
-                || TMath::Abs(pdg3) != 11 || TMath::Abs(pdg4) != 11)
-              continue;
-
-            int motherId1 = Electrons.at(i)->GetMotherId();
-            int motherId2 = Electrons.at(j)->GetMotherId();
-            int motherId3 = Electrons.at(k)->GetMotherId();
-            int motherId4 = Electrons.at(l)->GetMotherId();
-
-            if (motherId1 == -1 || motherId2 == -1 || motherId3 == -1
-                || motherId4 == -1)
-              continue;
-
-            CbmMCTrack* mother1 = (CbmMCTrack*) fMcTracks->At(motherId1);
-            CbmMCTrack* mother2 = (CbmMCTrack*) fMcTracks->At(motherId2);
-            CbmMCTrack* mother3 = (CbmMCTrack*) fMcTracks->At(motherId3);
-            CbmMCTrack* mother4 = (CbmMCTrack*) fMcTracks->At(motherId4);
-
-            int mcMotherPdg1 = mother1->GetPdgCode();
-            int mcMotherPdg2 = mother2->GetPdgCode();
-            int mcMotherPdg3 = mother3->GetPdgCode();
-            int mcMotherPdg4 = mother4->GetPdgCode();
-
-            if (mcMotherPdg1 != 22 || mcMotherPdg2 != 22 || mcMotherPdg3 != 22
-                || mcMotherPdg4 != 22)
-              continue;
-
-            int grandmotherId1 = mother1->GetMotherId();
-            int grandmotherId2 = mother2->GetMotherId();
-            int grandmotherId3 = mother3->GetMotherId();
-            int grandmotherId4 = mother4->GetMotherId();
-
-            if (grandmotherId1 == -1) continue;
-            CbmMCTrack* GrTrack = (CbmMCTrack*) fMcTracks->At(grandmotherId1);
-
-            if (grandmotherId1 == grandmotherId2
-                && grandmotherId1 == grandmotherId3
-                && grandmotherId1 == grandmotherId4
-                && GrTrack->GetPdgCode() == 221) {
-              EtaConversion++;
-              cout << "Decay eta -> gamma gamma -> e+e- e+e- detected!\t\t mc "
-                      "mass: "
-                   << GrTrack->GetMass() << endl;
-              cout << "motherids: " << motherId1 << "/" << motherId2 << "/"
-                   << motherId3 << "/" << motherId4 << endl;
-              cout << "grandmotherid: " << grandmotherId1 << "/"
-                   << grandmotherId2 << "/" << grandmotherId3 << "/"
-                   << grandmotherId4 << endl;
-            }
-          }
-        }
-      }
-    }
-  }
-
-  cout << "CbmKresSelectGoodEvents, EtaConversion = " << EtaConversion << endl;
-
-  // if (fApp && EtaConversion == 0) {
-  // 	LOG(WARNING) << "No double converted Eta";
-  // 	fApp->SetSaveCurrentEvent(kFALSE);
-  // }
-}
-
-
-void CbmKresSelectGoodEvents::Finish() {}
+/**
+ *    file CbmKresSelectGoodEvents.cxx
+ *
+ *    author Ievgenii Kres
+ *    date 27.03.2018 
+ *    modified 30.01.2020
+ *
+ *    Class for selection of Geant events only when special conditions are fulfilled.
+ *    It was uded to select events, where eta -> gamma + gamma -> e+ e- e+ e-    --> double conversion is happening.
+ *    See thesis chapter 7.3
+ *
+ **/
+
+#include "CbmKresSelectGoodEvents.h"
+
+#include "CbmMCTrack.h"
+
+#include "FairLogger.h"
+#include "FairRootManager.h"
+#include "FairRunSim.h"
+
+#include <iostream>
+
+using namespace std;
+
+CbmKresSelectGoodEvents::CbmKresSelectGoodEvents()
+  : FairTask(), fMcTracks(nullptr), fApp(nullptr) {}
+
+CbmKresSelectGoodEvents::~CbmKresSelectGoodEvents() {}
+
+InitStatus CbmKresSelectGoodEvents::Init() {
+
+  FairRunSim* sim = FairRunSim::Instance();
+  if (sim) { fApp = FairMCApplication::Instance(); }
+
+  FairRootManager* ioman = FairRootManager::Instance();
+  if (nullptr == ioman) {
+    Fatal("CbmKresEta::Init", "RootManager not instantised!");
+  }
+
+  fMcTracks = (TClonesArray*) ioman->GetObject("MCTrack");
+  if (nullptr == fMcTracks) {
+    Fatal("CbmKresSelectGoodEvents::Init", "No MCTrack array!");
+  }
+
+  return kSUCCESS;
+}
+
+
+void CbmKresSelectGoodEvents::Exec(Option_t*) {
+  Electrons.clear();
+  Int_t nofMcTracks = fMcTracks->GetEntriesFast();
+  for (int i = 0; i < nofMcTracks; i++) {
+    CbmMCTrack* mctrack = (CbmMCTrack*) fMcTracks->At(i);
+    if (mctrack == nullptr) continue;
+    if (mctrack->GetMotherId() == -1) continue;
+    CbmMCTrack* mcMotherTrack =
+      (CbmMCTrack*) fMcTracks->At(mctrack->GetMotherId());
+    if (mcMotherTrack == nullptr) continue;
+
+    if (TMath::Abs(mctrack->GetPdgCode()) == 11
+        && mcMotherTrack->GetPdgCode() == 22) {
+      if (mcMotherTrack->GetMotherId() == -1) continue;
+      CbmMCTrack* mcGrTrack =
+        (CbmMCTrack*) fMcTracks->At(mcMotherTrack->GetMotherId());
+      if (mcGrTrack == nullptr) continue;
+      if (mcGrTrack->GetPdgCode() == 221) { Electrons.push_back(mctrack); }
+    }
+  }
+
+  int EtaConversion = 0;
+  if (Electrons.size() >= 4) {
+    for (size_t i = 0; i < Electrons.size(); i++) {
+      for (size_t j = i + 1; j < Electrons.size(); j++) {
+        for (size_t k = j + 1; k < Electrons.size(); k++) {
+          for (size_t l = k + 1; l < Electrons.size(); l++) {
+
+            int pdg1 = Electrons.at(i)->GetPdgCode();
+            int pdg2 = Electrons.at(j)->GetPdgCode();
+            int pdg3 = Electrons.at(k)->GetPdgCode();
+            int pdg4 = Electrons.at(l)->GetPdgCode();
+
+            if (pdg1 + pdg2 + pdg3 + pdg4 != 0) continue;
+            if (TMath::Abs(pdg1) != 11 || TMath::Abs(pdg2) != 11
+                || TMath::Abs(pdg3) != 11 || TMath::Abs(pdg4) != 11)
+              continue;
+
+            int motherId1 = Electrons.at(i)->GetMotherId();
+            int motherId2 = Electrons.at(j)->GetMotherId();
+            int motherId3 = Electrons.at(k)->GetMotherId();
+            int motherId4 = Electrons.at(l)->GetMotherId();
+
+            if (motherId1 == -1 || motherId2 == -1 || motherId3 == -1
+                || motherId4 == -1)
+              continue;
+
+            CbmMCTrack* mother1 = (CbmMCTrack*) fMcTracks->At(motherId1);
+            CbmMCTrack* mother2 = (CbmMCTrack*) fMcTracks->At(motherId2);
+            CbmMCTrack* mother3 = (CbmMCTrack*) fMcTracks->At(motherId3);
+            CbmMCTrack* mother4 = (CbmMCTrack*) fMcTracks->At(motherId4);
+
+            int mcMotherPdg1 = mother1->GetPdgCode();
+            int mcMotherPdg2 = mother2->GetPdgCode();
+            int mcMotherPdg3 = mother3->GetPdgCode();
+            int mcMotherPdg4 = mother4->GetPdgCode();
+
+            if (mcMotherPdg1 != 22 || mcMotherPdg2 != 22 || mcMotherPdg3 != 22
+                || mcMotherPdg4 != 22)
+              continue;
+
+            int grandmotherId1 = mother1->GetMotherId();
+            int grandmotherId2 = mother2->GetMotherId();
+            int grandmotherId3 = mother3->GetMotherId();
+            int grandmotherId4 = mother4->GetMotherId();
+
+            if (grandmotherId1 == -1) continue;
+            CbmMCTrack* GrTrack = (CbmMCTrack*) fMcTracks->At(grandmotherId1);
+
+            if (grandmotherId1 == grandmotherId2
+                && grandmotherId1 == grandmotherId3
+                && grandmotherId1 == grandmotherId4
+                && GrTrack->GetPdgCode() == 221) {
+              EtaConversion++;
+              cout << "Decay eta -> gamma gamma -> e+e- e+e- detected!\t\t mc "
+                      "mass: "
+                   << GrTrack->GetMass() << endl;
+              cout << "motherids: " << motherId1 << "/" << motherId2 << "/"
+                   << motherId3 << "/" << motherId4 << endl;
+              cout << "grandmotherid: " << grandmotherId1 << "/"
+                   << grandmotherId2 << "/" << grandmotherId3 << "/"
+                   << grandmotherId4 << endl;
+            }
+          }
+        }
+      }
+    }
+  }
+
+  cout << "CbmKresSelectGoodEvents, EtaConversion = " << EtaConversion << endl;
+
+  // if (fApp && EtaConversion == 0) {
+  // 	LOG(WARNING) << "No double converted Eta";
+  // 	fApp->SetSaveCurrentEvent(kFALSE);
+  // }
+}
+
+
+void CbmKresSelectGoodEvents::Finish() {}
diff --git a/analysis/PWGDIL/dielectron/pi0eta/CbmKresSelectGoodEvents.h b/analysis/PWGDIL/dielectron/pi0eta/CbmKresSelectGoodEvents.h
index 02925a2cf3..198c7c32b7 100644
--- a/analysis/PWGDIL/dielectron/pi0eta/CbmKresSelectGoodEvents.h
+++ b/analysis/PWGDIL/dielectron/pi0eta/CbmKresSelectGoodEvents.h
@@ -1,42 +1,42 @@
-#ifndef CBM_KRES_SELECT_GOOD_EVENTS
-#define CBM_KRES_SELECT_GOOD_EVENTS
-
-
-#include "FairTask.h"
-
-#include "CbmMCTrack.h"
-#include <TClonesArray.h>
-#include <vector>
-
-class FairMCApplication;
-
-class CbmKresSelectGoodEvents : public FairTask {
-
-public:
-  //***** brief Standard constructor.
-  CbmKresSelectGoodEvents();
-  //***** brief Standard destructor.
-  virtual ~CbmKresSelectGoodEvents();
-
-
-  virtual InitStatus Init();
-  virtual void Finish();
-
-  virtual void Exec(Option_t*);
-
-private:
-  TClonesArray* fMcTracks;
-  FairMCApplication* fApp;
-  std::vector<CbmMCTrack*> Electrons;
-
-  //***** brief Copy constructor.
-  CbmKresSelectGoodEvents(const CbmKresSelectGoodEvents&);
-
-  //***** brief Assignment operator.
-  CbmKresSelectGoodEvents operator=(const CbmKresSelectGoodEvents&);
-
-
-  ClassDef(CbmKresSelectGoodEvents, 1)
-};
-
-#endif
+#ifndef CBM_KRES_SELECT_GOOD_EVENTS
+#define CBM_KRES_SELECT_GOOD_EVENTS
+
+
+#include "FairTask.h"
+
+#include "CbmMCTrack.h"
+#include <TClonesArray.h>
+#include <vector>
+
+class FairMCApplication;
+
+class CbmKresSelectGoodEvents : public FairTask {
+
+public:
+  //***** brief Standard constructor.
+  CbmKresSelectGoodEvents();
+  //***** brief Standard destructor.
+  virtual ~CbmKresSelectGoodEvents();
+
+
+  virtual InitStatus Init();
+  virtual void Finish();
+
+  virtual void Exec(Option_t*);
+
+private:
+  TClonesArray* fMcTracks;
+  FairMCApplication* fApp;
+  std::vector<CbmMCTrack*> Electrons;
+
+  //***** brief Copy constructor.
+  CbmKresSelectGoodEvents(const CbmKresSelectGoodEvents&);
+
+  //***** brief Assignment operator.
+  CbmKresSelectGoodEvents operator=(const CbmKresSelectGoodEvents&);
+
+
+  ClassDef(CbmKresSelectGoodEvents, 1)
+};
+
+#endif
diff --git a/cmake/scripts/cleanmacrodir.cmake b/cmake/scripts/cleanmacrodir.cmake
index b6b5a03b18..6d9fc36ba5 100644
--- a/cmake/scripts/cleanmacrodir.cmake
+++ b/cmake/scripts/cleanmacrodir.cmake
@@ -8,29 +8,29 @@
 # This is of particular relevance e.g., for ROOT parameter files, which will
 # be updated instead of re-generated by successive test runs. 
 
-Message("Remove all files from directory ${CMAKE_CURRENT_BINARY_DIR}/data")
-file(GLOB _deletefiles
-     LIST_DIRECTORIES false
-     ${CMAKE_CURRENT_BINARY_DIR}/data/*
-    )
-foreach(file IN LISTS _deletefiles)
-  file(REMOVE ${file})
-endforeach()
-
-Message("Remove all all*.par files from ${CMAKE_CURRENT_BINARY_DIR}")
-file(GLOB _parfiles 
-     LIST_DIRECTORIES false
-     ${CMAKE_CURRENT_BINARY_DIR}/all*.par
-    )
-foreach(file IN LISTS _parfiles)
-  file(REMOVE ${file})
-endforeach()
+Message("Remove all files from directory ${CMAKE_CURRENT_BINARY_DIR}/data")
+file(GLOB _deletefiles
+     LIST_DIRECTORIES false
+     ${CMAKE_CURRENT_BINARY_DIR}/data/*
+    )
+foreach(file IN LISTS _deletefiles)
+  file(REMOVE ${file})
+endforeach()
 
-Message("Remove all core dump files from ${CMAKE_CURRENT_BINARY_DIR}")
-file(GLOB _dumpfiles 
-     LIST_DIRECTORIES false
-     ${CMAKE_CURRENT_BINARY_DIR}/core_dump_*
-    )
-foreach(file IN LISTS _dumpfiles)
-  file(REMOVE ${file})
-endforeach()
+Message("Remove all all*.par files from ${CMAKE_CURRENT_BINARY_DIR}")
+file(GLOB _parfiles 
+     LIST_DIRECTORIES false
+     ${CMAKE_CURRENT_BINARY_DIR}/all*.par
+    )
+foreach(file IN LISTS _parfiles)
+  file(REMOVE ${file})
+endforeach()
+
+Message("Remove all core dump files from ${CMAKE_CURRENT_BINARY_DIR}")
+file(GLOB _dumpfiles 
+     LIST_DIRECTORIES false
+     ${CMAKE_CURRENT_BINARY_DIR}/core_dump_*
+    )
+foreach(file IN LISTS _dumpfiles)
+  file(REMOVE ${file})
+endforeach()
diff --git a/macro/KF/kf_thermal_signal_generator.C b/macro/KF/kf_thermal_signal_generator.C
index a918034efd..5605ad7df1 100644
--- a/macro/KF/kf_thermal_signal_generator.C
+++ b/macro/KF/kf_thermal_signal_generator.C
@@ -1,90 +1,90 @@
-//---------------------------------------------------------------------------------
-// @author  M. Zyzak
-// @version 1.0
-// @since   15.08.14
-//
-// macro to generate signal events for KFParticleFinder
-//_________________________________________________________________________________
-
-void kf_thermal_signal_generator(Int_t iParticle    = 0,
-                                 Int_t NEvents      = 1000,
-                                 TString outputName = "./Signal.root") {
-  const double kProtonMass = 0.938272321;  // Proton mass in GeV
-
-  KFPartEfficiencies eff;
-
-  const double kSignalMass = eff.partMass[iParticle];  //  mass in GeV
-  int kSignalPDG           = eff.partPDG[iParticle];
-
-  if (kSignalPDG == 7003112) kSignalPDG = 3112;
-  if (kSignalPDG == -7003112) kSignalPDG = -3112;
-  if (kSignalPDG == 7003222) kSignalPDG = 3222;
-  if (kSignalPDG == -7003222) kSignalPDG = -3222;
-
-  double fSlope    = 0.2;
-  double fRapSigma = 0.448;
-  double eBeam     = 10.;
-  double pBeam     = TMath::Sqrt(eBeam * eBeam - kProtonMass * kProtonMass);
-  double fYcm      = 0.25 * TMath::Log((eBeam + pBeam) / (eBeam - pBeam));
-
-  TF1* fThermal =
-    new TF1("thermal", "x*exp(-1.*sqrt(x*x+[1]*[1]) / [0])", 0., 10.);
-  fThermal->SetParameter(0, fSlope);
-  fThermal->SetParameter(1, kSignalMass);
-  TRandom* fRandGen = new TRandom(0);
-
-  URun* header =
-    new URun("Thermal signal", "", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NEvents);
-  UEvent* event = new UEvent;
-  TFile* output = new TFile(outputName.Data(), "recreate");
-  TTree* tree   = new TTree("events", "signal");
-  header->Write();
-  tree->Branch("event", "UEvent", event);
-
-  int ParticlesPerEvent = 1;
-  for (int i = 0; i < NEvents; i++) {
-    event->Clear();
-    event->SetParameters(i, 0, 0, 0, 0, 0);
-
-    for (int j = 0; j < ParticlesPerEvent; ++j) {
-      double yD   = fRandGen->Gaus(fYcm, fRapSigma);
-      double ptD  = fThermal->GetRandom();
-      double phiD = fRandGen->Uniform(0., 2. * TMath::Pi());
-
-      // Calculate momentum, energy, beta and gamma
-      double px = ptD * TMath::Cos(phiD);
-      double py = ptD * TMath::Sin(phiD);
-      double mt = TMath::Sqrt(kSignalMass * kSignalMass + ptD * ptD);
-      double pz = mt * TMath::SinH(yD);
-      double energy =
-        sqrt(kSignalMass * kSignalMass + px * px + py * py + pz * pz);
-
-      Int_t child[2] = {0, 0};
-      event->AddParticle(j,
-                         kSignalPDG,
-                         0,
-                         -1,
-                         -1,
-                         -1,
-                         -1,
-                         child,
-                         px,
-                         py,
-                         pz,
-                         energy,
-                         0,
-                         0,
-                         0,
-                         0,
-                         1);
-    }
-
-    tree->Fill();
-  }
-
-  tree->Write();
-  output->Close();
-
-  std::cout << " Test passed" << std::endl;
-  std::cout << " All ok " << std::endl;
-}
+//---------------------------------------------------------------------------------
+// @author  M. Zyzak
+// @version 1.0
+// @since   15.08.14
+//
+// macro to generate signal events for KFParticleFinder
+//_________________________________________________________________________________
+
+void kf_thermal_signal_generator(Int_t iParticle    = 0,
+                                 Int_t NEvents      = 1000,
+                                 TString outputName = "./Signal.root") {
+  const double kProtonMass = 0.938272321;  // Proton mass in GeV
+
+  KFPartEfficiencies eff;
+
+  const double kSignalMass = eff.partMass[iParticle];  //  mass in GeV
+  int kSignalPDG           = eff.partPDG[iParticle];
+
+  if (kSignalPDG == 7003112) kSignalPDG = 3112;
+  if (kSignalPDG == -7003112) kSignalPDG = -3112;
+  if (kSignalPDG == 7003222) kSignalPDG = 3222;
+  if (kSignalPDG == -7003222) kSignalPDG = -3222;
+
+  double fSlope    = 0.2;
+  double fRapSigma = 0.448;
+  double eBeam     = 10.;
+  double pBeam     = TMath::Sqrt(eBeam * eBeam - kProtonMass * kProtonMass);
+  double fYcm      = 0.25 * TMath::Log((eBeam + pBeam) / (eBeam - pBeam));
+
+  TF1* fThermal =
+    new TF1("thermal", "x*exp(-1.*sqrt(x*x+[1]*[1]) / [0])", 0., 10.);
+  fThermal->SetParameter(0, fSlope);
+  fThermal->SetParameter(1, kSignalMass);
+  TRandom* fRandGen = new TRandom(0);
+
+  URun* header =
+    new URun("Thermal signal", "", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NEvents);
+  UEvent* event = new UEvent;
+  TFile* output = new TFile(outputName.Data(), "recreate");
+  TTree* tree   = new TTree("events", "signal");
+  header->Write();
+  tree->Branch("event", "UEvent", event);
+
+  int ParticlesPerEvent = 1;
+  for (int i = 0; i < NEvents; i++) {
+    event->Clear();
+    event->SetParameters(i, 0, 0, 0, 0, 0);
+
+    for (int j = 0; j < ParticlesPerEvent; ++j) {
+      double yD   = fRandGen->Gaus(fYcm, fRapSigma);
+      double ptD  = fThermal->GetRandom();
+      double phiD = fRandGen->Uniform(0., 2. * TMath::Pi());
+
+      // Calculate momentum, energy, beta and gamma
+      double px = ptD * TMath::Cos(phiD);
+      double py = ptD * TMath::Sin(phiD);
+      double mt = TMath::Sqrt(kSignalMass * kSignalMass + ptD * ptD);
+      double pz = mt * TMath::SinH(yD);
+      double energy =
+        sqrt(kSignalMass * kSignalMass + px * px + py * py + pz * pz);
+
+      Int_t child[2] = {0, 0};
+      event->AddParticle(j,
+                         kSignalPDG,
+                         0,
+                         -1,
+                         -1,
+                         -1,
+                         -1,
+                         child,
+                         px,
+                         py,
+                         pz,
+                         energy,
+                         0,
+                         0,
+                         0,
+                         0,
+                         1);
+    }
+
+    tree->Fill();
+  }
+
+  tree->Write();
+  output->Close();
+
+  std::cout << " Test passed" << std::endl;
+  std::cout << " All ok " << std::endl;
+}
diff --git a/macro/analysis/much/Pluto_analysis.C b/macro/analysis/much/Pluto_analysis.C
index 687214f009..c46bd1dbe1 100644
--- a/macro/analysis/much/Pluto_analysis.C
+++ b/macro/analysis/much/Pluto_analysis.C
@@ -1,248 +1,248 @@
-//---------------------------------------------------
-//
-// PLUTO parameters of low-mass vector mesons and thermal muons @ 8 A GeV/c
-// and J/psi muons @ 10 A GeV/c
-/*
-   Particles:
-   0 - rho
-   1 - omega
-   2 - omegaD
-   3 - phi
-   4 - eta
-   5 - etaD
-   6 - qgp
-   7 - J/psi, but now only 10 A GeV/c
-*/
-//
-// TODO macro for all SIS100 energies
-//
-// Anna Senger a.senger@gsi.de
-//
-//---------------------------------------------------
-void Pluto_analysis(int part = 0, int energy = 8, int NofFiles = 5000) {
-  TDatabasePDG* dataBase = TDatabasePDG::Instance();
-  Int_t iEvent;
-  Double_t nEvents;
-
-  gStyle->SetCanvasColor(10);
-  gStyle->SetFrameFillColor(10);
-  gStyle->SetHistLineWidth(6);
-  gStyle->SetPadColor(10);
-  gStyle->SetStatColor(10);
-  gStyle->SetPalette(1);
-
-  TClonesArray* fParticles = new TClonesArray("PParticle", 100);
-
-  TString partName;
-  TString partpartName;
-  TString chanName;
-  TString cktName;
-
-  chanName.Form("mpmm");
-  cktName.Form("cktA");
-
-  TString sgn[] = {
-    "rho0", "omega", "omegaD", "phi", "eta", "etaD", "rapp.qgp", "jpsi"};
-  TString sgnsgn[] = {
-    "rho0", "omega", "omega", "phi", "eta", "eta", "rapp.qgp", "jpsi"};
-
-  partName     = sgn[part];
-  partpartName = sgnsgn[part];
-  if (part == 2) chanName.Form("pi0mpmm");
-  if (part == 5) chanName.Form("gmpmm");
-  if (part == 6) cktName.Form("cktRapp");
-  if (part == 7) {
-    cktName.Form("charm");
-    energy = 10;
-  }
-
-  Double_t brOmega  = 9e-5;
-  Double_t brOmegaD = 1.3e-4;
-  Double_t brEta    = 5.8e-6;
-  Double_t brEtaD   = 3.1e-4;
-  Double_t brRho    = 4.55e-5;
-  Double_t brPhi    = 2.87e-4;
-  Double_t brJPsi   = 0.06;
-
-  Double_t multOmega  = 19.;
-  Double_t multOmegaD = 19.;
-  Double_t multEta    = 16.;
-  Double_t multEtaD   = 16.;
-  Double_t multRho    = 9.;
-  Double_t multPhi    = 0.12;
-  Double_t multQGP    = 3.2e-3;
-  Double_t multJPsi   = 1e-6;
-
-  Double_t partMulti[] = {multRho * brRho,
-                          multOmega * brOmega,
-                          multOmegaD * brOmegaD,
-                          multPhi * brPhi,
-                          multEta * brEta,
-                          multEtaD * brEtaD,
-                          multQGP,
-                          multJPsi * brJPsi};
-  Double_t multi[]     = {
-    multRho, multOmega, multOmegaD, multPhi, multEta, multEtaD, 1, multJPsi};
-
-  cout << "**********************" << endl;
-  cout << partName << " - " << partMulti[part] << endl;
-  cout << "**********************" << endl;
-
-
-  Int_t NofBins  = 100;
-  Int_t NofBinsM = 400;
-
-  Double_t minY  = -2;
-  Double_t maxY  = 6;
-  Double_t min   = 0;
-  Double_t maxPt = 10;
-  Double_t maxP  = 20;
-  Double_t maxM  = 4;
-
-  //----------------------------------
-  //----------------------------------
-  TString histoName;
-  histoName.Form("YPt_%s", partName.Data());
-
-  TH2D* YPt_part = new TH2D(histoName.Data(),
-                            histoName.Data(),
-                            NofBins,
-                            minY,
-                            maxY,
-                            NofBins,
-                            min,
-                            maxPt);
-  (YPt_part->GetXaxis())->SetTitle("y");
-  (YPt_part->GetYaxis())->SetTitle("p_{t} (GeV/c)");
-  (YPt_part->GetZaxis())->SetTitle("counts/events");
-
-  //----------------------------------
-  //----------------------------------
-  histoName.Form("invM_%s", partName.Data());
-
-  TH1D* invM_part =
-    new TH1D(histoName.Data(), histoName.Data(), NofBinsM, min, maxM);
-  (invM_part->GetXaxis())->SetTitle("m_{inv}(GeV/c^{2}");
-  (invM_part->GetYaxis())->SetTitle("counts/(events #times 10 MeV/c^{2})");
-  invM_part->SetLineColor(kRed);
-
-  //----------------------------------
-  //----------------------------------
-  histoName.Form("P_%s", partName.Data());
-
-  TH1D* P_part =
-    new TH1D(histoName.Data(), histoName.Data(), NofBins, min, maxP);
-  (P_part->GetXaxis())->SetTitle("p (GeV/c)");
-  (P_part->GetYaxis())->SetTitle("counts/events");
-  P_part->SetLineColor(kRed);
-
-  //----------------------------------
-  //----------------------------------
-  histoName.Form("Pt_%s", partName.Data());
-
-  TH1D* Pt_part =
-    new TH1D(histoName.Data(), histoName.Data(), NofBins, min, maxPt);
-  (Pt_part->GetXaxis())->SetTitle("p_{t} (GeV/c)");
-  (Pt_part->GetYaxis())->SetTitle("counts/events");
-  Pt_part->SetLineColor(kRed);
-
-  //----------------------------------
-  //----------------------------------
-  histoName.Form("Y_%s", partName.Data());
-
-  TH1D* Y_part =
-    new TH1D(histoName.Data(), histoName.Data(), NofBins, minY, maxY);
-  (Y_part->GetXaxis())->SetTitle("y");
-  (Y_part->GetYaxis())->SetTitle("counts/events");
-  Y_part->SetLineColor(kRed);
-
-  //----------------------------------
-  //----------------------------------
-  histoName.Form("YPtM_%s", partName.Data());
-
-  TH3D* YPtM_part = new TH3D(histoName.Data(),
-                             histoName.Data(),
-                             NofBins,
-                             minY,
-                             maxY,
-                             NofBins,
-                             min,
-                             maxPt,
-                             NofBinsM,
-                             min,
-                             maxM);
-
-  //----------------------------------
-
-  for (int i = 1; i < NofFiles + 1; i++) {
-    TString fileName;
-
-    char str[4];
-    sprintf(str, "%4d", i);
-    for (int it = 0; it < 4; it++) {
-      if (' ' == str[it]) str[it] = '0';
-    }
-    fileName.Form("/lustre/cbm/prod/gen/pluto/auau/%s/%dgev/%s/%s/"
-                  "pluto.auau.%dgev.%s.%s.%s.root",
-                  cktName.Data(),
-                  energy,
-                  partpartName.Data(),
-                  chanName.Data(),
-                  energy,
-                  partpartName.Data(),
-                  chanName.Data(),
-                  str);
-    TFile* InputFile = new TFile(fileName.Data());
-    TTree* InputTree = (TTree*) InputFile->Get("data");
-    InputTree->SetBranchAddress("Particles", &fParticles);
-
-    if (i % 100 == 0) cout << "-----------> " << fileName << endl;
-
-    for (iEvent = 0; iEvent < InputTree->GetEntries(); iEvent++) {
-      nEvents++;
-
-      InputTree->GetEntry(iEvent);
-
-      PParticle* Part1 = (PParticle*) fParticles->At(1);
-      PParticle* Part2 = (PParticle*) fParticles->At(2);
-
-      if (part == 2 || part == 5) {
-        Part1 = (PParticle*) fParticles->At(2);
-        Part2 = (PParticle*) fParticles->At(3);
-      }
-
-      TLorentzVector mom1 = Part1->Vect4();
-      TLorentzVector mom2 = Part2->Vect4();
-
-      TLorentzVector Mom = mom1 + mom2;
-      YPt_part->Fill(Mom.Rapidity(), Mom.Pt());
-      Y_part->Fill(Mom.Rapidity());
-      Pt_part->Fill(Mom.Pt());
-      P_part->Fill(Mom.P());
-      invM_part->Fill(Mom.M(), 1. / 10);
-      YPtM_part->Fill(Mom.Rapidity(), Mom.Pt(), Mom.M());
-    }
-
-    InputFile->Close();
-  }
-
-
-  invM_part->Scale(partMulti[part] / nEvents);
-  YPtM_part->Scale(multi[part] / nEvents);
-
-  P_part->Scale(multi[part] / nEvents);
-  Pt_part->Scale(multi[part] / nEvents);
-  Y_part->Scale(multi[part] / nEvents);
-  YPt_part->Scale(multi[part] / nEvents);
-
-  TString name;
-  name.Form("%dgev.pluto.%s.root", energy, partName.Data());
-  TFile* FFF = new TFile(name.Data(), "recreate");
-  invM_part->Write();
-  P_part->Write();
-  Pt_part->Write();
-  Y_part->Write();
-  YPt_part->Write();
-  YPtM_part->Write();
-  FFF->Close();
-}
+//---------------------------------------------------
+//
+// PLUTO parameters of low-mass vector mesons and thermal muons @ 8 A GeV/c
+// and J/psi muons @ 10 A GeV/c
+/*
+   Particles:
+   0 - rho
+   1 - omega
+   2 - omegaD
+   3 - phi
+   4 - eta
+   5 - etaD
+   6 - qgp
+   7 - J/psi, but now only 10 A GeV/c
+*/
+//
+// TODO macro for all SIS100 energies
+//
+// Anna Senger a.senger@gsi.de
+//
+//---------------------------------------------------
+void Pluto_analysis(int part = 0, int energy = 8, int NofFiles = 5000) {
+  TDatabasePDG* dataBase = TDatabasePDG::Instance();
+  Int_t iEvent;
+  Double_t nEvents;
+
+  gStyle->SetCanvasColor(10);
+  gStyle->SetFrameFillColor(10);
+  gStyle->SetHistLineWidth(6);
+  gStyle->SetPadColor(10);
+  gStyle->SetStatColor(10);
+  gStyle->SetPalette(1);
+
+  TClonesArray* fParticles = new TClonesArray("PParticle", 100);
+
+  TString partName;
+  TString partpartName;
+  TString chanName;
+  TString cktName;
+
+  chanName.Form("mpmm");
+  cktName.Form("cktA");
+
+  TString sgn[] = {
+    "rho0", "omega", "omegaD", "phi", "eta", "etaD", "rapp.qgp", "jpsi"};
+  TString sgnsgn[] = {
+    "rho0", "omega", "omega", "phi", "eta", "eta", "rapp.qgp", "jpsi"};
+
+  partName     = sgn[part];
+  partpartName = sgnsgn[part];
+  if (part == 2) chanName.Form("pi0mpmm");
+  if (part == 5) chanName.Form("gmpmm");
+  if (part == 6) cktName.Form("cktRapp");
+  if (part == 7) {
+    cktName.Form("charm");
+    energy = 10;
+  }
+
+  Double_t brOmega  = 9e-5;
+  Double_t brOmegaD = 1.3e-4;
+  Double_t brEta    = 5.8e-6;
+  Double_t brEtaD   = 3.1e-4;
+  Double_t brRho    = 4.55e-5;
+  Double_t brPhi    = 2.87e-4;
+  Double_t brJPsi   = 0.06;
+
+  Double_t multOmega  = 19.;
+  Double_t multOmegaD = 19.;
+  Double_t multEta    = 16.;
+  Double_t multEtaD   = 16.;
+  Double_t multRho    = 9.;
+  Double_t multPhi    = 0.12;
+  Double_t multQGP    = 3.2e-3;
+  Double_t multJPsi   = 1e-6;
+
+  Double_t partMulti[] = {multRho * brRho,
+                          multOmega * brOmega,
+                          multOmegaD * brOmegaD,
+                          multPhi * brPhi,
+                          multEta * brEta,
+                          multEtaD * brEtaD,
+                          multQGP,
+                          multJPsi * brJPsi};
+  Double_t multi[]     = {
+    multRho, multOmega, multOmegaD, multPhi, multEta, multEtaD, 1, multJPsi};
+
+  cout << "**********************" << endl;
+  cout << partName << " - " << partMulti[part] << endl;
+  cout << "**********************" << endl;
+
+
+  Int_t NofBins  = 100;
+  Int_t NofBinsM = 400;
+
+  Double_t minY  = -2;
+  Double_t maxY  = 6;
+  Double_t min   = 0;
+  Double_t maxPt = 10;
+  Double_t maxP  = 20;
+  Double_t maxM  = 4;
+
+  //----------------------------------
+  //----------------------------------
+  TString histoName;
+  histoName.Form("YPt_%s", partName.Data());
+
+  TH2D* YPt_part = new TH2D(histoName.Data(),
+                            histoName.Data(),
+                            NofBins,
+                            minY,
+                            maxY,
+                            NofBins,
+                            min,
+                            maxPt);
+  (YPt_part->GetXaxis())->SetTitle("y");
+  (YPt_part->GetYaxis())->SetTitle("p_{t} (GeV/c)");
+  (YPt_part->GetZaxis())->SetTitle("counts/events");
+
+  //----------------------------------
+  //----------------------------------
+  histoName.Form("invM_%s", partName.Data());
+
+  TH1D* invM_part =
+    new TH1D(histoName.Data(), histoName.Data(), NofBinsM, min, maxM);
+  (invM_part->GetXaxis())->SetTitle("m_{inv}(GeV/c^{2}");
+  (invM_part->GetYaxis())->SetTitle("counts/(events #times 10 MeV/c^{2})");
+  invM_part->SetLineColor(kRed);
+
+  //----------------------------------
+  //----------------------------------
+  histoName.Form("P_%s", partName.Data());
+
+  TH1D* P_part =
+    new TH1D(histoName.Data(), histoName.Data(), NofBins, min, maxP);
+  (P_part->GetXaxis())->SetTitle("p (GeV/c)");
+  (P_part->GetYaxis())->SetTitle("counts/events");
+  P_part->SetLineColor(kRed);
+
+  //----------------------------------
+  //----------------------------------
+  histoName.Form("Pt_%s", partName.Data());
+
+  TH1D* Pt_part =
+    new TH1D(histoName.Data(), histoName.Data(), NofBins, min, maxPt);
+  (Pt_part->GetXaxis())->SetTitle("p_{t} (GeV/c)");
+  (Pt_part->GetYaxis())->SetTitle("counts/events");
+  Pt_part->SetLineColor(kRed);
+
+  //----------------------------------
+  //----------------------------------
+  histoName.Form("Y_%s", partName.Data());
+
+  TH1D* Y_part =
+    new TH1D(histoName.Data(), histoName.Data(), NofBins, minY, maxY);
+  (Y_part->GetXaxis())->SetTitle("y");
+  (Y_part->GetYaxis())->SetTitle("counts/events");
+  Y_part->SetLineColor(kRed);
+
+  //----------------------------------
+  //----------------------------------
+  histoName.Form("YPtM_%s", partName.Data());
+
+  TH3D* YPtM_part = new TH3D(histoName.Data(),
+                             histoName.Data(),
+                             NofBins,
+                             minY,
+                             maxY,
+                             NofBins,
+                             min,
+                             maxPt,
+                             NofBinsM,
+                             min,
+                             maxM);
+
+  //----------------------------------
+
+  for (int i = 1; i < NofFiles + 1; i++) {
+    TString fileName;
+
+    char str[4];
+    sprintf(str, "%4d", i);
+    for (int it = 0; it < 4; it++) {
+      if (' ' == str[it]) str[it] = '0';
+    }
+    fileName.Form("/lustre/cbm/prod/gen/pluto/auau/%s/%dgev/%s/%s/"
+                  "pluto.auau.%dgev.%s.%s.%s.root",
+                  cktName.Data(),
+                  energy,
+                  partpartName.Data(),
+                  chanName.Data(),
+                  energy,
+                  partpartName.Data(),
+                  chanName.Data(),
+                  str);
+    TFile* InputFile = new TFile(fileName.Data());
+    TTree* InputTree = (TTree*) InputFile->Get("data");
+    InputTree->SetBranchAddress("Particles", &fParticles);
+
+    if (i % 100 == 0) cout << "-----------> " << fileName << endl;
+
+    for (iEvent = 0; iEvent < InputTree->GetEntries(); iEvent++) {
+      nEvents++;
+
+      InputTree->GetEntry(iEvent);
+
+      PParticle* Part1 = (PParticle*) fParticles->At(1);
+      PParticle* Part2 = (PParticle*) fParticles->At(2);
+
+      if (part == 2 || part == 5) {
+        Part1 = (PParticle*) fParticles->At(2);
+        Part2 = (PParticle*) fParticles->At(3);
+      }
+
+      TLorentzVector mom1 = Part1->Vect4();
+      TLorentzVector mom2 = Part2->Vect4();
+
+      TLorentzVector Mom = mom1 + mom2;
+      YPt_part->Fill(Mom.Rapidity(), Mom.Pt());
+      Y_part->Fill(Mom.Rapidity());
+      Pt_part->Fill(Mom.Pt());
+      P_part->Fill(Mom.P());
+      invM_part->Fill(Mom.M(), 1. / 10);
+      YPtM_part->Fill(Mom.Rapidity(), Mom.Pt(), Mom.M());
+    }
+
+    InputFile->Close();
+  }
+
+
+  invM_part->Scale(partMulti[part] / nEvents);
+  YPtM_part->Scale(multi[part] / nEvents);
+
+  P_part->Scale(multi[part] / nEvents);
+  Pt_part->Scale(multi[part] / nEvents);
+  Y_part->Scale(multi[part] / nEvents);
+  YPt_part->Scale(multi[part] / nEvents);
+
+  TString name;
+  name.Form("%dgev.pluto.%s.root", energy, partName.Data());
+  TFile* FFF = new TFile(name.Data(), "recreate");
+  invM_part->Write();
+  P_part->Write();
+  Pt_part->Write();
+  Y_part->Write();
+  YPt_part->Write();
+  YPtM_part->Write();
+  FFF->Close();
+}
diff --git a/macro/beamtime/mcbm2019/mcbm_reco.C b/macro/beamtime/mcbm2019/mcbm_reco.C
index 4d8c102f3e..bc13441071 100644
--- a/macro/beamtime/mcbm2019/mcbm_reco.C
+++ b/macro/beamtime/mcbm2019/mcbm_reco.C
@@ -1,155 +1,155 @@
-
-// --------------------------------------------------------------------------
-//
-// Macro for reconstruction of mcbm data (2019)
-// Only STS local reconstruction (cluster + hit finder) for the time being
-//
-//
-//
-// --------------------------------------------------------------------------
-
-
-void mcbm_reco(Int_t nTimeslices = 10) {
-
-
-  // --- Logger settings ----------------------------------------------------
-  TString logLevel     = "INFO";
-  TString logVerbosity = "LOW";
-  // ------------------------------------------------------------------------
-
-
-  // -----   Environment   --------------------------------------------------
-  TString myName = "mcbm_reco";  // this macro's name for screen output
-  TString srcDir = gSystem->Getenv("VMCWORKDIR");  // top source directory
-  // TString srcDir1 = gSystem->Getenv("SLURM_INDEX");  // ------------------------------------------------------------------------
-
-
-  // -----   In- and output file names   ------------------------------------
-  TString inFile  = "data/unp_mcbm_4.root";
-  TString parFile = "data/unp_mcbm_params_4.root";
-  TString outFile = "data/reco_mcbm_4.root";
-  //  outFile = Form("%s_%i.root",outFile.Data(),(int)(srcDir1.Atoi()*100));
-  TString geoFile = "data/test.geo.root";  // to be created by a simulation run
-  // ------------------------------------------------------------------------
-
-
-  // -----   Timer   --------------------------------------------------------
-  TStopwatch timer;
-  timer.Start();
-  // ------------------------------------------------------------------------
-
-
-  // ----    Debug option   -------------------------------------------------
-  gDebug = 0;
-  // ------------------------------------------------------------------------
-
-
-  // -----   FairRunAna   ---------------------------------------------------
-  FairRunAna* run     = new FairRunAna();
-  CbmStsFindHits* hit = new CbmStsFindHits();
-
-  FairFileSource* inputSource = new FairFileSource(inFile);
-  run->SetSource(inputSource);
-
-  run->SetOutputFile(outFile);
-  run->SetGenerateRunInfo(kTRUE);
-  run->SetGeomFile(geoFile);
-
-  TString monitorFile {outFile};
-  monitorFile.ReplaceAll("rec", "rec.monitor");
-  FairMonitor::GetMonitor()->EnableMonitor(kTRUE, monitorFile);
-  // -----------------------------------------------------------------------
-
-
-  // -----   Logger settings   ----------------------------------------------
-  FairLogger::GetLogger()->SetLogScreenLevel(logLevel.Data());
-  FairLogger::GetLogger()->SetLogVerbosityLevel(logVerbosity.Data());
-  // ------------------------------------------------------------------------
-
-
-  // -----   Reconstruction tasks   -----------------------------------------
-
-
-  // -----   Local reconstruction in STS   ----------------------------------
-  CbmStsReco* stsReco = new CbmStsReco();
-  // --- The parameter file for the STS Setup sensors needs to be explicitely set as
-  // --- 1) By default the CbmStsSetup creates only Stereo sensors with a 58 um pitch
-  // --- 2) The only place where this can be set is in the init of the CbmStsReco
-
-  // -----  Geometry Tags  --------------------------------------------------
-  TString hodoGeoTag  = "hodo_v19a_mcbm";  // 2019 LAB test
-  TString sHodoGeoPar = hodoGeoTag + ".par";
-  // ------------------------------------------------------------------------
-  stsReco->SetSensorsParFile(sHodoGeoPar);
-
-  run->AddTask(stsReco);
-  std::cout << "-I- : Added task " << stsReco->GetName() << std::endl;
-  // ------------------------------------------------------------------------
-
-
-  // -----  Parameter database   --------------------------------------------
-  std::cout << std::endl << std::endl;
-  std::cout << "-I- " << myName << ": Set runtime DB" << std::endl;
-  FairRuntimeDb* rtdb        = run->GetRuntimeDb();
-  FairParRootFileIo* parIo1  = new FairParRootFileIo();
-  FairParAsciiFileIo* parIo2 = new FairParAsciiFileIo();
-  parIo1->open(parFile.Data(), "UPDATE");
-  rtdb->setFirstInput(parIo1);
-  // ------------------------------------------------------------------------
-
-
-  // -----   Run initialisation   -------------------------------------------
-  std::cout << std::endl;
-  std::cout << "-I- " << myName << ": Initialise run" << std::endl;
-  run->Init();
-  rtdb->setOutput(parIo1);
-  rtdb->saveOutput();
-  rtdb->print();
-  // ------------------------------------------------------------------------
-
-
-  // -----   Start run   ----------------------------------------------------
-  std::cout << std::endl << std::endl;
-  std::cout << "-I- " << myName << ": Starting run" << std::endl;
-  run->Run(0, nTimeslices);
-  //run->Run(0,nEvents);
-  // ------------------------------------------------------------------------
-
-
-  // -----   Finish   -------------------------------------------------------
-  timer.Stop();
-  FairMonitor::GetMonitor()->Print();
-  Double_t rtime = timer.RealTime();
-  Double_t ctime = timer.CpuTime();
-  std::cout << std::endl << std::endl;
-  std::cout << "Macro finished successfully." << std::endl;
-  std::cout << "Output file is " << outFile << std::endl;
-  std::cout << "Parameter file is " << parFile << std::endl;
-  std::cout << "Real time " << rtime << " s, CPU time " << ctime << " s"
-            << std::endl;
-  std::cout << std::endl;
-  std::cout << " Test passed" << std::endl;
-  std::cout << " All ok " << std::endl;
-  // ------------------------------------------------------------------------
-
-
-  // -----   Resource monitoring   ------------------------------------------
-  // Extract the maximal used memory an add is as Dart measurement
-  // This line is filtered by CTest and the value send to CDash
-  FairSystemInfo sysInfo;
-  Float_t maxMemory = sysInfo.GetMaxMemory();
-  std::cout << "<DartMeasurement name=\"MaxMemory\" type=\"numeric/double\">";
-  std::cout << maxMemory;
-  std::cout << "</DartMeasurement>" << std::endl;
-
-  Float_t cpuUsage = ctime / rtime;
-  std::cout << "<DartMeasurement name=\"CpuLoad\" type=\"numeric/double\">";
-  std::cout << cpuUsage;
-  std::cout << "</DartMeasurement>" << std::endl;
-  // ------------------------------------------------------------------------
-
-
-  // -----   Function needed for CTest runtime dependency   -----------------
-  //  RemoveGeoManager();
-  // ------------------------------------------------------------------------
-}
+
+// --------------------------------------------------------------------------
+//
+// Macro for reconstruction of mcbm data (2019)
+// Only STS local reconstruction (cluster + hit finder) for the time being
+//
+//
+//
+// --------------------------------------------------------------------------
+
+
+void mcbm_reco(Int_t nTimeslices = 10) {
+
+
+  // --- Logger settings ----------------------------------------------------
+  TString logLevel     = "INFO";
+  TString logVerbosity = "LOW";
+  // ------------------------------------------------------------------------
+
+
+  // -----   Environment   --------------------------------------------------
+  TString myName = "mcbm_reco";  // this macro's name for screen output
+  TString srcDir = gSystem->Getenv("VMCWORKDIR");  // top source directory
+  // TString srcDir1 = gSystem->Getenv("SLURM_INDEX");  // ------------------------------------------------------------------------
+
+
+  // -----   In- and output file names   ------------------------------------
+  TString inFile  = "data/unp_mcbm_4.root";
+  TString parFile = "data/unp_mcbm_params_4.root";
+  TString outFile = "data/reco_mcbm_4.root";
+  //  outFile = Form("%s_%i.root",outFile.Data(),(int)(srcDir1.Atoi()*100));
+  TString geoFile = "data/test.geo.root";  // to be created by a simulation run
+  // ------------------------------------------------------------------------
+
+
+  // -----   Timer   --------------------------------------------------------
+  TStopwatch timer;
+  timer.Start();
+  // ------------------------------------------------------------------------
+
+
+  // ----    Debug option   -------------------------------------------------
+  gDebug = 0;
+  // ------------------------------------------------------------------------
+
+
+  // -----   FairRunAna   ---------------------------------------------------
+  FairRunAna* run     = new FairRunAna();
+  CbmStsFindHits* hit = new CbmStsFindHits();
+
+  FairFileSource* inputSource = new FairFileSource(inFile);
+  run->SetSource(inputSource);
+
+  run->SetOutputFile(outFile);
+  run->SetGenerateRunInfo(kTRUE);
+  run->SetGeomFile(geoFile);
+
+  TString monitorFile {outFile};
+  monitorFile.ReplaceAll("rec", "rec.monitor");
+  FairMonitor::GetMonitor()->EnableMonitor(kTRUE, monitorFile);
+  // -----------------------------------------------------------------------
+
+
+  // -----   Logger settings   ----------------------------------------------
+  FairLogger::GetLogger()->SetLogScreenLevel(logLevel.Data());
+  FairLogger::GetLogger()->SetLogVerbosityLevel(logVerbosity.Data());
+  // ------------------------------------------------------------------------
+
+
+  // -----   Reconstruction tasks   -----------------------------------------
+
+
+  // -----   Local reconstruction in STS   ----------------------------------
+  CbmStsReco* stsReco = new CbmStsReco();
+  // --- The parameter file for the STS Setup sensors needs to be explicitely set as
+  // --- 1) By default the CbmStsSetup creates only Stereo sensors with a 58 um pitch
+  // --- 2) The only place where this can be set is in the init of the CbmStsReco
+
+  // -----  Geometry Tags  --------------------------------------------------
+  TString hodoGeoTag  = "hodo_v19a_mcbm";  // 2019 LAB test
+  TString sHodoGeoPar = hodoGeoTag + ".par";
+  // ------------------------------------------------------------------------
+  stsReco->SetSensorsParFile(sHodoGeoPar);
+
+  run->AddTask(stsReco);
+  std::cout << "-I- : Added task " << stsReco->GetName() << std::endl;
+  // ------------------------------------------------------------------------
+
+
+  // -----  Parameter database   --------------------------------------------
+  std::cout << std::endl << std::endl;
+  std::cout << "-I- " << myName << ": Set runtime DB" << std::endl;
+  FairRuntimeDb* rtdb        = run->GetRuntimeDb();
+  FairParRootFileIo* parIo1  = new FairParRootFileIo();
+  FairParAsciiFileIo* parIo2 = new FairParAsciiFileIo();
+  parIo1->open(parFile.Data(), "UPDATE");
+  rtdb->setFirstInput(parIo1);
+  // ------------------------------------------------------------------------
+
+
+  // -----   Run initialisation   -------------------------------------------
+  std::cout << std::endl;
+  std::cout << "-I- " << myName << ": Initialise run" << std::endl;
+  run->Init();
+  rtdb->setOutput(parIo1);
+  rtdb->saveOutput();
+  rtdb->print();
+  // ------------------------------------------------------------------------
+
+
+  // -----   Start run   ----------------------------------------------------
+  std::cout << std::endl << std::endl;
+  std::cout << "-I- " << myName << ": Starting run" << std::endl;
+  run->Run(0, nTimeslices);
+  //run->Run(0,nEvents);
+  // ------------------------------------------------------------------------
+
+
+  // -----   Finish   -------------------------------------------------------
+  timer.Stop();
+  FairMonitor::GetMonitor()->Print();
+  Double_t rtime = timer.RealTime();
+  Double_t ctime = timer.CpuTime();
+  std::cout << std::endl << std::endl;
+  std::cout << "Macro finished successfully." << std::endl;
+  std::cout << "Output file is " << outFile << std::endl;
+  std::cout << "Parameter file is " << parFile << std::endl;
+  std::cout << "Real time " << rtime << " s, CPU time " << ctime << " s"
+            << std::endl;
+  std::cout << std::endl;
+  std::cout << " Test passed" << std::endl;
+  std::cout << " All ok " << std::endl;
+  // ------------------------------------------------------------------------
+
+
+  // -----   Resource monitoring   ------------------------------------------
+  // Extract the maximal used memory an add is as Dart measurement
+  // This line is filtered by CTest and the value send to CDash
+  FairSystemInfo sysInfo;
+  Float_t maxMemory = sysInfo.GetMaxMemory();
+  std::cout << "<DartMeasurement name=\"MaxMemory\" type=\"numeric/double\">";
+  std::cout << maxMemory;
+  std::cout << "</DartMeasurement>" << std::endl;
+
+  Float_t cpuUsage = ctime / rtime;
+  std::cout << "<DartMeasurement name=\"CpuLoad\" type=\"numeric/double\">";
+  std::cout << cpuUsage;
+  std::cout << "</DartMeasurement>" << std::endl;
+  // ------------------------------------------------------------------------
+
+
+  // -----   Function needed for CTest runtime dependency   -----------------
+  //  RemoveGeoManager();
+  // ------------------------------------------------------------------------
+}
diff --git a/macro/fles/get4/parUnpack_get4.txt b/macro/fles/get4/parUnpack_get4.txt
index 186778cb7b..75b789aec2 100644
--- a/macro/fles/get4/parUnpack_get4.txt
+++ b/macro/fles/get4/parUnpack_get4.txt
@@ -1,188 +1,188 @@
-##############################################################################
-# Class:   TMbsUnpackTofPar
-# Context: TestDefaultContext
-##############################################################################
-[TMbsUnpackTofPar]
-//----------------------------------------------------------------------------
-//******************************//
-//   Input selector             //
-//******************************//
-// GETEVT__FILE     1 <- LMD File
-// GETEVT__STREAM   2 <- Stream client
-// GETEVT__TRANS    3 <- Transport client
-// GETEVT__EVENT    4 <- Event client
-// GETEVT__REVSERV  5 <- Remote event client
-MbsSourceMode: Int_t 2
-// Switch ON/OFF the writing of data in the output root file of cbmroot analysis
-WriteDataInCbmOut: Int_t 0
-// Switch ON/OFF debug tests in VFTX unpacker
-VftxDebug: Int_t     0 
-// Number of possible VME boards in the MBS event
-MbsNbVmeBoards: Int_t 0
-//MbsVmeMapping: Int_t \
-// Number of possible Non-VME boards in the MBS event
-NbNonVmeBoards: Int_t 88
-//==============================================================================
-// General structure
-// BoardIndex Active RocIndx AddMod TokenA TokenB Type
-//------------------------------------------------------------------------------
-// BoardTypes
-//      0:  unknown -- default
-//      4:  get4    -- GET4 chips
-//      30: trbseb  -- subevent builder on central TRB-FPGA
-//      31: trbtdc  -- TDC on peripheral TRB-FPGA or FEE-TDC
-//      32: trbhub  -- hub on peripheral TRB-FPGA
-//==============================================================================
-//
-NonVmeMapping: Int_t \
-   0,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-   1,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-   2,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-   3,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-   4,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-   5,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-   6,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-   7,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-   8,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-   9,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  10,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  11,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  12,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  13,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  14,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  15,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  16,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  17,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  18,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  19,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  20,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  21,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  22,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  23,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  24,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  25,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  26,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  27,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  28,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  29,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  30,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  31,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  32,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  33,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  34,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  35,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  36,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  37,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  38,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  39,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  40,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  41,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  42,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  43,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  44,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  45,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  46,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  47,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  48,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  49,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  50,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  51,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  52,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  53,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  54,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  55,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  56,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  57,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  58,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  59,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  60,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  61,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  62,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  63,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  64,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  65,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  66,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  67,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  68,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  69,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  70,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  71,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  72,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  73,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  74,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  75,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  76,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  77,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  78,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  79,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  80,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  81,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  82,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  83,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  84,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  85,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  86,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
-  87,  0x1,  0x0000,  0x0,  0x0,  0x0,   4
-//
-// Trigger from the Triglog board for which event are jump by Calib, mapping and conv
-// For now only jumping work for GET4 data!!
-//TriggerRejection: Int_t  15
-TriggerRejection: Int_t  -1
-//==============================================================================
-// TriggerChannel | TriggerType | TriggerUnpack
-//------------------------------------------------------------------------------
-// TriggerChannel (as defined in the CTS)
-//   max. range: 0 - 15
-//------------------------------------------------------------------------------
-// TriggerType (as defined in the CTS)
-//   max. range: 0x0 - 0xf
-//   types generating a reference time signal: 0x0 - 0x7 ("physics triggers")
-//   types without a reference time signal:    0x8 - 0xf
-//   calibration (ToT stretching offset):      0xd
-//
-//   In case of a trigger concidence, only a uniquely assigned trigger type
-//   allows to unambigously identify the trigger which actually triggered
-//   the event.
-//   All 8 possible trigger signal inputs should have assigned a different
-//   trigger type from 0x0 to 0x7. To all disabled trigger channels, please
-//   assign a higher trigger type (0x8 - 0xf exclusive 0xd).
-//------------------------------------------------------------------------------
-// TriggerUnpack
-//    0x1: only consider events in which this trigger channel was asserted
-//         (if this unpack bit is set for several trigger channels, all of
-//          them must have been asserted for the event to be unpacked)
-//    0x0: do not care whether this trigger channel was asserted or not
-//         (if this unpack bit is not set for all trigger channels, each
-//          incoming event is unpacked)
-//==============================================================================
-NbCtsTrigChs: Int_t 16
-CtsTriggerMap: Int_t \
-   0,  0x1,  0x0, \
-   1,  0x1,  0x0, \
-   2,  0x1,  0x0, \
-   3,  0x1,  0x0, \
-   4,  0x1,  0x0, \
-   5,  0x1,  0x0, \
-   6,  0x1,  0x0, \
-   7,  0x1,  0x0, \
-   8,  0x0,  0x0, \
-   9,  0x1,  0x0, \
-  10,  0x2,  0x0, \
-  11,  0x3,  0x0, \
-  12,  0x4,  0x0, \
-  13,  0x5,  0x0, \
-  14,  0x6,  0x0, \
-  15,  0x7,  0x0
-//
-//==============================================================================
-// The unpacking algorithms support both double edge measurement methods
-// implemented for the TRB-TDC.
-// - 128-bit mode: separate edge detection in different TDC channels
-//                 1 TDC TIME and 1 TDC EPOCH word for both edges
-// -  96-bit mode: joint edge detection in the same TDC channel
-//                 1 TDC TIME word per edge and 1 joint TDC EPOCH word
-// To enable 96-bit mode unpacking, set 'TrbTdcBitMode' to '1'. Setting any
-// other value will result in 128-bit mode unpacking.
-//==============================================================================
-TrbTdcBitMode: Int_t 1
-###########################
+##############################################################################
+# Class:   TMbsUnpackTofPar
+# Context: TestDefaultContext
+##############################################################################
+[TMbsUnpackTofPar]
+//----------------------------------------------------------------------------
+//******************************//
+//   Input selector             //
+//******************************//
+// GETEVT__FILE     1 <- LMD File
+// GETEVT__STREAM   2 <- Stream client
+// GETEVT__TRANS    3 <- Transport client
+// GETEVT__EVENT    4 <- Event client
+// GETEVT__REVSERV  5 <- Remote event client
+MbsSourceMode: Int_t 2
+// Switch ON/OFF the writing of data in the output root file of cbmroot analysis
+WriteDataInCbmOut: Int_t 0
+// Switch ON/OFF debug tests in VFTX unpacker
+VftxDebug: Int_t     0 
+// Number of possible VME boards in the MBS event
+MbsNbVmeBoards: Int_t 0
+//MbsVmeMapping: Int_t \
+// Number of possible Non-VME boards in the MBS event
+NbNonVmeBoards: Int_t 88
+//==============================================================================
+// General structure
+// BoardIndex Active RocIndx AddMod TokenA TokenB Type
+//------------------------------------------------------------------------------
+// BoardTypes
+//      0:  unknown -- default
+//      4:  get4    -- GET4 chips
+//      30: trbseb  -- subevent builder on central TRB-FPGA
+//      31: trbtdc  -- TDC on peripheral TRB-FPGA or FEE-TDC
+//      32: trbhub  -- hub on peripheral TRB-FPGA
+//==============================================================================
+//
+NonVmeMapping: Int_t \
+   0,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+   1,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+   2,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+   3,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+   4,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+   5,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+   6,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+   7,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+   8,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+   9,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  10,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  11,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  12,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  13,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  14,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  15,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  16,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  17,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  18,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  19,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  20,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  21,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  22,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  23,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  24,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  25,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  26,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  27,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  28,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  29,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  30,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  31,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  32,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  33,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  34,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  35,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  36,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  37,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  38,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  39,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  40,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  41,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  42,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  43,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  44,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  45,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  46,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  47,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  48,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  49,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  50,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  51,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  52,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  53,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  54,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  55,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  56,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  57,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  58,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  59,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  60,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  61,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  62,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  63,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  64,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  65,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  66,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  67,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  68,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  69,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  70,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  71,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  72,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  73,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  74,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  75,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  76,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  77,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  78,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  79,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  80,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  81,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  82,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  83,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  84,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  85,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  86,  0x1,  0x0000,  0x0,  0x0,  0x0,   4, \
+  87,  0x1,  0x0000,  0x0,  0x0,  0x0,   4
+//
+// Trigger from the Triglog board for which event are jump by Calib, mapping and conv
+// For now only jumping work for GET4 data!!
+//TriggerRejection: Int_t  15
+TriggerRejection: Int_t  -1
+//==============================================================================
+// TriggerChannel | TriggerType | TriggerUnpack
+//------------------------------------------------------------------------------
+// TriggerChannel (as defined in the CTS)
+//   max. range: 0 - 15
+//------------------------------------------------------------------------------
+// TriggerType (as defined in the CTS)
+//   max. range: 0x0 - 0xf
+//   types generating a reference time signal: 0x0 - 0x7 ("physics triggers")
+//   types without a reference time signal:    0x8 - 0xf
+//   calibration (ToT stretching offset):      0xd
+//
+//   In case of a trigger concidence, only a uniquely assigned trigger type
+//   allows to unambigously identify the trigger which actually triggered
+//   the event.
+//   All 8 possible trigger signal inputs should have assigned a different
+//   trigger type from 0x0 to 0x7. To all disabled trigger channels, please
+//   assign a higher trigger type (0x8 - 0xf exclusive 0xd).
+//------------------------------------------------------------------------------
+// TriggerUnpack
+//    0x1: only consider events in which this trigger channel was asserted
+//         (if this unpack bit is set for several trigger channels, all of
+//          them must have been asserted for the event to be unpacked)
+//    0x0: do not care whether this trigger channel was asserted or not
+//         (if this unpack bit is not set for all trigger channels, each
+//          incoming event is unpacked)
+//==============================================================================
+NbCtsTrigChs: Int_t 16
+CtsTriggerMap: Int_t \
+   0,  0x1,  0x0, \
+   1,  0x1,  0x0, \
+   2,  0x1,  0x0, \
+   3,  0x1,  0x0, \
+   4,  0x1,  0x0, \
+   5,  0x1,  0x0, \
+   6,  0x1,  0x0, \
+   7,  0x1,  0x0, \
+   8,  0x0,  0x0, \
+   9,  0x1,  0x0, \
+  10,  0x2,  0x0, \
+  11,  0x3,  0x0, \
+  12,  0x4,  0x0, \
+  13,  0x5,  0x0, \
+  14,  0x6,  0x0, \
+  15,  0x7,  0x0
+//
+//==============================================================================
+// The unpacking algorithms support both double edge measurement methods
+// implemented for the TRB-TDC.
+// - 128-bit mode: separate edge detection in different TDC channels
+//                 1 TDC TIME and 1 TDC EPOCH word for both edges
+// -  96-bit mode: joint edge detection in the same TDC channel
+//                 1 TDC TIME word per edge and 1 joint TDC EPOCH word
+// To enable 96-bit mode unpacking, set 'TrbTdcBitMode' to '1'. Setting any
+// other value will result in 128-bit mode unpacking.
+//==============================================================================
+TrbTdcBitMode: Int_t 1
+###########################
diff --git a/macro/generators/run_CbmIonGenerator.C b/macro/generators/run_CbmIonGenerator.C
index 3ff68a3fb3..1d126589f7 100644
--- a/macro/generators/run_CbmIonGenerator.C
+++ b/macro/generators/run_CbmIonGenerator.C
@@ -1,241 +1,241 @@
-void run_CbmIonGenerator(Int_t nEvents = 1) {
-  // ========================================================================
-  //          Adjust this part according to your requirements
-
-  // Input file
-  //TString inPath = "/d/cbm03/urqmd/auau/25gev/centr/";
-  //TString inFile = inPath + "urqmd.auau.25gev.centr.0000.ftn14";
-
-  // Output file
-  TString outFile = Form("sts.mc.root", nEvents);
-
-  // Parameter file
-  TString parFile = Form("params.root", nEvents);
-
-  // Cave geometry
-  TString caveGeom = "cave.geo";
-
-  // Target geometry
-  TString targetGeom = "target_au_250mu.geo";
-
-  // Beam pipe geometry
-  TString pipeGeom = "pipe_standard.geo";
-
-  // Magnet geometry and field map
-  TString magnetGeom  = "passive/magnet_v09e.geo";
-  TString fieldMap    = "field_v10e";
-  Double_t fieldZ     = 50.;  // z position of field centre
-  Double_t fieldScale = 1.;   // field scaling factor
-
-  // MVD geometry
-  TString mvdGeom = "mvd/mvd_v07a.geo";
-
-  // STS geometry
-  TString stsGeom = "sts/sts_v11a.geo";
-
-  //STS geometry for the same z position of all sensors
-  //TString stsGeom = "sts_same_z.geo";
-
-  targetGeom = "";
-  magnetGeom = "";
-  stsGeom    = "";
-  mvdGeom    = "";
-
-  // In general, the following parts need not be touched
-  // ========================================================================
-
-
-  // ----    Debug option   -------------------------------------------------
-  gDebug = 0;
-  // ------------------------------------------------------------------------
-
-
-  // -----   Timer   --------------------------------------------------------
-  TStopwatch timer;
-  timer.Start();
-  // ------------------------------------------------------------------------
-
-
-  // ----  Load libraries   -------------------------------------------------
-  gROOT->LoadMacro("$VMCWORKDIR/gconfig/basiclibs.C");
-  basiclibs();
-  gSystem->Load("libGeoBase");
-  gSystem->Load("libParBase");
-  gSystem->Load("libBase");
-  gSystem->Load("libCbmBase");
-  gSystem->Load("libCbmData");
-  gSystem->Load("libField");
-  gSystem->Load("libGen");
-  gSystem->Load("libPassive");
-  gSystem->Load("libMvd");
-  gSystem->Load("libSts");
-  gSystem->Load("libCbmGenerators");  // for CbmIonGenerator
-  // ------------------------------------------------------------------------
-
-
-  // -----   Create simulation run   ----------------------------------------
-  FairRunSim* run = new FairRunSim();
-  run->SetName("TGeant3");      // Transport engine
-  run->SetOutputFile(outFile);  // Output file
-  FairRuntimeDb* rtdb = run->GetRuntimeDb();
-  // ------------------------------------------------------------------------
-
-
-  // -----   Create media   -------------------------------------------------
-  run->SetMaterials("media.geo");  // Materials
-  // ------------------------------------------------------------------------
-
-
-  // -----   Create geometry   ----------------------------------------------
-  FairModule* cave = new CbmCave("CAVE");
-  cave->SetGeometryFileName(caveGeom);
-  run->AddModule(cave);
-
-  FairModule* pipe = new CbmPipe("PIPE");
-  pipe->SetGeometryFileName(pipeGeom);
-  run->AddModule(pipe);
-
-  if (targetGeom != "") {
-    FairModule* target = new CbmTarget("Target");
-    target->SetGeometryFileName(targetGeom);
-    run->AddModule(target);
-  }
-  if (magnetGeom != "") {
-    FairModule* magnet = new CbmMagnet("MAGNET");
-    magnet->SetGeometryFileName(magnetGeom);
-    run->AddModule(magnet);
-  }
-  if (mvdGeom != "") {
-    FairDetector* mvd = new CbmMvd("MVD", kTRUE);
-    mvd->SetGeometryFileName(mvdGeom);
-    run->AddModule(mvd);
-  }
-  if (stsGeom != "") {
-    FairDetector* sts = new CbmSts("STS", kTRUE);
-    sts->SetGeometryFileName(stsGeom);
-    run->AddModule(sts);
-  }
-  // ------------------------------------------------------------------------
-
-
-  // -----   Create magnetic field   ----------------------------------------
-  if (magnetGeom != "") {
-    CbmFieldMap* magField = new CbmFieldMapSym2(fieldMap);
-    magField->SetPosition(0., 0., fieldZ);
-    magField->SetScale(fieldScale);
-    run->SetField(magField);
-  }
-  // ------------------------------------------------------------------------
-
-
-  // -----   Create PrimaryGenerator   --------------------------------------
-  FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
-  //FairUrqmdGenerator*  urqmdGen = new FairUrqmdGenerator(inFile);
-  //primGen->AddGenerator(urqmdGen);
-
-  // CbmIonGenerator - check in Load libraries: gSystem->Load("libCbmGenerators");
-  Int_t nions = 10;  // number of ions/event
-  cout << "@@@@@> CbmIonGenerator is ON with " << nions << " ion(s)/event !!!"
-       << endl;
-  Int_t z = 79, a = 197, q = 79;  // Au-ion
-  Double_t p       = 8.;          // in AGeV/c
-  Double_t vz      = -0.0126;     // in cm - z-pos. of vertex
-  Double_t meanX   = 0.3;         // in cm - spatial distr. (XOY)
-  Double_t meanY   = -0.2;        // in cm
-  Double_t sigmaX  = 0.078;       // in cm - spatial distr. (XOY)
-  Double_t sigmaY  = 0.032;       // in cm
-  Double_t sigmatX = 0.00117885;  // in rad (Px/P) - angular distr. (mean=0)
-  Double_t sigmatY = 0.00094955;  // in rad (Py/P)
-  // Parameters of the trapezoid are set with respect to mean of Gaussian, NOT necesseraly in absolute coordinates.
-  // x1 < x2 < 0 < x3 < x4
-  Double_t x1 = -0.10452, x2 = -0.06942, x3 = 0.06942,
-           x4 = 0.10452;  // in cm - trapezoid distr.
-  Double_t y1 = -0.04448, y2 = -0.02688, y3 = 0.02688, y4 = 0.04448;  // in cm
-  Double_t tX1 = -0.00157966, tX2 = -0.001049177, tX3 = 0.001049177,
-           tX4 = 0.00157966;  // in rad
-  Double_t tY1 = -0.00131987, tY2 = -0.000797622, tY3 = 0.000797622,
-           tY4 = 0.00131987;  // in rad
-
-  //  CbmIonGenerator *IonGen = new CbmIonGenerator(z, a, q, nions, p, sigmaX, sigmaY, sigmatX, sigmatY);
-
-  //  CbmIonGenerator *IonGen = new CbmIonGenerator(z, a, q, nions, p, sigmaX, sigmaY, sigmatX, sigmatY, meanX, meanY, vz);
-
-  CbmIonGenerator* IonGen = new CbmIonGenerator(z,
-                                                a,
-                                                q,
-                                                nions,
-                                                p,
-                                                sigmaX,
-                                                sigmaY,
-                                                sigmatX,
-                                                sigmatY,
-                                                meanX,
-                                                meanY,
-                                                vz,
-                                                x1,
-                                                x2,
-                                                x3,
-                                                x4,
-                                                y1,
-                                                y2,
-                                                y3,
-                                                y4,
-                                                tX1,
-                                                tX2,
-                                                tX3,
-                                                tX4,
-                                                tY1,
-                                                tY2,
-                                                tY3,
-                                                tY4);
-
-  primGen->AddGenerator(IonGen);
-
-  run->SetGenerator(primGen);
-  // ------------------------------------------------------------------------
-
-  //   run->SetStoreTraj(kTRUE);
-
-  // -----   Initialize simulation run   ------------------------------------
-  run->Init();
-  // ------------------------------------------------------------------------
-
-
-  // -----   Runtime database   ---------------------------------------------
-  if (magnetGeom != "") {
-    CbmFieldPar* fieldPar = (CbmFieldPar*) rtdb->getContainer("CbmFieldPar");
-    fieldPar->SetParameters(magField);
-    fieldPar->setChanged();
-    fieldPar->setInputVersion(run->GetRunId(), 1);
-  }
-  Bool_t kParameterMerged   = kTRUE;
-  FairParRootFileIo* parOut = new FairParRootFileIo(kParameterMerged);
-  parOut->open(parFile.Data());
-  rtdb->setOutput(parOut);
-  rtdb->saveOutput();
-  rtdb->print();
-  // ------------------------------------------------------------------------
-
-
-  // -----   Start run   ----------------------------------------------------
-  run->Run(nEvents);
-  // ------------------------------------------------------------------------
-  //run->CreateGeometryFile("data/geofile_full.root");
-
-
-  // -----   Finish   -------------------------------------------------------
-  timer.Stop();
-  Double_t rtime = timer.RealTime();
-  Double_t ctime = timer.CpuTime();
-  cout << endl << endl;
-  cout << "Macro finished succesfully." << endl;
-  cout << "Output file is " << outFile << endl;
-  cout << "Parameter file is " << parFile << endl;
-  cout << "Real time " << rtime << " s, CPU time " << ctime << "s" << endl
-       << endl;
-  // ------------------------------------------------------------------------
-  cout << " Test passed" << endl;
-  cout << " All ok " << endl;
-
-  exit(0);
-}
+void run_CbmIonGenerator(Int_t nEvents = 1) {
+  // ========================================================================
+  //          Adjust this part according to your requirements
+
+  // Input file
+  //TString inPath = "/d/cbm03/urqmd/auau/25gev/centr/";
+  //TString inFile = inPath + "urqmd.auau.25gev.centr.0000.ftn14";
+
+  // Output file
+  TString outFile = Form("sts.mc.root", nEvents);
+
+  // Parameter file
+  TString parFile = Form("params.root", nEvents);
+
+  // Cave geometry
+  TString caveGeom = "cave.geo";
+
+  // Target geometry
+  TString targetGeom = "target_au_250mu.geo";
+
+  // Beam pipe geometry
+  TString pipeGeom = "pipe_standard.geo";
+
+  // Magnet geometry and field map
+  TString magnetGeom  = "passive/magnet_v09e.geo";
+  TString fieldMap    = "field_v10e";
+  Double_t fieldZ     = 50.;  // z position of field centre
+  Double_t fieldScale = 1.;   // field scaling factor
+
+  // MVD geometry
+  TString mvdGeom = "mvd/mvd_v07a.geo";
+
+  // STS geometry
+  TString stsGeom = "sts/sts_v11a.geo";
+
+  //STS geometry for the same z position of all sensors
+  //TString stsGeom = "sts_same_z.geo";
+
+  targetGeom = "";
+  magnetGeom = "";
+  stsGeom    = "";
+  mvdGeom    = "";
+
+  // In general, the following parts need not be touched
+  // ========================================================================
+
+
+  // ----    Debug option   -------------------------------------------------
+  gDebug = 0;
+  // ------------------------------------------------------------------------
+
+
+  // -----   Timer   --------------------------------------------------------
+  TStopwatch timer;
+  timer.Start();
+  // ------------------------------------------------------------------------
+
+
+  // ----  Load libraries   -------------------------------------------------
+  gROOT->LoadMacro("$VMCWORKDIR/gconfig/basiclibs.C");
+  basiclibs();
+  gSystem->Load("libGeoBase");
+  gSystem->Load("libParBase");
+  gSystem->Load("libBase");
+  gSystem->Load("libCbmBase");
+  gSystem->Load("libCbmData");
+  gSystem->Load("libField");
+  gSystem->Load("libGen");
+  gSystem->Load("libPassive");
+  gSystem->Load("libMvd");
+  gSystem->Load("libSts");
+  gSystem->Load("libCbmGenerators");  // for CbmIonGenerator
+  // ------------------------------------------------------------------------
+
+
+  // -----   Create simulation run   ----------------------------------------
+  FairRunSim* run = new FairRunSim();
+  run->SetName("TGeant3");      // Transport engine
+  run->SetOutputFile(outFile);  // Output file
+  FairRuntimeDb* rtdb = run->GetRuntimeDb();
+  // ------------------------------------------------------------------------
+
+
+  // -----   Create media   -------------------------------------------------
+  run->SetMaterials("media.geo");  // Materials
+  // ------------------------------------------------------------------------
+
+
+  // -----   Create geometry   ----------------------------------------------
+  FairModule* cave = new CbmCave("CAVE");
+  cave->SetGeometryFileName(caveGeom);
+  run->AddModule(cave);
+
+  FairModule* pipe = new CbmPipe("PIPE");
+  pipe->SetGeometryFileName(pipeGeom);
+  run->AddModule(pipe);
+
+  if (targetGeom != "") {
+    FairModule* target = new CbmTarget("Target");
+    target->SetGeometryFileName(targetGeom);
+    run->AddModule(target);
+  }
+  if (magnetGeom != "") {
+    FairModule* magnet = new CbmMagnet("MAGNET");
+    magnet->SetGeometryFileName(magnetGeom);
+    run->AddModule(magnet);
+  }
+  if (mvdGeom != "") {
+    FairDetector* mvd = new CbmMvd("MVD", kTRUE);
+    mvd->SetGeometryFileName(mvdGeom);
+    run->AddModule(mvd);
+  }
+  if (stsGeom != "") {
+    FairDetector* sts = new CbmSts("STS", kTRUE);
+    sts->SetGeometryFileName(stsGeom);
+    run->AddModule(sts);
+  }
+  // ------------------------------------------------------------------------
+
+
+  // -----   Create magnetic field   ----------------------------------------
+  if (magnetGeom != "") {
+    CbmFieldMap* magField = new CbmFieldMapSym2(fieldMap);
+    magField->SetPosition(0., 0., fieldZ);
+    magField->SetScale(fieldScale);
+    run->SetField(magField);
+  }
+  // ------------------------------------------------------------------------
+
+
+  // -----   Create PrimaryGenerator   --------------------------------------
+  FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
+  //FairUrqmdGenerator*  urqmdGen = new FairUrqmdGenerator(inFile);
+  //primGen->AddGenerator(urqmdGen);
+
+  // CbmIonGenerator - check in Load libraries: gSystem->Load("libCbmGenerators");
+  Int_t nions = 10;  // number of ions/event
+  cout << "@@@@@> CbmIonGenerator is ON with " << nions << " ion(s)/event !!!"
+       << endl;
+  Int_t z = 79, a = 197, q = 79;  // Au-ion
+  Double_t p       = 8.;          // in AGeV/c
+  Double_t vz      = -0.0126;     // in cm - z-pos. of vertex
+  Double_t meanX   = 0.3;         // in cm - spatial distr. (XOY)
+  Double_t meanY   = -0.2;        // in cm
+  Double_t sigmaX  = 0.078;       // in cm - spatial distr. (XOY)
+  Double_t sigmaY  = 0.032;       // in cm
+  Double_t sigmatX = 0.00117885;  // in rad (Px/P) - angular distr. (mean=0)
+  Double_t sigmatY = 0.00094955;  // in rad (Py/P)
+  // Parameters of the trapezoid are set with respect to mean of Gaussian, NOT necesseraly in absolute coordinates.
+  // x1 < x2 < 0 < x3 < x4
+  Double_t x1 = -0.10452, x2 = -0.06942, x3 = 0.06942,
+           x4 = 0.10452;  // in cm - trapezoid distr.
+  Double_t y1 = -0.04448, y2 = -0.02688, y3 = 0.02688, y4 = 0.04448;  // in cm
+  Double_t tX1 = -0.00157966, tX2 = -0.001049177, tX3 = 0.001049177,
+           tX4 = 0.00157966;  // in rad
+  Double_t tY1 = -0.00131987, tY2 = -0.000797622, tY3 = 0.000797622,
+           tY4 = 0.00131987;  // in rad
+
+  //  CbmIonGenerator *IonGen = new CbmIonGenerator(z, a, q, nions, p, sigmaX, sigmaY, sigmatX, sigmatY);
+
+  //  CbmIonGenerator *IonGen = new CbmIonGenerator(z, a, q, nions, p, sigmaX, sigmaY, sigmatX, sigmatY, meanX, meanY, vz);
+
+  CbmIonGenerator* IonGen = new CbmIonGenerator(z,
+                                                a,
+                                                q,
+                                                nions,
+                                                p,
+                                                sigmaX,
+                                                sigmaY,
+                                                sigmatX,
+                                                sigmatY,
+                                                meanX,
+                                                meanY,
+                                                vz,
+                                                x1,
+                                                x2,
+                                                x3,
+                                                x4,
+                                                y1,
+                                                y2,
+                                                y3,
+                                                y4,
+                                                tX1,
+                                                tX2,
+                                                tX3,
+                                                tX4,
+                                                tY1,
+                                                tY2,
+                                                tY3,
+                                                tY4);
+
+  primGen->AddGenerator(IonGen);
+
+  run->SetGenerator(primGen);
+  // ------------------------------------------------------------------------
+
+  //   run->SetStoreTraj(kTRUE);
+
+  // -----   Initialize simulation run   ------------------------------------
+  run->Init();
+  // ------------------------------------------------------------------------
+
+
+  // -----   Runtime database   ---------------------------------------------
+  if (magnetGeom != "") {
+    CbmFieldPar* fieldPar = (CbmFieldPar*) rtdb->getContainer("CbmFieldPar");
+    fieldPar->SetParameters(magField);
+    fieldPar->setChanged();
+    fieldPar->setInputVersion(run->GetRunId(), 1);
+  }
+  Bool_t kParameterMerged   = kTRUE;
+  FairParRootFileIo* parOut = new FairParRootFileIo(kParameterMerged);
+  parOut->open(parFile.Data());
+  rtdb->setOutput(parOut);
+  rtdb->saveOutput();
+  rtdb->print();
+  // ------------------------------------------------------------------------
+
+
+  // -----   Start run   ----------------------------------------------------
+  run->Run(nEvents);
+  // ------------------------------------------------------------------------
+  //run->CreateGeometryFile("data/geofile_full.root");
+
+
+  // -----   Finish   -------------------------------------------------------
+  timer.Stop();
+  Double_t rtime = timer.RealTime();
+  Double_t ctime = timer.CpuTime();
+  cout << endl << endl;
+  cout << "Macro finished succesfully." << endl;
+  cout << "Output file is " << outFile << endl;
+  cout << "Parameter file is " << parFile << endl;
+  cout << "Real time " << rtime << " s, CPU time " << ctime << "s" << endl
+       << endl;
+  // ------------------------------------------------------------------------
+  cout << " Test passed" << endl;
+  cout << " All ok " << endl;
+
+  exit(0);
+}
diff --git a/macro/littrack/cbmrootlibs.C b/macro/littrack/cbmrootlibs.C
index 88be64c619..6150288c90 100644
--- a/macro/littrack/cbmrootlibs.C
+++ b/macro/littrack/cbmrootlibs.C
@@ -1,47 +1,47 @@
-/**
- * \file cbmrootlibs.C
- * \brief Macro loads CBMROOT libraries.
- * \author Andrey Lebedev <andrey.lebedev@gsi.de>
- * \date 2008
- */
-
-void cbmrootlibs() {
-  //   gSystem->Load("libboost_filesystem");
-  gSystem->Load("libboost_regex");
-
-  gSystem->Load("libGeoBase");
-  gSystem->Load("libParBase");
-  gSystem->Load("libBase");
-  gSystem->Load("libCbmBase");
-  gSystem->Load("libCbmData");
-  gSystem->Load("libCbmGenerators");
-  gSystem->Load("libField");
-  gSystem->Load("libGen");
-  gSystem->Load("libPassive");
-  gSystem->Load("libTrkBase");
-  gSystem->Load("libGeane");
-
-  gSystem->Load("libKF");
-
-  gSystem->Load("libSts");
-  gSystem->Load("libTrd");
-  gSystem->Load("libEcal");
-
-  gSystem->Load("libL1");
-  gSystem->Load("libMvd");
-
-  gSystem->Load("libLittrackparallel");
-  gSystem->Load("libLittrack");
-
-  gSystem->Load("libRich");
-  gSystem->Load("libMuch");
-
-  gSystem->Load("libTof");
-
-  gSystem->Load("libGlobal");
-  //   gSystem->Load("libcudalittrack");
-
-  gSystem->Load("libMinuit2");  // Needed for field fitter
-
-  gSystem->Load("libClustering");
-}
+/**
+ * \file cbmrootlibs.C
+ * \brief Macro loads CBMROOT libraries.
+ * \author Andrey Lebedev <andrey.lebedev@gsi.de>
+ * \date 2008
+ */
+
+void cbmrootlibs() {
+  //   gSystem->Load("libboost_filesystem");
+  gSystem->Load("libboost_regex");
+
+  gSystem->Load("libGeoBase");
+  gSystem->Load("libParBase");
+  gSystem->Load("libBase");
+  gSystem->Load("libCbmBase");
+  gSystem->Load("libCbmData");
+  gSystem->Load("libCbmGenerators");
+  gSystem->Load("libField");
+  gSystem->Load("libGen");
+  gSystem->Load("libPassive");
+  gSystem->Load("libTrkBase");
+  gSystem->Load("libGeane");
+
+  gSystem->Load("libKF");
+
+  gSystem->Load("libSts");
+  gSystem->Load("libTrd");
+  gSystem->Load("libEcal");
+
+  gSystem->Load("libL1");
+  gSystem->Load("libMvd");
+
+  gSystem->Load("libLittrackparallel");
+  gSystem->Load("libLittrack");
+
+  gSystem->Load("libRich");
+  gSystem->Load("libMuch");
+
+  gSystem->Load("libTof");
+
+  gSystem->Load("libGlobal");
+  //   gSystem->Load("libcudalittrack");
+
+  gSystem->Load("libMinuit2");  // Needed for field fitter
+
+  gSystem->Load("libClustering");
+}
diff --git a/macro/littrack/radlength_ana.C b/macro/littrack/radlength_ana.C
index ad393040a3..7886c05d52 100644
--- a/macro/littrack/radlength_ana.C
+++ b/macro/littrack/radlength_ana.C
@@ -1,75 +1,75 @@
-/**
- * \file radlength_ana.C
- * \brief Macro runs radiathin length QA task.
- * \author Andrey Lebedev <andrey.lebedev@gsi.de>
- * \date 2013
- */
-void radlength_ana(
-  const string& mcFile =
-    "/Users/slebedev/Development/cbm/data/sim/rich/radlen/mc.ac.root",
-  const string& parFile =
-    "/Users/slebedev/Development/cbm/data/sim/rich/radlen/param.ac.root",
-  const string& radqaFile =
-    "/Users/slebedev/Development/cbm/data/sim/rich/radlen/radqa.ac.root",
-  const string& resultDir = "results_radlen_ac/",
-  const string& geoSetup  = "sis100_electron_rich_pal_bcarb",
-  Int_t nEvents           = 12100000) {
-
-  FairLogger::GetLogger()->SetLogScreenLevel("INFO");
-  FairLogger::GetLogger()->SetLogVerbosityLevel("LOW");
-  TTree::SetMaxTreeSize(90000000000);
-
-  TString srcDir = gSystem->Getenv("VMCWORKDIR");  // top source directory
-
-  remove(radqaFile.c_str());
-
-  TString setupFile  = srcDir + "/geometry/setup/setup_" + geoSetup + ".C";
-  TString setupFunct = "setup_" + geoSetup + "()";
-  gROOT->LoadMacro(setupFile);
-  gROOT->ProcessLine(setupFunct);
-
-  TList* parFileList = new TList();
-
-  TStopwatch timer;
-  timer.Start();
-  gDebug = 0;
-
-  FairRunAna* run             = new FairRunAna();
-  FairFileSource* inputSource = new FairFileSource(mcFile.c_str());
-  run->SetSource(inputSource);
-  run->SetOutputFile(radqaFile.c_str());
-  run->SetGenerateRunInfo(kTRUE);
-
-
-  CbmLitRadLengthQa* radLengthQa = new CbmLitRadLengthQa();
-  radLengthQa->SetOutputDir(resultDir);
-  run->AddTask(radLengthQa);
-
-  FairRuntimeDb* rtdb        = run->GetRuntimeDb();
-  FairParRootFileIo* parIo1  = new FairParRootFileIo();
-  FairParAsciiFileIo* parIo2 = new FairParAsciiFileIo();
-  parIo1->open(parFile.c_str(), "UPDATE");
-  rtdb->setFirstInput(parIo1);
-  if (!parFileList->IsEmpty()) {
-    parIo2->open(parFileList, "in");
-    rtdb->setSecondInput(parIo2);
-  }
-
-  run->Init();
-
-  rtdb->setOutput(parIo1);
-  rtdb->saveOutput();
-  rtdb->print();
-
-  run->Run(0, nEvents);
-
-  timer.Stop();
-  std::cout << std::endl << std::endl;
-  std::cout << "Macro finished succesfully." << std::endl;
-  std::cout << "Output file is " << mcFile << std::endl;
-  std::cout << "Parameter file is " << parFile << std::endl;
-  std::cout << "Radqa file is " << radqaFile << std::endl;
-  std::cout << "Real time " << timer.RealTime() << " s, CPU time "
-            << timer.CpuTime() << " s" << std::endl;
-  std::cout << "Test passed" << std::endl << "All ok" << std::endl;
-}
+/**
+ * \file radlength_ana.C
+ * \brief Macro runs radiathin length QA task.
+ * \author Andrey Lebedev <andrey.lebedev@gsi.de>
+ * \date 2013
+ */
+void radlength_ana(
+  const string& mcFile =
+    "/Users/slebedev/Development/cbm/data/sim/rich/radlen/mc.ac.root",
+  const string& parFile =
+    "/Users/slebedev/Development/cbm/data/sim/rich/radlen/param.ac.root",
+  const string& radqaFile =
+    "/Users/slebedev/Development/cbm/data/sim/rich/radlen/radqa.ac.root",
+  const string& resultDir = "results_radlen_ac/",
+  const string& geoSetup  = "sis100_electron_rich_pal_bcarb",
+  Int_t nEvents           = 12100000) {
+
+  FairLogger::GetLogger()->SetLogScreenLevel("INFO");
+  FairLogger::GetLogger()->SetLogVerbosityLevel("LOW");
+  TTree::SetMaxTreeSize(90000000000);
+
+  TString srcDir = gSystem->Getenv("VMCWORKDIR");  // top source directory
+
+  remove(radqaFile.c_str());
+
+  TString setupFile  = srcDir + "/geometry/setup/setup_" + geoSetup + ".C";
+  TString setupFunct = "setup_" + geoSetup + "()";
+  gROOT->LoadMacro(setupFile);
+  gROOT->ProcessLine(setupFunct);
+
+  TList* parFileList = new TList();
+
+  TStopwatch timer;
+  timer.Start();
+  gDebug = 0;
+
+  FairRunAna* run             = new FairRunAna();
+  FairFileSource* inputSource = new FairFileSource(mcFile.c_str());
+  run->SetSource(inputSource);
+  run->SetOutputFile(radqaFile.c_str());
+  run->SetGenerateRunInfo(kTRUE);
+
+
+  CbmLitRadLengthQa* radLengthQa = new CbmLitRadLengthQa();
+  radLengthQa->SetOutputDir(resultDir);
+  run->AddTask(radLengthQa);
+
+  FairRuntimeDb* rtdb        = run->GetRuntimeDb();
+  FairParRootFileIo* parIo1  = new FairParRootFileIo();
+  FairParAsciiFileIo* parIo2 = new FairParAsciiFileIo();
+  parIo1->open(parFile.c_str(), "UPDATE");
+  rtdb->setFirstInput(parIo1);
+  if (!parFileList->IsEmpty()) {
+    parIo2->open(parFileList, "in");
+    rtdb->setSecondInput(parIo2);
+  }
+
+  run->Init();
+
+  rtdb->setOutput(parIo1);
+  rtdb->saveOutput();
+  rtdb->print();
+
+  run->Run(0, nEvents);
+
+  timer.Stop();
+  std::cout << std::endl << std::endl;
+  std::cout << "Macro finished succesfully." << std::endl;
+  std::cout << "Output file is " << mcFile << std::endl;
+  std::cout << "Parameter file is " << parFile << std::endl;
+  std::cout << "Radqa file is " << radqaFile << std::endl;
+  std::cout << "Real time " << timer.RealTime() << " s, CPU time "
+            << timer.CpuTime() << " s" << std::endl;
+  std::cout << "Test passed" << std::endl << "All ok" << std::endl;
+}
diff --git a/macro/littrack/radlength_sim.C b/macro/littrack/radlength_sim.C
index acbdaa10f1..ce5a6cd01e 100644
--- a/macro/littrack/radlength_sim.C
+++ b/macro/littrack/radlength_sim.C
@@ -1,92 +1,92 @@
-#include <algorithm>
-#include <iostream>
-using std::cout;
-using std::endl;
-
-void radlength_sim(
-  const string& mcFile =
-    "/Users/slebedev/Development/cbm/data/sim/rich/radlen/mc.ac.root",
-  const string& parFile =
-    "/Users/slebedev/Development/cbm/data/sim/rich/radlen/param.ac.root",
-  const string& geoSetup = "sis100_electron_rich_pal_bcarb",
-  Int_t nofEvents        = 0) {
-
-  TTree::SetMaxTreeSize(90000000000);
-
-  remove(parFile.c_str());
-  remove(mcFile.c_str());
-
-  TStopwatch timer;
-  timer.Start();
-
-  //   const Double_t minX   = -550;  // cm
-  //   const Double_t maxX   = 550;   // cm
-  //   const Double_t stepX  = 10.;    // cm
-  //   const Int_t nofBinsX  = (maxX - minX) / stepX;
-  //   const Double_t minY   = -550;  // cm
-  //   const Double_t maxY   = 550;   // cm
-  //   const Double_t stepY  = 10.;    // cm
-
-  const Double_t minX  = -250;  // cm
-  const Double_t maxX  = 250;   // cm
-  const Double_t stepX = 1.;    // cm
-  const Int_t nofBinsX = (maxX - minX) / stepX;
-  const Double_t minY  = -250;  // cm
-  const Double_t maxY  = 250;   // cm
-  const Double_t stepY = 1.;    // cm
-  const Int_t nofBinsY = (maxY - minY) / stepY;
-  nofEvents            = nofBinsX * nofBinsY;
-
-  std::vector<Double_t> vectorX, vectorY;
-  for (Int_t iX = 0; iX < nofBinsX; iX++) {
-    Double_t x = minX + iX * stepX;
-    for (Int_t iY = 0; iY < nofBinsY; iY++) {
-      Double_t y = minY + iY * stepY;
-      vectorX.push_back(x);
-      vectorY.push_back(y);
-    }
-  }
-
-  CbmTransport run;
-  CbmLitRadLengthGenerator* generator = new CbmLitRadLengthGenerator();
-  generator->SetXY(vectorX, vectorY);
-  run.AddInput(generator);
-
-  /*
-   const int RMax = 700; // Maximum radius of the station
-   FairBoxGenerator* box = new FairBoxGenerator(0, 1);
-   box->SetBoxXYZ(-RMax, -RMax, RMax, RMax, 0.);
-   box->SetPRange(0.1, 10);
-   box->SetThetaRange(0., 0.);
-   box->SetPhiRange(0., 0.);
-   primGen->AddGenerator(box);
-   */
-
-  /*
-   FairBoxGenerator* box = new FairBoxGenerator(0, 1);
-   box->SetPRange(0.1, 10);
-   box->SetXYZ(0., 0., 0.);
-   box->SetPhiRange(0., 360.);
-   box->SetThetaRange(0., 50.);
-   primGen->AddGenerator(box);
-*/
-
-  run.SetOutFileName(mcFile.c_str());
-  run.SetParFileName(parFile.c_str());
-  run.LoadSetup(geoSetup.c_str());
-  run.SetTarget("Gold", 0.025, 2.5);
-  run.SetBeamPosition(0., 0., 0., 0.);
-  //run.SetEngine(kGeant4);
-  //run.StoreTrajectories(true);
-  run.RegisterRadLength(true);
-  run.Run(nofEvents);
-
-  timer.Stop();
-  std::cout << std::endl << std::endl;
-  std::cout << "Macro finished successfully." << std::endl;
-  std::cout << "MC file is " << mcFile << std::endl;
-  std::cout << "Parameter file is " << parFile << std::endl;
-  std::cout << "Real time " << timer.RealTime() << " s, CPU time "
-            << timer.CpuTime() << "s" << std::endl;
-  std::cout << std::endl << "Test passed" << std::endl << "All ok" << std::endl;
-}
+#include <algorithm>
+#include <iostream>
+using std::cout;
+using std::endl;
+
+void radlength_sim(
+  const string& mcFile =
+    "/Users/slebedev/Development/cbm/data/sim/rich/radlen/mc.ac.root",
+  const string& parFile =
+    "/Users/slebedev/Development/cbm/data/sim/rich/radlen/param.ac.root",
+  const string& geoSetup = "sis100_electron_rich_pal_bcarb",
+  Int_t nofEvents        = 0) {
+
+  TTree::SetMaxTreeSize(90000000000);
+
+  remove(parFile.c_str());
+  remove(mcFile.c_str());
+
+  TStopwatch timer;
+  timer.Start();
+
+  //   const Double_t minX   = -550;  // cm
+  //   const Double_t maxX   = 550;   // cm
+  //   const Double_t stepX  = 10.;    // cm
+  //   const Int_t nofBinsX  = (maxX - minX) / stepX;
+  //   const Double_t minY   = -550;  // cm
+  //   const Double_t maxY   = 550;   // cm
+  //   const Double_t stepY  = 10.;    // cm
+
+  const Double_t minX  = -250;  // cm
+  const Double_t maxX  = 250;   // cm
+  const Double_t stepX = 1.;    // cm
+  const Int_t nofBinsX = (maxX - minX) / stepX;
+  const Double_t minY  = -250;  // cm
+  const Double_t maxY  = 250;   // cm
+  const Double_t stepY = 1.;    // cm
+  const Int_t nofBinsY = (maxY - minY) / stepY;
+  nofEvents            = nofBinsX * nofBinsY;
+
+  std::vector<Double_t> vectorX, vectorY;
+  for (Int_t iX = 0; iX < nofBinsX; iX++) {
+    Double_t x = minX + iX * stepX;
+    for (Int_t iY = 0; iY < nofBinsY; iY++) {
+      Double_t y = minY + iY * stepY;
+      vectorX.push_back(x);
+      vectorY.push_back(y);
+    }
+  }
+
+  CbmTransport run;
+  CbmLitRadLengthGenerator* generator = new CbmLitRadLengthGenerator();
+  generator->SetXY(vectorX, vectorY);
+  run.AddInput(generator);
+
+  /*
+   const int RMax = 700; // Maximum radius of the station
+   FairBoxGenerator* box = new FairBoxGenerator(0, 1);
+   box->SetBoxXYZ(-RMax, -RMax, RMax, RMax, 0.);
+   box->SetPRange(0.1, 10);
+   box->SetThetaRange(0., 0.);
+   box->SetPhiRange(0., 0.);
+   primGen->AddGenerator(box);
+   */
+
+  /*
+   FairBoxGenerator* box = new FairBoxGenerator(0, 1);
+   box->SetPRange(0.1, 10);
+   box->SetXYZ(0., 0., 0.);
+   box->SetPhiRange(0., 360.);
+   box->SetThetaRange(0., 50.);
+   primGen->AddGenerator(box);
+*/
+
+  run.SetOutFileName(mcFile.c_str());
+  run.SetParFileName(parFile.c_str());
+  run.LoadSetup(geoSetup.c_str());
+  run.SetTarget("Gold", 0.025, 2.5);
+  run.SetBeamPosition(0., 0., 0., 0.);
+  //run.SetEngine(kGeant4);
+  //run.StoreTrajectories(true);
+  run.RegisterRadLength(true);
+  run.Run(nofEvents);
+
+  timer.Stop();
+  std::cout << std::endl << std::endl;
+  std::cout << "Macro finished successfully." << std::endl;
+  std::cout << "MC file is " << mcFile << std::endl;
+  std::cout << "Parameter file is " << parFile << std::endl;
+  std::cout << "Real time " << timer.RealTime() << " s, CPU time "
+            << timer.CpuTime() << "s" << std::endl;
+  std::cout << std::endl << "Test passed" << std::endl << "All ok" << std::endl;
+}
diff --git a/macro/littrack/scripts/much/much_ana.C b/macro/littrack/scripts/much/much_ana.C
index 2d9a3a6662..5982c2966b 100644
--- a/macro/littrack/scripts/much/much_ana.C
+++ b/macro/littrack/scripts/much/much_ana.C
@@ -1,57 +1,57 @@
-
-void much_ana(Int_t nEvents = 1000) {
-  TTree::SetMaxTreeSize(90000000000);
-  TString script = TString(gSystem->Getenv("LIT_SCRIPT"));
-  TString parDir =
-    TString(gSystem->Getenv("VMCWORKDIR")) + TString("/parameters");
-
-  // Input and output data
-  TString dir     = "events/much_anna_omega_8gev_10k/";  // Output directory
-  TString mcFile  = dir + "mc.0000.root";                // MC transport file
-  TString parFile = dir + "param.0000.root";             // Parameters file
-  TString globalRecoFile =
-    dir + "global.reco.0000.root";  // File with reconstructed tracks and hits
-  TString analysisFile = dir + "analysis.0000.root";  // Output analysis file
-
-  TString muchDigiFile =
-    parDir + "/much/much_v12c.digi.root";  // MUCH digi file
-
-  if (script == "yes") {
-    mcFile         = TString(gSystem->Getenv("LIT_MC_FILE"));
-    parFile        = TString(gSystem->Getenv("LIT_PAR_FILE"));
-    globalRecoFile = TString(gSystem->Getenv("LIT_GLOBAL_RECO_FILE"));
-    analysisFile   = TString(gSystem->Getenv("LIT_ANALYSIS_FILE"));
-    muchDigiFile   = TString(gSystem->Getenv("LIT_MUCH_DIGI"));
-  }
-
-  gROOT->LoadMacro("$VMCWORKDIR/gconfig/basiclibs.C");
-  basiclibs();
-  gROOT->LoadMacro("$VMCWORKDIR/macro/much/muchlibs.C");
-  muchlibs();
-
-  FairRunAna* fRun = new FairRunAna();
-  fRun->SetInputFile(mcFile);
-  fRun->AddFriend(globalRecoFile);
-  fRun->SetOutputFile(analysisFile);
-
-  TString muchDigiFile      = gSystem->Getenv("VMCWORKDIR");
-  FairRuntimeDb* rtdb       = fRun->GetRuntimeDb();
-  FairParRootFileIo* parIo1 = new FairParRootFileIo();
-  parIo1->open(parFile);
-  rtdb->setFirstInput(parIo1);
-  rtdb->setOutput(parIo1);
-  rtdb->saveOutput();
-  // ------------------------------------------------------------------------
-
-  CbmKF* kf = new CbmKF();
-  CbmAnaDimuonAnalysis* ana =
-    new CbmAnaDimuonAnalysis("DimuonAnalysis", muchDigiFile, 1);
-  ana->SetVerbose(0);
-  ana->SetStsPointsAccQuota(4);
-  ana->SetStsTrueHitQuota(0.7);
-
-  fRun->AddTask(kf);
-  fRun->AddTask(ana);
-  fRun->Init();
-  fRun->Run(0, nEvents);
-}
+
+void much_ana(Int_t nEvents = 1000) {
+  TTree::SetMaxTreeSize(90000000000);
+  TString script = TString(gSystem->Getenv("LIT_SCRIPT"));
+  TString parDir =
+    TString(gSystem->Getenv("VMCWORKDIR")) + TString("/parameters");
+
+  // Input and output data
+  TString dir     = "events/much_anna_omega_8gev_10k/";  // Output directory
+  TString mcFile  = dir + "mc.0000.root";                // MC transport file
+  TString parFile = dir + "param.0000.root";             // Parameters file
+  TString globalRecoFile =
+    dir + "global.reco.0000.root";  // File with reconstructed tracks and hits
+  TString analysisFile = dir + "analysis.0000.root";  // Output analysis file
+
+  TString muchDigiFile =
+    parDir + "/much/much_v12c.digi.root";  // MUCH digi file
+
+  if (script == "yes") {
+    mcFile         = TString(gSystem->Getenv("LIT_MC_FILE"));
+    parFile        = TString(gSystem->Getenv("LIT_PAR_FILE"));
+    globalRecoFile = TString(gSystem->Getenv("LIT_GLOBAL_RECO_FILE"));
+    analysisFile   = TString(gSystem->Getenv("LIT_ANALYSIS_FILE"));
+    muchDigiFile   = TString(gSystem->Getenv("LIT_MUCH_DIGI"));
+  }
+
+  gROOT->LoadMacro("$VMCWORKDIR/gconfig/basiclibs.C");
+  basiclibs();
+  gROOT->LoadMacro("$VMCWORKDIR/macro/much/muchlibs.C");
+  muchlibs();
+
+  FairRunAna* fRun = new FairRunAna();
+  fRun->SetInputFile(mcFile);
+  fRun->AddFriend(globalRecoFile);
+  fRun->SetOutputFile(analysisFile);
+
+  TString muchDigiFile      = gSystem->Getenv("VMCWORKDIR");
+  FairRuntimeDb* rtdb       = fRun->GetRuntimeDb();
+  FairParRootFileIo* parIo1 = new FairParRootFileIo();
+  parIo1->open(parFile);
+  rtdb->setFirstInput(parIo1);
+  rtdb->setOutput(parIo1);
+  rtdb->saveOutput();
+  // ------------------------------------------------------------------------
+
+  CbmKF* kf = new CbmKF();
+  CbmAnaDimuonAnalysis* ana =
+    new CbmAnaDimuonAnalysis("DimuonAnalysis", muchDigiFile, 1);
+  ana->SetVerbose(0);
+  ana->SetStsPointsAccQuota(4);
+  ana->SetStsTrueHitQuota(0.7);
+
+  fRun->AddTask(kf);
+  fRun->AddTask(ana);
+  fRun->Init();
+  fRun->Run(0, nEvents);
+}
diff --git a/macro/passive/readme_pipe_v14k-p.txt b/macro/passive/readme_pipe_v14k-p.txt
index 98df5d8ce2..f32350951e 100644
--- a/macro/passive/readme_pipe_v14k-p.txt
+++ b/macro/passive/readme_pipe_v14k-p.txt
@@ -1,22 +1,22 @@
-
-Renaming of pipe_v14:
- 14e->14k  - SIS-100
- 14f->14l  - SIS-100 rich
- 14g->14m  - SIS-300
- 14h->14n  - SIS-300 rich
- 14i->14o  - SIS-300
- 14j->14p  - SIS-300 rich
-
-pipe_v14k = pipe_v14e + fixed sizes of vacuum chamber for mvd_v14a
-
-
-Short description of beam pipe geometries for SIS-100 (up to 600 cm):
- 1) pipe_v14e.root - wide fixed beam pipe with 2.5deg half opening angle made of Al with thickness follows the formula: h=D(z)mm/60;
- 2) pipe_v14f.root - the same as 1) excluding RICH section (1.7-3.7m);
-
-Short  description of beam pipe geometries for SIS-300 (up to 880 cm):
- 3) pipe_v14g.root - narrow fixed beam pipe with 1.6deg (0.22-3.7m) and 2.5deg (3.7-6.0m) half opening angles made of Al with thickness follows the formula: h=D(z)mm/60;
- 4) pipe_v14h.root - the same as 3) excluding RICH section (1.7-3.7m);
-
- 5) pipe_v14i.root - the same as 3) except first window@220mm and STS section (0.22-1.7m) that were made of Be with constant thickness h=0.5mm;
- 6) pipe_v14j.root - the same as 5) excluding RICH section (1.7-3.7m);
+
+Renaming of pipe_v14:
+ 14e->14k  - SIS-100
+ 14f->14l  - SIS-100 rich
+ 14g->14m  - SIS-300
+ 14h->14n  - SIS-300 rich
+ 14i->14o  - SIS-300
+ 14j->14p  - SIS-300 rich
+
+pipe_v14k = pipe_v14e + fixed sizes of vacuum chamber for mvd_v14a
+
+
+Short description of beam pipe geometries for SIS-100 (up to 600 cm):
+ 1) pipe_v14e.root - wide fixed beam pipe with 2.5deg half opening angle made of Al with thickness follows the formula: h=D(z)mm/60;
+ 2) pipe_v14f.root - the same as 1) excluding RICH section (1.7-3.7m);
+
+Short  description of beam pipe geometries for SIS-300 (up to 880 cm):
+ 3) pipe_v14g.root - narrow fixed beam pipe with 1.6deg (0.22-3.7m) and 2.5deg (3.7-6.0m) half opening angles made of Al with thickness follows the formula: h=D(z)mm/60;
+ 4) pipe_v14h.root - the same as 3) excluding RICH section (1.7-3.7m);
+
+ 5) pipe_v14i.root - the same as 3) except first window@220mm and STS section (0.22-1.7m) that were made of Be with constant thickness h=0.5mm;
+ 6) pipe_v14j.root - the same as 5) excluding RICH section (1.7-3.7m);
diff --git a/macro/rich/Import_GDML_Export_ROOT.c b/macro/rich/Import_GDML_Export_ROOT.c
index af7f7025d3..9a7c55cedc 100644
--- a/macro/rich/Import_GDML_Export_ROOT.c
+++ b/macro/rich/Import_GDML_Export_ROOT.c
@@ -1,54 +1,54 @@
-
-void Import_GDML_Export_ROOT() {
-  // we need to use latest root version to work with gdml geometry
-  // system(string("source /usr/local/Cellar/root/6.20.04_1/bin/thisroot.sh").c_str());
-
-  // For v17a geometries one need to use root5, one can use installation on lustre
-  //"source /cvmfs/fairroot.gsi.de/fairsoft/may16_root5/bin/thisroot.sh"
-
-  TString richGeoFilename = "rich_v17a_1e_pcarb_bcarb.gdml";
-
-  TGeoManager* gdml = new TGeoManager("gdml", "FAIRGeom");
-
-  cout << "Importing '" << richGeoFilename << "'." << endl;
-
-  TGDMLParse parser;
-  // Define your input GDML file HERE
-  TGeoVolume* gdmlTop = parser.GDMLReadFile(richGeoFilename);
-  TGeoVolume* rootTop = new TGeoVolumeAssembly("TOP");
-
-  gGeoManager->SetTopVolume(rootTop);
-
-  // Starting from the version v18a position is defined inside the GDML file
-  // Define your position HERE
-  // Z coordinate for v16a = 270, for v17a = 258.75, for v18a = 0.
-  TGeoRotation* rot      = new TGeoRotation("rot", 0., 0., 0.);
-  TGeoCombiTrans* posrot = new TGeoCombiTrans(
-    0., 0., 258.75, rot);  // v16a - 270, v17a - 258.75, v18a - 0
-
-  rootTop->AddNode(gdmlTop, 1, posrot);
-
-  gGeoManager->CloseGeometry();
-  gGeoManager->CheckOverlaps();
-  gGeoManager->PrintOverlaps();
-  // Just print the name of the rich volume
-  // One may compare it to the file name
-  //TGeoNode* richNode = gGeoManager->GetTopVolume()->GetNodes()->At(0);
-  //cout << richNode->GetVolume()->GetName() << endl;
-
-  // Extract name to form output file name
-  TString richGeoOutFilename;
-  if (richGeoFilename.EndsWith(".gdml")) {
-    richGeoOutFilename =
-      richGeoFilename(0, richGeoFilename.Length() - 5) + ".geo.root";
-  } else {
-    richGeoOutFilename = richGeoFilename + ".geo.root";
-  }
-
-  cout << "Exporting '" << richGeoOutFilename << "'." << endl;
-
-  // Define you output ROOT file HERE
-  TFile* outfile = new TFile(richGeoOutFilename, "RECREATE");
-  rootTop->Write();
-  outfile->Close();
-}
+
+void Import_GDML_Export_ROOT() {
+  // we need to use latest root version to work with gdml geometry
+  // system(string("source /usr/local/Cellar/root/6.20.04_1/bin/thisroot.sh").c_str());
+
+  // For v17a geometries one need to use root5, one can use installation on lustre
+  //"source /cvmfs/fairroot.gsi.de/fairsoft/may16_root5/bin/thisroot.sh"
+
+  TString richGeoFilename = "rich_v17a_1e_pcarb_bcarb.gdml";
+
+  TGeoManager* gdml = new TGeoManager("gdml", "FAIRGeom");
+
+  cout << "Importing '" << richGeoFilename << "'." << endl;
+
+  TGDMLParse parser;
+  // Define your input GDML file HERE
+  TGeoVolume* gdmlTop = parser.GDMLReadFile(richGeoFilename);
+  TGeoVolume* rootTop = new TGeoVolumeAssembly("TOP");
+
+  gGeoManager->SetTopVolume(rootTop);
+
+  // Starting from the version v18a position is defined inside the GDML file
+  // Define your position HERE
+  // Z coordinate for v16a = 270, for v17a = 258.75, for v18a = 0.
+  TGeoRotation* rot      = new TGeoRotation("rot", 0., 0., 0.);
+  TGeoCombiTrans* posrot = new TGeoCombiTrans(
+    0., 0., 258.75, rot);  // v16a - 270, v17a - 258.75, v18a - 0
+
+  rootTop->AddNode(gdmlTop, 1, posrot);
+
+  gGeoManager->CloseGeometry();
+  gGeoManager->CheckOverlaps();
+  gGeoManager->PrintOverlaps();
+  // Just print the name of the rich volume
+  // One may compare it to the file name
+  //TGeoNode* richNode = gGeoManager->GetTopVolume()->GetNodes()->At(0);
+  //cout << richNode->GetVolume()->GetName() << endl;
+
+  // Extract name to form output file name
+  TString richGeoOutFilename;
+  if (richGeoFilename.EndsWith(".gdml")) {
+    richGeoOutFilename =
+      richGeoFilename(0, richGeoFilename.Length() - 5) + ".geo.root";
+  } else {
+    richGeoOutFilename = richGeoFilename + ".geo.root";
+  }
+
+  cout << "Exporting '" << richGeoOutFilename << "'." << endl;
+
+  // Define you output ROOT file HERE
+  TFile* outfile = new TFile(richGeoOutFilename, "RECREATE");
+  rootTop->Write();
+  outfile->Close();
+}
diff --git a/macro/rich/d0/run_d0.C b/macro/rich/d0/run_d0.C
index 52057151b0..4c0f96f88d 100644
--- a/macro/rich/d0/run_d0.C
+++ b/macro/rich/d0/run_d0.C
@@ -1,223 +1,223 @@
-#include <string>
-using namespace std;
-
-double radius         = 200;  //in pixels
-double deltaR         = 1.0;  // in pixels
-double thresholdCoeff = 1.1;
-
-void drawH2(TH2* h);
-void drawGraph(TGraph* graph);
-int calculateIntensity(TH2* h, double xc, double yc, double r, int threshold);
-void drawCircle(double xc, double yc, double r, int color);
-void findXYCenter(TH2* h, double& maxX, double& maxY, double threshold);
-void runD0ForFile(const string& fileName, bool doDraw);
-
-void run_d0() {
-  string file =
-    "/Users/slebedev/Development/cbm/data/d0/test_03_09_15/mirror3/2mm.asc";
-  double d0 = runD0ForFile(file, true);
-
-  return;
-
-  string dir = "/Users/slebedev/Development/cbm/data/d0/test_03_09_15/mirror2/";
-
-  const int N = 50;
-  double d0Array[N];
-  double x[N];
-
-  for (int i = 1; i <= N; i++) {
-    x[i - 1] = i;
-    stringstream ss;
-    ss << dir << i << "mm.asc";
-    cout << "File #" << i << " fileName:" << ss.str() << endl;
-    double d0      = runD0ForFile(ss.str(), false);
-    d0Array[i - 1] = d0;
-  }
-
-  TCanvas* can  = new TCanvas("rich_d0_final", "rich_d0_final", 700, 700);
-  TGraph* graph = new TGraph(N, x, d0Array);
-  graph->GetXaxis()->SetTitle("distance [mm]");
-  graph->GetYaxis()->SetTitle("D0 [mm]");
-  drawGraph(graph);
-}
-
-
-double runD0ForFile(const string& fileName, bool doDraw) {
-  int dimX = 1024;
-  int dimY = 1024;
-
-  ifstream fin(fileName.c_str());
-  int k;
-  int x = 0;
-  int y = 0;
-
-  TH2D* hCamera = new TH2D(
-    "hCamera", "hCamera;x [pixel];Y [pixel];", dimX, 0, dimX, dimY, 0, dimY);
-  while (!fin.eof()) {
-    x++;
-    fin >> k;
-    hCamera->SetBinContent(x, y, k);
-    if (x == dimX + 1) {
-      x = 0;
-      y++;
-    }
-  }
-
-  int threshold = thresholdCoeff * hCamera->Integral() / (dimX * dimY);
-  cout << "threshold:" << threshold << endl;
-
-  double centerX, centerY;
-  findXYCenter((TH2D*) hCamera->Clone(), centerX, centerY, threshold);
-
-
-  if (doDraw) {
-    TCanvas* can1 = new TCanvas("rich_d0_camera", "rich_d0_camera", 700, 600);
-    drawH2((TH2D*) hCamera->Clone());
-
-    TCanvas* can2 = new TCanvas(
-      "rich_d0_camera_threshold", "rich_d0_camera_threshold", 700, 600);
-    hCamera->SetMinimum(threshold);
-    drawH2((TH2D*) hCamera->Clone());
-
-    TCanvas* can3 =
-      new TCanvas("rich_d0_camera_zoom", "rich_d0_camera_zoom", 700, 600);
-    hCamera->GetXaxis()->SetRangeUser(centerX - 1.2 * radius,
-                                      centerX + 1.2 * radius);
-    hCamera->GetYaxis()->SetRangeUser(centerY - 1.2 * radius,
-                                      centerY + 1.2 * radius);
-    drawH2((TH2D*) hCamera->Clone());
-    drawCircle(centerX, centerY, radius, kBlack);
-  }
-
-  int intensityInit =
-    calculateIntensity(hCamera, centerX, centerY, radius, threshold);
-  // cout << "Initial intensity = " << intensityInit << endl;
-
-  int intensity95 = 0.95 * intensityInit;
-  double newR     = radius;
-  for (;;) {
-    int newInt = calculateIntensity(hCamera, centerX, centerY, newR, threshold);
-    // cout << "Radius=" <<newR << ", Intensity=" << newInt << ", "
-    //       << 100. * (double)newInt / (double)intensityInit <<"%"<< endl;
-    if (newInt <= intensity95) break;
-    newR -= deltaR;
-  }
-  drawCircle(centerX, centerY, newR, kBlue);
-
-  newR = 13.3 * newR / dimX;
-
-  if (hCamera != NULL) delete hCamera;
-
-  cout << "D0 (95%) = " << 2 * newR << " cm" << endl;
-  return 2. * newR;
-}
-
-void findXYCenter(TH2* h, double& maxX, double& maxY, double threshold) {
-  int nBins = 1;
-  h->RebinX(nBins);
-  h->RebinY(nBins);
-
-  int nx    = h->GetNbinsX();
-  int ny    = h->GetNbinsY();
-  int sumW  = 0;
-  double mX = 0;
-  double mY = 0;
-
-  for (int ix = 2; ix <= nx - 1; ix++) {
-    for (int iy = 2; iy <= ny - 1; iy++) {
-      double binInt = h->GetBinContent(ix, iy);
-      if (binInt < threshold) continue;
-      mX += binInt * ix;
-      mY += binInt * iy;
-      sumW += binInt;
-    }
-  }
-  maxX = mX / sumW;
-  maxY = mY / sumW;
-  cout << "maxX:" << maxX << " maxY:" << maxY << endl;
-}
-
-int calculateIntensity(TH2* h, double xc, double yc, double r, int threshold) {
-  int nx      = h->GetNbinsX();
-  int ny      = h->GetNbinsY();
-  int counter = 0;
-  int minIndX = xc - 1.05 * radius;
-  int maxIndX = xc + 1.05 * radius;
-  if (minIndX <= 0) minIndX = 1;
-  if (maxIndX > nx) maxIndX = nx;
-
-  int minIndY = yc - 1.05 * radius;
-  int maxIndY = yc + 1.05 * radius;
-  if (minIndY <= 0) minIndY = 1;
-  if (maxIndY > ny) maxIndY = ny;
-
-  for (int ix = minIndX; ix <= maxIndX; ix++) {
-    for (int iy = minIndY; iy <= maxIndY; iy++) {
-      int binInt = h->GetBinContent(ix, iy);
-      if (binInt < threshold) continue;
-      double d = sqrt((xc - ix) * (xc - ix) + (yc - iy) * (yc - iy));
-      if (d < r) { counter += binInt; }
-    }
-  }
-  return counter;
-}
-
-void drawCircle(double xc, double yc, double r, int color) {
-  TEllipse* ellipse = new TEllipse(xc, yc, r);
-  ellipse->SetFillStyle(0);
-  ellipse->SetLineWidth(2);
-  ellipse->SetLineColor(color);
-  ellipse->DrawClone();
-
-  TEllipse* ellipse = new TEllipse(xc, yc, 1);
-  ellipse->SetFillColor(kBlack);
-  ellipse->SetLineColor(kBlack);
-  ellipse->DrawClone();
-}
-
-void drawH2(TH2* h) {
-  h->Draw("COLZ");
-  h->SetStats(false);
-  Double_t textSize = 0.06;
-  h->GetXaxis()->SetLabelSize(textSize);
-  h->GetXaxis()->SetNdivisions(505, kTRUE);
-  h->GetYaxis()->SetLabelSize(textSize);
-  h->GetYaxis()->SetNdivisions(505, kTRUE);
-  h->GetZaxis()->SetLabelSize(textSize);
-  // hist->GetZaxis()->SetNdivisions(505, kTRUE);
-  h->GetXaxis()->SetTitleSize(textSize);
-  h->GetYaxis()->SetTitleSize(textSize);
-  h->GetZaxis()->SetTitleSize(textSize);
-  h->GetXaxis()->SetTitleOffset(1.0);
-  h->GetYaxis()->SetTitleOffset(1.3);
-  h->GetZaxis()->SetTitleOffset(1.5);
-  gPad->SetLeftMargin(0.17);
-  gPad->SetRightMargin(0.30);
-  gPad->SetBottomMargin(0.15);
-  gPad->SetTicks(1, 1);
-  gPad->SetGrid(true, true);
-}
-
-void drawGraph(TGraph* graph) {
-  string drawOpt    = "AC";
-  Double_t textSize = 0.06;
-  graph->SetLineColor(kBlue);
-  graph->SetLineWidth(3);
-  //graph->SetLineStyle(lineStyle);
-  graph->SetMarkerColor(kBlue);
-  graph->SetMarkerSize(3);
-  graph->SetMarkerStyle(kOpenCircle);
-  if (drawOpt.find("A") != string::npos) {
-    graph->GetXaxis()->SetLabelSize(textSize);
-    graph->GetXaxis()->SetNdivisions(505, kTRUE);
-    graph->GetYaxis()->SetLabelSize(textSize);
-    graph->GetXaxis()->SetTitleSize(textSize);
-    graph->GetYaxis()->SetTitleSize(textSize);
-    graph->GetXaxis()->SetTitleOffset(1.0);
-    graph->GetYaxis()->SetTitleOffset(1.3);
-  }
-  gPad->SetLeftMargin(0.17);
-  gPad->SetBottomMargin(0.15);
-  graph->Draw(drawOpt.c_str());
-  gPad->SetGrid(true, true);
-}
+#include <string>
+using namespace std;
+
+double radius         = 200;  //in pixels
+double deltaR         = 1.0;  // in pixels
+double thresholdCoeff = 1.1;
+
+void drawH2(TH2* h);
+void drawGraph(TGraph* graph);
+int calculateIntensity(TH2* h, double xc, double yc, double r, int threshold);
+void drawCircle(double xc, double yc, double r, int color);
+void findXYCenter(TH2* h, double& maxX, double& maxY, double threshold);
+void runD0ForFile(const string& fileName, bool doDraw);
+
+void run_d0() {
+  string file =
+    "/Users/slebedev/Development/cbm/data/d0/test_03_09_15/mirror3/2mm.asc";
+  double d0 = runD0ForFile(file, true);
+
+  return;
+
+  string dir = "/Users/slebedev/Development/cbm/data/d0/test_03_09_15/mirror2/";
+
+  const int N = 50;
+  double d0Array[N];
+  double x[N];
+
+  for (int i = 1; i <= N; i++) {
+    x[i - 1] = i;
+    stringstream ss;
+    ss << dir << i << "mm.asc";
+    cout << "File #" << i << " fileName:" << ss.str() << endl;
+    double d0      = runD0ForFile(ss.str(), false);
+    d0Array[i - 1] = d0;
+  }
+
+  TCanvas* can  = new TCanvas("rich_d0_final", "rich_d0_final", 700, 700);
+  TGraph* graph = new TGraph(N, x, d0Array);
+  graph->GetXaxis()->SetTitle("distance [mm]");
+  graph->GetYaxis()->SetTitle("D0 [mm]");
+  drawGraph(graph);
+}
+
+
+double runD0ForFile(const string& fileName, bool doDraw) {
+  int dimX = 1024;
+  int dimY = 1024;
+
+  ifstream fin(fileName.c_str());
+  int k;
+  int x = 0;
+  int y = 0;
+
+  TH2D* hCamera = new TH2D(
+    "hCamera", "hCamera;x [pixel];Y [pixel];", dimX, 0, dimX, dimY, 0, dimY);
+  while (!fin.eof()) {
+    x++;
+    fin >> k;
+    hCamera->SetBinContent(x, y, k);
+    if (x == dimX + 1) {
+      x = 0;
+      y++;
+    }
+  }
+
+  int threshold = thresholdCoeff * hCamera->Integral() / (dimX * dimY);
+  cout << "threshold:" << threshold << endl;
+
+  double centerX, centerY;
+  findXYCenter((TH2D*) hCamera->Clone(), centerX, centerY, threshold);
+
+
+  if (doDraw) {
+    TCanvas* can1 = new TCanvas("rich_d0_camera", "rich_d0_camera", 700, 600);
+    drawH2((TH2D*) hCamera->Clone());
+
+    TCanvas* can2 = new TCanvas(
+      "rich_d0_camera_threshold", "rich_d0_camera_threshold", 700, 600);
+    hCamera->SetMinimum(threshold);
+    drawH2((TH2D*) hCamera->Clone());
+
+    TCanvas* can3 =
+      new TCanvas("rich_d0_camera_zoom", "rich_d0_camera_zoom", 700, 600);
+    hCamera->GetXaxis()->SetRangeUser(centerX - 1.2 * radius,
+                                      centerX + 1.2 * radius);
+    hCamera->GetYaxis()->SetRangeUser(centerY - 1.2 * radius,
+                                      centerY + 1.2 * radius);
+    drawH2((TH2D*) hCamera->Clone());
+    drawCircle(centerX, centerY, radius, kBlack);
+  }
+
+  int intensityInit =
+    calculateIntensity(hCamera, centerX, centerY, radius, threshold);
+  // cout << "Initial intensity = " << intensityInit << endl;
+
+  int intensity95 = 0.95 * intensityInit;
+  double newR     = radius;
+  for (;;) {
+    int newInt = calculateIntensity(hCamera, centerX, centerY, newR, threshold);
+    // cout << "Radius=" <<newR << ", Intensity=" << newInt << ", "
+    //       << 100. * (double)newInt / (double)intensityInit <<"%"<< endl;
+    if (newInt <= intensity95) break;
+    newR -= deltaR;
+  }
+  drawCircle(centerX, centerY, newR, kBlue);
+
+  newR = 13.3 * newR / dimX;
+
+  if (hCamera != NULL) delete hCamera;
+
+  cout << "D0 (95%) = " << 2 * newR << " cm" << endl;
+  return 2. * newR;
+}
+
+void findXYCenter(TH2* h, double& maxX, double& maxY, double threshold) {
+  int nBins = 1;
+  h->RebinX(nBins);
+  h->RebinY(nBins);
+
+  int nx    = h->GetNbinsX();
+  int ny    = h->GetNbinsY();
+  int sumW  = 0;
+  double mX = 0;
+  double mY = 0;
+
+  for (int ix = 2; ix <= nx - 1; ix++) {
+    for (int iy = 2; iy <= ny - 1; iy++) {
+      double binInt = h->GetBinContent(ix, iy);
+      if (binInt < threshold) continue;
+      mX += binInt * ix;
+      mY += binInt * iy;
+      sumW += binInt;
+    }
+  }
+  maxX = mX / sumW;
+  maxY = mY / sumW;
+  cout << "maxX:" << maxX << " maxY:" << maxY << endl;
+}
+
+int calculateIntensity(TH2* h, double xc, double yc, double r, int threshold) {
+  int nx      = h->GetNbinsX();
+  int ny      = h->GetNbinsY();
+  int counter = 0;
+  int minIndX = xc - 1.05 * radius;
+  int maxIndX = xc + 1.05 * radius;
+  if (minIndX <= 0) minIndX = 1;
+  if (maxIndX > nx) maxIndX = nx;
+
+  int minIndY = yc - 1.05 * radius;
+  int maxIndY = yc + 1.05 * radius;
+  if (minIndY <= 0) minIndY = 1;
+  if (maxIndY > ny) maxIndY = ny;
+
+  for (int ix = minIndX; ix <= maxIndX; ix++) {
+    for (int iy = minIndY; iy <= maxIndY; iy++) {
+      int binInt = h->GetBinContent(ix, iy);
+      if (binInt < threshold) continue;
+      double d = sqrt((xc - ix) * (xc - ix) + (yc - iy) * (yc - iy));
+      if (d < r) { counter += binInt; }
+    }
+  }
+  return counter;
+}
+
+void drawCircle(double xc, double yc, double r, int color) {
+  TEllipse* ellipse = new TEllipse(xc, yc, r);
+  ellipse->SetFillStyle(0);
+  ellipse->SetLineWidth(2);
+  ellipse->SetLineColor(color);
+  ellipse->DrawClone();
+
+  TEllipse* ellipse = new TEllipse(xc, yc, 1);
+  ellipse->SetFillColor(kBlack);
+  ellipse->SetLineColor(kBlack);
+  ellipse->DrawClone();
+}
+
+void drawH2(TH2* h) {
+  h->Draw("COLZ");
+  h->SetStats(false);
+  Double_t textSize = 0.06;
+  h->GetXaxis()->SetLabelSize(textSize);
+  h->GetXaxis()->SetNdivisions(505, kTRUE);
+  h->GetYaxis()->SetLabelSize(textSize);
+  h->GetYaxis()->SetNdivisions(505, kTRUE);
+  h->GetZaxis()->SetLabelSize(textSize);
+  // hist->GetZaxis()->SetNdivisions(505, kTRUE);
+  h->GetXaxis()->SetTitleSize(textSize);
+  h->GetYaxis()->SetTitleSize(textSize);
+  h->GetZaxis()->SetTitleSize(textSize);
+  h->GetXaxis()->SetTitleOffset(1.0);
+  h->GetYaxis()->SetTitleOffset(1.3);
+  h->GetZaxis()->SetTitleOffset(1.5);
+  gPad->SetLeftMargin(0.17);
+  gPad->SetRightMargin(0.30);
+  gPad->SetBottomMargin(0.15);
+  gPad->SetTicks(1, 1);
+  gPad->SetGrid(true, true);
+}
+
+void drawGraph(TGraph* graph) {
+  string drawOpt    = "AC";
+  Double_t textSize = 0.06;
+  graph->SetLineColor(kBlue);
+  graph->SetLineWidth(3);
+  //graph->SetLineStyle(lineStyle);
+  graph->SetMarkerColor(kBlue);
+  graph->SetMarkerSize(3);
+  graph->SetMarkerStyle(kOpenCircle);
+  if (drawOpt.find("A") != string::npos) {
+    graph->GetXaxis()->SetLabelSize(textSize);
+    graph->GetXaxis()->SetNdivisions(505, kTRUE);
+    graph->GetYaxis()->SetLabelSize(textSize);
+    graph->GetXaxis()->SetTitleSize(textSize);
+    graph->GetYaxis()->SetTitleSize(textSize);
+    graph->GetXaxis()->SetTitleOffset(1.0);
+    graph->GetYaxis()->SetTitleOffset(1.3);
+  }
+  gPad->SetLeftMargin(0.17);
+  gPad->SetBottomMargin(0.15);
+  graph->Draw(drawOpt.c_str());
+  gPad->SetGrid(true, true);
+}
diff --git a/macro/rich/geotest/RotPMT/CreateGeo/2015_minus10deg_LowerPart.gdml b/macro/rich/geotest/RotPMT/CreateGeo/2015_minus10deg_LowerPart.gdml
index 8492d306d8..47e289f01e 100644
--- a/macro/rich/geotest/RotPMT/CreateGeo/2015_minus10deg_LowerPart.gdml
+++ b/macro/rich/geotest/RotPMT/CreateGeo/2015_minus10deg_LowerPart.gdml
@@ -1,365 +1,365 @@
-
-</define>
-
-<materials>
-<material name="vacuum" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="aluminium" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="kapton" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="RICHglass" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="RICHgas_CO2_dis" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="CsI" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="RICHgas_CO2_dis+" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="air" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-</materials>
-
-<solids>
-<cone name="RICH_pipe_vac_RICH_pipe_vac_2" rmin1="0" rmax1="(RICH_pipe_entrance_r-RICH_pipe_entrance_thickness)" rmin2="0" rmax2="(RICH_pipe_exit_r-RICH_pipe_exit_thickness)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<tube name="RICH_pipe_vac_RICH_pipe_vac_3" rmin="0" rmax="(RICH_pipe_entrance_r-RICH_pipe_entrance_thickness)*cos((RICH_pipe_angle)*DEGtoRAD)" z="(1.5)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<union name="RICH_pipe_vac_PartBody">
-<first ref="RICH_pipe_vac_RICH_pipe_vac_2"/>
-<second ref="RICH_pipe_vac_RICH_pipe_vac_3"/>
-<position name="RICH_pipe_vac__position__RICH_pipe_vac_3__by__RICH_pipe_vac_2" x="((49.5-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD)))*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)+(RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))-0.5)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
-<rotation name="RICH_pipe_vac__rotation__RICH_pipe_vac_3__by__RICH_pipe_vac_2" x="0" y="(-RICH_pipe_angle)" z="0" unit="degree"/>
-</union>
-<cone name="RICH_pipe_RICH_pipe_4" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<tube name="RICH_pipe_RICH_pipe_3" rmin="0" rmax="(RICH_pipe_entrance_r*cos((RICH_pipe_angle)*DEGtoRAD))" z="(1.5)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<union name="RICH_pipe_PartBody">
-<first ref="RICH_pipe_RICH_pipe_4"/>
-<second ref="RICH_pipe_RICH_pipe_3"/>
-<position name="RICH_pipe__position__RICH_pipe_3__by__RICH_pipe_4" x="((49.5-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD)))*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)+(RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))-0.5)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
-<rotation name="RICH_pipe__rotation__RICH_pipe_3__by__RICH_pipe_4" x="0" y="(-RICH_pipe_angle)" z="0" unit="degree"/>
-</union>
-<box name="RICH_covering_entrance_RICH_covering_entrance_2" x="((RICH_entrance_width/2+RICH_covering_thickness+entrance_width_addend))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness/2))*2" lunit="mm"/>
-<cone name="RICH_covering_entrance_RICH_covering_entrance_3" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<subtraction name="RICH_covering_entrance_PartBody">
-<first ref="RICH_covering_entrance_RICH_covering_entrance_2"/>
-<second ref="RICH_covering_entrance_RICH_covering_entrance_3"/>
-<position name="RICH_covering_entrance__position__RICH_covering_entrance_3__by__RICH_covering_entrance_2" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(RICH_length/2+kapton_thickness/2+(RICH_pipe_exit_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
-<rotation name="RICH_covering_entrance__rotation__RICH_covering_entrance_3__by__RICH_covering_entrance_2" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
-</subtraction>
-<trap name="RICH_covering_sloping_PartBody" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" theta="(atan(tan((RICH_trapezoid_angle/2)*DEGtoRAD)*(RICH_exit_width-RICH_entrance_width-entrance_width_addend)/(RICH_exit_width-RICH_entrance_width))/DEGtoRAD)" phi="0" y1="((RICH_height/2+RICH_covering_thickness))*2" x1="((RICH_covering_thickness/2+entrance_width_addend/2))*2" x2="((RICH_covering_thickness/2+entrance_width_addend/2))*2" alpha1="0" y2="((RICH_height/2+RICH_covering_thickness))*2" x3="((RICH_covering_thickness/2))*2" x4="((RICH_covering_thickness/2))*2" alpha2="0" lunit="mm" aunit="degree"/>
-<trd name="RICH_covering_top_bottom_1_PartBody" x1="((RICH_entrance_width/2))*2" x2="((RICH_exit_width/2))*2" y1="((RICH_covering_thickness/2))*2" y2="((RICH_covering_thickness/2))*2" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<box name="RICH_covering_top_bottom_2_PartBody" x="((RICH_exit_width/2))*2" y="((RICH_covering_thickness/2))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<box name="RICH_covering_side_PartBody" x="((RICH_covering_thickness/2))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<box name="RICH_covering_exit_RICH_covering_exit_2" x="((RICH_exit_width/2+RICH_covering_thickness))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness/2))*2" lunit="mm"/>
-<cone name="RICH_covering_exit_RICH_covering_exit_3" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<subtraction name="RICH_covering_exit_PartBody">
-<first ref="RICH_covering_exit_RICH_covering_exit_2"/>
-<second ref="RICH_covering_exit_RICH_covering_exit_3"/>
-<position name="RICH_covering_exit__position__RICH_covering_exit_3__by__RICH_covering_exit_2" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-kapton_thickness/2-(RICH_pipe_entrance_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
-<rotation name="RICH_covering_exit__rotation__RICH_covering_exit_3__by__RICH_covering_exit_2" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
-</subtraction>
-<sphere name="RICH_mirror_1_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="6.52" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_2_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="90.038" deltatheta="8.118" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_3_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="4" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_and_support_belt_strip_cut_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+mirror_cont_supp_addend_out)" startphi="-4.106" deltaphi="8.212" starttheta="75.2365" deltatheta="27" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_and_support_belt_strip_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+mirror_cont_supp_addend_out)" startphi="-4.106" deltaphi="8.212" starttheta="75.2365" deltatheta="29.527" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_replica_PartBody" rmin="(RICH_mirror_r)" rmax="((RICH_mirror_r+mirror_cont_supp_addend_out))" startphi="-36.954" deltaphi="32.848" starttheta="75.2365" deltatheta="29.527" lunit="mm" aunit="degree"/>
-<box name="rich1d_PartBody" x="((pmt_width/2))*2" y="((pmt_height/2))*2" z="((pmt_thickness/2))*2" lunit="mm"/>
-<box name="Sens_plane_3" x="((RICH_exit_width/2))*2" y="((RICH_height/2))*2" z="(0.5)*2" lunit="mm"/>
-<tube name="Sens_plane_2" rmin="0" rmax="160" z="(1)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<subtraction name="Sens_plane_PartBody">
-<first ref="Sens_plane_3"/>
-<second ref="Sens_plane_2"/>
-<positionref ref="central"/>
-<rotationref ref="identity"/>
-</subtraction>
-<box name="RICH_gas_RICH_gas_5" x="((RICH_exit_width/2))*2" y="((RICH_height/2))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<cone name="RICH_gas_RICH_gas_7" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<trd name="RICH_gas_RICH_gas_4" x1="((RICH_entrance_width/2))*2" x2="((RICH_exit_width/2))*2" y1="((RICH_height/2))*2" y2="((RICH_height/2))*2" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<union name="RICH_gas_RICH_gas_6">
-<first ref="RICH_gas_RICH_gas_4"/>
-<second ref="RICH_gas_RICH_gas_5"/>
-<position name="RICH_gas__position__RICH_gas_5__by__RICH_gas_4" x="0" y="0" z="(RICH_length/2)" unit="mm"/>
-<rotationref ref="identity"/>
-</union>
-<subtraction name="RICH_gas_PartBody">
-<first ref="RICH_gas_RICH_gas_6"/>
-<second ref="RICH_gas_RICH_gas_7"/>
-<position name="RICH_gas__position__RICH_gas_7__by__RICH_gas_6" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2+RICH_length/2+(RICH_pipe_exit_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
-<rotation name="RICH_gas__rotation__RICH_gas_7__by__RICH_gas_6" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
-</subtraction>
-<box name="rich1_rich1_16" x="((RICH_exit_width/2+RICH_covering_thickness))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness+RICH_length/2+1))*2" lunit="mm"/>
-<cone name="rich1_rich1_17" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<union name="rich1_PartBody">
-<first ref="rich1_rich1_16"/>
-<second ref="rich1_rich1_17"/>
-<position name="rich1__position__rich1_17__by__rich1_16" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))+1-RICH_covering_thickness+((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
-<rotation name="rich1__rotation__rich1_17__by__rich1_16" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
-</union>
-</solids>
-
-<structure>
-<volume name="RICH_pipe_vac">
-<materialref ref="vacuum"/>
-<solidref ref="RICH_pipe_vac_PartBody"/>
-</volume>
-<volume name="RICH_pipe">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_pipe_PartBody"/>
-<physvol>
-<volumeref ref="RICH_pipe_vac"/>
-<position name="RICH_pipe_pos_RICH_pipe_vac_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_pipe_rot_RICH_pipe_vac_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<volume name="RICH_covering_entrance">
-<materialref ref="kapton"/>
-<solidref ref="RICH_covering_entrance_PartBody"/>
-</volume>
-<volume name="RICH_covering_sloping">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_covering_sloping_PartBody"/>
-</volume>
-<volume name="RICH_covering_top_bottom_1">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_covering_top_bottom_1_PartBody"/>
-</volume>
-<volume name="RICH_covering_top_bottom_2">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_covering_top_bottom_2_PartBody"/>
-</volume>
-<volume name="RICH_covering_side">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_covering_side_PartBody"/>
-</volume>
-<volume name="RICH_covering_exit">
-<materialref ref="kapton"/>
-<solidref ref="RICH_covering_exit_PartBody"/>
-</volume>
-<volume name="RICH_mirror_1">
-<materialref ref="RICHglass"/>
-<solidref ref="RICH_mirror_1_PartBody"/>
-</volume>
-<volume name="RICH_mirror_2">
-<materialref ref="RICHglass"/>
-<solidref ref="RICH_mirror_2_PartBody"/>
-</volume>
-<volume name="RICH_mirror_3">
-<materialref ref="RICHglass"/>
-<solidref ref="RICH_mirror_3_PartBody"/>
-</volume>
-<volume name="RICH_mirror_and_support_belt_strip_cut">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="RICH_mirror_and_support_belt_strip_cut_PartBody"/>
-<physvol>
-<volumeref ref="RICH_mirror_2"/>
-<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_2_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_2_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_2"/>
-<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_2_2" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_2_2" x="-180" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_3"/>
-<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_3_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_3_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_1"/>
-<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_1_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_1_1" x="-180" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<volume name="RICH_mirror_and_support_belt_strip">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="RICH_mirror_and_support_belt_strip_PartBody"/>
-<physvol>
-<volumeref ref="RICH_mirror_1"/>
-<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_1_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_1_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_1"/>
-<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_1_2" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_1_2" x="-180" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_2"/>
-<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_2_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_2_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_2"/>
-<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_2_2" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_2_2" x="-180" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<volume name="RICH_mirror_replica">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="RICH_mirror_replica_PartBody"/>
-<divisionvol number="4" offset="0" width=" 8.212" axis="kPhi" unit="degree">
-<volumeref ref="RICH_mirror_and_support_belt_strip"/>
-</divisionvol>
-</volume>
-<assembly name="RICH_mirror_half_total">
-<physvol>
-<volumeref ref="RICH_mirror_and_support_belt_strip_cut"/>
-<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_cut_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_cut_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_replica"/>
-<position name="RICH_mirror_half_total__pos__RICH_mirror_replica_0" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_half_total__rot__RICH_mirror_replica_0" x="-180" y="180" z="180" unit="deg"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_replica"/>
-<position name="RICH_mirror_half_total__pos__RICH_mirror_replica_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_half_total__rot__RICH_mirror_replica_1" x="0" y="0" z="318.94" unit="deg"/>
-</physvol>
-</assembly>
-<volume name="rich1d">
-<materialref ref="CsI"/>
-<solidref ref="rich1d_PartBody"/>
-</volume>
-<volume name="Sens_plane">
-<materialref ref="RICHgas_CO2_dis+"/>
-<solidref ref="Sens_plane_PartBody"/>
-</volume>
-<volume name="RICH_gas">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="RICH_gas_PartBody"/>
-<physvol>
-<volumeref ref="rich1d"/>
-<position name="RICH_gas_pos_rich1d_1" x="((pmt_width/2)+10+pmt_pos_x_addend)" y="(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
-<rotation name="RICH_gas_rot_rich1d_1" x="-(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(18.477+pmt_rot_y_addend)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="rich1d"/>
-<position name="RICH_gas_pos_rich1d_2" x="-((pmt_width/2)+10+pmt_pos_x_addend)" y="(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
-<rotation name="RICH_gas_rot_rich1d_2" x="-(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(-18.477-pmt_rot_y_addend)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="rich1d"/>
-<position name="RICH_gas_pos_rich1d_3" x="((pmt_width/2)+10+pmt_pos_x_addend)" y="-(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
-<rotation name="RICH_gas_rot_rich1d_3" x="(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(18.477+pmt_rot_y_addend)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="rich1d"/>
-<position name="RICH_gas_pos_rich1d_4" x="-((pmt_width/2)+10+pmt_pos_x_addend)" y="-(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
-<rotation name="RICH_gas_rot_rich1d_4" x="(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(-18.477-pmt_rot_y_addend)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_half_total"/>
-<position name="RICH_gas_pos_RICH_mirror_half_total_1" x="0" y="(-RICH_mirror_Y_shift+RICH_mirror_r*sin((RICH_mirror_angle)*DEGtoRAD))" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_mirror_r*cos((RICH_mirror_angle)*DEGtoRAD)+RICH_mirror_position_from_IP-RICH_position_from_IP-RICH_covering_thickness)" unit="mm"/>
-<rotation name="RICH_gas_rot_RICH_mirror_half_total_1" x="-(90+RICH_mirror_angle)" y="0" z="-90" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_half_total"/>
-<position name="RICH_gas_pos_RICH_mirror_half_total_2" x="0" y="(RICH_mirror_Y_shift-RICH_mirror_r*sin((RICH_mirror_angle)*DEGtoRAD))" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_mirror_r*cos((RICH_mirror_angle)*DEGtoRAD)+RICH_mirror_position_from_IP-RICH_position_from_IP-RICH_covering_thickness)" unit="mm"/>
-<rotation name="RICH_gas_rot_RICH_mirror_half_total_2" x="-(-90-RICH_mirror_angle)" y="0" z="90" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="Sens_plane"/>
-<position name="RICH_gas_pos_Sens_plane_1" x="0" y="0" z="1430" unit="mm"/>
-<rotation name="RICH_gas_rot_Sens_plane_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<volume name="rich1">
-<materialref ref="air"/>
-<solidref ref="rich1_PartBody"/>
-<physvol>
-<volumeref ref="RICH_covering_top_bottom_1"/>
-<position name="rich1_pos_RICH_covering_top_bottom_1_1" x="0" y="(RICH_height/2+RICH_covering_thickness/2)" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_top_bottom_1_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_top_bottom_1"/>
-<position name="rich1_pos_RICH_covering_top_bottom_1_2" x="0" y="(-RICH_height/2-RICH_covering_thickness/2)" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_top_bottom_1_2" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_top_bottom_2"/>
-<position name="rich1_pos_RICH_covering_top_bottom_2_1" x="0" y="(RICH_height/2+RICH_covering_thickness/2)" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_top_bottom_2_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_top_bottom_2"/>
-<position name="rich1_pos_RICH_covering_top_bottom_2_2" x="0" y="(-RICH_height/2-RICH_covering_thickness/2)" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_top_bottom_2_2" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_side"/>
-<position name="rich1_pos_RICH_covering_side_1" x="(-RICH_exit_width/2-RICH_covering_thickness/2)" y="0" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_side_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_side"/>
-<position name="rich1_pos_RICH_covering_side_2" x="(RICH_exit_width/2+RICH_covering_thickness/2)" y="0" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_side_2" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_entrance"/>
-<position name="rich1_pos_RICH_covering_entrance_1" x="0" y="0" z="(-RICH_length/2+1-kapton_thickness/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_entrance_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_exit"/>
-<position name="rich1_pos_RICH_covering_exit_1" x="0" y="0" z="(RICH_length/2+1+kapton_thickness/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_exit_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_sloping"/>
-<position name="rich1_pos_RICH_covering_sloping_1" x="((RICH_entrance_width+RICH_exit_width+2*RICH_covering_thickness+entrance_width_addend)/4)" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_sloping_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_sloping"/>
-<position name="rich1_pos_RICH_covering_sloping_2" x="(-(RICH_entrance_width+RICH_exit_width+2*RICH_covering_thickness+entrance_width_addend)/4)" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_sloping_2" x="0" y="0" z="-180" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_pipe"/>
-<position name="rich1_pos_RICH_pipe_1" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))+1-RICH_covering_thickness+((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
-<rotation name="rich1_rot_RICH_pipe_1" x="0" y="-(RICH_pipe_angle)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_gas"/>
-<position name="rich1_pos_RICH_gas_1" x="0" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_gas_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<!--
-<assembly name="TOP">
-<physvol>
-<volumeref ref="rich1"/>
-<position name="TOP_pos_rich1_1" x="0" y="0" z="(RICH_position_from_IP+kapton_thickness+RICH_length/2-1)" unit="mm"/>
-<rotation name="TOP_rot_rich1_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-</assembly>
--->
-</structure>
-
-<setup name="FAIRgeom" version="1.0">
-<world ref="rich1"/>
-<!--<world ref="TOP"/>-->
-</setup>
-
-</gdml>
+
+</define>
+
+<materials>
+<material name="vacuum" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="aluminium" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="kapton" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="RICHglass" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="RICHgas_CO2_dis" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="CsI" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="RICHgas_CO2_dis+" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="air" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+</materials>
+
+<solids>
+<cone name="RICH_pipe_vac_RICH_pipe_vac_2" rmin1="0" rmax1="(RICH_pipe_entrance_r-RICH_pipe_entrance_thickness)" rmin2="0" rmax2="(RICH_pipe_exit_r-RICH_pipe_exit_thickness)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<tube name="RICH_pipe_vac_RICH_pipe_vac_3" rmin="0" rmax="(RICH_pipe_entrance_r-RICH_pipe_entrance_thickness)*cos((RICH_pipe_angle)*DEGtoRAD)" z="(1.5)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<union name="RICH_pipe_vac_PartBody">
+<first ref="RICH_pipe_vac_RICH_pipe_vac_2"/>
+<second ref="RICH_pipe_vac_RICH_pipe_vac_3"/>
+<position name="RICH_pipe_vac__position__RICH_pipe_vac_3__by__RICH_pipe_vac_2" x="((49.5-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD)))*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)+(RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))-0.5)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
+<rotation name="RICH_pipe_vac__rotation__RICH_pipe_vac_3__by__RICH_pipe_vac_2" x="0" y="(-RICH_pipe_angle)" z="0" unit="degree"/>
+</union>
+<cone name="RICH_pipe_RICH_pipe_4" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<tube name="RICH_pipe_RICH_pipe_3" rmin="0" rmax="(RICH_pipe_entrance_r*cos((RICH_pipe_angle)*DEGtoRAD))" z="(1.5)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<union name="RICH_pipe_PartBody">
+<first ref="RICH_pipe_RICH_pipe_4"/>
+<second ref="RICH_pipe_RICH_pipe_3"/>
+<position name="RICH_pipe__position__RICH_pipe_3__by__RICH_pipe_4" x="((49.5-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD)))*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)+(RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))-0.5)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
+<rotation name="RICH_pipe__rotation__RICH_pipe_3__by__RICH_pipe_4" x="0" y="(-RICH_pipe_angle)" z="0" unit="degree"/>
+</union>
+<box name="RICH_covering_entrance_RICH_covering_entrance_2" x="((RICH_entrance_width/2+RICH_covering_thickness+entrance_width_addend))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness/2))*2" lunit="mm"/>
+<cone name="RICH_covering_entrance_RICH_covering_entrance_3" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<subtraction name="RICH_covering_entrance_PartBody">
+<first ref="RICH_covering_entrance_RICH_covering_entrance_2"/>
+<second ref="RICH_covering_entrance_RICH_covering_entrance_3"/>
+<position name="RICH_covering_entrance__position__RICH_covering_entrance_3__by__RICH_covering_entrance_2" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(RICH_length/2+kapton_thickness/2+(RICH_pipe_exit_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
+<rotation name="RICH_covering_entrance__rotation__RICH_covering_entrance_3__by__RICH_covering_entrance_2" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
+</subtraction>
+<trap name="RICH_covering_sloping_PartBody" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" theta="(atan(tan((RICH_trapezoid_angle/2)*DEGtoRAD)*(RICH_exit_width-RICH_entrance_width-entrance_width_addend)/(RICH_exit_width-RICH_entrance_width))/DEGtoRAD)" phi="0" y1="((RICH_height/2+RICH_covering_thickness))*2" x1="((RICH_covering_thickness/2+entrance_width_addend/2))*2" x2="((RICH_covering_thickness/2+entrance_width_addend/2))*2" alpha1="0" y2="((RICH_height/2+RICH_covering_thickness))*2" x3="((RICH_covering_thickness/2))*2" x4="((RICH_covering_thickness/2))*2" alpha2="0" lunit="mm" aunit="degree"/>
+<trd name="RICH_covering_top_bottom_1_PartBody" x1="((RICH_entrance_width/2))*2" x2="((RICH_exit_width/2))*2" y1="((RICH_covering_thickness/2))*2" y2="((RICH_covering_thickness/2))*2" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<box name="RICH_covering_top_bottom_2_PartBody" x="((RICH_exit_width/2))*2" y="((RICH_covering_thickness/2))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<box name="RICH_covering_side_PartBody" x="((RICH_covering_thickness/2))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<box name="RICH_covering_exit_RICH_covering_exit_2" x="((RICH_exit_width/2+RICH_covering_thickness))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness/2))*2" lunit="mm"/>
+<cone name="RICH_covering_exit_RICH_covering_exit_3" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<subtraction name="RICH_covering_exit_PartBody">
+<first ref="RICH_covering_exit_RICH_covering_exit_2"/>
+<second ref="RICH_covering_exit_RICH_covering_exit_3"/>
+<position name="RICH_covering_exit__position__RICH_covering_exit_3__by__RICH_covering_exit_2" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-kapton_thickness/2-(RICH_pipe_entrance_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
+<rotation name="RICH_covering_exit__rotation__RICH_covering_exit_3__by__RICH_covering_exit_2" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
+</subtraction>
+<sphere name="RICH_mirror_1_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="6.52" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_2_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="90.038" deltatheta="8.118" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_3_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="4" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_and_support_belt_strip_cut_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+mirror_cont_supp_addend_out)" startphi="-4.106" deltaphi="8.212" starttheta="75.2365" deltatheta="27" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_and_support_belt_strip_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+mirror_cont_supp_addend_out)" startphi="-4.106" deltaphi="8.212" starttheta="75.2365" deltatheta="29.527" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_replica_PartBody" rmin="(RICH_mirror_r)" rmax="((RICH_mirror_r+mirror_cont_supp_addend_out))" startphi="-36.954" deltaphi="32.848" starttheta="75.2365" deltatheta="29.527" lunit="mm" aunit="degree"/>
+<box name="rich1d_PartBody" x="((pmt_width/2))*2" y="((pmt_height/2))*2" z="((pmt_thickness/2))*2" lunit="mm"/>
+<box name="Sens_plane_3" x="((RICH_exit_width/2))*2" y="((RICH_height/2))*2" z="(0.5)*2" lunit="mm"/>
+<tube name="Sens_plane_2" rmin="0" rmax="160" z="(1)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<subtraction name="Sens_plane_PartBody">
+<first ref="Sens_plane_3"/>
+<second ref="Sens_plane_2"/>
+<positionref ref="central"/>
+<rotationref ref="identity"/>
+</subtraction>
+<box name="RICH_gas_RICH_gas_5" x="((RICH_exit_width/2))*2" y="((RICH_height/2))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<cone name="RICH_gas_RICH_gas_7" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<trd name="RICH_gas_RICH_gas_4" x1="((RICH_entrance_width/2))*2" x2="((RICH_exit_width/2))*2" y1="((RICH_height/2))*2" y2="((RICH_height/2))*2" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<union name="RICH_gas_RICH_gas_6">
+<first ref="RICH_gas_RICH_gas_4"/>
+<second ref="RICH_gas_RICH_gas_5"/>
+<position name="RICH_gas__position__RICH_gas_5__by__RICH_gas_4" x="0" y="0" z="(RICH_length/2)" unit="mm"/>
+<rotationref ref="identity"/>
+</union>
+<subtraction name="RICH_gas_PartBody">
+<first ref="RICH_gas_RICH_gas_6"/>
+<second ref="RICH_gas_RICH_gas_7"/>
+<position name="RICH_gas__position__RICH_gas_7__by__RICH_gas_6" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2+RICH_length/2+(RICH_pipe_exit_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
+<rotation name="RICH_gas__rotation__RICH_gas_7__by__RICH_gas_6" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
+</subtraction>
+<box name="rich1_rich1_16" x="((RICH_exit_width/2+RICH_covering_thickness))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness+RICH_length/2+1))*2" lunit="mm"/>
+<cone name="rich1_rich1_17" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<union name="rich1_PartBody">
+<first ref="rich1_rich1_16"/>
+<second ref="rich1_rich1_17"/>
+<position name="rich1__position__rich1_17__by__rich1_16" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))+1-RICH_covering_thickness+((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
+<rotation name="rich1__rotation__rich1_17__by__rich1_16" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
+</union>
+</solids>
+
+<structure>
+<volume name="RICH_pipe_vac">
+<materialref ref="vacuum"/>
+<solidref ref="RICH_pipe_vac_PartBody"/>
+</volume>
+<volume name="RICH_pipe">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_pipe_PartBody"/>
+<physvol>
+<volumeref ref="RICH_pipe_vac"/>
+<position name="RICH_pipe_pos_RICH_pipe_vac_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_pipe_rot_RICH_pipe_vac_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<volume name="RICH_covering_entrance">
+<materialref ref="kapton"/>
+<solidref ref="RICH_covering_entrance_PartBody"/>
+</volume>
+<volume name="RICH_covering_sloping">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_covering_sloping_PartBody"/>
+</volume>
+<volume name="RICH_covering_top_bottom_1">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_covering_top_bottom_1_PartBody"/>
+</volume>
+<volume name="RICH_covering_top_bottom_2">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_covering_top_bottom_2_PartBody"/>
+</volume>
+<volume name="RICH_covering_side">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_covering_side_PartBody"/>
+</volume>
+<volume name="RICH_covering_exit">
+<materialref ref="kapton"/>
+<solidref ref="RICH_covering_exit_PartBody"/>
+</volume>
+<volume name="RICH_mirror_1">
+<materialref ref="RICHglass"/>
+<solidref ref="RICH_mirror_1_PartBody"/>
+</volume>
+<volume name="RICH_mirror_2">
+<materialref ref="RICHglass"/>
+<solidref ref="RICH_mirror_2_PartBody"/>
+</volume>
+<volume name="RICH_mirror_3">
+<materialref ref="RICHglass"/>
+<solidref ref="RICH_mirror_3_PartBody"/>
+</volume>
+<volume name="RICH_mirror_and_support_belt_strip_cut">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="RICH_mirror_and_support_belt_strip_cut_PartBody"/>
+<physvol>
+<volumeref ref="RICH_mirror_2"/>
+<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_2_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_2_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_2"/>
+<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_2_2" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_2_2" x="-180" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_3"/>
+<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_3_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_3_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_1"/>
+<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_1_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_1_1" x="-180" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<volume name="RICH_mirror_and_support_belt_strip">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="RICH_mirror_and_support_belt_strip_PartBody"/>
+<physvol>
+<volumeref ref="RICH_mirror_1"/>
+<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_1_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_1_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_1"/>
+<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_1_2" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_1_2" x="-180" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_2"/>
+<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_2_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_2_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_2"/>
+<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_2_2" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_2_2" x="-180" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<volume name="RICH_mirror_replica">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="RICH_mirror_replica_PartBody"/>
+<divisionvol number="4" offset="0" width=" 8.212" axis="kPhi" unit="degree">
+<volumeref ref="RICH_mirror_and_support_belt_strip"/>
+</divisionvol>
+</volume>
+<assembly name="RICH_mirror_half_total">
+<physvol>
+<volumeref ref="RICH_mirror_and_support_belt_strip_cut"/>
+<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_cut_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_cut_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_replica"/>
+<position name="RICH_mirror_half_total__pos__RICH_mirror_replica_0" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_half_total__rot__RICH_mirror_replica_0" x="-180" y="180" z="180" unit="deg"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_replica"/>
+<position name="RICH_mirror_half_total__pos__RICH_mirror_replica_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_half_total__rot__RICH_mirror_replica_1" x="0" y="0" z="318.94" unit="deg"/>
+</physvol>
+</assembly>
+<volume name="rich1d">
+<materialref ref="CsI"/>
+<solidref ref="rich1d_PartBody"/>
+</volume>
+<volume name="Sens_plane">
+<materialref ref="RICHgas_CO2_dis+"/>
+<solidref ref="Sens_plane_PartBody"/>
+</volume>
+<volume name="RICH_gas">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="RICH_gas_PartBody"/>
+<physvol>
+<volumeref ref="rich1d"/>
+<position name="RICH_gas_pos_rich1d_1" x="((pmt_width/2)+10+pmt_pos_x_addend)" y="(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
+<rotation name="RICH_gas_rot_rich1d_1" x="-(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(18.477+pmt_rot_y_addend)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="rich1d"/>
+<position name="RICH_gas_pos_rich1d_2" x="-((pmt_width/2)+10+pmt_pos_x_addend)" y="(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
+<rotation name="RICH_gas_rot_rich1d_2" x="-(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(-18.477-pmt_rot_y_addend)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="rich1d"/>
+<position name="RICH_gas_pos_rich1d_3" x="((pmt_width/2)+10+pmt_pos_x_addend)" y="-(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
+<rotation name="RICH_gas_rot_rich1d_3" x="(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(18.477+pmt_rot_y_addend)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="rich1d"/>
+<position name="RICH_gas_pos_rich1d_4" x="-((pmt_width/2)+10+pmt_pos_x_addend)" y="-(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
+<rotation name="RICH_gas_rot_rich1d_4" x="(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(-18.477-pmt_rot_y_addend)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_half_total"/>
+<position name="RICH_gas_pos_RICH_mirror_half_total_1" x="0" y="(-RICH_mirror_Y_shift+RICH_mirror_r*sin((RICH_mirror_angle)*DEGtoRAD))" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_mirror_r*cos((RICH_mirror_angle)*DEGtoRAD)+RICH_mirror_position_from_IP-RICH_position_from_IP-RICH_covering_thickness)" unit="mm"/>
+<rotation name="RICH_gas_rot_RICH_mirror_half_total_1" x="-(90+RICH_mirror_angle)" y="0" z="-90" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_half_total"/>
+<position name="RICH_gas_pos_RICH_mirror_half_total_2" x="0" y="(RICH_mirror_Y_shift-RICH_mirror_r*sin((RICH_mirror_angle)*DEGtoRAD))" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_mirror_r*cos((RICH_mirror_angle)*DEGtoRAD)+RICH_mirror_position_from_IP-RICH_position_from_IP-RICH_covering_thickness)" unit="mm"/>
+<rotation name="RICH_gas_rot_RICH_mirror_half_total_2" x="-(-90-RICH_mirror_angle)" y="0" z="90" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="Sens_plane"/>
+<position name="RICH_gas_pos_Sens_plane_1" x="0" y="0" z="1430" unit="mm"/>
+<rotation name="RICH_gas_rot_Sens_plane_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<volume name="rich1">
+<materialref ref="air"/>
+<solidref ref="rich1_PartBody"/>
+<physvol>
+<volumeref ref="RICH_covering_top_bottom_1"/>
+<position name="rich1_pos_RICH_covering_top_bottom_1_1" x="0" y="(RICH_height/2+RICH_covering_thickness/2)" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_top_bottom_1_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_top_bottom_1"/>
+<position name="rich1_pos_RICH_covering_top_bottom_1_2" x="0" y="(-RICH_height/2-RICH_covering_thickness/2)" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_top_bottom_1_2" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_top_bottom_2"/>
+<position name="rich1_pos_RICH_covering_top_bottom_2_1" x="0" y="(RICH_height/2+RICH_covering_thickness/2)" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_top_bottom_2_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_top_bottom_2"/>
+<position name="rich1_pos_RICH_covering_top_bottom_2_2" x="0" y="(-RICH_height/2-RICH_covering_thickness/2)" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_top_bottom_2_2" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_side"/>
+<position name="rich1_pos_RICH_covering_side_1" x="(-RICH_exit_width/2-RICH_covering_thickness/2)" y="0" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_side_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_side"/>
+<position name="rich1_pos_RICH_covering_side_2" x="(RICH_exit_width/2+RICH_covering_thickness/2)" y="0" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_side_2" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_entrance"/>
+<position name="rich1_pos_RICH_covering_entrance_1" x="0" y="0" z="(-RICH_length/2+1-kapton_thickness/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_entrance_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_exit"/>
+<position name="rich1_pos_RICH_covering_exit_1" x="0" y="0" z="(RICH_length/2+1+kapton_thickness/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_exit_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_sloping"/>
+<position name="rich1_pos_RICH_covering_sloping_1" x="((RICH_entrance_width+RICH_exit_width+2*RICH_covering_thickness+entrance_width_addend)/4)" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_sloping_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_sloping"/>
+<position name="rich1_pos_RICH_covering_sloping_2" x="(-(RICH_entrance_width+RICH_exit_width+2*RICH_covering_thickness+entrance_width_addend)/4)" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_sloping_2" x="0" y="0" z="-180" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_pipe"/>
+<position name="rich1_pos_RICH_pipe_1" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))+1-RICH_covering_thickness+((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
+<rotation name="rich1_rot_RICH_pipe_1" x="0" y="-(RICH_pipe_angle)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_gas"/>
+<position name="rich1_pos_RICH_gas_1" x="0" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_gas_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<!--
+<assembly name="TOP">
+<physvol>
+<volumeref ref="rich1"/>
+<position name="TOP_pos_rich1_1" x="0" y="0" z="(RICH_position_from_IP+kapton_thickness+RICH_length/2-1)" unit="mm"/>
+<rotation name="TOP_rot_rich1_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+</assembly>
+-->
+</structure>
+
+<setup name="FAIRgeom" version="1.0">
+<world ref="rich1"/>
+<!--<world ref="TOP"/>-->
+</setup>
+
+</gdml>
diff --git a/macro/rich/geotest/RotPMT/CreateGeo/2015_minus10deg_LowerPart_ModAug2015.gdml b/macro/rich/geotest/RotPMT/CreateGeo/2015_minus10deg_LowerPart_ModAug2015.gdml
index 5f732491e2..bf71fe2418 100644
--- a/macro/rich/geotest/RotPMT/CreateGeo/2015_minus10deg_LowerPart_ModAug2015.gdml
+++ b/macro/rich/geotest/RotPMT/CreateGeo/2015_minus10deg_LowerPart_ModAug2015.gdml
@@ -1,363 +1,363 @@
-
-<materials>
-<material name="vacuum" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="aluminium" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="kapton" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="RICHglass" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="RICHgas_CO2_dis" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="CsI" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="RICHgas_CO2_dis+" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="air" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-</materials>
-
-<solids>
-<cone name="RICH_pipe_vac_RICH_pipe_vac_2" rmin1="0" rmax1="(RICH_pipe_entrance_r-RICH_pipe_entrance_thickness)" rmin2="0" rmax2="(RICH_pipe_exit_r-RICH_pipe_exit_thickness)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<tube name="RICH_pipe_vac_RICH_pipe_vac_3" rmin="0" rmax="(RICH_pipe_entrance_r-RICH_pipe_entrance_thickness)*cos((RICH_pipe_angle)*DEGtoRAD)" z="(1.5)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<union name="RICH_pipe_vac_PartBody">
-<first ref="RICH_pipe_vac_RICH_pipe_vac_2"/>
-<second ref="RICH_pipe_vac_RICH_pipe_vac_3"/>
-<position name="RICH_pipe_vac__position__RICH_pipe_vac_3__by__RICH_pipe_vac_2" x="((49.5-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD)))*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)+(RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))-0.5)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
-<rotation name="RICH_pipe_vac__rotation__RICH_pipe_vac_3__by__RICH_pipe_vac_2" x="0" y="(-RICH_pipe_angle)" z="0" unit="degree"/>
-</union>
-<cone name="RICH_pipe_RICH_pipe_4" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<tube name="RICH_pipe_RICH_pipe_3" rmin="0" rmax="(RICH_pipe_entrance_r*cos((RICH_pipe_angle)*DEGtoRAD))" z="(1.5)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<union name="RICH_pipe_PartBody">
-<first ref="RICH_pipe_RICH_pipe_4"/>
-<second ref="RICH_pipe_RICH_pipe_3"/>
-<position name="RICH_pipe__position__RICH_pipe_3__by__RICH_pipe_4" x="((49.5-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD)))*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)+(RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))-0.5)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
-<rotation name="RICH_pipe__rotation__RICH_pipe_3__by__RICH_pipe_4" x="0" y="(-RICH_pipe_angle)" z="0" unit="degree"/>
-</union>
-<box name="RICH_covering_entrance_RICH_covering_entrance_2" x="((RICH_entrance_width/2+RICH_covering_thickness+entrance_width_addend))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness/2))*2" lunit="mm"/>
-<cone name="RICH_covering_entrance_RICH_covering_entrance_3" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<subtraction name="RICH_covering_entrance_PartBody">
-<first ref="RICH_covering_entrance_RICH_covering_entrance_2"/>
-<second ref="RICH_covering_entrance_RICH_covering_entrance_3"/>
-<position name="RICH_covering_entrance__position__RICH_covering_entrance_3__by__RICH_covering_entrance_2" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(RICH_length/2+kapton_thickness/2+(RICH_pipe_exit_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
-<rotation name="RICH_covering_entrance__rotation__RICH_covering_entrance_3__by__RICH_covering_entrance_2" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
-</subtraction>
-<trap name="RICH_covering_sloping_PartBody" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" theta="(atan(tan((RICH_trapezoid_angle/2)*DEGtoRAD)*(RICH_exit_width-RICH_entrance_width-entrance_width_addend)/(RICH_exit_width-RICH_entrance_width))/DEGtoRAD)" phi="0" y1="((RICH_height/2+RICH_covering_thickness))*2" x1="((RICH_covering_thickness/2+entrance_width_addend/2))*2" x2="((RICH_covering_thickness/2+entrance_width_addend/2))*2" alpha1="0" y2="((RICH_height/2+RICH_covering_thickness))*2" x3="((RICH_covering_thickness/2))*2" x4="((RICH_covering_thickness/2))*2" alpha2="0" lunit="mm" aunit="degree"/>
-<trd name="RICH_covering_top_bottom_1_PartBody" x1="((RICH_entrance_width/2))*2" x2="((RICH_exit_width/2))*2" y1="((RICH_covering_thickness/2))*2" y2="((RICH_covering_thickness/2))*2" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<box name="RICH_covering_top_bottom_2_PartBody" x="((RICH_exit_width/2))*2" y="((RICH_covering_thickness/2))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<box name="RICH_covering_side_PartBody" x="((RICH_covering_thickness/2))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<box name="RICH_covering_exit_RICH_covering_exit_2" x="((RICH_exit_width/2+RICH_covering_thickness))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness/2))*2" lunit="mm"/>
-<cone name="RICH_covering_exit_RICH_covering_exit_3" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<subtraction name="RICH_covering_exit_PartBody">
-<first ref="RICH_covering_exit_RICH_covering_exit_2"/>
-<second ref="RICH_covering_exit_RICH_covering_exit_3"/>
-<position name="RICH_covering_exit__position__RICH_covering_exit_3__by__RICH_covering_exit_2" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-kapton_thickness/2-(RICH_pipe_entrance_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
-<rotation name="RICH_covering_exit__rotation__RICH_covering_exit_3__by__RICH_covering_exit_2" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
-</subtraction>
-<sphere name="RICH_mirror_1_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="6.52" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_2_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="90.038" deltatheta="8.118" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_3_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="4" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_and_support_belt_strip_cut_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+mirror_cont_supp_addend_out)" startphi="-4.106" deltaphi="8.212" starttheta="75.2365" deltatheta="27" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_and_support_belt_strip_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+mirror_cont_supp_addend_out)" startphi="-4.106" deltaphi="8.212" starttheta="75.2365" deltatheta="29.527" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_replica_PartBody" rmin="(RICH_mirror_r)" rmax="((RICH_mirror_r+mirror_cont_supp_addend_out))" startphi="-36.954" deltaphi="32.848" starttheta="75.2365" deltatheta="29.527" lunit="mm" aunit="degree"/>
-<box name="rich1d_PartBody" x="((pmt_width/2))*2" y="((pmt_height/2))*2" z="((pmt_thickness/2))*2" lunit="mm"/>
-<box name="Sens_plane_3" x="(Delta_sens_plane_area*(RICH_exit_width/2))*2" y="(Delta_sens_plane_area*(RICH_height/2))*2" z="(0.5)*2" lunit="mm"/>
-<tube name="Sens_plane_2" rmin="0" rmax="160" z="(1)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<subtraction name="Sens_plane_PartBody">
-<first ref="Sens_plane_3"/>
-<second ref="Sens_plane_2"/>
-<positionref ref="central"/>
-<rotationref ref="identity"/>
-</subtraction>
-<box name="RICH_gas_RICH_gas_5" x="((RICH_exit_width/2))*2" y="((RICH_height/2))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<cone name="RICH_gas_RICH_gas_7" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<trd name="RICH_gas_RICH_gas_4" x1="((RICH_entrance_width/2))*2" x2="((RICH_exit_width/2))*2" y1="((RICH_height/2))*2" y2="((RICH_height/2))*2" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<union name="RICH_gas_RICH_gas_6">
-<first ref="RICH_gas_RICH_gas_4"/>
-<second ref="RICH_gas_RICH_gas_5"/>
-<position name="RICH_gas__position__RICH_gas_5__by__RICH_gas_4" x="0" y="0" z="(RICH_length/2)" unit="mm"/>
-<rotationref ref="identity"/>
-</union>
-<subtraction name="RICH_gas_PartBody">
-<first ref="RICH_gas_RICH_gas_6"/>
-<second ref="RICH_gas_RICH_gas_7"/>
-<position name="RICH_gas__position__RICH_gas_7__by__RICH_gas_6" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2+RICH_length/2+(RICH_pipe_exit_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
-<rotation name="RICH_gas__rotation__RICH_gas_7__by__RICH_gas_6" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
-</subtraction>
-<box name="rich1_rich1_16" x="((RICH_exit_width/2+RICH_covering_thickness))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness+RICH_length/2+1))*2" lunit="mm"/>
-<cone name="rich1_rich1_17" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<union name="rich1_PartBody">
-<first ref="rich1_rich1_16"/>
-<second ref="rich1_rich1_17"/>
-<position name="rich1__position__rich1_17__by__rich1_16" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))+1-RICH_covering_thickness+((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
-<rotation name="rich1__rotation__rich1_17__by__rich1_16" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
-</union>
-</solids>
-
-<structure>
-<volume name="RICH_pipe_vac">
-<materialref ref="vacuum"/>
-<solidref ref="RICH_pipe_vac_PartBody"/>
-</volume>
-<volume name="RICH_pipe">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_pipe_PartBody"/>
-<physvol>
-<volumeref ref="RICH_pipe_vac"/>
-<position name="RICH_pipe_pos_RICH_pipe_vac_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_pipe_rot_RICH_pipe_vac_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<volume name="RICH_covering_entrance">
-<materialref ref="kapton"/>
-<solidref ref="RICH_covering_entrance_PartBody"/>
-</volume>
-<volume name="RICH_covering_sloping">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_covering_sloping_PartBody"/>
-</volume>
-<volume name="RICH_covering_top_bottom_1">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_covering_top_bottom_1_PartBody"/>
-</volume>
-<volume name="RICH_covering_top_bottom_2">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_covering_top_bottom_2_PartBody"/>
-</volume>
-<volume name="RICH_covering_side">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_covering_side_PartBody"/>
-</volume>
-<volume name="RICH_covering_exit">
-<materialref ref="kapton"/>
-<solidref ref="RICH_covering_exit_PartBody"/>
-</volume>
-<volume name="RICH_mirror_1">
-<materialref ref="RICHglass"/>
-<solidref ref="RICH_mirror_1_PartBody"/>
-</volume>
-<volume name="RICH_mirror_2">
-<materialref ref="RICHglass"/>
-<solidref ref="RICH_mirror_2_PartBody"/>
-</volume>
-<volume name="RICH_mirror_3">
-<materialref ref="RICHglass"/>
-<solidref ref="RICH_mirror_3_PartBody"/>
-</volume>
-<volume name="RICH_mirror_and_support_belt_strip_cut">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="RICH_mirror_and_support_belt_strip_cut_PartBody"/>
-<physvol>
-<volumeref ref="RICH_mirror_2"/>
-<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_2_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_2_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_2"/>
-<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_2_2" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_2_2" x="-180" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_3"/>
-<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_3_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_3_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_1"/>
-<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_1_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_1_1" x="-180" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<volume name="RICH_mirror_and_support_belt_strip">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="RICH_mirror_and_support_belt_strip_PartBody"/>
-<physvol>
-<volumeref ref="RICH_mirror_1"/>
-<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_1_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_1_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_1"/>
-<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_1_2" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_1_2" x="-180" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_2"/>
-<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_2_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_2_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_2"/>
-<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_2_2" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_2_2" x="-180" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<volume name="RICH_mirror_replica">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="RICH_mirror_replica_PartBody"/>
-<divisionvol number="4" offset="0" width=" 8.212" axis="kPhi" unit="degree">
-<volumeref ref="RICH_mirror_and_support_belt_strip"/>
-</divisionvol>
-</volume>
-<assembly name="RICH_mirror_half_total">
-<physvol>
-<volumeref ref="RICH_mirror_and_support_belt_strip_cut"/>
-<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_cut_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_cut_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_replica"/>
-<position name="RICH_mirror_half_total__pos__RICH_mirror_replica_0" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_half_total__rot__RICH_mirror_replica_0" x="-180" y="180" z="180" unit="deg"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_replica"/>
-<position name="RICH_mirror_half_total__pos__RICH_mirror_replica_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_half_total__rot__RICH_mirror_replica_1" x="0" y="0" z="318.94" unit="deg"/>
-</physvol>
-</assembly>
-<volume name="rich1d">
-<materialref ref="CsI"/>
-<solidref ref="rich1d_PartBody"/>
-</volume>
-<volume name="Sens_plane">
-<materialref ref="RICHgas_CO2_dis+"/>
-<solidref ref="Sens_plane_PartBody"/>
-</volume>
-<volume name="RICH_gas">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="RICH_gas_PartBody"/>
-<physvol>
-<volumeref ref="rich1d"/>
-<position name="RICH_gas_pos_rich1d_1" x="((pmt_width/2)+10+pmt_pos_x_addend)" y="(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_MyAddend+pmt_pos_z_addend)" unit="mm"/>
-<rotation name="RICH_gas_rot_rich1d_1" x="-(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(18.477+pmt_rot_y_addend)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="rich1d"/>
-<position name="RICH_gas_pos_rich1d_2" x="-((pmt_width/2)+10+pmt_pos_x_addend)" y="(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_MyAddend+pmt_pos_z_addend)" unit="mm"/>
-<rotation name="RICH_gas_rot_rich1d_2" x="-(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(-18.477-pmt_rot_y_addend)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="rich1d"/>
-<position name="RICH_gas_pos_rich1d_3" x="((pmt_width/2)+10+pmt_pos_x_addend)" y="-(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_MyAddend+pmt_pos_z_addend)" unit="mm"/>
-<rotation name="RICH_gas_rot_rich1d_3" x="(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(18.477+pmt_rot_y_addend)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="rich1d"/>
-<position name="RICH_gas_pos_rich1d_4" x="-((pmt_width/2)+10+pmt_pos_x_addend)" y="-(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_MyAddend+pmt_pos_z_addend)" unit="mm"/>
-<rotation name="RICH_gas_rot_rich1d_4" x="(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(-18.477-pmt_rot_y_addend)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_half_total"/>
-<position name="RICH_gas_pos_RICH_mirror_half_total_1" x="0" y="(-RICH_mirror_Y_shift+RICH_mirror_r*sin((RICH_mirror_angle)*DEGtoRAD))" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_mirror_r*cos((RICH_mirror_angle)*DEGtoRAD)+RICH_mirror_position_from_IP-RICH_position_from_IP-RICH_covering_thickness)" unit="mm"/>
-<rotation name="RICH_gas_rot_RICH_mirror_half_total_1" x="-(90+RICH_mirror_angle)" y="0" z="-90" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_half_total"/>
-<position name="RICH_gas_pos_RICH_mirror_half_total_2" x="0" y="(RICH_mirror_Y_shift-RICH_mirror_r*sin((RICH_mirror_angle)*DEGtoRAD))" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_mirror_r*cos((RICH_mirror_angle)*DEGtoRAD)+RICH_mirror_position_from_IP-RICH_position_from_IP-RICH_covering_thickness)" unit="mm"/>
-<rotation name="RICH_gas_rot_RICH_mirror_half_total_2" x="-(-90-RICH_mirror_angle)" y="0" z="90" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="Sens_plane"/>
-<position name="RICH_gas_pos_Sens_plane_1" x="0" y="0" z="sens_plane_pos+pmt_pos_z_MyAddend" unit="mm"/>
-<rotation name="RICH_gas_rot_Sens_plane_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<volume name="rich1">
-<materialref ref="air"/>
-<solidref ref="rich1_PartBody"/>
-<physvol>
-<volumeref ref="RICH_covering_top_bottom_1"/>
-<position name="rich1_pos_RICH_covering_top_bottom_1_1" x="0" y="(RICH_height/2+RICH_covering_thickness/2)" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_top_bottom_1_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_top_bottom_1"/>
-<position name="rich1_pos_RICH_covering_top_bottom_1_2" x="0" y="(-RICH_height/2-RICH_covering_thickness/2)" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_top_bottom_1_2" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_top_bottom_2"/>
-<position name="rich1_pos_RICH_covering_top_bottom_2_1" x="0" y="(RICH_height/2+RICH_covering_thickness/2)" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_top_bottom_2_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_top_bottom_2"/>
-<position name="rich1_pos_RICH_covering_top_bottom_2_2" x="0" y="(-RICH_height/2-RICH_covering_thickness/2)" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_top_bottom_2_2" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_side"/>
-<position name="rich1_pos_RICH_covering_side_1" x="(-RICH_exit_width/2-RICH_covering_thickness/2)" y="0" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_side_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_side"/>
-<position name="rich1_pos_RICH_covering_side_2" x="(RICH_exit_width/2+RICH_covering_thickness/2)" y="0" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_side_2" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_entrance"/>
-<position name="rich1_pos_RICH_covering_entrance_1" x="0" y="0" z="(-RICH_length/2+1-kapton_thickness/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_entrance_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_exit"/>
-<position name="rich1_pos_RICH_covering_exit_1" x="0" y="0" z="(RICH_length/2+1+kapton_thickness/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_exit_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_sloping"/>
-<position name="rich1_pos_RICH_covering_sloping_1" x="((RICH_entrance_width+RICH_exit_width+2*RICH_covering_thickness+entrance_width_addend)/4)" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_sloping_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_sloping"/>
-<position name="rich1_pos_RICH_covering_sloping_2" x="(-(RICH_entrance_width+RICH_exit_width+2*RICH_covering_thickness+entrance_width_addend)/4)" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_sloping_2" x="0" y="0" z="-180" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_pipe"/>
-<position name="rich1_pos_RICH_pipe_1" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))+1-RICH_covering_thickness+((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
-<rotation name="rich1_rot_RICH_pipe_1" x="0" y="-(RICH_pipe_angle)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_gas"/>
-<position name="rich1_pos_RICH_gas_1" x="0" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_gas_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<!--
-<assembly name="TOP">
-<physvol>
-<volumeref ref="rich1"/>
-<position name="TOP_pos_rich1_1" x="0" y="0" z="(RICH_position_from_IP+kapton_thickness+RICH_length/2-1)" unit="mm"/>
-<rotation name="TOP_rot_rich1_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-</assembly>
--->
-</structure>
-
-<setup name="FAIRgeom" version="1.0">
-<world ref="rich1"/>
-<!--<world ref="TOP"/>-->
-</setup>
-
-</gdml>
+
+<materials>
+<material name="vacuum" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="aluminium" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="kapton" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="RICHglass" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="RICHgas_CO2_dis" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="CsI" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="RICHgas_CO2_dis+" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="air" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+</materials>
+
+<solids>
+<cone name="RICH_pipe_vac_RICH_pipe_vac_2" rmin1="0" rmax1="(RICH_pipe_entrance_r-RICH_pipe_entrance_thickness)" rmin2="0" rmax2="(RICH_pipe_exit_r-RICH_pipe_exit_thickness)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<tube name="RICH_pipe_vac_RICH_pipe_vac_3" rmin="0" rmax="(RICH_pipe_entrance_r-RICH_pipe_entrance_thickness)*cos((RICH_pipe_angle)*DEGtoRAD)" z="(1.5)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<union name="RICH_pipe_vac_PartBody">
+<first ref="RICH_pipe_vac_RICH_pipe_vac_2"/>
+<second ref="RICH_pipe_vac_RICH_pipe_vac_3"/>
+<position name="RICH_pipe_vac__position__RICH_pipe_vac_3__by__RICH_pipe_vac_2" x="((49.5-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD)))*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)+(RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))-0.5)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
+<rotation name="RICH_pipe_vac__rotation__RICH_pipe_vac_3__by__RICH_pipe_vac_2" x="0" y="(-RICH_pipe_angle)" z="0" unit="degree"/>
+</union>
+<cone name="RICH_pipe_RICH_pipe_4" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<tube name="RICH_pipe_RICH_pipe_3" rmin="0" rmax="(RICH_pipe_entrance_r*cos((RICH_pipe_angle)*DEGtoRAD))" z="(1.5)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<union name="RICH_pipe_PartBody">
+<first ref="RICH_pipe_RICH_pipe_4"/>
+<second ref="RICH_pipe_RICH_pipe_3"/>
+<position name="RICH_pipe__position__RICH_pipe_3__by__RICH_pipe_4" x="((49.5-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD)))*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)+(RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))-0.5)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
+<rotation name="RICH_pipe__rotation__RICH_pipe_3__by__RICH_pipe_4" x="0" y="(-RICH_pipe_angle)" z="0" unit="degree"/>
+</union>
+<box name="RICH_covering_entrance_RICH_covering_entrance_2" x="((RICH_entrance_width/2+RICH_covering_thickness+entrance_width_addend))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness/2))*2" lunit="mm"/>
+<cone name="RICH_covering_entrance_RICH_covering_entrance_3" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<subtraction name="RICH_covering_entrance_PartBody">
+<first ref="RICH_covering_entrance_RICH_covering_entrance_2"/>
+<second ref="RICH_covering_entrance_RICH_covering_entrance_3"/>
+<position name="RICH_covering_entrance__position__RICH_covering_entrance_3__by__RICH_covering_entrance_2" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(RICH_length/2+kapton_thickness/2+(RICH_pipe_exit_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
+<rotation name="RICH_covering_entrance__rotation__RICH_covering_entrance_3__by__RICH_covering_entrance_2" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
+</subtraction>
+<trap name="RICH_covering_sloping_PartBody" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" theta="(atan(tan((RICH_trapezoid_angle/2)*DEGtoRAD)*(RICH_exit_width-RICH_entrance_width-entrance_width_addend)/(RICH_exit_width-RICH_entrance_width))/DEGtoRAD)" phi="0" y1="((RICH_height/2+RICH_covering_thickness))*2" x1="((RICH_covering_thickness/2+entrance_width_addend/2))*2" x2="((RICH_covering_thickness/2+entrance_width_addend/2))*2" alpha1="0" y2="((RICH_height/2+RICH_covering_thickness))*2" x3="((RICH_covering_thickness/2))*2" x4="((RICH_covering_thickness/2))*2" alpha2="0" lunit="mm" aunit="degree"/>
+<trd name="RICH_covering_top_bottom_1_PartBody" x1="((RICH_entrance_width/2))*2" x2="((RICH_exit_width/2))*2" y1="((RICH_covering_thickness/2))*2" y2="((RICH_covering_thickness/2))*2" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<box name="RICH_covering_top_bottom_2_PartBody" x="((RICH_exit_width/2))*2" y="((RICH_covering_thickness/2))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<box name="RICH_covering_side_PartBody" x="((RICH_covering_thickness/2))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<box name="RICH_covering_exit_RICH_covering_exit_2" x="((RICH_exit_width/2+RICH_covering_thickness))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness/2))*2" lunit="mm"/>
+<cone name="RICH_covering_exit_RICH_covering_exit_3" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<subtraction name="RICH_covering_exit_PartBody">
+<first ref="RICH_covering_exit_RICH_covering_exit_2"/>
+<second ref="RICH_covering_exit_RICH_covering_exit_3"/>
+<position name="RICH_covering_exit__position__RICH_covering_exit_3__by__RICH_covering_exit_2" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-kapton_thickness/2-(RICH_pipe_entrance_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
+<rotation name="RICH_covering_exit__rotation__RICH_covering_exit_3__by__RICH_covering_exit_2" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
+</subtraction>
+<sphere name="RICH_mirror_1_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="6.52" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_2_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="90.038" deltatheta="8.118" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_3_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="4" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_and_support_belt_strip_cut_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+mirror_cont_supp_addend_out)" startphi="-4.106" deltaphi="8.212" starttheta="75.2365" deltatheta="27" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_and_support_belt_strip_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+mirror_cont_supp_addend_out)" startphi="-4.106" deltaphi="8.212" starttheta="75.2365" deltatheta="29.527" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_replica_PartBody" rmin="(RICH_mirror_r)" rmax="((RICH_mirror_r+mirror_cont_supp_addend_out))" startphi="-36.954" deltaphi="32.848" starttheta="75.2365" deltatheta="29.527" lunit="mm" aunit="degree"/>
+<box name="rich1d_PartBody" x="((pmt_width/2))*2" y="((pmt_height/2))*2" z="((pmt_thickness/2))*2" lunit="mm"/>
+<box name="Sens_plane_3" x="(Delta_sens_plane_area*(RICH_exit_width/2))*2" y="(Delta_sens_plane_area*(RICH_height/2))*2" z="(0.5)*2" lunit="mm"/>
+<tube name="Sens_plane_2" rmin="0" rmax="160" z="(1)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<subtraction name="Sens_plane_PartBody">
+<first ref="Sens_plane_3"/>
+<second ref="Sens_plane_2"/>
+<positionref ref="central"/>
+<rotationref ref="identity"/>
+</subtraction>
+<box name="RICH_gas_RICH_gas_5" x="((RICH_exit_width/2))*2" y="((RICH_height/2))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<cone name="RICH_gas_RICH_gas_7" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<trd name="RICH_gas_RICH_gas_4" x1="((RICH_entrance_width/2))*2" x2="((RICH_exit_width/2))*2" y1="((RICH_height/2))*2" y2="((RICH_height/2))*2" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<union name="RICH_gas_RICH_gas_6">
+<first ref="RICH_gas_RICH_gas_4"/>
+<second ref="RICH_gas_RICH_gas_5"/>
+<position name="RICH_gas__position__RICH_gas_5__by__RICH_gas_4" x="0" y="0" z="(RICH_length/2)" unit="mm"/>
+<rotationref ref="identity"/>
+</union>
+<subtraction name="RICH_gas_PartBody">
+<first ref="RICH_gas_RICH_gas_6"/>
+<second ref="RICH_gas_RICH_gas_7"/>
+<position name="RICH_gas__position__RICH_gas_7__by__RICH_gas_6" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2+RICH_length/2+(RICH_pipe_exit_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
+<rotation name="RICH_gas__rotation__RICH_gas_7__by__RICH_gas_6" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
+</subtraction>
+<box name="rich1_rich1_16" x="((RICH_exit_width/2+RICH_covering_thickness))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness+RICH_length/2+1))*2" lunit="mm"/>
+<cone name="rich1_rich1_17" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<union name="rich1_PartBody">
+<first ref="rich1_rich1_16"/>
+<second ref="rich1_rich1_17"/>
+<position name="rich1__position__rich1_17__by__rich1_16" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))+1-RICH_covering_thickness+((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
+<rotation name="rich1__rotation__rich1_17__by__rich1_16" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
+</union>
+</solids>
+
+<structure>
+<volume name="RICH_pipe_vac">
+<materialref ref="vacuum"/>
+<solidref ref="RICH_pipe_vac_PartBody"/>
+</volume>
+<volume name="RICH_pipe">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_pipe_PartBody"/>
+<physvol>
+<volumeref ref="RICH_pipe_vac"/>
+<position name="RICH_pipe_pos_RICH_pipe_vac_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_pipe_rot_RICH_pipe_vac_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<volume name="RICH_covering_entrance">
+<materialref ref="kapton"/>
+<solidref ref="RICH_covering_entrance_PartBody"/>
+</volume>
+<volume name="RICH_covering_sloping">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_covering_sloping_PartBody"/>
+</volume>
+<volume name="RICH_covering_top_bottom_1">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_covering_top_bottom_1_PartBody"/>
+</volume>
+<volume name="RICH_covering_top_bottom_2">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_covering_top_bottom_2_PartBody"/>
+</volume>
+<volume name="RICH_covering_side">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_covering_side_PartBody"/>
+</volume>
+<volume name="RICH_covering_exit">
+<materialref ref="kapton"/>
+<solidref ref="RICH_covering_exit_PartBody"/>
+</volume>
+<volume name="RICH_mirror_1">
+<materialref ref="RICHglass"/>
+<solidref ref="RICH_mirror_1_PartBody"/>
+</volume>
+<volume name="RICH_mirror_2">
+<materialref ref="RICHglass"/>
+<solidref ref="RICH_mirror_2_PartBody"/>
+</volume>
+<volume name="RICH_mirror_3">
+<materialref ref="RICHglass"/>
+<solidref ref="RICH_mirror_3_PartBody"/>
+</volume>
+<volume name="RICH_mirror_and_support_belt_strip_cut">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="RICH_mirror_and_support_belt_strip_cut_PartBody"/>
+<physvol>
+<volumeref ref="RICH_mirror_2"/>
+<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_2_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_2_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_2"/>
+<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_2_2" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_2_2" x="-180" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_3"/>
+<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_3_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_3_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_1"/>
+<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_1_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_1_1" x="-180" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<volume name="RICH_mirror_and_support_belt_strip">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="RICH_mirror_and_support_belt_strip_PartBody"/>
+<physvol>
+<volumeref ref="RICH_mirror_1"/>
+<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_1_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_1_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_1"/>
+<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_1_2" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_1_2" x="-180" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_2"/>
+<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_2_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_2_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_2"/>
+<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_2_2" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_2_2" x="-180" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<volume name="RICH_mirror_replica">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="RICH_mirror_replica_PartBody"/>
+<divisionvol number="4" offset="0" width=" 8.212" axis="kPhi" unit="degree">
+<volumeref ref="RICH_mirror_and_support_belt_strip"/>
+</divisionvol>
+</volume>
+<assembly name="RICH_mirror_half_total">
+<physvol>
+<volumeref ref="RICH_mirror_and_support_belt_strip_cut"/>
+<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_cut_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_cut_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_replica"/>
+<position name="RICH_mirror_half_total__pos__RICH_mirror_replica_0" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_half_total__rot__RICH_mirror_replica_0" x="-180" y="180" z="180" unit="deg"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_replica"/>
+<position name="RICH_mirror_half_total__pos__RICH_mirror_replica_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_half_total__rot__RICH_mirror_replica_1" x="0" y="0" z="318.94" unit="deg"/>
+</physvol>
+</assembly>
+<volume name="rich1d">
+<materialref ref="CsI"/>
+<solidref ref="rich1d_PartBody"/>
+</volume>
+<volume name="Sens_plane">
+<materialref ref="RICHgas_CO2_dis+"/>
+<solidref ref="Sens_plane_PartBody"/>
+</volume>
+<volume name="RICH_gas">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="RICH_gas_PartBody"/>
+<physvol>
+<volumeref ref="rich1d"/>
+<position name="RICH_gas_pos_rich1d_1" x="((pmt_width/2)+10+pmt_pos_x_addend)" y="(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_MyAddend+pmt_pos_z_addend)" unit="mm"/>
+<rotation name="RICH_gas_rot_rich1d_1" x="-(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(18.477+pmt_rot_y_addend)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="rich1d"/>
+<position name="RICH_gas_pos_rich1d_2" x="-((pmt_width/2)+10+pmt_pos_x_addend)" y="(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_MyAddend+pmt_pos_z_addend)" unit="mm"/>
+<rotation name="RICH_gas_rot_rich1d_2" x="-(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(-18.477-pmt_rot_y_addend)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="rich1d"/>
+<position name="RICH_gas_pos_rich1d_3" x="((pmt_width/2)+10+pmt_pos_x_addend)" y="-(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_MyAddend+pmt_pos_z_addend)" unit="mm"/>
+<rotation name="RICH_gas_rot_rich1d_3" x="(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(18.477+pmt_rot_y_addend)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="rich1d"/>
+<position name="RICH_gas_pos_rich1d_4" x="-((pmt_width/2)+10+pmt_pos_x_addend)" y="-(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_MyAddend+pmt_pos_z_addend)" unit="mm"/>
+<rotation name="RICH_gas_rot_rich1d_4" x="(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(-18.477-pmt_rot_y_addend)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_half_total"/>
+<position name="RICH_gas_pos_RICH_mirror_half_total_1" x="0" y="(-RICH_mirror_Y_shift+RICH_mirror_r*sin((RICH_mirror_angle)*DEGtoRAD))" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_mirror_r*cos((RICH_mirror_angle)*DEGtoRAD)+RICH_mirror_position_from_IP-RICH_position_from_IP-RICH_covering_thickness)" unit="mm"/>
+<rotation name="RICH_gas_rot_RICH_mirror_half_total_1" x="-(90+RICH_mirror_angle)" y="0" z="-90" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_half_total"/>
+<position name="RICH_gas_pos_RICH_mirror_half_total_2" x="0" y="(RICH_mirror_Y_shift-RICH_mirror_r*sin((RICH_mirror_angle)*DEGtoRAD))" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_mirror_r*cos((RICH_mirror_angle)*DEGtoRAD)+RICH_mirror_position_from_IP-RICH_position_from_IP-RICH_covering_thickness)" unit="mm"/>
+<rotation name="RICH_gas_rot_RICH_mirror_half_total_2" x="-(-90-RICH_mirror_angle)" y="0" z="90" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="Sens_plane"/>
+<position name="RICH_gas_pos_Sens_plane_1" x="0" y="0" z="sens_plane_pos+pmt_pos_z_MyAddend" unit="mm"/>
+<rotation name="RICH_gas_rot_Sens_plane_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<volume name="rich1">
+<materialref ref="air"/>
+<solidref ref="rich1_PartBody"/>
+<physvol>
+<volumeref ref="RICH_covering_top_bottom_1"/>
+<position name="rich1_pos_RICH_covering_top_bottom_1_1" x="0" y="(RICH_height/2+RICH_covering_thickness/2)" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_top_bottom_1_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_top_bottom_1"/>
+<position name="rich1_pos_RICH_covering_top_bottom_1_2" x="0" y="(-RICH_height/2-RICH_covering_thickness/2)" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_top_bottom_1_2" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_top_bottom_2"/>
+<position name="rich1_pos_RICH_covering_top_bottom_2_1" x="0" y="(RICH_height/2+RICH_covering_thickness/2)" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_top_bottom_2_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_top_bottom_2"/>
+<position name="rich1_pos_RICH_covering_top_bottom_2_2" x="0" y="(-RICH_height/2-RICH_covering_thickness/2)" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_top_bottom_2_2" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_side"/>
+<position name="rich1_pos_RICH_covering_side_1" x="(-RICH_exit_width/2-RICH_covering_thickness/2)" y="0" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_side_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_side"/>
+<position name="rich1_pos_RICH_covering_side_2" x="(RICH_exit_width/2+RICH_covering_thickness/2)" y="0" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_side_2" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_entrance"/>
+<position name="rich1_pos_RICH_covering_entrance_1" x="0" y="0" z="(-RICH_length/2+1-kapton_thickness/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_entrance_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_exit"/>
+<position name="rich1_pos_RICH_covering_exit_1" x="0" y="0" z="(RICH_length/2+1+kapton_thickness/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_exit_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_sloping"/>
+<position name="rich1_pos_RICH_covering_sloping_1" x="((RICH_entrance_width+RICH_exit_width+2*RICH_covering_thickness+entrance_width_addend)/4)" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_sloping_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_sloping"/>
+<position name="rich1_pos_RICH_covering_sloping_2" x="(-(RICH_entrance_width+RICH_exit_width+2*RICH_covering_thickness+entrance_width_addend)/4)" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_sloping_2" x="0" y="0" z="-180" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_pipe"/>
+<position name="rich1_pos_RICH_pipe_1" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))+1-RICH_covering_thickness+((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
+<rotation name="rich1_rot_RICH_pipe_1" x="0" y="-(RICH_pipe_angle)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_gas"/>
+<position name="rich1_pos_RICH_gas_1" x="0" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_gas_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<!--
+<assembly name="TOP">
+<physvol>
+<volumeref ref="rich1"/>
+<position name="TOP_pos_rich1_1" x="0" y="0" z="(RICH_position_from_IP+kapton_thickness+RICH_length/2-1)" unit="mm"/>
+<rotation name="TOP_rot_rich1_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+</assembly>
+-->
+</structure>
+
+<setup name="FAIRgeom" version="1.0">
+<world ref="rich1"/>
+<!--<world ref="TOP"/>-->
+</setup>
+
+</gdml>
diff --git a/macro/rich/geotest/RotPMT/CreateGeo/2015_minus10deg_UpperPart.gdml b/macro/rich/geotest/RotPMT/CreateGeo/2015_minus10deg_UpperPart.gdml
index f316b9a458..69d74ac195 100644
--- a/macro/rich/geotest/RotPMT/CreateGeo/2015_minus10deg_UpperPart.gdml
+++ b/macro/rich/geotest/RotPMT/CreateGeo/2015_minus10deg_UpperPart.gdml
@@ -1,45 +1,45 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<gdml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://service-spi.web.cern.ch/service-spi/app/releases/GDML/schema/gdml.xsd">
-
-<define>
-<position name="central" x="0" y="0" z="0" unit="mm"/>
-<rotation name="identity" x="0" y="0" z="0" unit="degree"/>
-<variable name="RICH_trapezoid_angle" value="116"/>
-<variable name="RICH_entrance_width" value="3500"/>
-<variable name="RICH_exit_width" value="5136"/>
-<variable name="RICH_height" value="6000"/>
-<variable name="RICH_length" value="2697.5"/>
-<variable name="RICH_covering_thickness" value="5"/>
-<variable name="entrance_width_addend" value="2"/>
-<variable name="RICH_pipe_entrance_r" value="103.5"/>
-<variable name="RICH_pipe_exit_r" value="170"/>
-<variable name="RICH_pipe_entrance_thickness" value="3"/>
-<variable name="RICH_pipe_exit_thickness" value="5"/>
-<variable name="RICH_pipe_angle" value="0"/>
-<variable name="RICH_position_from_IP" value="1002"/>
-<variable name="RICH_mirror_position_from_IP" value="3500"/>
-<variable name="RICH_mirror_r" value="3000"/>
-<variable name="RICH_mirror_thickness" value="6"/>
-<variable name="mirror_cont_supp_addend_out" value="6"/>
-<variable name="TTT" value="1500"/>
-
-<!--
-minus 10deg setup:
-<variable name="RICH_mirror_Y_shift" value="805"/>
-<variable name="RICH_mirror_angle" value="-10"/>
-<variable name="pmt_rot_x_addend" value="-27.952765"/>
-<variable name="pmt_rot_y_addend" value="-13.477"/>
-<variable name="pmt_pos_x_addend" value="0"/>
-<variable name="pmt_pos_y_addend" value="0"/>
-<variable name="pmt_pos_z_addend" value="0"/>
-
-plus 1deg setup:
--->
-
-<variable name="RICH_mirror_Y_shift" value="805"/>
-
-<variable name="pmt_pos_x_addend" value="0"/>
-<variable name="pmt_pos_y_addend" value="0"/>
-
-<variable name="kapton_thickness" value="0.25"/>
-<variable name="DEGtoRAD" value="1.74532925199433E-02"/>
+<?xml version="1.0" encoding="UTF-8"?>
+<gdml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://service-spi.web.cern.ch/service-spi/app/releases/GDML/schema/gdml.xsd">
+
+<define>
+<position name="central" x="0" y="0" z="0" unit="mm"/>
+<rotation name="identity" x="0" y="0" z="0" unit="degree"/>
+<variable name="RICH_trapezoid_angle" value="116"/>
+<variable name="RICH_entrance_width" value="3500"/>
+<variable name="RICH_exit_width" value="5136"/>
+<variable name="RICH_height" value="6000"/>
+<variable name="RICH_length" value="2697.5"/>
+<variable name="RICH_covering_thickness" value="5"/>
+<variable name="entrance_width_addend" value="2"/>
+<variable name="RICH_pipe_entrance_r" value="103.5"/>
+<variable name="RICH_pipe_exit_r" value="170"/>
+<variable name="RICH_pipe_entrance_thickness" value="3"/>
+<variable name="RICH_pipe_exit_thickness" value="5"/>
+<variable name="RICH_pipe_angle" value="0"/>
+<variable name="RICH_position_from_IP" value="1002"/>
+<variable name="RICH_mirror_position_from_IP" value="3500"/>
+<variable name="RICH_mirror_r" value="3000"/>
+<variable name="RICH_mirror_thickness" value="6"/>
+<variable name="mirror_cont_supp_addend_out" value="6"/>
+<variable name="TTT" value="1500"/>
+
+<!--
+minus 10deg setup:
+<variable name="RICH_mirror_Y_shift" value="805"/>
+<variable name="RICH_mirror_angle" value="-10"/>
+<variable name="pmt_rot_x_addend" value="-27.952765"/>
+<variable name="pmt_rot_y_addend" value="-13.477"/>
+<variable name="pmt_pos_x_addend" value="0"/>
+<variable name="pmt_pos_y_addend" value="0"/>
+<variable name="pmt_pos_z_addend" value="0"/>
+
+plus 1deg setup:
+-->
+
+<variable name="RICH_mirror_Y_shift" value="805"/>
+
+<variable name="pmt_pos_x_addend" value="0"/>
+<variable name="pmt_pos_y_addend" value="0"/>
+
+<variable name="kapton_thickness" value="0.25"/>
+<variable name="DEGtoRAD" value="1.74532925199433E-02"/>
diff --git a/macro/rich/geotest/RotPMT/CreateGeo/minus10deg_ext_mirror_LowerPart.gdml b/macro/rich/geotest/RotPMT/CreateGeo/minus10deg_ext_mirror_LowerPart.gdml
index 9a2a7780d0..a2fcb3f772 100644
--- a/macro/rich/geotest/RotPMT/CreateGeo/minus10deg_ext_mirror_LowerPart.gdml
+++ b/macro/rich/geotest/RotPMT/CreateGeo/minus10deg_ext_mirror_LowerPart.gdml
@@ -1,420 +1,420 @@
-
-<materials>
-<material name="vacuum" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="aluminium" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="kapton" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="RICHglass" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="RICHgas_CO2_dis" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="CsI" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="RICHgas_CO2_dis+" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="air" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-</materials>
-
-<solids>
-<cone name="RICH_pipe_vac_RICH_pipe_vac_2" rmin1="0" rmax1="(RICH_pipe_entrance_r-RICH_pipe_entrance_thickness)" rmin2="0" rmax2="(RICH_pipe_exit_r-RICH_pipe_exit_thickness)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<tube name="RICH_pipe_vac_RICH_pipe_vac_3" rmin="0" rmax="(RICH_pipe_entrance_r-RICH_pipe_entrance_thickness)*cos((RICH_pipe_angle)*DEGtoRAD)" z="(50.5)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<union name="RICH_pipe_vac_PartBody">
-<first ref="RICH_pipe_vac_RICH_pipe_vac_2"/>
-<second ref="RICH_pipe_vac_RICH_pipe_vac_3"/>
-<position name="RICH_pipe_vac__position__RICH_pipe_vac_3__by__RICH_pipe_vac_2" x="((49.5-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD)))*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)+(RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))-49.5)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
-<rotation name="RICH_pipe_vac__rotation__RICH_pipe_vac_3__by__RICH_pipe_vac_2" x="0" y="(-RICH_pipe_angle)" z="0" unit="degree"/>
-</union>
-<cone name="RICH_pipe_RICH_pipe_4" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<tube name="RICH_pipe_RICH_pipe_3" rmin="0" rmax="(RICH_pipe_entrance_r*cos((RICH_pipe_angle)*DEGtoRAD))" z="(50.5)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<union name="RICH_pipe_PartBody">
-<first ref="RICH_pipe_RICH_pipe_4"/>
-<second ref="RICH_pipe_RICH_pipe_3"/>
-<position name="RICH_pipe__position__RICH_pipe_3__by__RICH_pipe_4" x="((49.5-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD)))*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)+(RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))-49.5)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
-<rotation name="RICH_pipe__rotation__RICH_pipe_3__by__RICH_pipe_4" x="0" y="(-RICH_pipe_angle)" z="0" unit="degree"/>
-</union>
-<box name="RICH_covering_entrance_RICH_covering_entrance_2" x="((RICH_entrance_width/2+RICH_covering_thickness+entrance_width_addend))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness/2))*2" lunit="mm"/>
-<cone name="RICH_covering_entrance_RICH_covering_entrance_3" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<subtraction name="RICH_covering_entrance_PartBody">
-<first ref="RICH_covering_entrance_RICH_covering_entrance_2"/>
-<second ref="RICH_covering_entrance_RICH_covering_entrance_3"/>
-<position name="RICH_covering_entrance__position__RICH_covering_entrance_3__by__RICH_covering_entrance_2" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(RICH_length/2+kapton_thickness/2+(RICH_pipe_exit_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
-<rotation name="RICH_covering_entrance__rotation__RICH_covering_entrance_3__by__RICH_covering_entrance_2" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
-</subtraction>
-<trap name="RICH_covering_sloping_PartBody" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" theta="(atan(tan((RICH_trapezoid_angle/2)*DEGtoRAD)*(RICH_exit_width-RICH_entrance_width-entrance_width_addend)/(RICH_exit_width-RICH_entrance_width))/DEGtoRAD)" phi="0" y1="((RICH_height/2+RICH_covering_thickness))*2" x1="((RICH_covering_thickness/2+entrance_width_addend/2))*2" x2="((RICH_covering_thickness/2+entrance_width_addend/2))*2" alpha1="0" y2="((RICH_height/2+RICH_covering_thickness))*2" x3="((RICH_covering_thickness/2))*2" x4="((RICH_covering_thickness/2))*2" alpha2="0" lunit="mm" aunit="degree"/>
-<trd name="RICH_covering_top_bottom_1_PartBody" x1="((RICH_entrance_width/2))*2" x2="((RICH_exit_width/2))*2" y1="((RICH_covering_thickness/2))*2" y2="((RICH_covering_thickness/2))*2" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<box name="RICH_covering_top_bottom_2_PartBody" x="((RICH_exit_width/2))*2" y="((RICH_covering_thickness/2))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<box name="RICH_covering_side_PartBody" x="((RICH_covering_thickness/2))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<box name="RICH_covering_exit_RICH_covering_exit_2" x="((RICH_exit_width/2+RICH_covering_thickness))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness/2))*2" lunit="mm"/>
-<cone name="RICH_covering_exit_RICH_covering_exit_3" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<subtraction name="RICH_covering_exit_PartBody">
-<first ref="RICH_covering_exit_RICH_covering_exit_2"/>
-<second ref="RICH_covering_exit_RICH_covering_exit_3"/>
-<position name="RICH_covering_exit__position__RICH_covering_exit_3__by__RICH_covering_exit_2" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-kapton_thickness/2-(RICH_pipe_entrance_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
-<rotation name="RICH_covering_exit__rotation__RICH_covering_exit_3__by__RICH_covering_exit_2" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
-</subtraction>
-<sphere name="RICH_mirror_1_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="6.52" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_2_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="90.038" deltatheta="8.118" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_3_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="4" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_4_PartBody" rmin="3000" rmax="3006" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="8.6" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_5_PartBody" rmin="3000" rmax="3006" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="7.95" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_and_support_belt_strip_cut_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+mirror_cont_supp_addend_out)" startphi="-4.106" deltaphi="8.212" starttheta="75.237" deltatheta="27" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_and_support_belt_strip_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+mirror_cont_supp_addend_out)" startphi="-4.106" deltaphi="8.212" starttheta="75.237" deltatheta="30.95" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_and_support_belt_strip_ext_PartBody" rmin="3000" rmax="3006" startphi="-4.106" deltaphi="8.212" starttheta="75.237" deltatheta="31.6" lunit="mm" aunit="degree"/>
-<box name="rich1d_PartBody" x="((pmt_width/2))*2" y="((pmt_height/2))*2" z="((pmt_thickness/2))*2" lunit="mm"/>
-<box name="Sens_plane_3" x="(Delta_sens_plane_area*2468)*2" y="(Delta_sens_plane_area*1875)*2" z="(0.5)*2" lunit="mm"/>
-<tube name="Sens_plane_2" rmin="0" rmax="160" z="(1)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<subtraction name="Sens_plane_PartBody">
-<first ref="Sens_plane_3"/>
-<second ref="Sens_plane_2"/>
-<positionref ref="central"/>
-<rotationref ref="identity"/>
-</subtraction>
-<box name="RICH_gas_RICH_gas_5" x="((RICH_exit_width/2))*2" y="((RICH_height/2))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<cone name="RICH_gas_RICH_gas_7" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<trd name="RICH_gas_RICH_gas_4" x1="((RICH_entrance_width/2))*2" x2="((RICH_exit_width/2))*2" y1="((RICH_height/2))*2" y2="((RICH_height/2))*2" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<union name="RICH_gas_RICH_gas_6">
-<first ref="RICH_gas_RICH_gas_4"/>
-<second ref="RICH_gas_RICH_gas_5"/>
-<position name="RICH_gas__position__RICH_gas_5__by__RICH_gas_4" x="0" y="0" z="(RICH_length/2)" unit="mm"/>
-<rotationref ref="identity"/>
-</union>
-<subtraction name="RICH_gas_PartBody">
-<first ref="RICH_gas_RICH_gas_6"/>
-<second ref="RICH_gas_RICH_gas_7"/>
-<position name="RICH_gas__position__RICH_gas_7__by__RICH_gas_6" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2+RICH_length/2+(RICH_pipe_exit_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
-<rotation name="RICH_gas__rotation__RICH_gas_7__by__RICH_gas_6" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
-</subtraction>
-<box name="rich1_rich1_16" x="((RICH_exit_width/2+RICH_covering_thickness))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness+RICH_length/2+50))*2" lunit="mm"/>
-<cone name="rich1_rich1_17" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<union name="rich1_PartBody">
-<first ref="rich1_rich1_16"/>
-<second ref="rich1_rich1_17"/>
-<position name="rich1__position__rich1_17__by__rich1_16" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))+50-RICH_covering_thickness+((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
-<rotation name="rich1__rotation__rich1_17__by__rich1_16" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
-</union>
-</solids>
-
-<structure>
-<volume name="RICH_pipe_vac">
-<materialref ref="vacuum"/>
-<solidref ref="RICH_pipe_vac_PartBody"/>
-</volume>
-<volume name="RICH_pipe">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_pipe_PartBody"/>
-<physvol>
-<volumeref ref="RICH_pipe_vac"/>
-<position name="RICH_pipe_pos_RICH_pipe_vac_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_pipe_rot_RICH_pipe_vac_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<volume name="RICH_covering_entrance">
-<materialref ref="kapton"/>
-<solidref ref="RICH_covering_entrance_PartBody"/>
-</volume>
-<volume name="RICH_covering_sloping">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_covering_sloping_PartBody"/>
-</volume>
-<volume name="RICH_covering_top_bottom_1">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_covering_top_bottom_1_PartBody"/>
-</volume>
-<volume name="RICH_covering_top_bottom_2">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_covering_top_bottom_2_PartBody"/>
-</volume>
-<volume name="RICH_covering_side">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_covering_side_PartBody"/>
-</volume>
-<volume name="RICH_covering_exit">
-<materialref ref="kapton"/>
-<solidref ref="RICH_covering_exit_PartBody"/>
-</volume>
-<volume name="RICH_mirror_1">
-<materialref ref="RICHglass"/>
-<solidref ref="RICH_mirror_1_PartBody"/>
-</volume>
-<volume name="RICH_mirror_2">
-<materialref ref="RICHglass"/>
-<solidref ref="RICH_mirror_2_PartBody"/>
-</volume>
-<volume name="RICH_mirror_3">
-<materialref ref="RICHglass"/>
-<solidref ref="RICH_mirror_3_PartBody"/>
-</volume>
-<volume name="RICH_mirror_4">
-<materialref ref="RICHglass"/>
-<solidref ref="RICH_mirror_4_PartBody"/>
-</volume>
-<volume name="RICH_mirror_5">
-<materialref ref="RICHglass"/>
-<solidref ref="RICH_mirror_5_PartBody"/>
-</volume>
-<volume name="RICH_mirror_and_support_belt_strip_cut">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="RICH_mirror_and_support_belt_strip_cut_PartBody"/>
-<physvol>
-<volumeref ref="RICH_mirror_2"/>
-<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_2_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_2_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_2"/>
-<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_2_2" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_2_2" x="-180" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_3"/>
-<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_3_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_3_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_1"/>
-<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_1_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_1_1" x="-180" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<volume name="RICH_mirror_and_support_belt_strip">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="RICH_mirror_and_support_belt_strip_PartBody"/>
-<physvol>
-<volumeref ref="RICH_mirror_5"/>
-<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_5_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_5_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_1"/>
-<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_1_2" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_1_2" x="-180" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_2"/>
-<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_2_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_2_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_2"/>
-<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_2_2" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_2_2" x="-180" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<volume name="RICH_mirror_and_support_belt_strip_ext">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="RICH_mirror_and_support_belt_strip_ext_PartBody"/>
-<physvol>
-<volumeref ref="RICH_mirror_4"/>
-<position name="RICH_mirror_and_support_belt_strip_ext_pos_RICH_mirror_4_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_ext_rot_RICH_mirror_4_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_1"/>
-<position name="RICH_mirror_and_support_belt_strip_ext_pos_RICH_mirror_1_2" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_ext_rot_RICH_mirror_1_2" x="-180" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_2"/>
-<position name="RICH_mirror_and_support_belt_strip_ext_pos_RICH_mirror_2_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_ext_rot_RICH_mirror_2_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_2"/>
-<position name="RICH_mirror_and_support_belt_strip_ext_pos_RICH_mirror_2_2" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_ext_rot_RICH_mirror_2_2" x="-180" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<assembly name="RICH_mirror_half_total">
-<physvol>
-<volumeref ref="RICH_mirror_and_support_belt_strip_cut"/>
-<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_cut_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_cut_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_and_support_belt_strip"/>
-<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_1" x="0" y="0" z="-8.212" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_and_support_belt_strip"/>
-<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_2" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_2" x="0" y="0" z="-16.424" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_and_support_belt_strip"/>
-<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_3" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_3" x="0" y="0" z="8.212" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_and_support_belt_strip"/>
-<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_4" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_4" x="0" y="0" z="16.424" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_and_support_belt_strip_ext"/>
-<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_ext_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_ext_1" x="0" y="0" z="-24.636" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_and_support_belt_strip_ext"/>
-<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_ext_2" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_ext_2" x="0" y="0" z="-32.848" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_and_support_belt_strip_ext"/>
-<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_ext_3" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_ext_3" x="0" y="0" z="24.636" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_and_support_belt_strip_ext"/>
-<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_ext_4" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_ext_4" x="0" y="0" z="32.848" unit="degree"/>
-</physvol>
-</assembly>
-<volume name="rich1d">
-<materialref ref="CsI"/>
-<solidref ref="rich1d_PartBody"/>
-</volume>
-<volume name="Sens_plane">
-<materialref ref="RICHgas_CO2_dis+"/>
-<solidref ref="Sens_plane_PartBody"/>
-</volume>
-<volume name="RICH_gas">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="RICH_gas_PartBody"/>
-<physvol>
-<volumeref ref="rich1d"/>
-<position name="RICH_gas_pos_rich1d_1" x="((pmt_width/2)+10+pmt_pos_x_addend)" y="(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
-<rotation name="RICH_gas_rot_rich1d_1" x="-(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(18.477+pmt_rot_y_addend)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="rich1d"/>
-<position name="RICH_gas_pos_rich1d_2" x="-((pmt_width/2)+10+pmt_pos_x_addend)" y="(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
-<rotation name="RICH_gas_rot_rich1d_2" x="-(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(-18.477-pmt_rot_y_addend)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="rich1d"/>
-<position name="RICH_gas_pos_rich1d_3" x="((pmt_width/2)+10+pmt_pos_x_addend)" y="-(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
-<rotation name="RICH_gas_rot_rich1d_3" x="(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(18.477+pmt_rot_y_addend)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="rich1d"/>
-<position name="RICH_gas_pos_rich1d_4" x="-((pmt_width/2)+10+pmt_pos_x_addend)" y="-(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
-<rotation name="RICH_gas_rot_rich1d_4" x="(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(-18.477-pmt_rot_y_addend)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_half_total"/>
-<position name="RICH_gas_pos_RICH_mirror_half_total_1" x="0" y="(-RICH_mirror_Y_shift+RICH_mirror_r*sin((RICH_mirror_angle)*DEGtoRAD))" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_mirror_r*cos((RICH_mirror_angle)*DEGtoRAD)+RICH_mirror_position_from_IP-RICH_position_from_IP-RICH_covering_thickness)" unit="mm"/>
-<rotation name="RICH_gas_rot_RICH_mirror_half_total_1" x="-(90+RICH_mirror_angle)" y="0" z="-90" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_half_total"/>
-<position name="RICH_gas_pos_RICH_mirror_half_total_2" x="0" y="(RICH_mirror_Y_shift-RICH_mirror_r*sin((RICH_mirror_angle)*DEGtoRAD))" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_mirror_r*cos((RICH_mirror_angle)*DEGtoRAD)+RICH_mirror_position_from_IP-RICH_position_from_IP-RICH_covering_thickness)" unit="mm"/>
-<rotation name="RICH_gas_rot_RICH_mirror_half_total_2" x="-(-90-RICH_mirror_angle)" y="0" z="90" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="Sens_plane"/>
-<position name="RICH_gas_pos_Sens_plane_1" x="0" y="0" z="sens_plane_pos" unit="mm"/>
-<rotation name="RICH_gas_rot_Sens_plane_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<volume name="rich1">
-<materialref ref="air"/>
-<solidref ref="rich1_PartBody"/>
-<physvol>
-<volumeref ref="RICH_covering_top_bottom_1"/>
-<position name="rich1_pos_RICH_covering_top_bottom_1_1" x="0" y="(RICH_height/2+RICH_covering_thickness/2)" z="(-RICH_length/2+50+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_top_bottom_1_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_top_bottom_1"/>
-<position name="rich1_pos_RICH_covering_top_bottom_1_2" x="0" y="(-RICH_height/2-RICH_covering_thickness/2)" z="(-RICH_length/2+50+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_top_bottom_1_2" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_top_bottom_2"/>
-<position name="rich1_pos_RICH_covering_top_bottom_2_1" x="0" y="(RICH_height/2+RICH_covering_thickness/2)" z="(50+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_top_bottom_2_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_top_bottom_2"/>
-<position name="rich1_pos_RICH_covering_top_bottom_2_2" x="0" y="(-RICH_height/2-RICH_covering_thickness/2)" z="(50+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_top_bottom_2_2" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_side"/>
-<position name="rich1_pos_RICH_covering_side_1" x="(-RICH_exit_width/2-RICH_covering_thickness/2)" y="0" z="(50+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_side_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_side"/>
-<position name="rich1_pos_RICH_covering_side_2" x="(RICH_exit_width/2+RICH_covering_thickness/2)" y="0" z="(50+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_side_2" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_entrance"/>
-<position name="rich1_pos_RICH_covering_entrance_1" x="0" y="0" z="(-RICH_length/2+50-kapton_thickness/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_entrance_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_exit"/>
-<position name="rich1_pos_RICH_covering_exit_1" x="0" y="0" z="(RICH_length/2+50+kapton_thickness/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_exit_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_sloping"/>
-<position name="rich1_pos_RICH_covering_sloping_1" x="((RICH_entrance_width+RICH_exit_width+2*RICH_covering_thickness+entrance_width_addend)/4)" y="0" z="(-RICH_length/2+50+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_sloping_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_sloping"/>
-<position name="rich1_pos_RICH_covering_sloping_2" x="(-(RICH_entrance_width+RICH_exit_width+2*RICH_covering_thickness+entrance_width_addend)/4)" y="0" z="(-RICH_length/2+50+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_sloping_2" x="0" y="0" z="-180" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_pipe"/>
-<position name="rich1_pos_RICH_pipe_1" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))+50-RICH_covering_thickness+((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
-<rotation name="rich1_rot_RICH_pipe_1" x="0" y="-(RICH_pipe_angle)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_gas"/>
-<position name="rich1_pos_RICH_gas_1" x="0" y="0" z="(-RICH_length/2+50+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_gas_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<!--
-<assembly name="TOP">
-<physvol>
-<volumeref ref="rich1"/>
-<position name="TOP_pos_rich1_1" x="0" y="0" z="(RICH_position_from_IP+kapton_thickness+RICH_length/2-50)" unit="mm"/>
-<rotation name="TOP_rot_rich1_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-</assembly>
--->
-</structure>
-
-<setup name="FAIRgeom" version="1.0">
-<world ref="rich1"/>
-<!--<world ref="TOP"/>-->
-</setup>
-
-</gdml>
+
+<materials>
+<material name="vacuum" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="aluminium" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="kapton" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="RICHglass" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="RICHgas_CO2_dis" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="CsI" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="RICHgas_CO2_dis+" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="air" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+</materials>
+
+<solids>
+<cone name="RICH_pipe_vac_RICH_pipe_vac_2" rmin1="0" rmax1="(RICH_pipe_entrance_r-RICH_pipe_entrance_thickness)" rmin2="0" rmax2="(RICH_pipe_exit_r-RICH_pipe_exit_thickness)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<tube name="RICH_pipe_vac_RICH_pipe_vac_3" rmin="0" rmax="(RICH_pipe_entrance_r-RICH_pipe_entrance_thickness)*cos((RICH_pipe_angle)*DEGtoRAD)" z="(50.5)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<union name="RICH_pipe_vac_PartBody">
+<first ref="RICH_pipe_vac_RICH_pipe_vac_2"/>
+<second ref="RICH_pipe_vac_RICH_pipe_vac_3"/>
+<position name="RICH_pipe_vac__position__RICH_pipe_vac_3__by__RICH_pipe_vac_2" x="((49.5-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD)))*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)+(RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))-49.5)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
+<rotation name="RICH_pipe_vac__rotation__RICH_pipe_vac_3__by__RICH_pipe_vac_2" x="0" y="(-RICH_pipe_angle)" z="0" unit="degree"/>
+</union>
+<cone name="RICH_pipe_RICH_pipe_4" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<tube name="RICH_pipe_RICH_pipe_3" rmin="0" rmax="(RICH_pipe_entrance_r*cos((RICH_pipe_angle)*DEGtoRAD))" z="(50.5)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<union name="RICH_pipe_PartBody">
+<first ref="RICH_pipe_RICH_pipe_4"/>
+<second ref="RICH_pipe_RICH_pipe_3"/>
+<position name="RICH_pipe__position__RICH_pipe_3__by__RICH_pipe_4" x="((49.5-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD)))*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)+(RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))-49.5)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
+<rotation name="RICH_pipe__rotation__RICH_pipe_3__by__RICH_pipe_4" x="0" y="(-RICH_pipe_angle)" z="0" unit="degree"/>
+</union>
+<box name="RICH_covering_entrance_RICH_covering_entrance_2" x="((RICH_entrance_width/2+RICH_covering_thickness+entrance_width_addend))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness/2))*2" lunit="mm"/>
+<cone name="RICH_covering_entrance_RICH_covering_entrance_3" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<subtraction name="RICH_covering_entrance_PartBody">
+<first ref="RICH_covering_entrance_RICH_covering_entrance_2"/>
+<second ref="RICH_covering_entrance_RICH_covering_entrance_3"/>
+<position name="RICH_covering_entrance__position__RICH_covering_entrance_3__by__RICH_covering_entrance_2" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(RICH_length/2+kapton_thickness/2+(RICH_pipe_exit_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
+<rotation name="RICH_covering_entrance__rotation__RICH_covering_entrance_3__by__RICH_covering_entrance_2" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
+</subtraction>
+<trap name="RICH_covering_sloping_PartBody" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" theta="(atan(tan((RICH_trapezoid_angle/2)*DEGtoRAD)*(RICH_exit_width-RICH_entrance_width-entrance_width_addend)/(RICH_exit_width-RICH_entrance_width))/DEGtoRAD)" phi="0" y1="((RICH_height/2+RICH_covering_thickness))*2" x1="((RICH_covering_thickness/2+entrance_width_addend/2))*2" x2="((RICH_covering_thickness/2+entrance_width_addend/2))*2" alpha1="0" y2="((RICH_height/2+RICH_covering_thickness))*2" x3="((RICH_covering_thickness/2))*2" x4="((RICH_covering_thickness/2))*2" alpha2="0" lunit="mm" aunit="degree"/>
+<trd name="RICH_covering_top_bottom_1_PartBody" x1="((RICH_entrance_width/2))*2" x2="((RICH_exit_width/2))*2" y1="((RICH_covering_thickness/2))*2" y2="((RICH_covering_thickness/2))*2" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<box name="RICH_covering_top_bottom_2_PartBody" x="((RICH_exit_width/2))*2" y="((RICH_covering_thickness/2))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<box name="RICH_covering_side_PartBody" x="((RICH_covering_thickness/2))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<box name="RICH_covering_exit_RICH_covering_exit_2" x="((RICH_exit_width/2+RICH_covering_thickness))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness/2))*2" lunit="mm"/>
+<cone name="RICH_covering_exit_RICH_covering_exit_3" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<subtraction name="RICH_covering_exit_PartBody">
+<first ref="RICH_covering_exit_RICH_covering_exit_2"/>
+<second ref="RICH_covering_exit_RICH_covering_exit_3"/>
+<position name="RICH_covering_exit__position__RICH_covering_exit_3__by__RICH_covering_exit_2" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-kapton_thickness/2-(RICH_pipe_entrance_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
+<rotation name="RICH_covering_exit__rotation__RICH_covering_exit_3__by__RICH_covering_exit_2" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
+</subtraction>
+<sphere name="RICH_mirror_1_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="6.52" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_2_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="90.038" deltatheta="8.118" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_3_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="4" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_4_PartBody" rmin="3000" rmax="3006" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="8.6" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_5_PartBody" rmin="3000" rmax="3006" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="7.95" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_and_support_belt_strip_cut_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+mirror_cont_supp_addend_out)" startphi="-4.106" deltaphi="8.212" starttheta="75.237" deltatheta="27" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_and_support_belt_strip_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+mirror_cont_supp_addend_out)" startphi="-4.106" deltaphi="8.212" starttheta="75.237" deltatheta="30.95" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_and_support_belt_strip_ext_PartBody" rmin="3000" rmax="3006" startphi="-4.106" deltaphi="8.212" starttheta="75.237" deltatheta="31.6" lunit="mm" aunit="degree"/>
+<box name="rich1d_PartBody" x="((pmt_width/2))*2" y="((pmt_height/2))*2" z="((pmt_thickness/2))*2" lunit="mm"/>
+<box name="Sens_plane_3" x="(Delta_sens_plane_area*2468)*2" y="(Delta_sens_plane_area*1875)*2" z="(0.5)*2" lunit="mm"/>
+<tube name="Sens_plane_2" rmin="0" rmax="160" z="(1)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<subtraction name="Sens_plane_PartBody">
+<first ref="Sens_plane_3"/>
+<second ref="Sens_plane_2"/>
+<positionref ref="central"/>
+<rotationref ref="identity"/>
+</subtraction>
+<box name="RICH_gas_RICH_gas_5" x="((RICH_exit_width/2))*2" y="((RICH_height/2))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<cone name="RICH_gas_RICH_gas_7" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<trd name="RICH_gas_RICH_gas_4" x1="((RICH_entrance_width/2))*2" x2="((RICH_exit_width/2))*2" y1="((RICH_height/2))*2" y2="((RICH_height/2))*2" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<union name="RICH_gas_RICH_gas_6">
+<first ref="RICH_gas_RICH_gas_4"/>
+<second ref="RICH_gas_RICH_gas_5"/>
+<position name="RICH_gas__position__RICH_gas_5__by__RICH_gas_4" x="0" y="0" z="(RICH_length/2)" unit="mm"/>
+<rotationref ref="identity"/>
+</union>
+<subtraction name="RICH_gas_PartBody">
+<first ref="RICH_gas_RICH_gas_6"/>
+<second ref="RICH_gas_RICH_gas_7"/>
+<position name="RICH_gas__position__RICH_gas_7__by__RICH_gas_6" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2+RICH_length/2+(RICH_pipe_exit_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
+<rotation name="RICH_gas__rotation__RICH_gas_7__by__RICH_gas_6" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
+</subtraction>
+<box name="rich1_rich1_16" x="((RICH_exit_width/2+RICH_covering_thickness))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness+RICH_length/2+50))*2" lunit="mm"/>
+<cone name="rich1_rich1_17" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<union name="rich1_PartBody">
+<first ref="rich1_rich1_16"/>
+<second ref="rich1_rich1_17"/>
+<position name="rich1__position__rich1_17__by__rich1_16" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))+50-RICH_covering_thickness+((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
+<rotation name="rich1__rotation__rich1_17__by__rich1_16" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
+</union>
+</solids>
+
+<structure>
+<volume name="RICH_pipe_vac">
+<materialref ref="vacuum"/>
+<solidref ref="RICH_pipe_vac_PartBody"/>
+</volume>
+<volume name="RICH_pipe">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_pipe_PartBody"/>
+<physvol>
+<volumeref ref="RICH_pipe_vac"/>
+<position name="RICH_pipe_pos_RICH_pipe_vac_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_pipe_rot_RICH_pipe_vac_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<volume name="RICH_covering_entrance">
+<materialref ref="kapton"/>
+<solidref ref="RICH_covering_entrance_PartBody"/>
+</volume>
+<volume name="RICH_covering_sloping">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_covering_sloping_PartBody"/>
+</volume>
+<volume name="RICH_covering_top_bottom_1">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_covering_top_bottom_1_PartBody"/>
+</volume>
+<volume name="RICH_covering_top_bottom_2">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_covering_top_bottom_2_PartBody"/>
+</volume>
+<volume name="RICH_covering_side">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_covering_side_PartBody"/>
+</volume>
+<volume name="RICH_covering_exit">
+<materialref ref="kapton"/>
+<solidref ref="RICH_covering_exit_PartBody"/>
+</volume>
+<volume name="RICH_mirror_1">
+<materialref ref="RICHglass"/>
+<solidref ref="RICH_mirror_1_PartBody"/>
+</volume>
+<volume name="RICH_mirror_2">
+<materialref ref="RICHglass"/>
+<solidref ref="RICH_mirror_2_PartBody"/>
+</volume>
+<volume name="RICH_mirror_3">
+<materialref ref="RICHglass"/>
+<solidref ref="RICH_mirror_3_PartBody"/>
+</volume>
+<volume name="RICH_mirror_4">
+<materialref ref="RICHglass"/>
+<solidref ref="RICH_mirror_4_PartBody"/>
+</volume>
+<volume name="RICH_mirror_5">
+<materialref ref="RICHglass"/>
+<solidref ref="RICH_mirror_5_PartBody"/>
+</volume>
+<volume name="RICH_mirror_and_support_belt_strip_cut">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="RICH_mirror_and_support_belt_strip_cut_PartBody"/>
+<physvol>
+<volumeref ref="RICH_mirror_2"/>
+<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_2_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_2_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_2"/>
+<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_2_2" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_2_2" x="-180" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_3"/>
+<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_3_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_3_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_1"/>
+<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_1_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_1_1" x="-180" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<volume name="RICH_mirror_and_support_belt_strip">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="RICH_mirror_and_support_belt_strip_PartBody"/>
+<physvol>
+<volumeref ref="RICH_mirror_5"/>
+<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_5_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_5_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_1"/>
+<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_1_2" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_1_2" x="-180" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_2"/>
+<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_2_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_2_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_2"/>
+<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_2_2" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_2_2" x="-180" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<volume name="RICH_mirror_and_support_belt_strip_ext">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="RICH_mirror_and_support_belt_strip_ext_PartBody"/>
+<physvol>
+<volumeref ref="RICH_mirror_4"/>
+<position name="RICH_mirror_and_support_belt_strip_ext_pos_RICH_mirror_4_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_ext_rot_RICH_mirror_4_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_1"/>
+<position name="RICH_mirror_and_support_belt_strip_ext_pos_RICH_mirror_1_2" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_ext_rot_RICH_mirror_1_2" x="-180" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_2"/>
+<position name="RICH_mirror_and_support_belt_strip_ext_pos_RICH_mirror_2_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_ext_rot_RICH_mirror_2_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_2"/>
+<position name="RICH_mirror_and_support_belt_strip_ext_pos_RICH_mirror_2_2" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_ext_rot_RICH_mirror_2_2" x="-180" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<assembly name="RICH_mirror_half_total">
+<physvol>
+<volumeref ref="RICH_mirror_and_support_belt_strip_cut"/>
+<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_cut_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_cut_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_and_support_belt_strip"/>
+<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_1" x="0" y="0" z="-8.212" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_and_support_belt_strip"/>
+<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_2" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_2" x="0" y="0" z="-16.424" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_and_support_belt_strip"/>
+<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_3" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_3" x="0" y="0" z="8.212" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_and_support_belt_strip"/>
+<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_4" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_4" x="0" y="0" z="16.424" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_and_support_belt_strip_ext"/>
+<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_ext_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_ext_1" x="0" y="0" z="-24.636" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_and_support_belt_strip_ext"/>
+<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_ext_2" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_ext_2" x="0" y="0" z="-32.848" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_and_support_belt_strip_ext"/>
+<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_ext_3" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_ext_3" x="0" y="0" z="24.636" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_and_support_belt_strip_ext"/>
+<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_ext_4" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_ext_4" x="0" y="0" z="32.848" unit="degree"/>
+</physvol>
+</assembly>
+<volume name="rich1d">
+<materialref ref="CsI"/>
+<solidref ref="rich1d_PartBody"/>
+</volume>
+<volume name="Sens_plane">
+<materialref ref="RICHgas_CO2_dis+"/>
+<solidref ref="Sens_plane_PartBody"/>
+</volume>
+<volume name="RICH_gas">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="RICH_gas_PartBody"/>
+<physvol>
+<volumeref ref="rich1d"/>
+<position name="RICH_gas_pos_rich1d_1" x="((pmt_width/2)+10+pmt_pos_x_addend)" y="(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
+<rotation name="RICH_gas_rot_rich1d_1" x="-(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(18.477+pmt_rot_y_addend)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="rich1d"/>
+<position name="RICH_gas_pos_rich1d_2" x="-((pmt_width/2)+10+pmt_pos_x_addend)" y="(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
+<rotation name="RICH_gas_rot_rich1d_2" x="-(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(-18.477-pmt_rot_y_addend)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="rich1d"/>
+<position name="RICH_gas_pos_rich1d_3" x="((pmt_width/2)+10+pmt_pos_x_addend)" y="-(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
+<rotation name="RICH_gas_rot_rich1d_3" x="(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(18.477+pmt_rot_y_addend)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="rich1d"/>
+<position name="RICH_gas_pos_rich1d_4" x="-((pmt_width/2)+10+pmt_pos_x_addend)" y="-(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
+<rotation name="RICH_gas_rot_rich1d_4" x="(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(-18.477-pmt_rot_y_addend)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_half_total"/>
+<position name="RICH_gas_pos_RICH_mirror_half_total_1" x="0" y="(-RICH_mirror_Y_shift+RICH_mirror_r*sin((RICH_mirror_angle)*DEGtoRAD))" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_mirror_r*cos((RICH_mirror_angle)*DEGtoRAD)+RICH_mirror_position_from_IP-RICH_position_from_IP-RICH_covering_thickness)" unit="mm"/>
+<rotation name="RICH_gas_rot_RICH_mirror_half_total_1" x="-(90+RICH_mirror_angle)" y="0" z="-90" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_half_total"/>
+<position name="RICH_gas_pos_RICH_mirror_half_total_2" x="0" y="(RICH_mirror_Y_shift-RICH_mirror_r*sin((RICH_mirror_angle)*DEGtoRAD))" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_mirror_r*cos((RICH_mirror_angle)*DEGtoRAD)+RICH_mirror_position_from_IP-RICH_position_from_IP-RICH_covering_thickness)" unit="mm"/>
+<rotation name="RICH_gas_rot_RICH_mirror_half_total_2" x="-(-90-RICH_mirror_angle)" y="0" z="90" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="Sens_plane"/>
+<position name="RICH_gas_pos_Sens_plane_1" x="0" y="0" z="sens_plane_pos" unit="mm"/>
+<rotation name="RICH_gas_rot_Sens_plane_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<volume name="rich1">
+<materialref ref="air"/>
+<solidref ref="rich1_PartBody"/>
+<physvol>
+<volumeref ref="RICH_covering_top_bottom_1"/>
+<position name="rich1_pos_RICH_covering_top_bottom_1_1" x="0" y="(RICH_height/2+RICH_covering_thickness/2)" z="(-RICH_length/2+50+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_top_bottom_1_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_top_bottom_1"/>
+<position name="rich1_pos_RICH_covering_top_bottom_1_2" x="0" y="(-RICH_height/2-RICH_covering_thickness/2)" z="(-RICH_length/2+50+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_top_bottom_1_2" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_top_bottom_2"/>
+<position name="rich1_pos_RICH_covering_top_bottom_2_1" x="0" y="(RICH_height/2+RICH_covering_thickness/2)" z="(50+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_top_bottom_2_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_top_bottom_2"/>
+<position name="rich1_pos_RICH_covering_top_bottom_2_2" x="0" y="(-RICH_height/2-RICH_covering_thickness/2)" z="(50+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_top_bottom_2_2" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_side"/>
+<position name="rich1_pos_RICH_covering_side_1" x="(-RICH_exit_width/2-RICH_covering_thickness/2)" y="0" z="(50+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_side_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_side"/>
+<position name="rich1_pos_RICH_covering_side_2" x="(RICH_exit_width/2+RICH_covering_thickness/2)" y="0" z="(50+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_side_2" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_entrance"/>
+<position name="rich1_pos_RICH_covering_entrance_1" x="0" y="0" z="(-RICH_length/2+50-kapton_thickness/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_entrance_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_exit"/>
+<position name="rich1_pos_RICH_covering_exit_1" x="0" y="0" z="(RICH_length/2+50+kapton_thickness/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_exit_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_sloping"/>
+<position name="rich1_pos_RICH_covering_sloping_1" x="((RICH_entrance_width+RICH_exit_width+2*RICH_covering_thickness+entrance_width_addend)/4)" y="0" z="(-RICH_length/2+50+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_sloping_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_sloping"/>
+<position name="rich1_pos_RICH_covering_sloping_2" x="(-(RICH_entrance_width+RICH_exit_width+2*RICH_covering_thickness+entrance_width_addend)/4)" y="0" z="(-RICH_length/2+50+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_sloping_2" x="0" y="0" z="-180" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_pipe"/>
+<position name="rich1_pos_RICH_pipe_1" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))+50-RICH_covering_thickness+((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
+<rotation name="rich1_rot_RICH_pipe_1" x="0" y="-(RICH_pipe_angle)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_gas"/>
+<position name="rich1_pos_RICH_gas_1" x="0" y="0" z="(-RICH_length/2+50+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_gas_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<!--
+<assembly name="TOP">
+<physvol>
+<volumeref ref="rich1"/>
+<position name="TOP_pos_rich1_1" x="0" y="0" z="(RICH_position_from_IP+kapton_thickness+RICH_length/2-50)" unit="mm"/>
+<rotation name="TOP_rot_rich1_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+</assembly>
+-->
+</structure>
+
+<setup name="FAIRgeom" version="1.0">
+<world ref="rich1"/>
+<!--<world ref="TOP"/>-->
+</setup>
+
+</gdml>
diff --git a/macro/rich/geotest/RotPMT/Import_GDML_Export_ROOT.c b/macro/rich/geotest/RotPMT/Import_GDML_Export_ROOT.c
index b29951eb89..444017ce49 100644
--- a/macro/rich/geotest/RotPMT/Import_GDML_Export_ROOT.c
+++ b/macro/rich/geotest/RotPMT/Import_GDML_Export_ROOT.c
@@ -1,63 +1,63 @@
-void Import_GDML_Export_ROOT(float PMTrotX = 5,
-                             float PMTrotY = 5,
-                             int RotMir    = -10) {
-  char RotMirText[256];
-  if (RotMir < 0) {
-    sprintf(RotMirText, "RotMir_m%d", RotMir * -1);
-  } else {
-    sprintf(RotMirText, "RotMir_p%d", RotMir);
-  }
-
-  int ShiftXmod10     = (int(PMTrotX * 10)) % 10;
-  float IntegerXValue = PMTrotX - (float(ShiftXmod10)) / 10.;
-  int ShiftYmod10     = (int(PMTrotY * 10)) % 10;
-  float IntegerYValue = PMTrotY - (float(ShiftYmod10)) / 10.;
-
-  char ShiftXTxt[256];
-  char ShiftYTxt[256];
-  sprintf(ShiftXTxt, "Xpos%dpoint%d", IntegerXValue, ShiftXmod10);
-  sprintf(ShiftYTxt, "Ypos%dpoint%d", IntegerYValue, ShiftYmod10);
-  if (PMTrotY < 0) {
-    sprintf(ShiftYTxt, "Yneg%dpoint%d", -1. * IntegerYValue, -1. * ShiftYmod10);
-  }
-
-  char GeoFileName[256];
-  sprintf(GeoFileName,
-          "/geometry/rich/GeoOpt/RotPMT/NewGeo/rich_geo_%s_RotPMT_%s_%s",
-          RotMirText,
-          ShiftXTxt,
-          ShiftYTxt);
-
-
-  stringstream ss;
-  ss << GeoFileName;
-  TString FileName = ss.str();
-
-  TString InFile = FileName + ".gdml";
-  cout << " ########## " << InFile << endl;
-  TString OutFile = FileName + ".root";
-  cout << " ########## " << OutFile << endl;
-  TString vmcDir = TString(gSystem->Getenv("VMCWORKDIR"));
-
-  TGeoManager* gdml = new TGeoManager("gdml", "FAIRGeom");
-
-  TGDMLParse parser;
-  // Define your input GDML file HERE
-  TGeoVolume* gdmlTop = parser.GDMLReadFile(vmcDir + InFile);
-  TGeoVolume* rootTop = new TGeoVolumeAssembly("TOP");
-
-  gGeoManager->SetTopVolume(rootTop);
-
-  // Define your position HERE
-  TGeoRotation* rot      = new TGeoRotation("rot", 0., 0., 0.);
-  TGeoCombiTrans* posrot = new TGeoCombiTrans(0., 0., 270., rot);
-
-  rootTop->AddNode(gdmlTop, 1, posrot);
-
-  gGeoManager->CloseGeometry();
-
-  // Define you output ROOT file HERE
-  TFile* outfile = new TFile(vmcDir + OutFile, "RECREATE");
-  rootTop->Write();
-  outfile->Close();
-}
+void Import_GDML_Export_ROOT(float PMTrotX = 5,
+                             float PMTrotY = 5,
+                             int RotMir    = -10) {
+  char RotMirText[256];
+  if (RotMir < 0) {
+    sprintf(RotMirText, "RotMir_m%d", RotMir * -1);
+  } else {
+    sprintf(RotMirText, "RotMir_p%d", RotMir);
+  }
+
+  int ShiftXmod10     = (int(PMTrotX * 10)) % 10;
+  float IntegerXValue = PMTrotX - (float(ShiftXmod10)) / 10.;
+  int ShiftYmod10     = (int(PMTrotY * 10)) % 10;
+  float IntegerYValue = PMTrotY - (float(ShiftYmod10)) / 10.;
+
+  char ShiftXTxt[256];
+  char ShiftYTxt[256];
+  sprintf(ShiftXTxt, "Xpos%dpoint%d", IntegerXValue, ShiftXmod10);
+  sprintf(ShiftYTxt, "Ypos%dpoint%d", IntegerYValue, ShiftYmod10);
+  if (PMTrotY < 0) {
+    sprintf(ShiftYTxt, "Yneg%dpoint%d", -1. * IntegerYValue, -1. * ShiftYmod10);
+  }
+
+  char GeoFileName[256];
+  sprintf(GeoFileName,
+          "/geometry/rich/GeoOpt/RotPMT/NewGeo/rich_geo_%s_RotPMT_%s_%s",
+          RotMirText,
+          ShiftXTxt,
+          ShiftYTxt);
+
+
+  stringstream ss;
+  ss << GeoFileName;
+  TString FileName = ss.str();
+
+  TString InFile = FileName + ".gdml";
+  cout << " ########## " << InFile << endl;
+  TString OutFile = FileName + ".root";
+  cout << " ########## " << OutFile << endl;
+  TString vmcDir = TString(gSystem->Getenv("VMCWORKDIR"));
+
+  TGeoManager* gdml = new TGeoManager("gdml", "FAIRGeom");
+
+  TGDMLParse parser;
+  // Define your input GDML file HERE
+  TGeoVolume* gdmlTop = parser.GDMLReadFile(vmcDir + InFile);
+  TGeoVolume* rootTop = new TGeoVolumeAssembly("TOP");
+
+  gGeoManager->SetTopVolume(rootTop);
+
+  // Define your position HERE
+  TGeoRotation* rot      = new TGeoRotation("rot", 0., 0., 0.);
+  TGeoCombiTrans* posrot = new TGeoCombiTrans(0., 0., 270., rot);
+
+  rootTop->AddNode(gdmlTop, 1, posrot);
+
+  gGeoManager->CloseGeometry();
+
+  // Define you output ROOT file HERE
+  TFile* outfile = new TFile(vmcDir + OutFile, "RECREATE");
+  rootTop->Write();
+  outfile->Close();
+}
diff --git a/macro/rich/geotest/TransPMT/CreateGeo/2015_minus10degLower.txt b/macro/rich/geotest/TransPMT/CreateGeo/2015_minus10degLower.txt
index 5d4fd23aea..a9457e1191 100644
--- a/macro/rich/geotest/TransPMT/CreateGeo/2015_minus10degLower.txt
+++ b/macro/rich/geotest/TransPMT/CreateGeo/2015_minus10degLower.txt
@@ -1,364 +1,364 @@
-</define>
-
-<materials>
-<material name="vacuum" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="aluminium" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="kapton" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="RICHglass" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="RICHgas_CO2_dis" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="CsI" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="RICHgas_CO2_dis+" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="air" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-</materials>
-
-<solids>
-<cone name="RICH_pipe_vac_RICH_pipe_vac_2" rmin1="0" rmax1="(RICH_pipe_entrance_r-RICH_pipe_entrance_thickness)" rmin2="0" rmax2="(RICH_pipe_exit_r-RICH_pipe_exit_thickness)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<tube name="RICH_pipe_vac_RICH_pipe_vac_3" rmin="0" rmax="(RICH_pipe_entrance_r-RICH_pipe_entrance_thickness)*cos((RICH_pipe_angle)*DEGtoRAD)" z="(1.5)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<union name="RICH_pipe_vac_PartBody">
-<first ref="RICH_pipe_vac_RICH_pipe_vac_2"/>
-<second ref="RICH_pipe_vac_RICH_pipe_vac_3"/>
-<position name="RICH_pipe_vac__position__RICH_pipe_vac_3__by__RICH_pipe_vac_2" x="((49.5-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD)))*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)+(RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))-0.5)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
-<rotation name="RICH_pipe_vac__rotation__RICH_pipe_vac_3__by__RICH_pipe_vac_2" x="0" y="(-RICH_pipe_angle)" z="0" unit="degree"/>
-</union>
-<cone name="RICH_pipe_RICH_pipe_4" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<tube name="RICH_pipe_RICH_pipe_3" rmin="0" rmax="(RICH_pipe_entrance_r*cos((RICH_pipe_angle)*DEGtoRAD))" z="(1.5)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<union name="RICH_pipe_PartBody">
-<first ref="RICH_pipe_RICH_pipe_4"/>
-<second ref="RICH_pipe_RICH_pipe_3"/>
-<position name="RICH_pipe__position__RICH_pipe_3__by__RICH_pipe_4" x="((49.5-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD)))*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)+(RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))-0.5)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
-<rotation name="RICH_pipe__rotation__RICH_pipe_3__by__RICH_pipe_4" x="0" y="(-RICH_pipe_angle)" z="0" unit="degree"/>
-</union>
-<box name="RICH_covering_entrance_RICH_covering_entrance_2" x="((RICH_entrance_width/2+RICH_covering_thickness+entrance_width_addend))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness/2))*2" lunit="mm"/>
-<cone name="RICH_covering_entrance_RICH_covering_entrance_3" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<subtraction name="RICH_covering_entrance_PartBody">
-<first ref="RICH_covering_entrance_RICH_covering_entrance_2"/>
-<second ref="RICH_covering_entrance_RICH_covering_entrance_3"/>
-<position name="RICH_covering_entrance__position__RICH_covering_entrance_3__by__RICH_covering_entrance_2" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(RICH_length/2+kapton_thickness/2+(RICH_pipe_exit_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
-<rotation name="RICH_covering_entrance__rotation__RICH_covering_entrance_3__by__RICH_covering_entrance_2" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
-</subtraction>
-<trap name="RICH_covering_sloping_PartBody" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" theta="(atan(tan((RICH_trapezoid_angle/2)*DEGtoRAD)*(RICH_exit_width-RICH_entrance_width-entrance_width_addend)/(RICH_exit_width-RICH_entrance_width))/DEGtoRAD)" phi="0" y1="((RICH_height/2+RICH_covering_thickness))*2" x1="((RICH_covering_thickness/2+entrance_width_addend/2))*2" x2="((RICH_covering_thickness/2+entrance_width_addend/2))*2" alpha1="0" y2="((RICH_height/2+RICH_covering_thickness))*2" x3="((RICH_covering_thickness/2))*2" x4="((RICH_covering_thickness/2))*2" alpha2="0" lunit="mm" aunit="degree"/>
-<trd name="RICH_covering_top_bottom_1_PartBody" x1="((RICH_entrance_width/2))*2" x2="((RICH_exit_width/2))*2" y1="((RICH_covering_thickness/2))*2" y2="((RICH_covering_thickness/2))*2" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<box name="RICH_covering_top_bottom_2_PartBody" x="((RICH_exit_width/2))*2" y="((RICH_covering_thickness/2))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<box name="RICH_covering_side_PartBody" x="((RICH_covering_thickness/2))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<box name="RICH_covering_exit_RICH_covering_exit_2" x="((RICH_exit_width/2+RICH_covering_thickness))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness/2))*2" lunit="mm"/>
-<cone name="RICH_covering_exit_RICH_covering_exit_3" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<subtraction name="RICH_covering_exit_PartBody">
-<first ref="RICH_covering_exit_RICH_covering_exit_2"/>
-<second ref="RICH_covering_exit_RICH_covering_exit_3"/>
-<position name="RICH_covering_exit__position__RICH_covering_exit_3__by__RICH_covering_exit_2" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-kapton_thickness/2-(RICH_pipe_entrance_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
-<rotation name="RICH_covering_exit__rotation__RICH_covering_exit_3__by__RICH_covering_exit_2" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
-</subtraction>
-<sphere name="RICH_mirror_1_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="6.52" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_2_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="90.038" deltatheta="8.118" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_3_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="4" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_and_support_belt_strip_cut_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+mirror_cont_supp_addend_out)" startphi="-4.106" deltaphi="8.212" starttheta="75.237" deltatheta="27" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_and_support_belt_strip_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+mirror_cont_supp_addend_out)" startphi="-4.106" deltaphi="8.212" starttheta="75.237" deltatheta="29.527" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_replica_PartBody" rmin="(RICH_mirror_r)" rmax="((RICH_mirror_r+mirror_cont_supp_addend_out))" startphi="-36.954" deltaphi="32.848" starttheta="75.237" deltatheta="29.527" lunit="mm" aunit="degree"/>
-<box name="rich1d_PartBody" x="((pmt_width/2))*2" y="((pmt_height/2))*2" z="((pmt_thickness/2))*2" lunit="mm"/>
-<box name="Sens_plane_3" x="(2468)*2" y="(2875)*2" z="(0.5)*2" lunit="mm"/>
-<tube name="Sens_plane_2" rmin="0" rmax="160" z="(1)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<subtraction name="Sens_plane_PartBody">
-<first ref="Sens_plane_3"/>
-<second ref="Sens_plane_2"/>
-<positionref ref="central"/>
-<rotationref ref="identity"/>
-</subtraction>
-<box name="RICH_gas_RICH_gas_5" x="((RICH_exit_width/2))*2" y="((RICH_height/2))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<cone name="RICH_gas_RICH_gas_7" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<trd name="RICH_gas_RICH_gas_4" x1="((RICH_entrance_width/2))*2" x2="((RICH_exit_width/2))*2" y1="((RICH_height/2))*2" y2="((RICH_height/2))*2" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<union name="RICH_gas_RICH_gas_6">
-<first ref="RICH_gas_RICH_gas_4"/>
-<second ref="RICH_gas_RICH_gas_5"/>
-<position name="RICH_gas__position__RICH_gas_5__by__RICH_gas_4" x="0" y="0" z="(RICH_length/2)" unit="mm"/>
-<rotationref ref="identity"/>
-</union>
-<subtraction name="RICH_gas_PartBody">
-<first ref="RICH_gas_RICH_gas_6"/>
-<second ref="RICH_gas_RICH_gas_7"/>
-<position name="RICH_gas__position__RICH_gas_7__by__RICH_gas_6" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2+RICH_length/2+(RICH_pipe_exit_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
-<rotation name="RICH_gas__rotation__RICH_gas_7__by__RICH_gas_6" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
-</subtraction>
-<box name="rich1_rich1_16" x="((RICH_exit_width/2+RICH_covering_thickness))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness+RICH_length/2+1))*2" lunit="mm"/>
-<cone name="rich1_rich1_17" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<union name="rich1_PartBody">
-<first ref="rich1_rich1_16"/>
-<second ref="rich1_rich1_17"/>
-<position name="rich1__position__rich1_17__by__rich1_16" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))+1-RICH_covering_thickness+((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
-<rotation name="rich1__rotation__rich1_17__by__rich1_16" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
-</union>
-</solids>
-
-<structure>
-<volume name="RICH_pipe_vac">
-<materialref ref="vacuum"/>
-<solidref ref="RICH_pipe_vac_PartBody"/>
-</volume>
-<volume name="RICH_pipe">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_pipe_PartBody"/>
-<physvol>
-<volumeref ref="RICH_pipe_vac"/>
-<position name="RICH_pipe_pos_RICH_pipe_vac_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_pipe_rot_RICH_pipe_vac_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<volume name="RICH_covering_entrance">
-<materialref ref="kapton"/>
-<solidref ref="RICH_covering_entrance_PartBody"/>
-</volume>
-<volume name="RICH_covering_sloping">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_covering_sloping_PartBody"/>
-</volume>
-<volume name="RICH_covering_top_bottom_1">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_covering_top_bottom_1_PartBody"/>
-</volume>
-<volume name="RICH_covering_top_bottom_2">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_covering_top_bottom_2_PartBody"/>
-</volume>
-<volume name="RICH_covering_side">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_covering_side_PartBody"/>
-</volume>
-<volume name="RICH_covering_exit">
-<materialref ref="kapton"/>
-<solidref ref="RICH_covering_exit_PartBody"/>
-</volume>
-<volume name="RICH_mirror_1">
-<materialref ref="RICHglass"/>
-<solidref ref="RICH_mirror_1_PartBody"/>
-</volume>
-<volume name="RICH_mirror_2">
-<materialref ref="RICHglass"/>
-<solidref ref="RICH_mirror_2_PartBody"/>
-</volume>
-<volume name="RICH_mirror_3">
-<materialref ref="RICHglass"/>
-<solidref ref="RICH_mirror_3_PartBody"/>
-</volume>
-<volume name="RICH_mirror_and_support_belt_strip_cut">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="RICH_mirror_and_support_belt_strip_cut_PartBody"/>
-<physvol>
-<volumeref ref="RICH_mirror_2"/>
-<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_2_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_2_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_2"/>
-<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_2_2" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_2_2" x="-180" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_3"/>
-<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_3_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_3_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_1"/>
-<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_1_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_1_1" x="-180" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<volume name="RICH_mirror_and_support_belt_strip">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="RICH_mirror_and_support_belt_strip_PartBody"/>
-<physvol>
-<volumeref ref="RICH_mirror_1"/>
-<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_1_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_1_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_1"/>
-<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_1_2" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_1_2" x="-180" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_2"/>
-<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_2_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_2_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_2"/>
-<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_2_2" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_2_2" x="-180" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<volume name="RICH_mirror_replica">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="RICH_mirror_replica_PartBody"/>
-<divisionvol number="4" offset="0" width=" 8.212" axis="kPhi" unit="degree">
-<volumeref ref="RICH_mirror_and_support_belt_strip"/>
-</divisionvol>
-</volume>
-<assembly name="RICH_mirror_half_total">
-<physvol>
-<volumeref ref="RICH_mirror_and_support_belt_strip_cut"/>
-<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_cut_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_cut_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_replica"/>
-<position name="RICH_mirror_half_total__pos__RICH_mirror_replica_0" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_half_total__rot__RICH_mirror_replica_0" x="-179.999999999029" y="179.999999999" z="180.000000001029" unit="deg"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_replica"/>
-<position name="RICH_mirror_half_total__pos__RICH_mirror_replica_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_half_total__rot__RICH_mirror_replica_1" x="0" y="1.41087114226969E-09" z="318.940000001" unit="deg"/>
-</physvol>
-</assembly>
-<volume name="rich1d">
-<materialref ref="CsI"/>
-<solidref ref="rich1d_PartBody"/>
-</volume>
-<volume name="Sens_plane">
-<materialref ref="RICHgas_CO2_dis+"/>
-<solidref ref="Sens_plane_PartBody"/>
-</volume>
-<volume name="RICH_gas">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="RICH_gas_PartBody"/>
-<physvol>
-<volumeref ref="rich1d"/>
-<position name="RICH_gas_pos_rich1d_1" x="((pmt_width/2)+10+pmt_pos_x_addend)" y="(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
-<rotation name="RICH_gas_rot_rich1d_1" x="-(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(18.477+pmt_rot_y_addend)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="rich1d"/>
-<position name="RICH_gas_pos_rich1d_2" x="-((pmt_width/2)+10+pmt_pos_x_addend)" y="(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
-<rotation name="RICH_gas_rot_rich1d_2" x="-(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(-18.477-pmt_rot_y_addend)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="rich1d"/>
-<position name="RICH_gas_pos_rich1d_3" x="((pmt_width/2)+10+pmt_pos_x_addend)" y="-(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
-<rotation name="RICH_gas_rot_rich1d_3" x="(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(18.477+pmt_rot_y_addend)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="rich1d"/>
-<position name="RICH_gas_pos_rich1d_4" x="-((pmt_width/2)+10+pmt_pos_x_addend)" y="-(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
-<rotation name="RICH_gas_rot_rich1d_4" x="(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(-18.477-pmt_rot_y_addend)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_half_total"/>
-<position name="RICH_gas_pos_RICH_mirror_half_total_1" x="0" y="(-RICH_mirror_Y_shift+RICH_mirror_r*sin((RICH_mirror_angle)*DEGtoRAD))" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_mirror_r*cos((RICH_mirror_angle)*DEGtoRAD)+RICH_mirror_position_from_IP-RICH_position_from_IP-RICH_covering_thickness)" unit="mm"/>
-<rotation name="RICH_gas_rot_RICH_mirror_half_total_1" x="-(90+RICH_mirror_angle)" y="0" z="-90" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_half_total"/>
-<position name="RICH_gas_pos_RICH_mirror_half_total_2" x="0" y="(RICH_mirror_Y_shift-RICH_mirror_r*sin((RICH_mirror_angle)*DEGtoRAD))" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_mirror_r*cos((RICH_mirror_angle)*DEGtoRAD)+RICH_mirror_position_from_IP-RICH_position_from_IP-RICH_covering_thickness)" unit="mm"/>
-<rotation name="RICH_gas_rot_RICH_mirror_half_total_2" x="-(-90-RICH_mirror_angle)" y="0" z="90" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="Sens_plane"/>
-<position name="RICH_gas_pos_Sens_plane_1" x="0" y="0" z="700" unit="mm"/>
-<rotation name="RICH_gas_rot_Sens_plane_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<volume name="rich1">
-<materialref ref="air"/>
-<solidref ref="rich1_PartBody"/>
-<physvol>
-<volumeref ref="RICH_covering_top_bottom_1"/>
-<position name="rich1_pos_RICH_covering_top_bottom_1_1" x="0" y="(RICH_height/2+RICH_covering_thickness/2)" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_top_bottom_1_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_top_bottom_1"/>
-<position name="rich1_pos_RICH_covering_top_bottom_1_2" x="0" y="(-RICH_height/2-RICH_covering_thickness/2)" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_top_bottom_1_2" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_top_bottom_2"/>
-<position name="rich1_pos_RICH_covering_top_bottom_2_1" x="0" y="(RICH_height/2+RICH_covering_thickness/2)" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_top_bottom_2_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_top_bottom_2"/>
-<position name="rich1_pos_RICH_covering_top_bottom_2_2" x="0" y="(-RICH_height/2-RICH_covering_thickness/2)" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_top_bottom_2_2" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_side"/>
-<position name="rich1_pos_RICH_covering_side_1" x="(-RICH_exit_width/2-RICH_covering_thickness/2)" y="0" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_side_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_side"/>
-<position name="rich1_pos_RICH_covering_side_2" x="(RICH_exit_width/2+RICH_covering_thickness/2)" y="0" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_side_2" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_entrance"/>
-<position name="rich1_pos_RICH_covering_entrance_1" x="0" y="0" z="(-RICH_length/2+1-kapton_thickness/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_entrance_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_exit"/>
-<position name="rich1_pos_RICH_covering_exit_1" x="0" y="0" z="(RICH_length/2+1+kapton_thickness/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_exit_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_sloping"/>
-<position name="rich1_pos_RICH_covering_sloping_1" x="((RICH_entrance_width+RICH_exit_width+2*RICH_covering_thickness+entrance_width_addend)/4)" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_sloping_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_sloping"/>
-<position name="rich1_pos_RICH_covering_sloping_2" x="(-(RICH_entrance_width+RICH_exit_width+2*RICH_covering_thickness+entrance_width_addend)/4)" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_sloping_2" x="0" y="0" z="-180" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_pipe"/>
-<position name="rich1_pos_RICH_pipe_1" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))+1-RICH_covering_thickness+((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
-<rotation name="rich1_rot_RICH_pipe_1" x="0" y="-(RICH_pipe_angle)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_gas"/>
-<position name="rich1_pos_RICH_gas_1" x="0" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_gas_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<!--
-<assembly name="TOP">
-<physvol>
-<volumeref ref="rich1"/>
-<position name="TOP_pos_rich1_1" x="0" y="0" z="(RICH_position_from_IP+kapton_thickness+RICH_length/2-1)" unit="mm"/>
-<rotation name="TOP_rot_rich1_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-</assembly>
--->
-</structure>
-
-<setup name="FAIRgeom" version="1.0">
-<world ref="rich1"/>
-<!--<world ref="TOP"/>-->
-</setup>
-
-</gdml>
+</define>
+
+<materials>
+<material name="vacuum" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="aluminium" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="kapton" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="RICHglass" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="RICHgas_CO2_dis" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="CsI" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="RICHgas_CO2_dis+" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="air" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+</materials>
+
+<solids>
+<cone name="RICH_pipe_vac_RICH_pipe_vac_2" rmin1="0" rmax1="(RICH_pipe_entrance_r-RICH_pipe_entrance_thickness)" rmin2="0" rmax2="(RICH_pipe_exit_r-RICH_pipe_exit_thickness)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<tube name="RICH_pipe_vac_RICH_pipe_vac_3" rmin="0" rmax="(RICH_pipe_entrance_r-RICH_pipe_entrance_thickness)*cos((RICH_pipe_angle)*DEGtoRAD)" z="(1.5)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<union name="RICH_pipe_vac_PartBody">
+<first ref="RICH_pipe_vac_RICH_pipe_vac_2"/>
+<second ref="RICH_pipe_vac_RICH_pipe_vac_3"/>
+<position name="RICH_pipe_vac__position__RICH_pipe_vac_3__by__RICH_pipe_vac_2" x="((49.5-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD)))*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)+(RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))-0.5)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
+<rotation name="RICH_pipe_vac__rotation__RICH_pipe_vac_3__by__RICH_pipe_vac_2" x="0" y="(-RICH_pipe_angle)" z="0" unit="degree"/>
+</union>
+<cone name="RICH_pipe_RICH_pipe_4" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<tube name="RICH_pipe_RICH_pipe_3" rmin="0" rmax="(RICH_pipe_entrance_r*cos((RICH_pipe_angle)*DEGtoRAD))" z="(1.5)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<union name="RICH_pipe_PartBody">
+<first ref="RICH_pipe_RICH_pipe_4"/>
+<second ref="RICH_pipe_RICH_pipe_3"/>
+<position name="RICH_pipe__position__RICH_pipe_3__by__RICH_pipe_4" x="((49.5-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD)))*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)+(RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))-0.5)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
+<rotation name="RICH_pipe__rotation__RICH_pipe_3__by__RICH_pipe_4" x="0" y="(-RICH_pipe_angle)" z="0" unit="degree"/>
+</union>
+<box name="RICH_covering_entrance_RICH_covering_entrance_2" x="((RICH_entrance_width/2+RICH_covering_thickness+entrance_width_addend))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness/2))*2" lunit="mm"/>
+<cone name="RICH_covering_entrance_RICH_covering_entrance_3" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<subtraction name="RICH_covering_entrance_PartBody">
+<first ref="RICH_covering_entrance_RICH_covering_entrance_2"/>
+<second ref="RICH_covering_entrance_RICH_covering_entrance_3"/>
+<position name="RICH_covering_entrance__position__RICH_covering_entrance_3__by__RICH_covering_entrance_2" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(RICH_length/2+kapton_thickness/2+(RICH_pipe_exit_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
+<rotation name="RICH_covering_entrance__rotation__RICH_covering_entrance_3__by__RICH_covering_entrance_2" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
+</subtraction>
+<trap name="RICH_covering_sloping_PartBody" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" theta="(atan(tan((RICH_trapezoid_angle/2)*DEGtoRAD)*(RICH_exit_width-RICH_entrance_width-entrance_width_addend)/(RICH_exit_width-RICH_entrance_width))/DEGtoRAD)" phi="0" y1="((RICH_height/2+RICH_covering_thickness))*2" x1="((RICH_covering_thickness/2+entrance_width_addend/2))*2" x2="((RICH_covering_thickness/2+entrance_width_addend/2))*2" alpha1="0" y2="((RICH_height/2+RICH_covering_thickness))*2" x3="((RICH_covering_thickness/2))*2" x4="((RICH_covering_thickness/2))*2" alpha2="0" lunit="mm" aunit="degree"/>
+<trd name="RICH_covering_top_bottom_1_PartBody" x1="((RICH_entrance_width/2))*2" x2="((RICH_exit_width/2))*2" y1="((RICH_covering_thickness/2))*2" y2="((RICH_covering_thickness/2))*2" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<box name="RICH_covering_top_bottom_2_PartBody" x="((RICH_exit_width/2))*2" y="((RICH_covering_thickness/2))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<box name="RICH_covering_side_PartBody" x="((RICH_covering_thickness/2))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<box name="RICH_covering_exit_RICH_covering_exit_2" x="((RICH_exit_width/2+RICH_covering_thickness))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness/2))*2" lunit="mm"/>
+<cone name="RICH_covering_exit_RICH_covering_exit_3" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<subtraction name="RICH_covering_exit_PartBody">
+<first ref="RICH_covering_exit_RICH_covering_exit_2"/>
+<second ref="RICH_covering_exit_RICH_covering_exit_3"/>
+<position name="RICH_covering_exit__position__RICH_covering_exit_3__by__RICH_covering_exit_2" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-kapton_thickness/2-(RICH_pipe_entrance_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
+<rotation name="RICH_covering_exit__rotation__RICH_covering_exit_3__by__RICH_covering_exit_2" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
+</subtraction>
+<sphere name="RICH_mirror_1_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="6.52" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_2_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="90.038" deltatheta="8.118" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_3_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="4" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_and_support_belt_strip_cut_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+mirror_cont_supp_addend_out)" startphi="-4.106" deltaphi="8.212" starttheta="75.237" deltatheta="27" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_and_support_belt_strip_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+mirror_cont_supp_addend_out)" startphi="-4.106" deltaphi="8.212" starttheta="75.237" deltatheta="29.527" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_replica_PartBody" rmin="(RICH_mirror_r)" rmax="((RICH_mirror_r+mirror_cont_supp_addend_out))" startphi="-36.954" deltaphi="32.848" starttheta="75.237" deltatheta="29.527" lunit="mm" aunit="degree"/>
+<box name="rich1d_PartBody" x="((pmt_width/2))*2" y="((pmt_height/2))*2" z="((pmt_thickness/2))*2" lunit="mm"/>
+<box name="Sens_plane_3" x="(2468)*2" y="(2875)*2" z="(0.5)*2" lunit="mm"/>
+<tube name="Sens_plane_2" rmin="0" rmax="160" z="(1)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<subtraction name="Sens_plane_PartBody">
+<first ref="Sens_plane_3"/>
+<second ref="Sens_plane_2"/>
+<positionref ref="central"/>
+<rotationref ref="identity"/>
+</subtraction>
+<box name="RICH_gas_RICH_gas_5" x="((RICH_exit_width/2))*2" y="((RICH_height/2))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<cone name="RICH_gas_RICH_gas_7" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<trd name="RICH_gas_RICH_gas_4" x1="((RICH_entrance_width/2))*2" x2="((RICH_exit_width/2))*2" y1="((RICH_height/2))*2" y2="((RICH_height/2))*2" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<union name="RICH_gas_RICH_gas_6">
+<first ref="RICH_gas_RICH_gas_4"/>
+<second ref="RICH_gas_RICH_gas_5"/>
+<position name="RICH_gas__position__RICH_gas_5__by__RICH_gas_4" x="0" y="0" z="(RICH_length/2)" unit="mm"/>
+<rotationref ref="identity"/>
+</union>
+<subtraction name="RICH_gas_PartBody">
+<first ref="RICH_gas_RICH_gas_6"/>
+<second ref="RICH_gas_RICH_gas_7"/>
+<position name="RICH_gas__position__RICH_gas_7__by__RICH_gas_6" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2+RICH_length/2+(RICH_pipe_exit_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
+<rotation name="RICH_gas__rotation__RICH_gas_7__by__RICH_gas_6" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
+</subtraction>
+<box name="rich1_rich1_16" x="((RICH_exit_width/2+RICH_covering_thickness))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness+RICH_length/2+1))*2" lunit="mm"/>
+<cone name="rich1_rich1_17" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<union name="rich1_PartBody">
+<first ref="rich1_rich1_16"/>
+<second ref="rich1_rich1_17"/>
+<position name="rich1__position__rich1_17__by__rich1_16" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))+1-RICH_covering_thickness+((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
+<rotation name="rich1__rotation__rich1_17__by__rich1_16" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
+</union>
+</solids>
+
+<structure>
+<volume name="RICH_pipe_vac">
+<materialref ref="vacuum"/>
+<solidref ref="RICH_pipe_vac_PartBody"/>
+</volume>
+<volume name="RICH_pipe">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_pipe_PartBody"/>
+<physvol>
+<volumeref ref="RICH_pipe_vac"/>
+<position name="RICH_pipe_pos_RICH_pipe_vac_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_pipe_rot_RICH_pipe_vac_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<volume name="RICH_covering_entrance">
+<materialref ref="kapton"/>
+<solidref ref="RICH_covering_entrance_PartBody"/>
+</volume>
+<volume name="RICH_covering_sloping">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_covering_sloping_PartBody"/>
+</volume>
+<volume name="RICH_covering_top_bottom_1">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_covering_top_bottom_1_PartBody"/>
+</volume>
+<volume name="RICH_covering_top_bottom_2">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_covering_top_bottom_2_PartBody"/>
+</volume>
+<volume name="RICH_covering_side">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_covering_side_PartBody"/>
+</volume>
+<volume name="RICH_covering_exit">
+<materialref ref="kapton"/>
+<solidref ref="RICH_covering_exit_PartBody"/>
+</volume>
+<volume name="RICH_mirror_1">
+<materialref ref="RICHglass"/>
+<solidref ref="RICH_mirror_1_PartBody"/>
+</volume>
+<volume name="RICH_mirror_2">
+<materialref ref="RICHglass"/>
+<solidref ref="RICH_mirror_2_PartBody"/>
+</volume>
+<volume name="RICH_mirror_3">
+<materialref ref="RICHglass"/>
+<solidref ref="RICH_mirror_3_PartBody"/>
+</volume>
+<volume name="RICH_mirror_and_support_belt_strip_cut">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="RICH_mirror_and_support_belt_strip_cut_PartBody"/>
+<physvol>
+<volumeref ref="RICH_mirror_2"/>
+<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_2_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_2_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_2"/>
+<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_2_2" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_2_2" x="-180" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_3"/>
+<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_3_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_3_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_1"/>
+<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_1_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_1_1" x="-180" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<volume name="RICH_mirror_and_support_belt_strip">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="RICH_mirror_and_support_belt_strip_PartBody"/>
+<physvol>
+<volumeref ref="RICH_mirror_1"/>
+<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_1_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_1_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_1"/>
+<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_1_2" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_1_2" x="-180" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_2"/>
+<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_2_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_2_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_2"/>
+<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_2_2" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_2_2" x="-180" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<volume name="RICH_mirror_replica">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="RICH_mirror_replica_PartBody"/>
+<divisionvol number="4" offset="0" width=" 8.212" axis="kPhi" unit="degree">
+<volumeref ref="RICH_mirror_and_support_belt_strip"/>
+</divisionvol>
+</volume>
+<assembly name="RICH_mirror_half_total">
+<physvol>
+<volumeref ref="RICH_mirror_and_support_belt_strip_cut"/>
+<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_cut_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_cut_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_replica"/>
+<position name="RICH_mirror_half_total__pos__RICH_mirror_replica_0" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_half_total__rot__RICH_mirror_replica_0" x="-179.999999999029" y="179.999999999" z="180.000000001029" unit="deg"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_replica"/>
+<position name="RICH_mirror_half_total__pos__RICH_mirror_replica_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_half_total__rot__RICH_mirror_replica_1" x="0" y="1.41087114226969E-09" z="318.940000001" unit="deg"/>
+</physvol>
+</assembly>
+<volume name="rich1d">
+<materialref ref="CsI"/>
+<solidref ref="rich1d_PartBody"/>
+</volume>
+<volume name="Sens_plane">
+<materialref ref="RICHgas_CO2_dis+"/>
+<solidref ref="Sens_plane_PartBody"/>
+</volume>
+<volume name="RICH_gas">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="RICH_gas_PartBody"/>
+<physvol>
+<volumeref ref="rich1d"/>
+<position name="RICH_gas_pos_rich1d_1" x="((pmt_width/2)+10+pmt_pos_x_addend)" y="(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
+<rotation name="RICH_gas_rot_rich1d_1" x="-(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(18.477+pmt_rot_y_addend)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="rich1d"/>
+<position name="RICH_gas_pos_rich1d_2" x="-((pmt_width/2)+10+pmt_pos_x_addend)" y="(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
+<rotation name="RICH_gas_rot_rich1d_2" x="-(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(-18.477-pmt_rot_y_addend)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="rich1d"/>
+<position name="RICH_gas_pos_rich1d_3" x="((pmt_width/2)+10+pmt_pos_x_addend)" y="-(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
+<rotation name="RICH_gas_rot_rich1d_3" x="(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(18.477+pmt_rot_y_addend)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="rich1d"/>
+<position name="RICH_gas_pos_rich1d_4" x="-((pmt_width/2)+10+pmt_pos_x_addend)" y="-(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
+<rotation name="RICH_gas_rot_rich1d_4" x="(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(-18.477-pmt_rot_y_addend)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_half_total"/>
+<position name="RICH_gas_pos_RICH_mirror_half_total_1" x="0" y="(-RICH_mirror_Y_shift+RICH_mirror_r*sin((RICH_mirror_angle)*DEGtoRAD))" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_mirror_r*cos((RICH_mirror_angle)*DEGtoRAD)+RICH_mirror_position_from_IP-RICH_position_from_IP-RICH_covering_thickness)" unit="mm"/>
+<rotation name="RICH_gas_rot_RICH_mirror_half_total_1" x="-(90+RICH_mirror_angle)" y="0" z="-90" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_half_total"/>
+<position name="RICH_gas_pos_RICH_mirror_half_total_2" x="0" y="(RICH_mirror_Y_shift-RICH_mirror_r*sin((RICH_mirror_angle)*DEGtoRAD))" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_mirror_r*cos((RICH_mirror_angle)*DEGtoRAD)+RICH_mirror_position_from_IP-RICH_position_from_IP-RICH_covering_thickness)" unit="mm"/>
+<rotation name="RICH_gas_rot_RICH_mirror_half_total_2" x="-(-90-RICH_mirror_angle)" y="0" z="90" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="Sens_plane"/>
+<position name="RICH_gas_pos_Sens_plane_1" x="0" y="0" z="700" unit="mm"/>
+<rotation name="RICH_gas_rot_Sens_plane_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<volume name="rich1">
+<materialref ref="air"/>
+<solidref ref="rich1_PartBody"/>
+<physvol>
+<volumeref ref="RICH_covering_top_bottom_1"/>
+<position name="rich1_pos_RICH_covering_top_bottom_1_1" x="0" y="(RICH_height/2+RICH_covering_thickness/2)" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_top_bottom_1_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_top_bottom_1"/>
+<position name="rich1_pos_RICH_covering_top_bottom_1_2" x="0" y="(-RICH_height/2-RICH_covering_thickness/2)" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_top_bottom_1_2" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_top_bottom_2"/>
+<position name="rich1_pos_RICH_covering_top_bottom_2_1" x="0" y="(RICH_height/2+RICH_covering_thickness/2)" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_top_bottom_2_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_top_bottom_2"/>
+<position name="rich1_pos_RICH_covering_top_bottom_2_2" x="0" y="(-RICH_height/2-RICH_covering_thickness/2)" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_top_bottom_2_2" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_side"/>
+<position name="rich1_pos_RICH_covering_side_1" x="(-RICH_exit_width/2-RICH_covering_thickness/2)" y="0" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_side_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_side"/>
+<position name="rich1_pos_RICH_covering_side_2" x="(RICH_exit_width/2+RICH_covering_thickness/2)" y="0" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_side_2" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_entrance"/>
+<position name="rich1_pos_RICH_covering_entrance_1" x="0" y="0" z="(-RICH_length/2+1-kapton_thickness/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_entrance_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_exit"/>
+<position name="rich1_pos_RICH_covering_exit_1" x="0" y="0" z="(RICH_length/2+1+kapton_thickness/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_exit_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_sloping"/>
+<position name="rich1_pos_RICH_covering_sloping_1" x="((RICH_entrance_width+RICH_exit_width+2*RICH_covering_thickness+entrance_width_addend)/4)" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_sloping_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_sloping"/>
+<position name="rich1_pos_RICH_covering_sloping_2" x="(-(RICH_entrance_width+RICH_exit_width+2*RICH_covering_thickness+entrance_width_addend)/4)" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_sloping_2" x="0" y="0" z="-180" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_pipe"/>
+<position name="rich1_pos_RICH_pipe_1" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))+1-RICH_covering_thickness+((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
+<rotation name="rich1_rot_RICH_pipe_1" x="0" y="-(RICH_pipe_angle)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_gas"/>
+<position name="rich1_pos_RICH_gas_1" x="0" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_gas_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<!--
+<assembly name="TOP">
+<physvol>
+<volumeref ref="rich1"/>
+<position name="TOP_pos_rich1_1" x="0" y="0" z="(RICH_position_from_IP+kapton_thickness+RICH_length/2-1)" unit="mm"/>
+<rotation name="TOP_rot_rich1_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+</assembly>
+-->
+</structure>
+
+<setup name="FAIRgeom" version="1.0">
+<world ref="rich1"/>
+<!--<world ref="TOP"/>-->
+</setup>
+
+</gdml>
diff --git a/macro/rich/geotest/TransPMT/CreateGeo/2015_minus10deg_.gdml b/macro/rich/geotest/TransPMT/CreateGeo/2015_minus10deg_.gdml
index 58416b9b62..a226f2512e 100644
--- a/macro/rich/geotest/TransPMT/CreateGeo/2015_minus10deg_.gdml
+++ b/macro/rich/geotest/TransPMT/CreateGeo/2015_minus10deg_.gdml
@@ -1,409 +1,409 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<gdml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://service-spi.web.cern.ch/service-spi/app/releases/GDML/schema/gdml.xsd">
-
-<define>
-<position name="central" x="0" y="0" z="0" unit="mm"/>
-<rotation name="identity" x="0" y="0" z="0" unit="degree"/>
-<variable name="RICH_trapezoid_angle" value="116"/>
-<variable name="RICH_entrance_width" value="3500"/>
-<variable name="RICH_exit_width" value="5136"/>
-<variable name="RICH_height" value="6000"/>
-<variable name="RICH_length" value="2197.5"/>
-<variable name="RICH_covering_thickness" value="5"/>
-<variable name="entrance_width_addend" value="2"/>
-<variable name="RICH_pipe_entrance_r" value="103.5"/>
-<variable name="RICH_pipe_exit_r" value="170"/>
-<variable name="RICH_pipe_entrance_thickness" value="3"/>
-<variable name="RICH_pipe_exit_thickness" value="5"/>
-<variable name="RICH_pipe_angle" value="0"/>
-<variable name="RICH_position_from_IP" value="1502"/>
-<variable name="RICH_mirror_position_from_IP" value="3500"/>
-<variable name="RICH_mirror_r" value="3000"/>
-<variable name="RICH_mirror_thickness" value="6"/>
-<variable name="mirror_cont_supp_addend_out" value="6"/>
-<variable name="TTT" value="1500"/>
-
-<!--
-minus 10deg setup:
-<variable name="RICH_mirror_Y_shift" value="805"/>
-<variable name="RICH_mirror_angle" value="-10"/>
-<variable name="pmt_rot_x_addend" value="-27.952765"/>
-<variable name="pmt_rot_y_addend" value="-13.477"/>
-<variable name="pmt_pos_x_addend" value="0"/>
-<variable name="pmt_pos_y_addend" value="0"/>
-<variable name="pmt_pos_z_addend" value="0"/>
-
-plus 1deg setup:
--->
-
-<variable name="RICH_mirror_Y_shift" value="805"/>
-
-<variable name="pmt_pos_x_addend" value="0"/>
-<variable name="pmt_pos_y_addend" value="0"/>
-
-<variable name="kapton_thickness" value="0.25"/>
-<variable name="DEGtoRAD" value="1.74532925199433E-02"/>
-</define>
-
-<materials>
-<material name="vacuum" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="aluminium" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="kapton" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="RICHglass" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="RICHgas_CO2_dis" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="CsI" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="RICHgas_CO2_dis+" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="air" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-</materials>
-
-<solids>
-<cone name="RICH_pipe_vac_RICH_pipe_vac_2" rmin1="0" rmax1="(RICH_pipe_entrance_r-RICH_pipe_entrance_thickness)" rmin2="0" rmax2="(RICH_pipe_exit_r-RICH_pipe_exit_thickness)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<tube name="RICH_pipe_vac_RICH_pipe_vac_3" rmin="0" rmax="(RICH_pipe_entrance_r-RICH_pipe_entrance_thickness)*cos((RICH_pipe_angle)*DEGtoRAD)" z="(1.5)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<union name="RICH_pipe_vac_PartBody">
-<first ref="RICH_pipe_vac_RICH_pipe_vac_2"/>
-<second ref="RICH_pipe_vac_RICH_pipe_vac_3"/>
-<position name="RICH_pipe_vac__position__RICH_pipe_vac_3__by__RICH_pipe_vac_2" x="((49.5-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD)))*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)+(RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))-0.5)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
-<rotation name="RICH_pipe_vac__rotation__RICH_pipe_vac_3__by__RICH_pipe_vac_2" x="0" y="(-RICH_pipe_angle)" z="0" unit="degree"/>
-</union>
-<cone name="RICH_pipe_RICH_pipe_4" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<tube name="RICH_pipe_RICH_pipe_3" rmin="0" rmax="(RICH_pipe_entrance_r*cos((RICH_pipe_angle)*DEGtoRAD))" z="(1.5)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<union name="RICH_pipe_PartBody">
-<first ref="RICH_pipe_RICH_pipe_4"/>
-<second ref="RICH_pipe_RICH_pipe_3"/>
-<position name="RICH_pipe__position__RICH_pipe_3__by__RICH_pipe_4" x="((49.5-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD)))*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)+(RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))-0.5)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
-<rotation name="RICH_pipe__rotation__RICH_pipe_3__by__RICH_pipe_4" x="0" y="(-RICH_pipe_angle)" z="0" unit="degree"/>
-</union>
-<box name="RICH_covering_entrance_RICH_covering_entrance_2" x="((RICH_entrance_width/2+RICH_covering_thickness+entrance_width_addend))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness/2))*2" lunit="mm"/>
-<cone name="RICH_covering_entrance_RICH_covering_entrance_3" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<subtraction name="RICH_covering_entrance_PartBody">
-<first ref="RICH_covering_entrance_RICH_covering_entrance_2"/>
-<second ref="RICH_covering_entrance_RICH_covering_entrance_3"/>
-<position name="RICH_covering_entrance__position__RICH_covering_entrance_3__by__RICH_covering_entrance_2" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(RICH_length/2+kapton_thickness/2+(RICH_pipe_exit_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
-<rotation name="RICH_covering_entrance__rotation__RICH_covering_entrance_3__by__RICH_covering_entrance_2" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
-</subtraction>
-<trap name="RICH_covering_sloping_PartBody" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" theta="(atan(tan((RICH_trapezoid_angle/2)*DEGtoRAD)*(RICH_exit_width-RICH_entrance_width-entrance_width_addend)/(RICH_exit_width-RICH_entrance_width))/DEGtoRAD)" phi="0" y1="((RICH_height/2+RICH_covering_thickness))*2" x1="((RICH_covering_thickness/2+entrance_width_addend/2))*2" x2="((RICH_covering_thickness/2+entrance_width_addend/2))*2" alpha1="0" y2="((RICH_height/2+RICH_covering_thickness))*2" x3="((RICH_covering_thickness/2))*2" x4="((RICH_covering_thickness/2))*2" alpha2="0" lunit="mm" aunit="degree"/>
-<trd name="RICH_covering_top_bottom_1_PartBody" x1="((RICH_entrance_width/2))*2" x2="((RICH_exit_width/2))*2" y1="((RICH_covering_thickness/2))*2" y2="((RICH_covering_thickness/2))*2" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<box name="RICH_covering_top_bottom_2_PartBody" x="((RICH_exit_width/2))*2" y="((RICH_covering_thickness/2))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<box name="RICH_covering_side_PartBody" x="((RICH_covering_thickness/2))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<box name="RICH_covering_exit_RICH_covering_exit_2" x="((RICH_exit_width/2+RICH_covering_thickness))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness/2))*2" lunit="mm"/>
-<cone name="RICH_covering_exit_RICH_covering_exit_3" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<subtraction name="RICH_covering_exit_PartBody">
-<first ref="RICH_covering_exit_RICH_covering_exit_2"/>
-<second ref="RICH_covering_exit_RICH_covering_exit_3"/>
-<position name="RICH_covering_exit__position__RICH_covering_exit_3__by__RICH_covering_exit_2" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-kapton_thickness/2-(RICH_pipe_entrance_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
-<rotation name="RICH_covering_exit__rotation__RICH_covering_exit_3__by__RICH_covering_exit_2" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
-</subtraction>
-<sphere name="RICH_mirror_1_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="6.52" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_2_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="90.038" deltatheta="8.118" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_3_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="4" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_and_support_belt_strip_cut_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+mirror_cont_supp_addend_out)" startphi="-4.106" deltaphi="8.212" starttheta="75.2365" deltatheta="27" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_and_support_belt_strip_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+mirror_cont_supp_addend_out)" startphi="-4.106" deltaphi="8.212" starttheta="75.2365" deltatheta="29.527" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_replica_PartBody" rmin="(RICH_mirror_r)" rmax="((RICH_mirror_r+mirror_cont_supp_addend_out))" startphi="-36.954" deltaphi="32.848" starttheta="75.2365" deltatheta="29.527" lunit="mm" aunit="degree"/>
-<box name="rich1d_PartBody" x="((pmt_width/2))*2" y="((pmt_height/2))*2" z="((pmt_thickness/2))*2" lunit="mm"/>
-<box name="Sens_plane_3" x="((RICH_exit_width/2))*2" y="((RICH_height/2))*2" z="(0.5)*2" lunit="mm"/>
-<tube name="Sens_plane_2" rmin="0" rmax="160" z="(1)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<subtraction name="Sens_plane_PartBody">
-<first ref="Sens_plane_3"/>
-<second ref="Sens_plane_2"/>
-<positionref ref="central"/>
-<rotationref ref="identity"/>
-</subtraction>
-<box name="RICH_gas_RICH_gas_5" x="((RICH_exit_width/2))*2" y="((RICH_height/2))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<cone name="RICH_gas_RICH_gas_7" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<trd name="RICH_gas_RICH_gas_4" x1="((RICH_entrance_width/2))*2" x2="((RICH_exit_width/2))*2" y1="((RICH_height/2))*2" y2="((RICH_height/2))*2" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<union name="RICH_gas_RICH_gas_6">
-<first ref="RICH_gas_RICH_gas_4"/>
-<second ref="RICH_gas_RICH_gas_5"/>
-<position name="RICH_gas__position__RICH_gas_5__by__RICH_gas_4" x="0" y="0" z="(RICH_length/2)" unit="mm"/>
-<rotationref ref="identity"/>
-</union>
-<subtraction name="RICH_gas_PartBody">
-<first ref="RICH_gas_RICH_gas_6"/>
-<second ref="RICH_gas_RICH_gas_7"/>
-<position name="RICH_gas__position__RICH_gas_7__by__RICH_gas_6" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2+RICH_length/2+(RICH_pipe_exit_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
-<rotation name="RICH_gas__rotation__RICH_gas_7__by__RICH_gas_6" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
-</subtraction>
-<box name="rich1_rich1_16" x="((RICH_exit_width/2+RICH_covering_thickness))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness+RICH_length/2+1))*2" lunit="mm"/>
-<cone name="rich1_rich1_17" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<union name="rich1_PartBody">
-<first ref="rich1_rich1_16"/>
-<second ref="rich1_rich1_17"/>
-<position name="rich1__position__rich1_17__by__rich1_16" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))+1-RICH_covering_thickness+((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
-<rotation name="rich1__rotation__rich1_17__by__rich1_16" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
-</union>
-</solids>
-
-<structure>
-<volume name="RICH_pipe_vac">
-<materialref ref="vacuum"/>
-<solidref ref="RICH_pipe_vac_PartBody"/>
-</volume>
-<volume name="RICH_pipe">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_pipe_PartBody"/>
-<physvol>
-<volumeref ref="RICH_pipe_vac"/>
-<position name="RICH_pipe_pos_RICH_pipe_vac_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_pipe_rot_RICH_pipe_vac_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<volume name="RICH_covering_entrance">
-<materialref ref="kapton"/>
-<solidref ref="RICH_covering_entrance_PartBody"/>
-</volume>
-<volume name="RICH_covering_sloping">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_covering_sloping_PartBody"/>
-</volume>
-<volume name="RICH_covering_top_bottom_1">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_covering_top_bottom_1_PartBody"/>
-</volume>
-<volume name="RICH_covering_top_bottom_2">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_covering_top_bottom_2_PartBody"/>
-</volume>
-<volume name="RICH_covering_side">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_covering_side_PartBody"/>
-</volume>
-<volume name="RICH_covering_exit">
-<materialref ref="kapton"/>
-<solidref ref="RICH_covering_exit_PartBody"/>
-</volume>
-<volume name="RICH_mirror_1">
-<materialref ref="RICHglass"/>
-<solidref ref="RICH_mirror_1_PartBody"/>
-</volume>
-<volume name="RICH_mirror_2">
-<materialref ref="RICHglass"/>
-<solidref ref="RICH_mirror_2_PartBody"/>
-</volume>
-<volume name="RICH_mirror_3">
-<materialref ref="RICHglass"/>
-<solidref ref="RICH_mirror_3_PartBody"/>
-</volume>
-<volume name="RICH_mirror_and_support_belt_strip_cut">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="RICH_mirror_and_support_belt_strip_cut_PartBody"/>
-<physvol>
-<volumeref ref="RICH_mirror_2"/>
-<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_2_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_2_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_2"/>
-<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_2_2" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_2_2" x="-180" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_3"/>
-<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_3_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_3_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_1"/>
-<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_1_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_1_1" x="-180" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<volume name="RICH_mirror_and_support_belt_strip">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="RICH_mirror_and_support_belt_strip_PartBody"/>
-<physvol>
-<volumeref ref="RICH_mirror_1"/>
-<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_1_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_1_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_1"/>
-<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_1_2" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_1_2" x="-180" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_2"/>
-<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_2_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_2_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_2"/>
-<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_2_2" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_2_2" x="-180" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<volume name="RICH_mirror_replica">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="RICH_mirror_replica_PartBody"/>
-<divisionvol number="4" offset="0" width=" 8.212" axis="kPhi" unit="degree">
-<volumeref ref="RICH_mirror_and_support_belt_strip"/>
-</divisionvol>
-</volume>
-<assembly name="RICH_mirror_half_total">
-<physvol>
-<volumeref ref="RICH_mirror_and_support_belt_strip_cut"/>
-<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_cut_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_cut_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_replica"/>
-<position name="RICH_mirror_half_total__pos__RICH_mirror_replica_0" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_half_total__rot__RICH_mirror_replica_0" x="-180" y="180" z="180" unit="deg"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_replica"/>
-<position name="RICH_mirror_half_total__pos__RICH_mirror_replica_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_half_total__rot__RICH_mirror_replica_1" x="0" y="0" z="318.94" unit="deg"/>
-</physvol>
-</assembly>
-<volume name="rich1d">
-<materialref ref="CsI"/>
-<solidref ref="rich1d_PartBody"/>
-</volume>
-<volume name="Sens_plane">
-<materialref ref="RICHgas_CO2_dis+"/>
-<solidref ref="Sens_plane_PartBody"/>
-</volume>
-<volume name="RICH_gas">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="RICH_gas_PartBody"/>
-<physvol>
-<volumeref ref="rich1d"/>
-<position name="RICH_gas_pos_rich1d_1" x="((pmt_width/2)+10+pmt_pos_x_addend)" y="(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
-<rotation name="RICH_gas_rot_rich1d_1" x="-(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(18.477+pmt_rot_y_addend)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="rich1d"/>
-<position name="RICH_gas_pos_rich1d_2" x="-((pmt_width/2)+10+pmt_pos_x_addend)" y="(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
-<rotation name="RICH_gas_rot_rich1d_2" x="-(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(-18.477-pmt_rot_y_addend)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="rich1d"/>
-<position name="RICH_gas_pos_rich1d_3" x="((pmt_width/2)+10+pmt_pos_x_addend)" y="-(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
-<rotation name="RICH_gas_rot_rich1d_3" x="(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(18.477+pmt_rot_y_addend)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="rich1d"/>
-<position name="RICH_gas_pos_rich1d_4" x="-((pmt_width/2)+10+pmt_pos_x_addend)" y="-(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
-<rotation name="RICH_gas_rot_rich1d_4" x="(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(-18.477-pmt_rot_y_addend)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_half_total"/>
-<position name="RICH_gas_pos_RICH_mirror_half_total_1" x="0" y="(-RICH_mirror_Y_shift+RICH_mirror_r*sin((RICH_mirror_angle)*DEGtoRAD))" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_mirror_r*cos((RICH_mirror_angle)*DEGtoRAD)+RICH_mirror_position_from_IP-RICH_position_from_IP-RICH_covering_thickness)" unit="mm"/>
-<rotation name="RICH_gas_rot_RICH_mirror_half_total_1" x="-(90+RICH_mirror_angle)" y="0" z="-90" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_half_total"/>
-<position name="RICH_gas_pos_RICH_mirror_half_total_2" x="0" y="(RICH_mirror_Y_shift-RICH_mirror_r*sin((RICH_mirror_angle)*DEGtoRAD))" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_mirror_r*cos((RICH_mirror_angle)*DEGtoRAD)+RICH_mirror_position_from_IP-RICH_position_from_IP-RICH_covering_thickness)" unit="mm"/>
-<rotation name="RICH_gas_rot_RICH_mirror_half_total_2" x="-(-90-RICH_mirror_angle)" y="0" z="90" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="Sens_plane"/>
-<position name="RICH_gas_pos_Sens_plane_1" x="0" y="0" z="930" unit="mm"/>
-<rotation name="RICH_gas_rot_Sens_plane_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<volume name="rich1">
-<materialref ref="air"/>
-<solidref ref="rich1_PartBody"/>
-<physvol>
-<volumeref ref="RICH_covering_top_bottom_1"/>
-<position name="rich1_pos_RICH_covering_top_bottom_1_1" x="0" y="(RICH_height/2+RICH_covering_thickness/2)" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_top_bottom_1_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_top_bottom_1"/>
-<position name="rich1_pos_RICH_covering_top_bottom_1_2" x="0" y="(-RICH_height/2-RICH_covering_thickness/2)" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_top_bottom_1_2" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_top_bottom_2"/>
-<position name="rich1_pos_RICH_covering_top_bottom_2_1" x="0" y="(RICH_height/2+RICH_covering_thickness/2)" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_top_bottom_2_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_top_bottom_2"/>
-<position name="rich1_pos_RICH_covering_top_bottom_2_2" x="0" y="(-RICH_height/2-RICH_covering_thickness/2)" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_top_bottom_2_2" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_side"/>
-<position name="rich1_pos_RICH_covering_side_1" x="(-RICH_exit_width/2-RICH_covering_thickness/2)" y="0" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_side_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_side"/>
-<position name="rich1_pos_RICH_covering_side_2" x="(RICH_exit_width/2+RICH_covering_thickness/2)" y="0" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_side_2" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_entrance"/>
-<position name="rich1_pos_RICH_covering_entrance_1" x="0" y="0" z="(-RICH_length/2+1-kapton_thickness/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_entrance_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_exit"/>
-<position name="rich1_pos_RICH_covering_exit_1" x="0" y="0" z="(RICH_length/2+1+kapton_thickness/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_exit_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_sloping"/>
-<position name="rich1_pos_RICH_covering_sloping_1" x="((RICH_entrance_width+RICH_exit_width+2*RICH_covering_thickness+entrance_width_addend)/4)" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_sloping_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_sloping"/>
-<position name="rich1_pos_RICH_covering_sloping_2" x="(-(RICH_entrance_width+RICH_exit_width+2*RICH_covering_thickness+entrance_width_addend)/4)" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_sloping_2" x="0" y="0" z="-180" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_pipe"/>
-<position name="rich1_pos_RICH_pipe_1" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))+1-RICH_covering_thickness+((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
-<rotation name="rich1_rot_RICH_pipe_1" x="0" y="-(RICH_pipe_angle)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_gas"/>
-<position name="rich1_pos_RICH_gas_1" x="0" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_gas_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<!--
-<assembly name="TOP">
-<physvol>
-<volumeref ref="rich1"/>
-<position name="TOP_pos_rich1_1" x="0" y="0" z="(RICH_position_from_IP+kapton_thickness+RICH_length/2-1)" unit="mm"/>
-<rotation name="TOP_rot_rich1_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-</assembly>
--->
-</structure>
-
-<setup name="FAIRgeom" version="1.0">
-<world ref="rich1"/>
-<!--<world ref="TOP"/>-->
-</setup>
-
-</gdml>
+<?xml version="1.0" encoding="UTF-8"?>
+<gdml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://service-spi.web.cern.ch/service-spi/app/releases/GDML/schema/gdml.xsd">
+
+<define>
+<position name="central" x="0" y="0" z="0" unit="mm"/>
+<rotation name="identity" x="0" y="0" z="0" unit="degree"/>
+<variable name="RICH_trapezoid_angle" value="116"/>
+<variable name="RICH_entrance_width" value="3500"/>
+<variable name="RICH_exit_width" value="5136"/>
+<variable name="RICH_height" value="6000"/>
+<variable name="RICH_length" value="2197.5"/>
+<variable name="RICH_covering_thickness" value="5"/>
+<variable name="entrance_width_addend" value="2"/>
+<variable name="RICH_pipe_entrance_r" value="103.5"/>
+<variable name="RICH_pipe_exit_r" value="170"/>
+<variable name="RICH_pipe_entrance_thickness" value="3"/>
+<variable name="RICH_pipe_exit_thickness" value="5"/>
+<variable name="RICH_pipe_angle" value="0"/>
+<variable name="RICH_position_from_IP" value="1502"/>
+<variable name="RICH_mirror_position_from_IP" value="3500"/>
+<variable name="RICH_mirror_r" value="3000"/>
+<variable name="RICH_mirror_thickness" value="6"/>
+<variable name="mirror_cont_supp_addend_out" value="6"/>
+<variable name="TTT" value="1500"/>
+
+<!--
+minus 10deg setup:
+<variable name="RICH_mirror_Y_shift" value="805"/>
+<variable name="RICH_mirror_angle" value="-10"/>
+<variable name="pmt_rot_x_addend" value="-27.952765"/>
+<variable name="pmt_rot_y_addend" value="-13.477"/>
+<variable name="pmt_pos_x_addend" value="0"/>
+<variable name="pmt_pos_y_addend" value="0"/>
+<variable name="pmt_pos_z_addend" value="0"/>
+
+plus 1deg setup:
+-->
+
+<variable name="RICH_mirror_Y_shift" value="805"/>
+
+<variable name="pmt_pos_x_addend" value="0"/>
+<variable name="pmt_pos_y_addend" value="0"/>
+
+<variable name="kapton_thickness" value="0.25"/>
+<variable name="DEGtoRAD" value="1.74532925199433E-02"/>
+</define>
+
+<materials>
+<material name="vacuum" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="aluminium" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="kapton" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="RICHglass" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="RICHgas_CO2_dis" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="CsI" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="RICHgas_CO2_dis+" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="air" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+</materials>
+
+<solids>
+<cone name="RICH_pipe_vac_RICH_pipe_vac_2" rmin1="0" rmax1="(RICH_pipe_entrance_r-RICH_pipe_entrance_thickness)" rmin2="0" rmax2="(RICH_pipe_exit_r-RICH_pipe_exit_thickness)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<tube name="RICH_pipe_vac_RICH_pipe_vac_3" rmin="0" rmax="(RICH_pipe_entrance_r-RICH_pipe_entrance_thickness)*cos((RICH_pipe_angle)*DEGtoRAD)" z="(1.5)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<union name="RICH_pipe_vac_PartBody">
+<first ref="RICH_pipe_vac_RICH_pipe_vac_2"/>
+<second ref="RICH_pipe_vac_RICH_pipe_vac_3"/>
+<position name="RICH_pipe_vac__position__RICH_pipe_vac_3__by__RICH_pipe_vac_2" x="((49.5-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD)))*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)+(RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))-0.5)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
+<rotation name="RICH_pipe_vac__rotation__RICH_pipe_vac_3__by__RICH_pipe_vac_2" x="0" y="(-RICH_pipe_angle)" z="0" unit="degree"/>
+</union>
+<cone name="RICH_pipe_RICH_pipe_4" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<tube name="RICH_pipe_RICH_pipe_3" rmin="0" rmax="(RICH_pipe_entrance_r*cos((RICH_pipe_angle)*DEGtoRAD))" z="(1.5)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<union name="RICH_pipe_PartBody">
+<first ref="RICH_pipe_RICH_pipe_4"/>
+<second ref="RICH_pipe_RICH_pipe_3"/>
+<position name="RICH_pipe__position__RICH_pipe_3__by__RICH_pipe_4" x="((49.5-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD)))*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)+(RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))-0.5)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
+<rotation name="RICH_pipe__rotation__RICH_pipe_3__by__RICH_pipe_4" x="0" y="(-RICH_pipe_angle)" z="0" unit="degree"/>
+</union>
+<box name="RICH_covering_entrance_RICH_covering_entrance_2" x="((RICH_entrance_width/2+RICH_covering_thickness+entrance_width_addend))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness/2))*2" lunit="mm"/>
+<cone name="RICH_covering_entrance_RICH_covering_entrance_3" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<subtraction name="RICH_covering_entrance_PartBody">
+<first ref="RICH_covering_entrance_RICH_covering_entrance_2"/>
+<second ref="RICH_covering_entrance_RICH_covering_entrance_3"/>
+<position name="RICH_covering_entrance__position__RICH_covering_entrance_3__by__RICH_covering_entrance_2" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(RICH_length/2+kapton_thickness/2+(RICH_pipe_exit_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
+<rotation name="RICH_covering_entrance__rotation__RICH_covering_entrance_3__by__RICH_covering_entrance_2" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
+</subtraction>
+<trap name="RICH_covering_sloping_PartBody" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" theta="(atan(tan((RICH_trapezoid_angle/2)*DEGtoRAD)*(RICH_exit_width-RICH_entrance_width-entrance_width_addend)/(RICH_exit_width-RICH_entrance_width))/DEGtoRAD)" phi="0" y1="((RICH_height/2+RICH_covering_thickness))*2" x1="((RICH_covering_thickness/2+entrance_width_addend/2))*2" x2="((RICH_covering_thickness/2+entrance_width_addend/2))*2" alpha1="0" y2="((RICH_height/2+RICH_covering_thickness))*2" x3="((RICH_covering_thickness/2))*2" x4="((RICH_covering_thickness/2))*2" alpha2="0" lunit="mm" aunit="degree"/>
+<trd name="RICH_covering_top_bottom_1_PartBody" x1="((RICH_entrance_width/2))*2" x2="((RICH_exit_width/2))*2" y1="((RICH_covering_thickness/2))*2" y2="((RICH_covering_thickness/2))*2" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<box name="RICH_covering_top_bottom_2_PartBody" x="((RICH_exit_width/2))*2" y="((RICH_covering_thickness/2))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<box name="RICH_covering_side_PartBody" x="((RICH_covering_thickness/2))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<box name="RICH_covering_exit_RICH_covering_exit_2" x="((RICH_exit_width/2+RICH_covering_thickness))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness/2))*2" lunit="mm"/>
+<cone name="RICH_covering_exit_RICH_covering_exit_3" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<subtraction name="RICH_covering_exit_PartBody">
+<first ref="RICH_covering_exit_RICH_covering_exit_2"/>
+<second ref="RICH_covering_exit_RICH_covering_exit_3"/>
+<position name="RICH_covering_exit__position__RICH_covering_exit_3__by__RICH_covering_exit_2" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-kapton_thickness/2-(RICH_pipe_entrance_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
+<rotation name="RICH_covering_exit__rotation__RICH_covering_exit_3__by__RICH_covering_exit_2" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
+</subtraction>
+<sphere name="RICH_mirror_1_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="6.52" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_2_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="90.038" deltatheta="8.118" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_3_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="4" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_and_support_belt_strip_cut_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+mirror_cont_supp_addend_out)" startphi="-4.106" deltaphi="8.212" starttheta="75.2365" deltatheta="27" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_and_support_belt_strip_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+mirror_cont_supp_addend_out)" startphi="-4.106" deltaphi="8.212" starttheta="75.2365" deltatheta="29.527" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_replica_PartBody" rmin="(RICH_mirror_r)" rmax="((RICH_mirror_r+mirror_cont_supp_addend_out))" startphi="-36.954" deltaphi="32.848" starttheta="75.2365" deltatheta="29.527" lunit="mm" aunit="degree"/>
+<box name="rich1d_PartBody" x="((pmt_width/2))*2" y="((pmt_height/2))*2" z="((pmt_thickness/2))*2" lunit="mm"/>
+<box name="Sens_plane_3" x="((RICH_exit_width/2))*2" y="((RICH_height/2))*2" z="(0.5)*2" lunit="mm"/>
+<tube name="Sens_plane_2" rmin="0" rmax="160" z="(1)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<subtraction name="Sens_plane_PartBody">
+<first ref="Sens_plane_3"/>
+<second ref="Sens_plane_2"/>
+<positionref ref="central"/>
+<rotationref ref="identity"/>
+</subtraction>
+<box name="RICH_gas_RICH_gas_5" x="((RICH_exit_width/2))*2" y="((RICH_height/2))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<cone name="RICH_gas_RICH_gas_7" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<trd name="RICH_gas_RICH_gas_4" x1="((RICH_entrance_width/2))*2" x2="((RICH_exit_width/2))*2" y1="((RICH_height/2))*2" y2="((RICH_height/2))*2" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<union name="RICH_gas_RICH_gas_6">
+<first ref="RICH_gas_RICH_gas_4"/>
+<second ref="RICH_gas_RICH_gas_5"/>
+<position name="RICH_gas__position__RICH_gas_5__by__RICH_gas_4" x="0" y="0" z="(RICH_length/2)" unit="mm"/>
+<rotationref ref="identity"/>
+</union>
+<subtraction name="RICH_gas_PartBody">
+<first ref="RICH_gas_RICH_gas_6"/>
+<second ref="RICH_gas_RICH_gas_7"/>
+<position name="RICH_gas__position__RICH_gas_7__by__RICH_gas_6" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2+RICH_length/2+(RICH_pipe_exit_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
+<rotation name="RICH_gas__rotation__RICH_gas_7__by__RICH_gas_6" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
+</subtraction>
+<box name="rich1_rich1_16" x="((RICH_exit_width/2+RICH_covering_thickness))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness+RICH_length/2+1))*2" lunit="mm"/>
+<cone name="rich1_rich1_17" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<union name="rich1_PartBody">
+<first ref="rich1_rich1_16"/>
+<second ref="rich1_rich1_17"/>
+<position name="rich1__position__rich1_17__by__rich1_16" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))+1-RICH_covering_thickness+((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
+<rotation name="rich1__rotation__rich1_17__by__rich1_16" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
+</union>
+</solids>
+
+<structure>
+<volume name="RICH_pipe_vac">
+<materialref ref="vacuum"/>
+<solidref ref="RICH_pipe_vac_PartBody"/>
+</volume>
+<volume name="RICH_pipe">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_pipe_PartBody"/>
+<physvol>
+<volumeref ref="RICH_pipe_vac"/>
+<position name="RICH_pipe_pos_RICH_pipe_vac_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_pipe_rot_RICH_pipe_vac_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<volume name="RICH_covering_entrance">
+<materialref ref="kapton"/>
+<solidref ref="RICH_covering_entrance_PartBody"/>
+</volume>
+<volume name="RICH_covering_sloping">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_covering_sloping_PartBody"/>
+</volume>
+<volume name="RICH_covering_top_bottom_1">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_covering_top_bottom_1_PartBody"/>
+</volume>
+<volume name="RICH_covering_top_bottom_2">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_covering_top_bottom_2_PartBody"/>
+</volume>
+<volume name="RICH_covering_side">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_covering_side_PartBody"/>
+</volume>
+<volume name="RICH_covering_exit">
+<materialref ref="kapton"/>
+<solidref ref="RICH_covering_exit_PartBody"/>
+</volume>
+<volume name="RICH_mirror_1">
+<materialref ref="RICHglass"/>
+<solidref ref="RICH_mirror_1_PartBody"/>
+</volume>
+<volume name="RICH_mirror_2">
+<materialref ref="RICHglass"/>
+<solidref ref="RICH_mirror_2_PartBody"/>
+</volume>
+<volume name="RICH_mirror_3">
+<materialref ref="RICHglass"/>
+<solidref ref="RICH_mirror_3_PartBody"/>
+</volume>
+<volume name="RICH_mirror_and_support_belt_strip_cut">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="RICH_mirror_and_support_belt_strip_cut_PartBody"/>
+<physvol>
+<volumeref ref="RICH_mirror_2"/>
+<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_2_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_2_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_2"/>
+<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_2_2" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_2_2" x="-180" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_3"/>
+<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_3_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_3_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_1"/>
+<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_1_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_1_1" x="-180" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<volume name="RICH_mirror_and_support_belt_strip">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="RICH_mirror_and_support_belt_strip_PartBody"/>
+<physvol>
+<volumeref ref="RICH_mirror_1"/>
+<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_1_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_1_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_1"/>
+<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_1_2" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_1_2" x="-180" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_2"/>
+<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_2_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_2_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_2"/>
+<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_2_2" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_2_2" x="-180" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<volume name="RICH_mirror_replica">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="RICH_mirror_replica_PartBody"/>
+<divisionvol number="4" offset="0" width=" 8.212" axis="kPhi" unit="degree">
+<volumeref ref="RICH_mirror_and_support_belt_strip"/>
+</divisionvol>
+</volume>
+<assembly name="RICH_mirror_half_total">
+<physvol>
+<volumeref ref="RICH_mirror_and_support_belt_strip_cut"/>
+<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_cut_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_cut_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_replica"/>
+<position name="RICH_mirror_half_total__pos__RICH_mirror_replica_0" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_half_total__rot__RICH_mirror_replica_0" x="-180" y="180" z="180" unit="deg"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_replica"/>
+<position name="RICH_mirror_half_total__pos__RICH_mirror_replica_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_half_total__rot__RICH_mirror_replica_1" x="0" y="0" z="318.94" unit="deg"/>
+</physvol>
+</assembly>
+<volume name="rich1d">
+<materialref ref="CsI"/>
+<solidref ref="rich1d_PartBody"/>
+</volume>
+<volume name="Sens_plane">
+<materialref ref="RICHgas_CO2_dis+"/>
+<solidref ref="Sens_plane_PartBody"/>
+</volume>
+<volume name="RICH_gas">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="RICH_gas_PartBody"/>
+<physvol>
+<volumeref ref="rich1d"/>
+<position name="RICH_gas_pos_rich1d_1" x="((pmt_width/2)+10+pmt_pos_x_addend)" y="(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
+<rotation name="RICH_gas_rot_rich1d_1" x="-(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(18.477+pmt_rot_y_addend)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="rich1d"/>
+<position name="RICH_gas_pos_rich1d_2" x="-((pmt_width/2)+10+pmt_pos_x_addend)" y="(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
+<rotation name="RICH_gas_rot_rich1d_2" x="-(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(-18.477-pmt_rot_y_addend)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="rich1d"/>
+<position name="RICH_gas_pos_rich1d_3" x="((pmt_width/2)+10+pmt_pos_x_addend)" y="-(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
+<rotation name="RICH_gas_rot_rich1d_3" x="(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(18.477+pmt_rot_y_addend)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="rich1d"/>
+<position name="RICH_gas_pos_rich1d_4" x="-((pmt_width/2)+10+pmt_pos_x_addend)" y="-(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
+<rotation name="RICH_gas_rot_rich1d_4" x="(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(-18.477-pmt_rot_y_addend)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_half_total"/>
+<position name="RICH_gas_pos_RICH_mirror_half_total_1" x="0" y="(-RICH_mirror_Y_shift+RICH_mirror_r*sin((RICH_mirror_angle)*DEGtoRAD))" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_mirror_r*cos((RICH_mirror_angle)*DEGtoRAD)+RICH_mirror_position_from_IP-RICH_position_from_IP-RICH_covering_thickness)" unit="mm"/>
+<rotation name="RICH_gas_rot_RICH_mirror_half_total_1" x="-(90+RICH_mirror_angle)" y="0" z="-90" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_half_total"/>
+<position name="RICH_gas_pos_RICH_mirror_half_total_2" x="0" y="(RICH_mirror_Y_shift-RICH_mirror_r*sin((RICH_mirror_angle)*DEGtoRAD))" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_mirror_r*cos((RICH_mirror_angle)*DEGtoRAD)+RICH_mirror_position_from_IP-RICH_position_from_IP-RICH_covering_thickness)" unit="mm"/>
+<rotation name="RICH_gas_rot_RICH_mirror_half_total_2" x="-(-90-RICH_mirror_angle)" y="0" z="90" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="Sens_plane"/>
+<position name="RICH_gas_pos_Sens_plane_1" x="0" y="0" z="930" unit="mm"/>
+<rotation name="RICH_gas_rot_Sens_plane_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<volume name="rich1">
+<materialref ref="air"/>
+<solidref ref="rich1_PartBody"/>
+<physvol>
+<volumeref ref="RICH_covering_top_bottom_1"/>
+<position name="rich1_pos_RICH_covering_top_bottom_1_1" x="0" y="(RICH_height/2+RICH_covering_thickness/2)" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_top_bottom_1_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_top_bottom_1"/>
+<position name="rich1_pos_RICH_covering_top_bottom_1_2" x="0" y="(-RICH_height/2-RICH_covering_thickness/2)" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_top_bottom_1_2" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_top_bottom_2"/>
+<position name="rich1_pos_RICH_covering_top_bottom_2_1" x="0" y="(RICH_height/2+RICH_covering_thickness/2)" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_top_bottom_2_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_top_bottom_2"/>
+<position name="rich1_pos_RICH_covering_top_bottom_2_2" x="0" y="(-RICH_height/2-RICH_covering_thickness/2)" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_top_bottom_2_2" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_side"/>
+<position name="rich1_pos_RICH_covering_side_1" x="(-RICH_exit_width/2-RICH_covering_thickness/2)" y="0" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_side_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_side"/>
+<position name="rich1_pos_RICH_covering_side_2" x="(RICH_exit_width/2+RICH_covering_thickness/2)" y="0" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_side_2" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_entrance"/>
+<position name="rich1_pos_RICH_covering_entrance_1" x="0" y="0" z="(-RICH_length/2+1-kapton_thickness/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_entrance_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_exit"/>
+<position name="rich1_pos_RICH_covering_exit_1" x="0" y="0" z="(RICH_length/2+1+kapton_thickness/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_exit_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_sloping"/>
+<position name="rich1_pos_RICH_covering_sloping_1" x="((RICH_entrance_width+RICH_exit_width+2*RICH_covering_thickness+entrance_width_addend)/4)" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_sloping_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_sloping"/>
+<position name="rich1_pos_RICH_covering_sloping_2" x="(-(RICH_entrance_width+RICH_exit_width+2*RICH_covering_thickness+entrance_width_addend)/4)" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_sloping_2" x="0" y="0" z="-180" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_pipe"/>
+<position name="rich1_pos_RICH_pipe_1" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))+1-RICH_covering_thickness+((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
+<rotation name="rich1_rot_RICH_pipe_1" x="0" y="-(RICH_pipe_angle)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_gas"/>
+<position name="rich1_pos_RICH_gas_1" x="0" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_gas_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<!--
+<assembly name="TOP">
+<physvol>
+<volumeref ref="rich1"/>
+<position name="TOP_pos_rich1_1" x="0" y="0" z="(RICH_position_from_IP+kapton_thickness+RICH_length/2-1)" unit="mm"/>
+<rotation name="TOP_rot_rich1_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+</assembly>
+-->
+</structure>
+
+<setup name="FAIRgeom" version="1.0">
+<world ref="rich1"/>
+<!--<world ref="TOP"/>-->
+</setup>
+
+</gdml>
diff --git a/macro/rich/geotest/TransPMT/CreateGeo/2015_minus10deg_LowerPart.gdml b/macro/rich/geotest/TransPMT/CreateGeo/2015_minus10deg_LowerPart.gdml
index 8492d306d8..47e289f01e 100644
--- a/macro/rich/geotest/TransPMT/CreateGeo/2015_minus10deg_LowerPart.gdml
+++ b/macro/rich/geotest/TransPMT/CreateGeo/2015_minus10deg_LowerPart.gdml
@@ -1,365 +1,365 @@
-
-</define>
-
-<materials>
-<material name="vacuum" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="aluminium" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="kapton" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="RICHglass" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="RICHgas_CO2_dis" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="CsI" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="RICHgas_CO2_dis+" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="air" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-</materials>
-
-<solids>
-<cone name="RICH_pipe_vac_RICH_pipe_vac_2" rmin1="0" rmax1="(RICH_pipe_entrance_r-RICH_pipe_entrance_thickness)" rmin2="0" rmax2="(RICH_pipe_exit_r-RICH_pipe_exit_thickness)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<tube name="RICH_pipe_vac_RICH_pipe_vac_3" rmin="0" rmax="(RICH_pipe_entrance_r-RICH_pipe_entrance_thickness)*cos((RICH_pipe_angle)*DEGtoRAD)" z="(1.5)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<union name="RICH_pipe_vac_PartBody">
-<first ref="RICH_pipe_vac_RICH_pipe_vac_2"/>
-<second ref="RICH_pipe_vac_RICH_pipe_vac_3"/>
-<position name="RICH_pipe_vac__position__RICH_pipe_vac_3__by__RICH_pipe_vac_2" x="((49.5-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD)))*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)+(RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))-0.5)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
-<rotation name="RICH_pipe_vac__rotation__RICH_pipe_vac_3__by__RICH_pipe_vac_2" x="0" y="(-RICH_pipe_angle)" z="0" unit="degree"/>
-</union>
-<cone name="RICH_pipe_RICH_pipe_4" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<tube name="RICH_pipe_RICH_pipe_3" rmin="0" rmax="(RICH_pipe_entrance_r*cos((RICH_pipe_angle)*DEGtoRAD))" z="(1.5)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<union name="RICH_pipe_PartBody">
-<first ref="RICH_pipe_RICH_pipe_4"/>
-<second ref="RICH_pipe_RICH_pipe_3"/>
-<position name="RICH_pipe__position__RICH_pipe_3__by__RICH_pipe_4" x="((49.5-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD)))*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)+(RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))-0.5)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
-<rotation name="RICH_pipe__rotation__RICH_pipe_3__by__RICH_pipe_4" x="0" y="(-RICH_pipe_angle)" z="0" unit="degree"/>
-</union>
-<box name="RICH_covering_entrance_RICH_covering_entrance_2" x="((RICH_entrance_width/2+RICH_covering_thickness+entrance_width_addend))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness/2))*2" lunit="mm"/>
-<cone name="RICH_covering_entrance_RICH_covering_entrance_3" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<subtraction name="RICH_covering_entrance_PartBody">
-<first ref="RICH_covering_entrance_RICH_covering_entrance_2"/>
-<second ref="RICH_covering_entrance_RICH_covering_entrance_3"/>
-<position name="RICH_covering_entrance__position__RICH_covering_entrance_3__by__RICH_covering_entrance_2" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(RICH_length/2+kapton_thickness/2+(RICH_pipe_exit_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
-<rotation name="RICH_covering_entrance__rotation__RICH_covering_entrance_3__by__RICH_covering_entrance_2" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
-</subtraction>
-<trap name="RICH_covering_sloping_PartBody" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" theta="(atan(tan((RICH_trapezoid_angle/2)*DEGtoRAD)*(RICH_exit_width-RICH_entrance_width-entrance_width_addend)/(RICH_exit_width-RICH_entrance_width))/DEGtoRAD)" phi="0" y1="((RICH_height/2+RICH_covering_thickness))*2" x1="((RICH_covering_thickness/2+entrance_width_addend/2))*2" x2="((RICH_covering_thickness/2+entrance_width_addend/2))*2" alpha1="0" y2="((RICH_height/2+RICH_covering_thickness))*2" x3="((RICH_covering_thickness/2))*2" x4="((RICH_covering_thickness/2))*2" alpha2="0" lunit="mm" aunit="degree"/>
-<trd name="RICH_covering_top_bottom_1_PartBody" x1="((RICH_entrance_width/2))*2" x2="((RICH_exit_width/2))*2" y1="((RICH_covering_thickness/2))*2" y2="((RICH_covering_thickness/2))*2" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<box name="RICH_covering_top_bottom_2_PartBody" x="((RICH_exit_width/2))*2" y="((RICH_covering_thickness/2))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<box name="RICH_covering_side_PartBody" x="((RICH_covering_thickness/2))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<box name="RICH_covering_exit_RICH_covering_exit_2" x="((RICH_exit_width/2+RICH_covering_thickness))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness/2))*2" lunit="mm"/>
-<cone name="RICH_covering_exit_RICH_covering_exit_3" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<subtraction name="RICH_covering_exit_PartBody">
-<first ref="RICH_covering_exit_RICH_covering_exit_2"/>
-<second ref="RICH_covering_exit_RICH_covering_exit_3"/>
-<position name="RICH_covering_exit__position__RICH_covering_exit_3__by__RICH_covering_exit_2" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-kapton_thickness/2-(RICH_pipe_entrance_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
-<rotation name="RICH_covering_exit__rotation__RICH_covering_exit_3__by__RICH_covering_exit_2" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
-</subtraction>
-<sphere name="RICH_mirror_1_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="6.52" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_2_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="90.038" deltatheta="8.118" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_3_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="4" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_and_support_belt_strip_cut_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+mirror_cont_supp_addend_out)" startphi="-4.106" deltaphi="8.212" starttheta="75.2365" deltatheta="27" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_and_support_belt_strip_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+mirror_cont_supp_addend_out)" startphi="-4.106" deltaphi="8.212" starttheta="75.2365" deltatheta="29.527" lunit="mm" aunit="degree"/>
-<sphere name="RICH_mirror_replica_PartBody" rmin="(RICH_mirror_r)" rmax="((RICH_mirror_r+mirror_cont_supp_addend_out))" startphi="-36.954" deltaphi="32.848" starttheta="75.2365" deltatheta="29.527" lunit="mm" aunit="degree"/>
-<box name="rich1d_PartBody" x="((pmt_width/2))*2" y="((pmt_height/2))*2" z="((pmt_thickness/2))*2" lunit="mm"/>
-<box name="Sens_plane_3" x="((RICH_exit_width/2))*2" y="((RICH_height/2))*2" z="(0.5)*2" lunit="mm"/>
-<tube name="Sens_plane_2" rmin="0" rmax="160" z="(1)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<subtraction name="Sens_plane_PartBody">
-<first ref="Sens_plane_3"/>
-<second ref="Sens_plane_2"/>
-<positionref ref="central"/>
-<rotationref ref="identity"/>
-</subtraction>
-<box name="RICH_gas_RICH_gas_5" x="((RICH_exit_width/2))*2" y="((RICH_height/2))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<cone name="RICH_gas_RICH_gas_7" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<trd name="RICH_gas_RICH_gas_4" x1="((RICH_entrance_width/2))*2" x2="((RICH_exit_width/2))*2" y1="((RICH_height/2))*2" y2="((RICH_height/2))*2" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
-<union name="RICH_gas_RICH_gas_6">
-<first ref="RICH_gas_RICH_gas_4"/>
-<second ref="RICH_gas_RICH_gas_5"/>
-<position name="RICH_gas__position__RICH_gas_5__by__RICH_gas_4" x="0" y="0" z="(RICH_length/2)" unit="mm"/>
-<rotationref ref="identity"/>
-</union>
-<subtraction name="RICH_gas_PartBody">
-<first ref="RICH_gas_RICH_gas_6"/>
-<second ref="RICH_gas_RICH_gas_7"/>
-<position name="RICH_gas__position__RICH_gas_7__by__RICH_gas_6" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2+RICH_length/2+(RICH_pipe_exit_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
-<rotation name="RICH_gas__rotation__RICH_gas_7__by__RICH_gas_6" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
-</subtraction>
-<box name="rich1_rich1_16" x="((RICH_exit_width/2+RICH_covering_thickness))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness+RICH_length/2+1))*2" lunit="mm"/>
-<cone name="rich1_rich1_17" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
-<union name="rich1_PartBody">
-<first ref="rich1_rich1_16"/>
-<second ref="rich1_rich1_17"/>
-<position name="rich1__position__rich1_17__by__rich1_16" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))+1-RICH_covering_thickness+((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
-<rotation name="rich1__rotation__rich1_17__by__rich1_16" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
-</union>
-</solids>
-
-<structure>
-<volume name="RICH_pipe_vac">
-<materialref ref="vacuum"/>
-<solidref ref="RICH_pipe_vac_PartBody"/>
-</volume>
-<volume name="RICH_pipe">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_pipe_PartBody"/>
-<physvol>
-<volumeref ref="RICH_pipe_vac"/>
-<position name="RICH_pipe_pos_RICH_pipe_vac_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_pipe_rot_RICH_pipe_vac_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<volume name="RICH_covering_entrance">
-<materialref ref="kapton"/>
-<solidref ref="RICH_covering_entrance_PartBody"/>
-</volume>
-<volume name="RICH_covering_sloping">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_covering_sloping_PartBody"/>
-</volume>
-<volume name="RICH_covering_top_bottom_1">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_covering_top_bottom_1_PartBody"/>
-</volume>
-<volume name="RICH_covering_top_bottom_2">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_covering_top_bottom_2_PartBody"/>
-</volume>
-<volume name="RICH_covering_side">
-<materialref ref="aluminium"/>
-<solidref ref="RICH_covering_side_PartBody"/>
-</volume>
-<volume name="RICH_covering_exit">
-<materialref ref="kapton"/>
-<solidref ref="RICH_covering_exit_PartBody"/>
-</volume>
-<volume name="RICH_mirror_1">
-<materialref ref="RICHglass"/>
-<solidref ref="RICH_mirror_1_PartBody"/>
-</volume>
-<volume name="RICH_mirror_2">
-<materialref ref="RICHglass"/>
-<solidref ref="RICH_mirror_2_PartBody"/>
-</volume>
-<volume name="RICH_mirror_3">
-<materialref ref="RICHglass"/>
-<solidref ref="RICH_mirror_3_PartBody"/>
-</volume>
-<volume name="RICH_mirror_and_support_belt_strip_cut">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="RICH_mirror_and_support_belt_strip_cut_PartBody"/>
-<physvol>
-<volumeref ref="RICH_mirror_2"/>
-<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_2_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_2_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_2"/>
-<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_2_2" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_2_2" x="-180" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_3"/>
-<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_3_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_3_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_1"/>
-<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_1_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_1_1" x="-180" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<volume name="RICH_mirror_and_support_belt_strip">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="RICH_mirror_and_support_belt_strip_PartBody"/>
-<physvol>
-<volumeref ref="RICH_mirror_1"/>
-<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_1_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_1_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_1"/>
-<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_1_2" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_1_2" x="-180" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_2"/>
-<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_2_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_2_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_2"/>
-<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_2_2" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_2_2" x="-180" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<volume name="RICH_mirror_replica">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="RICH_mirror_replica_PartBody"/>
-<divisionvol number="4" offset="0" width=" 8.212" axis="kPhi" unit="degree">
-<volumeref ref="RICH_mirror_and_support_belt_strip"/>
-</divisionvol>
-</volume>
-<assembly name="RICH_mirror_half_total">
-<physvol>
-<volumeref ref="RICH_mirror_and_support_belt_strip_cut"/>
-<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_cut_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_cut_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_replica"/>
-<position name="RICH_mirror_half_total__pos__RICH_mirror_replica_0" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_half_total__rot__RICH_mirror_replica_0" x="-180" y="180" z="180" unit="deg"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_replica"/>
-<position name="RICH_mirror_half_total__pos__RICH_mirror_replica_1" x="0" y="0" z="0" unit="mm"/>
-<rotation name="RICH_mirror_half_total__rot__RICH_mirror_replica_1" x="0" y="0" z="318.94" unit="deg"/>
-</physvol>
-</assembly>
-<volume name="rich1d">
-<materialref ref="CsI"/>
-<solidref ref="rich1d_PartBody"/>
-</volume>
-<volume name="Sens_plane">
-<materialref ref="RICHgas_CO2_dis+"/>
-<solidref ref="Sens_plane_PartBody"/>
-</volume>
-<volume name="RICH_gas">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="RICH_gas_PartBody"/>
-<physvol>
-<volumeref ref="rich1d"/>
-<position name="RICH_gas_pos_rich1d_1" x="((pmt_width/2)+10+pmt_pos_x_addend)" y="(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
-<rotation name="RICH_gas_rot_rich1d_1" x="-(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(18.477+pmt_rot_y_addend)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="rich1d"/>
-<position name="RICH_gas_pos_rich1d_2" x="-((pmt_width/2)+10+pmt_pos_x_addend)" y="(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
-<rotation name="RICH_gas_rot_rich1d_2" x="-(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(-18.477-pmt_rot_y_addend)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="rich1d"/>
-<position name="RICH_gas_pos_rich1d_3" x="((pmt_width/2)+10+pmt_pos_x_addend)" y="-(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
-<rotation name="RICH_gas_rot_rich1d_3" x="(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(18.477+pmt_rot_y_addend)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="rich1d"/>
-<position name="RICH_gas_pos_rich1d_4" x="-((pmt_width/2)+10+pmt_pos_x_addend)" y="-(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
-<rotation name="RICH_gas_rot_rich1d_4" x="(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(-18.477-pmt_rot_y_addend)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_half_total"/>
-<position name="RICH_gas_pos_RICH_mirror_half_total_1" x="0" y="(-RICH_mirror_Y_shift+RICH_mirror_r*sin((RICH_mirror_angle)*DEGtoRAD))" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_mirror_r*cos((RICH_mirror_angle)*DEGtoRAD)+RICH_mirror_position_from_IP-RICH_position_from_IP-RICH_covering_thickness)" unit="mm"/>
-<rotation name="RICH_gas_rot_RICH_mirror_half_total_1" x="-(90+RICH_mirror_angle)" y="0" z="-90" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_mirror_half_total"/>
-<position name="RICH_gas_pos_RICH_mirror_half_total_2" x="0" y="(RICH_mirror_Y_shift-RICH_mirror_r*sin((RICH_mirror_angle)*DEGtoRAD))" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_mirror_r*cos((RICH_mirror_angle)*DEGtoRAD)+RICH_mirror_position_from_IP-RICH_position_from_IP-RICH_covering_thickness)" unit="mm"/>
-<rotation name="RICH_gas_rot_RICH_mirror_half_total_2" x="-(-90-RICH_mirror_angle)" y="0" z="90" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="Sens_plane"/>
-<position name="RICH_gas_pos_Sens_plane_1" x="0" y="0" z="1430" unit="mm"/>
-<rotation name="RICH_gas_rot_Sens_plane_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<volume name="rich1">
-<materialref ref="air"/>
-<solidref ref="rich1_PartBody"/>
-<physvol>
-<volumeref ref="RICH_covering_top_bottom_1"/>
-<position name="rich1_pos_RICH_covering_top_bottom_1_1" x="0" y="(RICH_height/2+RICH_covering_thickness/2)" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_top_bottom_1_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_top_bottom_1"/>
-<position name="rich1_pos_RICH_covering_top_bottom_1_2" x="0" y="(-RICH_height/2-RICH_covering_thickness/2)" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_top_bottom_1_2" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_top_bottom_2"/>
-<position name="rich1_pos_RICH_covering_top_bottom_2_1" x="0" y="(RICH_height/2+RICH_covering_thickness/2)" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_top_bottom_2_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_top_bottom_2"/>
-<position name="rich1_pos_RICH_covering_top_bottom_2_2" x="0" y="(-RICH_height/2-RICH_covering_thickness/2)" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_top_bottom_2_2" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_side"/>
-<position name="rich1_pos_RICH_covering_side_1" x="(-RICH_exit_width/2-RICH_covering_thickness/2)" y="0" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_side_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_side"/>
-<position name="rich1_pos_RICH_covering_side_2" x="(RICH_exit_width/2+RICH_covering_thickness/2)" y="0" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_side_2" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_entrance"/>
-<position name="rich1_pos_RICH_covering_entrance_1" x="0" y="0" z="(-RICH_length/2+1-kapton_thickness/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_entrance_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_exit"/>
-<position name="rich1_pos_RICH_covering_exit_1" x="0" y="0" z="(RICH_length/2+1+kapton_thickness/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_exit_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_sloping"/>
-<position name="rich1_pos_RICH_covering_sloping_1" x="((RICH_entrance_width+RICH_exit_width+2*RICH_covering_thickness+entrance_width_addend)/4)" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_sloping_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_covering_sloping"/>
-<position name="rich1_pos_RICH_covering_sloping_2" x="(-(RICH_entrance_width+RICH_exit_width+2*RICH_covering_thickness+entrance_width_addend)/4)" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_covering_sloping_2" x="0" y="0" z="-180" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_pipe"/>
-<position name="rich1_pos_RICH_pipe_1" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))+1-RICH_covering_thickness+((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
-<rotation name="rich1_rot_RICH_pipe_1" x="0" y="-(RICH_pipe_angle)" z="0" unit="degree"/>
-</physvol>
-<physvol>
-<volumeref ref="RICH_gas"/>
-<position name="rich1_pos_RICH_gas_1" x="0" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
-<rotation name="rich1_rot_RICH_gas_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-</volume>
-<!--
-<assembly name="TOP">
-<physvol>
-<volumeref ref="rich1"/>
-<position name="TOP_pos_rich1_1" x="0" y="0" z="(RICH_position_from_IP+kapton_thickness+RICH_length/2-1)" unit="mm"/>
-<rotation name="TOP_rot_rich1_1" x="0" y="0" z="0" unit="degree"/>
-</physvol>
-</assembly>
--->
-</structure>
-
-<setup name="FAIRgeom" version="1.0">
-<world ref="rich1"/>
-<!--<world ref="TOP"/>-->
-</setup>
-
-</gdml>
+
+</define>
+
+<materials>
+<material name="vacuum" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="aluminium" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="kapton" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="RICHglass" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="RICHgas_CO2_dis" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="CsI" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="RICHgas_CO2_dis+" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="air" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+</materials>
+
+<solids>
+<cone name="RICH_pipe_vac_RICH_pipe_vac_2" rmin1="0" rmax1="(RICH_pipe_entrance_r-RICH_pipe_entrance_thickness)" rmin2="0" rmax2="(RICH_pipe_exit_r-RICH_pipe_exit_thickness)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<tube name="RICH_pipe_vac_RICH_pipe_vac_3" rmin="0" rmax="(RICH_pipe_entrance_r-RICH_pipe_entrance_thickness)*cos((RICH_pipe_angle)*DEGtoRAD)" z="(1.5)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<union name="RICH_pipe_vac_PartBody">
+<first ref="RICH_pipe_vac_RICH_pipe_vac_2"/>
+<second ref="RICH_pipe_vac_RICH_pipe_vac_3"/>
+<position name="RICH_pipe_vac__position__RICH_pipe_vac_3__by__RICH_pipe_vac_2" x="((49.5-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD)))*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)+(RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))-0.5)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
+<rotation name="RICH_pipe_vac__rotation__RICH_pipe_vac_3__by__RICH_pipe_vac_2" x="0" y="(-RICH_pipe_angle)" z="0" unit="degree"/>
+</union>
+<cone name="RICH_pipe_RICH_pipe_4" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<tube name="RICH_pipe_RICH_pipe_3" rmin="0" rmax="(RICH_pipe_entrance_r*cos((RICH_pipe_angle)*DEGtoRAD))" z="(1.5)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<union name="RICH_pipe_PartBody">
+<first ref="RICH_pipe_RICH_pipe_4"/>
+<second ref="RICH_pipe_RICH_pipe_3"/>
+<position name="RICH_pipe__position__RICH_pipe_3__by__RICH_pipe_4" x="((49.5-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD)))*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)+(RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))-0.5)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
+<rotation name="RICH_pipe__rotation__RICH_pipe_3__by__RICH_pipe_4" x="0" y="(-RICH_pipe_angle)" z="0" unit="degree"/>
+</union>
+<box name="RICH_covering_entrance_RICH_covering_entrance_2" x="((RICH_entrance_width/2+RICH_covering_thickness+entrance_width_addend))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness/2))*2" lunit="mm"/>
+<cone name="RICH_covering_entrance_RICH_covering_entrance_3" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<subtraction name="RICH_covering_entrance_PartBody">
+<first ref="RICH_covering_entrance_RICH_covering_entrance_2"/>
+<second ref="RICH_covering_entrance_RICH_covering_entrance_3"/>
+<position name="RICH_covering_entrance__position__RICH_covering_entrance_3__by__RICH_covering_entrance_2" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(RICH_length/2+kapton_thickness/2+(RICH_pipe_exit_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
+<rotation name="RICH_covering_entrance__rotation__RICH_covering_entrance_3__by__RICH_covering_entrance_2" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
+</subtraction>
+<trap name="RICH_covering_sloping_PartBody" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" theta="(atan(tan((RICH_trapezoid_angle/2)*DEGtoRAD)*(RICH_exit_width-RICH_entrance_width-entrance_width_addend)/(RICH_exit_width-RICH_entrance_width))/DEGtoRAD)" phi="0" y1="((RICH_height/2+RICH_covering_thickness))*2" x1="((RICH_covering_thickness/2+entrance_width_addend/2))*2" x2="((RICH_covering_thickness/2+entrance_width_addend/2))*2" alpha1="0" y2="((RICH_height/2+RICH_covering_thickness))*2" x3="((RICH_covering_thickness/2))*2" x4="((RICH_covering_thickness/2))*2" alpha2="0" lunit="mm" aunit="degree"/>
+<trd name="RICH_covering_top_bottom_1_PartBody" x1="((RICH_entrance_width/2))*2" x2="((RICH_exit_width/2))*2" y1="((RICH_covering_thickness/2))*2" y2="((RICH_covering_thickness/2))*2" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<box name="RICH_covering_top_bottom_2_PartBody" x="((RICH_exit_width/2))*2" y="((RICH_covering_thickness/2))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<box name="RICH_covering_side_PartBody" x="((RICH_covering_thickness/2))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<box name="RICH_covering_exit_RICH_covering_exit_2" x="((RICH_exit_width/2+RICH_covering_thickness))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness/2))*2" lunit="mm"/>
+<cone name="RICH_covering_exit_RICH_covering_exit_3" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<subtraction name="RICH_covering_exit_PartBody">
+<first ref="RICH_covering_exit_RICH_covering_exit_2"/>
+<second ref="RICH_covering_exit_RICH_covering_exit_3"/>
+<position name="RICH_covering_exit__position__RICH_covering_exit_3__by__RICH_covering_exit_2" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-kapton_thickness/2-(RICH_pipe_entrance_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
+<rotation name="RICH_covering_exit__rotation__RICH_covering_exit_3__by__RICH_covering_exit_2" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
+</subtraction>
+<sphere name="RICH_mirror_1_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="6.52" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_2_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="90.038" deltatheta="8.118" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_3_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+RICH_mirror_thickness)" startphi="-4.106" deltaphi="8.212" starttheta="98.233" deltatheta="4" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_and_support_belt_strip_cut_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+mirror_cont_supp_addend_out)" startphi="-4.106" deltaphi="8.212" starttheta="75.2365" deltatheta="27" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_and_support_belt_strip_PartBody" rmin="(RICH_mirror_r)" rmax="(RICH_mirror_r+mirror_cont_supp_addend_out)" startphi="-4.106" deltaphi="8.212" starttheta="75.2365" deltatheta="29.527" lunit="mm" aunit="degree"/>
+<sphere name="RICH_mirror_replica_PartBody" rmin="(RICH_mirror_r)" rmax="((RICH_mirror_r+mirror_cont_supp_addend_out))" startphi="-36.954" deltaphi="32.848" starttheta="75.2365" deltatheta="29.527" lunit="mm" aunit="degree"/>
+<box name="rich1d_PartBody" x="((pmt_width/2))*2" y="((pmt_height/2))*2" z="((pmt_thickness/2))*2" lunit="mm"/>
+<box name="Sens_plane_3" x="((RICH_exit_width/2))*2" y="((RICH_height/2))*2" z="(0.5)*2" lunit="mm"/>
+<tube name="Sens_plane_2" rmin="0" rmax="160" z="(1)*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<subtraction name="Sens_plane_PartBody">
+<first ref="Sens_plane_3"/>
+<second ref="Sens_plane_2"/>
+<positionref ref="central"/>
+<rotationref ref="identity"/>
+</subtraction>
+<box name="RICH_gas_RICH_gas_5" x="((RICH_exit_width/2))*2" y="((RICH_height/2))*2" z="((RICH_length/2-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<cone name="RICH_gas_RICH_gas_7" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<trd name="RICH_gas_RICH_gas_4" x1="((RICH_entrance_width/2))*2" x2="((RICH_exit_width/2))*2" y1="((RICH_height/2))*2" y2="((RICH_height/2))*2" z="((((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2))*2" lunit="mm"/>
+<union name="RICH_gas_RICH_gas_6">
+<first ref="RICH_gas_RICH_gas_4"/>
+<second ref="RICH_gas_RICH_gas_5"/>
+<position name="RICH_gas__position__RICH_gas_5__by__RICH_gas_4" x="0" y="0" z="(RICH_length/2)" unit="mm"/>
+<rotationref ref="identity"/>
+</union>
+<subtraction name="RICH_gas_PartBody">
+<first ref="RICH_gas_RICH_gas_6"/>
+<second ref="RICH_gas_RICH_gas_7"/>
+<position name="RICH_gas__position__RICH_gas_7__by__RICH_gas_6" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2+RICH_length/2+(RICH_pipe_exit_r-(RICH_pipe_entrance_r+RICH_pipe_exit_r)/2)*abs(sin((RICH_pipe_angle)*DEGtoRAD)))" unit="mm"/>
+<rotation name="RICH_gas__rotation__RICH_gas_7__by__RICH_gas_6" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
+</subtraction>
+<box name="rich1_rich1_16" x="((RICH_exit_width/2+RICH_covering_thickness))*2" y="((RICH_height/2+RICH_covering_thickness))*2" z="((kapton_thickness+RICH_length/2+1))*2" lunit="mm"/>
+<cone name="rich1_rich1_17" rmin1="0" rmax1="(RICH_pipe_entrance_r)" rmin2="0" rmax2="(RICH_pipe_exit_r)" z="(((RICH_length/2+kapton_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2))*2" startphi="0" deltaphi="360" lunit="mm" aunit="degree"/>
+<union name="rich1_PartBody">
+<first ref="rich1_rich1_16"/>
+<second ref="rich1_rich1_17"/>
+<position name="rich1__position__rich1_17__by__rich1_16" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))+1-RICH_covering_thickness+((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
+<rotation name="rich1__rotation__rich1_17__by__rich1_16" x="0" y="(RICH_pipe_angle)" z="0" unit="degree"/>
+</union>
+</solids>
+
+<structure>
+<volume name="RICH_pipe_vac">
+<materialref ref="vacuum"/>
+<solidref ref="RICH_pipe_vac_PartBody"/>
+</volume>
+<volume name="RICH_pipe">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_pipe_PartBody"/>
+<physvol>
+<volumeref ref="RICH_pipe_vac"/>
+<position name="RICH_pipe_pos_RICH_pipe_vac_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_pipe_rot_RICH_pipe_vac_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<volume name="RICH_covering_entrance">
+<materialref ref="kapton"/>
+<solidref ref="RICH_covering_entrance_PartBody"/>
+</volume>
+<volume name="RICH_covering_sloping">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_covering_sloping_PartBody"/>
+</volume>
+<volume name="RICH_covering_top_bottom_1">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_covering_top_bottom_1_PartBody"/>
+</volume>
+<volume name="RICH_covering_top_bottom_2">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_covering_top_bottom_2_PartBody"/>
+</volume>
+<volume name="RICH_covering_side">
+<materialref ref="aluminium"/>
+<solidref ref="RICH_covering_side_PartBody"/>
+</volume>
+<volume name="RICH_covering_exit">
+<materialref ref="kapton"/>
+<solidref ref="RICH_covering_exit_PartBody"/>
+</volume>
+<volume name="RICH_mirror_1">
+<materialref ref="RICHglass"/>
+<solidref ref="RICH_mirror_1_PartBody"/>
+</volume>
+<volume name="RICH_mirror_2">
+<materialref ref="RICHglass"/>
+<solidref ref="RICH_mirror_2_PartBody"/>
+</volume>
+<volume name="RICH_mirror_3">
+<materialref ref="RICHglass"/>
+<solidref ref="RICH_mirror_3_PartBody"/>
+</volume>
+<volume name="RICH_mirror_and_support_belt_strip_cut">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="RICH_mirror_and_support_belt_strip_cut_PartBody"/>
+<physvol>
+<volumeref ref="RICH_mirror_2"/>
+<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_2_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_2_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_2"/>
+<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_2_2" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_2_2" x="-180" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_3"/>
+<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_3_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_3_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_1"/>
+<position name="RICH_mirror_and_support_belt_strip_cut_pos_RICH_mirror_1_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_cut_rot_RICH_mirror_1_1" x="-180" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<volume name="RICH_mirror_and_support_belt_strip">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="RICH_mirror_and_support_belt_strip_PartBody"/>
+<physvol>
+<volumeref ref="RICH_mirror_1"/>
+<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_1_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_1_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_1"/>
+<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_1_2" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_1_2" x="-180" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_2"/>
+<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_2_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_2_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_2"/>
+<position name="RICH_mirror_and_support_belt_strip_pos_RICH_mirror_2_2" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_and_support_belt_strip_rot_RICH_mirror_2_2" x="-180" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<volume name="RICH_mirror_replica">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="RICH_mirror_replica_PartBody"/>
+<divisionvol number="4" offset="0" width=" 8.212" axis="kPhi" unit="degree">
+<volumeref ref="RICH_mirror_and_support_belt_strip"/>
+</divisionvol>
+</volume>
+<assembly name="RICH_mirror_half_total">
+<physvol>
+<volumeref ref="RICH_mirror_and_support_belt_strip_cut"/>
+<position name="RICH_mirror_half_total_pos_RICH_mirror_and_support_belt_strip_cut_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_half_total_rot_RICH_mirror_and_support_belt_strip_cut_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_replica"/>
+<position name="RICH_mirror_half_total__pos__RICH_mirror_replica_0" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_half_total__rot__RICH_mirror_replica_0" x="-180" y="180" z="180" unit="deg"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_replica"/>
+<position name="RICH_mirror_half_total__pos__RICH_mirror_replica_1" x="0" y="0" z="0" unit="mm"/>
+<rotation name="RICH_mirror_half_total__rot__RICH_mirror_replica_1" x="0" y="0" z="318.94" unit="deg"/>
+</physvol>
+</assembly>
+<volume name="rich1d">
+<materialref ref="CsI"/>
+<solidref ref="rich1d_PartBody"/>
+</volume>
+<volume name="Sens_plane">
+<materialref ref="RICHgas_CO2_dis+"/>
+<solidref ref="Sens_plane_PartBody"/>
+</volume>
+<volume name="RICH_gas">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="RICH_gas_PartBody"/>
+<physvol>
+<volumeref ref="rich1d"/>
+<position name="RICH_gas_pos_rich1d_1" x="((pmt_width/2)+10+pmt_pos_x_addend)" y="(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
+<rotation name="RICH_gas_rot_rich1d_1" x="-(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(18.477+pmt_rot_y_addend)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="rich1d"/>
+<position name="RICH_gas_pos_rich1d_2" x="-((pmt_width/2)+10+pmt_pos_x_addend)" y="(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
+<rotation name="RICH_gas_rot_rich1d_2" x="-(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(-18.477-pmt_rot_y_addend)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="rich1d"/>
+<position name="RICH_gas_pos_rich1d_3" x="((pmt_width/2)+10+pmt_pos_x_addend)" y="-(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
+<rotation name="RICH_gas_rot_rich1d_3" x="(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(18.477+pmt_rot_y_addend)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="rich1d"/>
+<position name="RICH_gas_pos_rich1d_4" x="-((pmt_width/2)+10+pmt_pos_x_addend)" y="-(RICH_mirror_Y_shift+sin((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT+pmt_pos_y_addend)" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_position_from_IP+(RICH_mirror_position_from_IP-cos((atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle)*DEGtoRAD)*TTT)*cos((18.477)*DEGtoRAD)+pmt_pos_z_addend)" unit="mm"/>
+<rotation name="RICH_gas_rot_rich1d_4" x="(atan(RICH_mirror_Y_shift/RICH_mirror_position_from_IP)/DEGtoRAD-2*RICH_mirror_angle+pmt_rot_x_addend)" y="-(-18.477-pmt_rot_y_addend)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_half_total"/>
+<position name="RICH_gas_pos_RICH_mirror_half_total_1" x="0" y="(-RICH_mirror_Y_shift+RICH_mirror_r*sin((RICH_mirror_angle)*DEGtoRAD))" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_mirror_r*cos((RICH_mirror_angle)*DEGtoRAD)+RICH_mirror_position_from_IP-RICH_position_from_IP-RICH_covering_thickness)" unit="mm"/>
+<rotation name="RICH_gas_rot_RICH_mirror_half_total_1" x="-(90+RICH_mirror_angle)" y="0" z="-90" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_mirror_half_total"/>
+<position name="RICH_gas_pos_RICH_mirror_half_total_2" x="0" y="(RICH_mirror_Y_shift-RICH_mirror_r*sin((RICH_mirror_angle)*DEGtoRAD))" z="(-(RICH_exit_width-RICH_entrance_width)/(4*tan((RICH_trapezoid_angle/2)*DEGtoRAD))-RICH_mirror_r*cos((RICH_mirror_angle)*DEGtoRAD)+RICH_mirror_position_from_IP-RICH_position_from_IP-RICH_covering_thickness)" unit="mm"/>
+<rotation name="RICH_gas_rot_RICH_mirror_half_total_2" x="-(-90-RICH_mirror_angle)" y="0" z="90" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="Sens_plane"/>
+<position name="RICH_gas_pos_Sens_plane_1" x="0" y="0" z="1430" unit="mm"/>
+<rotation name="RICH_gas_rot_Sens_plane_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<volume name="rich1">
+<materialref ref="air"/>
+<solidref ref="rich1_PartBody"/>
+<physvol>
+<volumeref ref="RICH_covering_top_bottom_1"/>
+<position name="rich1_pos_RICH_covering_top_bottom_1_1" x="0" y="(RICH_height/2+RICH_covering_thickness/2)" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_top_bottom_1_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_top_bottom_1"/>
+<position name="rich1_pos_RICH_covering_top_bottom_1_2" x="0" y="(-RICH_height/2-RICH_covering_thickness/2)" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_top_bottom_1_2" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_top_bottom_2"/>
+<position name="rich1_pos_RICH_covering_top_bottom_2_1" x="0" y="(RICH_height/2+RICH_covering_thickness/2)" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_top_bottom_2_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_top_bottom_2"/>
+<position name="rich1_pos_RICH_covering_top_bottom_2_2" x="0" y="(-RICH_height/2-RICH_covering_thickness/2)" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_top_bottom_2_2" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_side"/>
+<position name="rich1_pos_RICH_covering_side_1" x="(-RICH_exit_width/2-RICH_covering_thickness/2)" y="0" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_side_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_side"/>
+<position name="rich1_pos_RICH_covering_side_2" x="(RICH_exit_width/2+RICH_covering_thickness/2)" y="0" z="(1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_side_2" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_entrance"/>
+<position name="rich1_pos_RICH_covering_entrance_1" x="0" y="0" z="(-RICH_length/2+1-kapton_thickness/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_entrance_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_exit"/>
+<position name="rich1_pos_RICH_covering_exit_1" x="0" y="0" z="(RICH_length/2+1+kapton_thickness/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_exit_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_sloping"/>
+<position name="rich1_pos_RICH_covering_sloping_1" x="((RICH_entrance_width+RICH_exit_width+2*RICH_covering_thickness+entrance_width_addend)/4)" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_sloping_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_covering_sloping"/>
+<position name="rich1_pos_RICH_covering_sloping_2" x="(-(RICH_entrance_width+RICH_exit_width+2*RICH_covering_thickness+entrance_width_addend)/4)" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_covering_sloping_2" x="0" y="0" z="-180" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_pipe"/>
+<position name="rich1_pos_RICH_pipe_1" x="(((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*sin((RICH_pipe_angle)*DEGtoRAD))" y="0" z="(-RICH_length/2-RICH_pipe_entrance_r*abs(sin((RICH_pipe_angle)*DEGtoRAD))+1-RICH_covering_thickness+((RICH_length/2+RICH_covering_thickness)/cos((RICH_pipe_angle)*DEGtoRAD)+(RICH_pipe_entrance_r+RICH_pipe_exit_r)*abs(tan((RICH_pipe_angle)*DEGtoRAD))/2)*cos((RICH_pipe_angle)*DEGtoRAD))" unit="mm"/>
+<rotation name="rich1_rot_RICH_pipe_1" x="0" y="-(RICH_pipe_angle)" z="0" unit="degree"/>
+</physvol>
+<physvol>
+<volumeref ref="RICH_gas"/>
+<position name="rich1_pos_RICH_gas_1" x="0" y="0" z="(-RICH_length/2+1+((RICH_exit_width-RICH_entrance_width)/2)/tan((RICH_trapezoid_angle/2)*DEGtoRAD)/2)" unit="mm"/>
+<rotation name="rich1_rot_RICH_gas_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+</volume>
+<!--
+<assembly name="TOP">
+<physvol>
+<volumeref ref="rich1"/>
+<position name="TOP_pos_rich1_1" x="0" y="0" z="(RICH_position_from_IP+kapton_thickness+RICH_length/2-1)" unit="mm"/>
+<rotation name="TOP_rot_rich1_1" x="0" y="0" z="0" unit="degree"/>
+</physvol>
+</assembly>
+-->
+</structure>
+
+<setup name="FAIRgeom" version="1.0">
+<world ref="rich1"/>
+<!--<world ref="TOP"/>-->
+</setup>
+
+</gdml>
diff --git a/macro/rich/geotest/TransPMT/CreateGeo/2015_minus10deg_UpperPart.gdml b/macro/rich/geotest/TransPMT/CreateGeo/2015_minus10deg_UpperPart.gdml
index be65c6b653..484260818b 100644
--- a/macro/rich/geotest/TransPMT/CreateGeo/2015_minus10deg_UpperPart.gdml
+++ b/macro/rich/geotest/TransPMT/CreateGeo/2015_minus10deg_UpperPart.gdml
@@ -1,46 +1,46 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<gdml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://service-spi.web.cern.ch/service-spi/app/releases/GDML/schema/gdml.xsd">
-
-<define>
-<position name="central" x="0" y="0" z="0" unit="mm"/>
-<rotation name="identity" x="0" y="0" z="0" unit="degree"/>
-<variable name="RICH_trapezoid_angle" value="116"/>
-<variable name="RICH_entrance_width" value="3500"/>
-<variable name="RICH_exit_width" value="5136"/>
-<variable name="RICH_height" value="6000"/>
-<variable name="RICH_length" value="2697.5"/>
-<variable name="RICH_covering_thickness" value="5"/>
-<variable name="entrance_width_addend" value="2"/>
-<variable name="RICH_pipe_entrance_r" value="103.5"/>
-<variable name="RICH_pipe_exit_r" value="170"/>
-<variable name="RICH_pipe_entrance_thickness" value="3"/>
-<variable name="RICH_pipe_exit_thickness" value="5"/>
-<variable name="RICH_pipe_angle" value="0"/>
-<variable name="RICH_position_from_IP" value="1002"/>
-<variable name="RICH_mirror_position_from_IP" value="3500"/>
-<variable name="RICH_mirror_r" value="3000"/>
-<variable name="RICH_mirror_thickness" value="6"/>
-<variable name="mirror_cont_supp_addend_out" value="6"/>
-<variable name="TTT" value="1500"/>
-
-<!--
-minus 10deg setup:
-<variable name="RICH_mirror_Y_shift" value="805"/>
-<variable name="RICH_mirror_angle" value="-10"/>
-<variable name="pmt_rot_x_addend" value="-27.952765"/>
-<variable name="pmt_rot_y_addend" value="-13.477"/>
-<variable name="pmt_pos_x_addend" value="0"/>
-<variable name="pmt_pos_y_addend" value="0"/>
-<variable name="pmt_pos_z_addend" value="0"/>
-
-plus 1deg setup:
--->
-
-<variable name="RICH_mirror_Y_shift" value="805"/>
-
-<!--
-<variable name="pmt_pos_x_addend" value="0"/>
-<variable name="pmt_pos_y_addend" value="0"/>
--->
-<variable name="kapton_thickness" value="0.25"/>
-<variable name="DEGtoRAD" value="1.74532925199433E-02"/>
+<?xml version="1.0" encoding="UTF-8"?>
+<gdml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://service-spi.web.cern.ch/service-spi/app/releases/GDML/schema/gdml.xsd">
+
+<define>
+<position name="central" x="0" y="0" z="0" unit="mm"/>
+<rotation name="identity" x="0" y="0" z="0" unit="degree"/>
+<variable name="RICH_trapezoid_angle" value="116"/>
+<variable name="RICH_entrance_width" value="3500"/>
+<variable name="RICH_exit_width" value="5136"/>
+<variable name="RICH_height" value="6000"/>
+<variable name="RICH_length" value="2697.5"/>
+<variable name="RICH_covering_thickness" value="5"/>
+<variable name="entrance_width_addend" value="2"/>
+<variable name="RICH_pipe_entrance_r" value="103.5"/>
+<variable name="RICH_pipe_exit_r" value="170"/>
+<variable name="RICH_pipe_entrance_thickness" value="3"/>
+<variable name="RICH_pipe_exit_thickness" value="5"/>
+<variable name="RICH_pipe_angle" value="0"/>
+<variable name="RICH_position_from_IP" value="1002"/>
+<variable name="RICH_mirror_position_from_IP" value="3500"/>
+<variable name="RICH_mirror_r" value="3000"/>
+<variable name="RICH_mirror_thickness" value="6"/>
+<variable name="mirror_cont_supp_addend_out" value="6"/>
+<variable name="TTT" value="1500"/>
+
+<!--
+minus 10deg setup:
+<variable name="RICH_mirror_Y_shift" value="805"/>
+<variable name="RICH_mirror_angle" value="-10"/>
+<variable name="pmt_rot_x_addend" value="-27.952765"/>
+<variable name="pmt_rot_y_addend" value="-13.477"/>
+<variable name="pmt_pos_x_addend" value="0"/>
+<variable name="pmt_pos_y_addend" value="0"/>
+<variable name="pmt_pos_z_addend" value="0"/>
+
+plus 1deg setup:
+-->
+
+<variable name="RICH_mirror_Y_shift" value="805"/>
+
+<!--
+<variable name="pmt_pos_x_addend" value="0"/>
+<variable name="pmt_pos_y_addend" value="0"/>
+-->
+<variable name="kapton_thickness" value="0.25"/>
+<variable name="DEGtoRAD" value="1.74532925199433E-02"/>
diff --git a/macro/rich/geotest/TransPMT/CreateGeo/GDML_to_ROOT_Trans.C b/macro/rich/geotest/TransPMT/CreateGeo/GDML_to_ROOT_Trans.C
index 88a6db5350..0cc0e0839d 100644
--- a/macro/rich/geotest/TransPMT/CreateGeo/GDML_to_ROOT_Trans.C
+++ b/macro/rich/geotest/TransPMT/CreateGeo/GDML_to_ROOT_Trans.C
@@ -1,90 +1,90 @@
-void GDML_to_ROOT_Trans(float pmt_pos_y_addend = 0,
-                        float pmt_pos_z_addend = 0,
-                        int RotMir             = -10,
-                        float PMTrotX          = 5,
-                        float PMTrotY          = 5) {
-
-  char RotMirText[256];
-  if (RotMir < 0) {
-    sprintf(RotMirText, "RotMir_m%d", RotMir * -1);
-  } else {
-    sprintf(RotMirText, "RotMir_p%d", RotMir);
-  }
-
-  int ShiftXmod10     = (int(PMTrotX * 10)) % 10;
-  float IntegerXValue = PMTrotX - (float(ShiftXmod10)) / 10.;
-  int ShiftYmod10     = (int(PMTrotY * 10)) % 10;
-  float IntegerYValue = PMTrotY - (float(ShiftYmod10)) / 10.;
-
-  char ShiftXTxt[256];
-  char ShiftYTxt[256];
-  sprintf(ShiftXTxt, "Xpos%dpoint%d", IntegerXValue, ShiftXmod10);
-  sprintf(ShiftYTxt, "Ypos%dpoint%d", IntegerYValue, ShiftYmod10);
-  if (PMTrotY < 0) {
-    sprintf(ShiftYTxt, "Yneg%dpoint%d", -1. * IntegerYValue, -1. * ShiftYmod10);
-  }
-
-  /////////////////////////////////// Translation in z
-  char ZTransText[256];
-  if (pmt_pos_z_addend < 0) {
-    sprintf(ZTransText, "Z_m%d", -1 * pmt_pos_z_addend);
-  } else {
-    sprintf(ZTransText, "Z_p%d", pmt_pos_z_addend);
-  }
-  char YTransText[256];
-  if (pmt_pos_y_addend < 0) {
-    sprintf(YTransText, "Y_m%d", -1 * pmt_pos_y_addend);
-  } else {
-    sprintf(YTransText, "Y_p%d", pmt_pos_y_addend);
-  }
-
-  char GeoFileName[256];
-  sprintf(
-    GeoFileName,
-    "/geometry/rich/GeoOpt/TransPMT/rich_geo_%s_RotPMT_%s_%s_TransPMT_%s_%s",
-    RotMirText,
-    ShiftXTxt,
-    ShiftYTxt,
-    YTransText,
-    ZTransText);
-
-  stringstream ss;
-  ss << GeoFileName;
-  TString FileName = ss.str();
-
-  TString InFile = FileName + ".gdml";
-  cout << " ########## " << InFile << endl;
-  TString OutFile = FileName + ".root";
-  cout << " ########## " << OutFile << endl;
-
-  /* FileName="/geometry/rich/GeoOpt/RotPMT/NewGeo/2015_minus10deg_"; */
-  /* TString InFile=FileName+".gdml"; */
-  /* cout<<" ########## "<<InFile<<endl; */
-  /* TString OutFile=FileName+".root"; */
-  /* cout<<" ########## "<<OutFile<<endl; */
-
-
-  TString vmcDir = TString(gSystem->Getenv("VMCWORKDIR"));
-
-  TGeoManager* gdml = new TGeoManager("gdml", "FAIRGeom");
-
-  TGDMLParse parser;
-  // Define your input GDML file HERE
-  TGeoVolume* gdmlTop = parser.GDMLReadFile(vmcDir + InFile);
-  TGeoVolume* rootTop = new TGeoVolumeAssembly("TOP");
-
-  gGeoManager->SetTopVolume(rootTop);
-
-  // Define your position HERE
-  TGeoRotation* rot      = new TGeoRotation("rot", 0., 0., 0.);
-  TGeoCombiTrans* posrot = new TGeoCombiTrans(0., 0., 270., rot);
-
-  rootTop->AddNode(gdmlTop, 1, posrot);
-
-  gGeoManager->CloseGeometry();
-
-  // Define you output ROOT file HERE
-  TFile* outfile = new TFile(vmcDir + OutFile, "RECREATE");
-  rootTop->Write();
-  outfile->Close();
-}
+void GDML_to_ROOT_Trans(float pmt_pos_y_addend = 0,
+                        float pmt_pos_z_addend = 0,
+                        int RotMir             = -10,
+                        float PMTrotX          = 5,
+                        float PMTrotY          = 5) {
+
+  char RotMirText[256];
+  if (RotMir < 0) {
+    sprintf(RotMirText, "RotMir_m%d", RotMir * -1);
+  } else {
+    sprintf(RotMirText, "RotMir_p%d", RotMir);
+  }
+
+  int ShiftXmod10     = (int(PMTrotX * 10)) % 10;
+  float IntegerXValue = PMTrotX - (float(ShiftXmod10)) / 10.;
+  int ShiftYmod10     = (int(PMTrotY * 10)) % 10;
+  float IntegerYValue = PMTrotY - (float(ShiftYmod10)) / 10.;
+
+  char ShiftXTxt[256];
+  char ShiftYTxt[256];
+  sprintf(ShiftXTxt, "Xpos%dpoint%d", IntegerXValue, ShiftXmod10);
+  sprintf(ShiftYTxt, "Ypos%dpoint%d", IntegerYValue, ShiftYmod10);
+  if (PMTrotY < 0) {
+    sprintf(ShiftYTxt, "Yneg%dpoint%d", -1. * IntegerYValue, -1. * ShiftYmod10);
+  }
+
+  /////////////////////////////////// Translation in z
+  char ZTransText[256];
+  if (pmt_pos_z_addend < 0) {
+    sprintf(ZTransText, "Z_m%d", -1 * pmt_pos_z_addend);
+  } else {
+    sprintf(ZTransText, "Z_p%d", pmt_pos_z_addend);
+  }
+  char YTransText[256];
+  if (pmt_pos_y_addend < 0) {
+    sprintf(YTransText, "Y_m%d", -1 * pmt_pos_y_addend);
+  } else {
+    sprintf(YTransText, "Y_p%d", pmt_pos_y_addend);
+  }
+
+  char GeoFileName[256];
+  sprintf(
+    GeoFileName,
+    "/geometry/rich/GeoOpt/TransPMT/rich_geo_%s_RotPMT_%s_%s_TransPMT_%s_%s",
+    RotMirText,
+    ShiftXTxt,
+    ShiftYTxt,
+    YTransText,
+    ZTransText);
+
+  stringstream ss;
+  ss << GeoFileName;
+  TString FileName = ss.str();
+
+  TString InFile = FileName + ".gdml";
+  cout << " ########## " << InFile << endl;
+  TString OutFile = FileName + ".root";
+  cout << " ########## " << OutFile << endl;
+
+  /* FileName="/geometry/rich/GeoOpt/RotPMT/NewGeo/2015_minus10deg_"; */
+  /* TString InFile=FileName+".gdml"; */
+  /* cout<<" ########## "<<InFile<<endl; */
+  /* TString OutFile=FileName+".root"; */
+  /* cout<<" ########## "<<OutFile<<endl; */
+
+
+  TString vmcDir = TString(gSystem->Getenv("VMCWORKDIR"));
+
+  TGeoManager* gdml = new TGeoManager("gdml", "FAIRGeom");
+
+  TGDMLParse parser;
+  // Define your input GDML file HERE
+  TGeoVolume* gdmlTop = parser.GDMLReadFile(vmcDir + InFile);
+  TGeoVolume* rootTop = new TGeoVolumeAssembly("TOP");
+
+  gGeoManager->SetTopVolume(rootTop);
+
+  // Define your position HERE
+  TGeoRotation* rot      = new TGeoRotation("rot", 0., 0., 0.);
+  TGeoCombiTrans* posrot = new TGeoCombiTrans(0., 0., 270., rot);
+
+  rootTop->AddNode(gdmlTop, 1, posrot);
+
+  gGeoManager->CloseGeometry();
+
+  // Define you output ROOT file HERE
+  TFile* outfile = new TFile(vmcDir + OutFile, "RECREATE");
+  rootTop->Write();
+  outfile->Close();
+}
diff --git a/macro/rich/geotest/TransPMT/CreateGeo/Import_GDML_Export_ROOT.c b/macro/rich/geotest/TransPMT/CreateGeo/Import_GDML_Export_ROOT.c
index 6a736480b4..e1b0c404a2 100644
--- a/macro/rich/geotest/TransPMT/CreateGeo/Import_GDML_Export_ROOT.c
+++ b/macro/rich/geotest/TransPMT/CreateGeo/Import_GDML_Export_ROOT.c
@@ -1,71 +1,71 @@
-void Import_GDML_Export_ROOT(float PMTrotX = 5,
-                             float PMTrotY = 5,
-                             int RotMir    = -10) {
-  char RotMirText[256];
-  if (RotMir < 0) {
-    sprintf(RotMirText, "RotMir_m%d", RotMir * -1);
-  } else {
-    sprintf(RotMirText, "RotMir_p%d", RotMir);
-  }
-
-  int ShiftXmod10     = (int(PMTrotX * 10)) % 10;
-  float IntegerXValue = PMTrotX - (float(ShiftXmod10)) / 10.;
-  int ShiftYmod10     = (int(PMTrotY * 10)) % 10;
-  float IntegerYValue = PMTrotY - (float(ShiftYmod10)) / 10.;
-
-  char ShiftXTxt[256];
-  char ShiftYTxt[256];
-  sprintf(ShiftXTxt, "Xpos%dpoint%d", IntegerXValue, ShiftXmod10);
-  sprintf(ShiftYTxt, "Ypos%dpoint%d", IntegerYValue, ShiftYmod10);
-  if (PMTrotY < 0) {
-    sprintf(ShiftYTxt, "Yneg%dpoint%d", -1. * IntegerYValue, -1. * ShiftYmod10);
-  }
-
-  char GeoFileName[256];
-  sprintf(GeoFileName,
-          "/geometry/rich/GeoOpt/RotPMT/NewGeo/rich_geo_%s_RotPMT_%s_%s",
-          RotMirText,
-          ShiftXTxt,
-          ShiftYTxt);
-
-
-  stringstream ss;
-  ss << GeoFileName;
-  TString FileName = ss.str();
-
-  TString InFile = FileName + ".gdml";
-  cout << " ########## " << InFile << endl;
-  TString OutFile = FileName + ".root";
-  cout << " ########## " << OutFile << endl;
-
-  /* FileName="/geometry/rich/GeoOpt/RotPMT/NewGeo/2015_minus10deg_"; */
-  /* TString InFile=FileName+".gdml"; */
-  /* cout<<" ########## "<<InFile<<endl; */
-  /* TString OutFile=FileName+".root"; */
-  /* cout<<" ########## "<<OutFile<<endl; */
-
-
-  TString vmcDir = TString(gSystem->Getenv("VMCWORKDIR"));
-
-  TGeoManager* gdml = new TGeoManager("gdml", "FAIRGeom");
-
-  TGDMLParse parser;
-  // Define your input GDML file HERE
-  TGeoVolume* gdmlTop = parser.GDMLReadFile(vmcDir + InFile);
-  TGeoVolume* rootTop = new TGeoVolumeAssembly("TOP");
-
-  gGeoManager->SetTopVolume(rootTop);
-
-  // Define your position HERE
-  TGeoRotation* rot      = new TGeoRotation("rot", 0., 0., 0.);
-  TGeoCombiTrans* posrot = new TGeoCombiTrans(0., 0., 270., rot);
-
-  rootTop->AddNode(gdmlTop, 1, posrot);
-
-  gGeoManager->CloseGeometry();
-
-  // Define you output ROOT file HERE
-  TFile* outfile = new TFile(vmcDir + OutFile, "RECREATE");
-  rootTop->Write();
-  outfile->Close();
-}
+void Import_GDML_Export_ROOT(float PMTrotX = 5,
+                             float PMTrotY = 5,
+                             int RotMir    = -10) {
+  char RotMirText[256];
+  if (RotMir < 0) {
+    sprintf(RotMirText, "RotMir_m%d", RotMir * -1);
+  } else {
+    sprintf(RotMirText, "RotMir_p%d", RotMir);
+  }
+
+  int ShiftXmod10     = (int(PMTrotX * 10)) % 10;
+  float IntegerXValue = PMTrotX - (float(ShiftXmod10)) / 10.;
+  int ShiftYmod10     = (int(PMTrotY * 10)) % 10;
+  float IntegerYValue = PMTrotY - (float(ShiftYmod10)) / 10.;
+
+  char ShiftXTxt[256];
+  char ShiftYTxt[256];
+  sprintf(ShiftXTxt, "Xpos%dpoint%d", IntegerXValue, ShiftXmod10);
+  sprintf(ShiftYTxt, "Ypos%dpoint%d", IntegerYValue, ShiftYmod10);
+  if (PMTrotY < 0) {
+    sprintf(ShiftYTxt, "Yneg%dpoint%d", -1. * IntegerYValue, -1. * ShiftYmod10);
+  }
+
+  char GeoFileName[256];
+  sprintf(GeoFileName,
+          "/geometry/rich/GeoOpt/RotPMT/NewGeo/rich_geo_%s_RotPMT_%s_%s",
+          RotMirText,
+          ShiftXTxt,
+          ShiftYTxt);
+
+
+  stringstream ss;
+  ss << GeoFileName;
+  TString FileName = ss.str();
+
+  TString InFile = FileName + ".gdml";
+  cout << " ########## " << InFile << endl;
+  TString OutFile = FileName + ".root";
+  cout << " ########## " << OutFile << endl;
+
+  /* FileName="/geometry/rich/GeoOpt/RotPMT/NewGeo/2015_minus10deg_"; */
+  /* TString InFile=FileName+".gdml"; */
+  /* cout<<" ########## "<<InFile<<endl; */
+  /* TString OutFile=FileName+".root"; */
+  /* cout<<" ########## "<<OutFile<<endl; */
+
+
+  TString vmcDir = TString(gSystem->Getenv("VMCWORKDIR"));
+
+  TGeoManager* gdml = new TGeoManager("gdml", "FAIRGeom");
+
+  TGDMLParse parser;
+  // Define your input GDML file HERE
+  TGeoVolume* gdmlTop = parser.GDMLReadFile(vmcDir + InFile);
+  TGeoVolume* rootTop = new TGeoVolumeAssembly("TOP");
+
+  gGeoManager->SetTopVolume(rootTop);
+
+  // Define your position HERE
+  TGeoRotation* rot      = new TGeoRotation("rot", 0., 0., 0.);
+  TGeoCombiTrans* posrot = new TGeoCombiTrans(0., 0., 270., rot);
+
+  rootTop->AddNode(gdmlTop, 1, posrot);
+
+  gGeoManager->CloseGeometry();
+
+  // Define you output ROOT file HERE
+  TFile* outfile = new TFile(vmcDir + OutFile, "RECREATE");
+  rootTop->Write();
+  outfile->Close();
+}
diff --git a/macro/rich/geotest/geoopt/rich_opt_template.gdml b/macro/rich/geotest/geoopt/rich_opt_template.gdml
index 4b60b3a4c9..f190793d14 100644
--- a/macro/rich/geotest/geoopt/rich_opt_template.gdml
+++ b/macro/rich/geotest/geoopt/rich_opt_template.gdml
@@ -1,1683 +1,1683 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<gdml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://service-spi.web.cern.ch/service-spi/app/releases/GDML/schema/gdml.xsd">
-
-<define>
-<position name="central" x="0" y="0" z="0" unit="mm"/>
-<rotation name="identity" x="0" y="0" z="0" unit="degree"/>
-<variable name="DEGtoRAD" value="1.74532925199433E-02"/>
-<variable name="Acceptance_angle" value="25"/>
-<variable name="Acceptance_scaling_factor" value="1.5"/>
-<variable name="RICH_length" value="1900"/>
-<variable name="RICH_height" value="5000"/>
-<variable name="RICH_width" value="5268"/>
-<variable name="RICH_entrance_vertical_gap" value="1800"/>
-<variable name="RICH_covering_thickness" value="5"/>
-<variable name="RICH_entrance_thickness" value="0.25"/>
-<variable name="RICH_exit_thickness" value="5"/>
-<variable name="RICH_addend_Z_size" value="200"/>
-<variable name="RICH_pipe_outer_radius_at_entrance" value="74.2"/>
-<variable name="RICH_pipe_thickness_at_entrance" value="1.48"/>
-<variable name="RICH_pipe_outer_radius_at_exit" value="161.6"/>
-<variable name="RICH_pipe_thickness_at_exit" value="3.2"/>
-<variable name="RICH_pipe_cyl_part_length" value="100"/>
-<variable name="RICH_pipe_flange_thickness" value="3"/>
-<variable name="RICH_mirror_radius" value="3000"/>
-<variable name="RICH_mirror_position" value="3500"/>
-_RICH_OPTIMIZATION_PARAMATERS_
-<variable name="RICH_camera_radius" value="1697"/>
-<variable name="RICH_mirror_phi_size" value="8.425"/>
-<variable name="RICH_mirror_phi_step" value="8.5"/>
-<variable name="RICH_mirror_theta_gap" value="0.0745"/>
-<variable name="RICH_pixel_size_middle" value="6"/>
-<variable name="RICH_pixel_size_surrounding" value="6.25"/>
-<variable name="RICH_pmt_size" value="52"/>
-<variable name="RICH_pmt_depth" value="38.71"/>
-<variable name="RICH_camera_module_depth" value="250"/>
-<variable name="RICH_camera_gap_size" value="1"/>
-<variable name="RICH_camera_height" value="7*(2*RICH_pmt_size+RICH_camera_gap_size) + 6*RICH_camera_gap_size"/>
-<variable name="RICH_camera_touch_width" value="157.5"/>
-<variable name="RICH_camera_touch_radius" value="sqrt((RICH_camera_radius-10-RICH_pmt_depth)*(RICH_camera_radius-10-RICH_pmt_depth) + RICH_camera_touch_width*RICH_camera_touch_width/4)"/>
-<variable name="RICH_camera_segment_angle" value="(2*asin((RICH_camera_touch_width/2)/RICH_camera_touch_radius)/DEGtoRAD)"/>
-<variable name="RICH_camera_alu_frame_height" value="800"/>
-<variable name="Sens_plane_pos" value="-250"/>
-<variable name="Sh_box_thickness_top" value="30"/>
-<variable name="Sh_box_thickness_bottom" value="60"/>
-<variable name="Sh_box_thickness_sides" value="40"/>
-<variable name="Sh_box_thickness_back" value="50"/>
-<variable name="Sh_box_thickness_nose" value="60"/>
-<variable name="Sh_box_vert_space" value="800"/>
-<variable name="Sh_box_horiz_spread_angle" value="78"/>
-<variable name="Sh_box_horiz_add" value="40"/>
-<variable name="Sh_box_Rmin" value="1390"/>
-<variable name="Sh_box_Rmax" value="1680"/>
-<variable name="Sh_box_Rmax_bottom" value="1600"/>
-<variable name="Sh_box_nose_angle" value="45"/>
-<variable name="Sh_box_nose_vert_size" value="593"/>
-<variable name="Sh_box_cut_Z_coord" value="1600"/>
-<variable name="Back_cut_enabled" value="false"/>
-<variable name="Nose_enabled" value="true"/>
-<variable name="E" value="sin(((90-Acceptance_angle-RICH_mirror_tilt_angle))*DEGtoRAD) / sin((Acceptance_angle)*DEGtoRAD)"/>
-<variable name="A" value="(4*E*E+4*E*sin((RICH_mirror_tilt_angle)*DEGtoRAD)+1) / (cos((RICH_mirror_tilt_angle)*DEGtoRAD)*cos((RICH_mirror_tilt_angle)*DEGtoRAD))"/>
-<variable name="B" value="(2*(2*E+sin((RICH_mirror_tilt_angle)*DEGtoRAD))/cos((RICH_mirror_tilt_angle)*DEGtoRAD)) * (1 - RICH_mirror_position/(RICH_mirror_radius*cos((RICH_mirror_tilt_angle)*DEGtoRAD)))"/>
-<variable name="C" value="RICH_mirror_position*(RICH_mirror_position-2*RICH_mirror_radius*cos((RICH_mirror_tilt_angle)*DEGtoRAD)) / (RICH_mirror_radius*RICH_mirror_radius*cos((RICH_mirror_tilt_angle)*DEGtoRAD)*cos((RICH_mirror_tilt_angle)*DEGtoRAD))"/>
-<variable name="t1" value="(-B+sqrt(B*B-4*A*C)) / (2*A)"/>
-<variable name="t2" value="(-B-sqrt(B*B-4*A*C)) / (2*A)"/>
-<variable name="alpha1" value="(asin(t1)/DEGtoRAD)"/>
-<variable name="alpha2" value="(asin(t2)/DEGtoRAD)"/>
-<variable name="psi" value="(atan((RICH_mirror_radius*(sin((alpha1)*DEGtoRAD)*cos((RICH_mirror_tilt_angle)*DEGtoRAD) - sin((RICH_mirror_tilt_angle)*DEGtoRAD)*(1-cos((alpha1)*DEGtoRAD))))/RICH_mirror_position)/DEGtoRAD)"/>
-<variable name="Camera_full_Xrot" value="(psi+2*RICH_mirror_tilt_angle - RICH_camera_tilt_angle)"/>
-<variable name="Camera_origin_Y_coord" value="RICH_mirror_position*tan((psi)*DEGtoRAD) + (RICH_mirror_radius/2)*sin(((psi+2*RICH_mirror_tilt_angle))*DEGtoRAD) + RICH_camera_radius*sin((Camera_full_Xrot)*DEGtoRAD)"/>
-<variable name="Camera_origin_Z_coord" value="RICH_mirror_position - (RICH_mirror_radius/2)*cos(((psi+2*RICH_mirror_tilt_angle))*DEGtoRAD) - RICH_camera_radius*cos((Camera_full_Xrot)*DEGtoRAD)"/>
-<variable name="Mirror_origin_Y_coord" value="RICH_mirror_radius * sin(((RICH_mirror_tilt_angle+alpha1))*DEGtoRAD)"/>
-<variable name="Mirror_origin_Z_coord" value="RICH_mirror_position - RICH_mirror_radius*cos((RICH_mirror_tilt_angle)*DEGtoRAD)"/>
-</define>
-
-<materials>
-<material name="CsI" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="RICHgas_CO2_dis" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="aluminium" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="vacuum" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="RICHglass" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="kapton" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="iron" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-<material name="RICHgas_CO2_dis+" Z="1.0">
-<D value="1"/>
-<atom value="1"/>
-</material>
-</materials>
-
-<solids>
-<box name="pmt_pixel_PartBody" x="((RICH_pixel_size_middle/2) * 1)*2" y="((RICH_pixel_size_middle/2) * 1)*2" z="(0.250000)*2" lunit="mm"/>
-<box name="pmt_pixel_wide_PartBody" x="((RICH_pixel_size_surrounding/2) * 1)*2" y="((RICH_pixel_size_surrounding/2) * 1)*2" z="(0.250000)*2" lunit="mm"/>
-<box name="pmt_pixel_vertical_PartBody" x="((RICH_pixel_size_middle/2) * 1)*2" y="((RICH_pixel_size_surrounding/2) * 1)*2" z="(0.250000)*2" lunit="mm"/>
-<box name="pmt_pixel_horisontal_PartBody" x="((RICH_pixel_size_surrounding/2) * 1)*2" y="((RICH_pixel_size_middle/2) * 1)*2" z="(0.250000)*2" lunit="mm"/>
-<box name="pmt_PartBody" x="((RICH_pmt_size/2) * 1)*2" y="((RICH_pmt_size/2) * 1)*2" z="((RICH_pmt_depth/2) * 1)*2" lunit="mm"/>
-<box name="pmt_container_PartBody" x="((RICH_pmt_size/2) * 1)*2" y="((RICH_pmt_size/2) * 1)*2" z="((RICH_pmt_depth/2) * 1)*2" lunit="mm"/>
-<box name="camera_module_PartBody" x="(((3*RICH_pmt_size+2*RICH_camera_gap_size)/2) * 1)*2" y="(((2*RICH_pmt_size+RICH_camera_gap_size)/2) * 1)*2" z="((RICH_pmt_depth/2) * 1)*2" lunit="mm"/>
-<box name="alu_frame_PartBody" x="((RICH_camera_touch_width/2) * 1)*2" y="(((14*RICH_pmt_size+13*RICH_camera_gap_size)/2) * 1)*2" z="(5.000000)*2" lunit="mm"/>
-<box name="camera_strip_PartBody_op0" x="(((3*RICH_pmt_size+2*RICH_camera_gap_size)/2) * 1)*2" y="(((7*(2*RICH_pmt_size+RICH_camera_gap_size) + 6*RICH_camera_gap_size)/2) * 1)*2" z="((RICH_pmt_depth/2) * 1)*2" lunit="mm"/>
-<box name="camera_strip_PartBody_op1" x="((RICH_camera_touch_width/2) * 1)*2" y="(((7*(2*RICH_pmt_size+RICH_camera_gap_size) + 6*RICH_camera_gap_size)/2) * 1)*2" z="(5.000000)*2" lunit="mm"/>
-<union name="camera_strip_PartBody">
-<first ref="camera_strip_PartBody_op0"/>
-<second ref="camera_strip_PartBody_op1"/>
-<position name="camera_strip_PartBody__1_pos_0" x="0" y="0" z="(-RICH_pmt_depth/2-5) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</union>
-<tube name="rich_cyl_pipe_section_vac_PartBody" rmin="0.000000" rmax="(RICH_pipe_outer_radius_at_entrance-RICH_pipe_thickness_at_entrance) * 1" z="((RICH_pipe_cyl_part_length/2) * 1)*2" startphi="0.000000" deltaphi="360.000000" aunit="deg" lunit="mm"/>
-<tube name="rich_cyl_pipe_section_PartBody" rmin="0.000000" rmax="(RICH_pipe_outer_radius_at_entrance) * 1" z="((RICH_pipe_cyl_part_length/2) * 1)*2" startphi="0.000000" deltaphi="360.000000" aunit="deg" lunit="mm"/>
-<tube name="rich_pipe_flange_PartBody" rmin="(RICH_pipe_outer_radius_at_entrance) * 1" rmax="80.000000" z="((RICH_pipe_flange_thickness/2) * 1)*2" startphi="0.000000" deltaphi="360.000000" aunit="deg" lunit="mm"/>
-<cone name="rich_pipe_section_vac_PartBody" rmin1="0.000000" rmax1="(RICH_pipe_outer_radius_at_entrance-RICH_pipe_thickness_at_entrance) * 1" rmin2="0.000000" rmax2="(RICH_pipe_outer_radius_at_exit-RICH_pipe_thickness_at_exit) * 1" z="((RICH_length/2) * 1)*2" startphi="0.000000" deltaphi="360.000000" aunit="deg" lunit="mm"/>
-<cone name="rich_pipe_section_PartBody" rmin1="0.000000" rmax1="(RICH_pipe_outer_radius_at_entrance) * 1" rmin2="0.000000" rmax2="(RICH_pipe_outer_radius_at_exit) * 1" z="((RICH_length/2) * 1)*2" startphi="0.000000" deltaphi="360.000000" aunit="deg" lunit="mm"/>
-<sphere name="mirror_tile_type0_PartBody_op0" rmin="(RICH_mirror_radius) * 1" rmax="(RICH_mirror_radius+6) * 1" startphi="(-RICH_mirror_phi_size/2) * 1" deltaphi="(RICH_mirror_phi_size) * 1" starttheta="(90+RICH_mirror_tilt_angle+alpha1/2+RICH_mirror_theta_gap*3/4) * 1" deltatheta="(alpha1/2 - RICH_mirror_theta_gap*3/4) * 1" aunit="deg" lunit="mm"/>
-<box name="mirror_tile_type0_PartBody_op1" x="(5000.000000)*2" y="((RICH_width/2) * 1)*2" z="(100.000000)*2" lunit="mm"/>
-<subtraction name="mirror_tile_type0_PartBody">
-<first ref="mirror_tile_type0_PartBody_op0"/>
-<second ref="mirror_tile_type0_PartBody_op1"/>
-<position name="mirror_tile_type0_PartBody__1_pos_0" x="0" y="0" z="(-Mirror_origin_Y_coord-100) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</subtraction>
-<sphere name="mirror_tile_type1_PartBody" rmin="(RICH_mirror_radius) * 1" rmax="(RICH_mirror_radius+6) * 1" startphi="(-RICH_mirror_phi_size/2) * 1" deltaphi="(RICH_mirror_phi_size) * 1" starttheta="(90+RICH_mirror_tilt_angle+RICH_mirror_theta_gap/2) * 1" deltatheta="(alpha1/2 - RICH_mirror_theta_gap*3/4) * 1" aunit="deg" lunit="mm"/>
-<sphere name="mirror_tile_type2_PartBody" rmin="(RICH_mirror_radius) * 1" rmax="(RICH_mirror_radius+6) * 1" startphi="(-RICH_mirror_phi_size/2) * 1" deltaphi="(RICH_mirror_phi_size) * 1" starttheta="(90+RICH_mirror_tilt_angle-alpha1/2+RICH_mirror_theta_gap/4) * 1" deltatheta="(alpha1/2 - RICH_mirror_theta_gap*3/4) * 1" aunit="deg" lunit="mm"/>
-<sphere name="mirror_tile_type3_PartBody" rmin="(RICH_mirror_radius) * 1" rmax="(RICH_mirror_radius+6) * 1" startphi="(-RICH_mirror_phi_size/2) * 1" deltaphi="(RICH_mirror_phi_size) * 1" starttheta="(90+RICH_mirror_tilt_angle-alpha1) * 1" deltatheta="(alpha1/2 - RICH_mirror_theta_gap*3/4) * 1" aunit="deg" lunit="mm"/>
-<sphere name="mirror_tile_type4_PartBody_op0" rmin="(RICH_mirror_radius) * 1" rmax="(RICH_mirror_radius+6) * 1" startphi="(-RICH_mirror_phi_size/2) * 1" deltaphi="(RICH_mirror_phi_size) * 1" starttheta="(90+RICH_mirror_tilt_angle+alpha1/2+RICH_mirror_theta_gap*3/4) * 1" deltatheta="(alpha1/2 - RICH_mirror_theta_gap*3/4) * 1" aunit="deg" lunit="mm"/>
-<box name="mirror_tile_type4_PartBody_op1" x="(5000.000000)*2" y="((RICH_width/2) * 1)*2" z="(100.000000)*2" lunit="mm"/>
-<subtraction name="mirror_tile_type4_PartBody_op01">
-<first ref="mirror_tile_type4_PartBody_op0"/>
-<second ref="mirror_tile_type4_PartBody_op1"/>
-<position name="mirror_tile_type4_PartBody__1_pos_0" x="0" y="0" z="(-Mirror_origin_Y_coord-100) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</subtraction>
-<tube name="mirror_tile_type4_PartBody_op2" rmin="0.000000" rmax="800.000000" z="(3200.000000)*2" startphi="-90.000000" deltaphi="135.000000" aunit="deg" lunit="mm"/>
-<subtraction name="mirror_tile_type4_PartBody">
-<first ref="mirror_tile_type4_PartBody_op01"/>
-<second ref="mirror_tile_type4_PartBody_op2"/>
-<position name="mirror_tile_type4_PartBody__2_pos_01" x="0" y="0" z="(-RICH_mirror_radius*sin(((RICH_mirror_tilt_angle+alpha1))*DEGtoRAD)) * 1" unit="mm"/>
-<rotation name="mirror_tile_type4_PartBody__2_rot_01" x="90.0" y="0" z="90.0" unit="deg"/>
-</subtraction>
-<sphere name="mirror_tile_type5_PartBody_op0" rmin="(RICH_mirror_radius) * 1" rmax="(RICH_mirror_radius+6) * 1" startphi="(-RICH_mirror_phi_size/2) * 1" deltaphi="(RICH_mirror_phi_size) * 1" starttheta="(90+RICH_mirror_tilt_angle+alpha1/2+RICH_mirror_theta_gap*3/4) * 1" deltatheta="(alpha1/2 - RICH_mirror_theta_gap*3/4) * 1" aunit="deg" lunit="mm"/>
-<box name="mirror_tile_type5_PartBody_op1" x="(5000.000000)*2" y="((RICH_width/2) * 1)*2" z="(100.000000)*2" lunit="mm"/>
-<subtraction name="mirror_tile_type5_PartBody_op01">
-<first ref="mirror_tile_type5_PartBody_op0"/>
-<second ref="mirror_tile_type5_PartBody_op1"/>
-<position name="mirror_tile_type5_PartBody__1_pos_0" x="0" y="0" z="(-Mirror_origin_Y_coord-100) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</subtraction>
-<tube name="mirror_tile_type5_PartBody_op2" rmin="0.000000" rmax="800.000000" z="(3200.000000)*2" startphi="135.000000" deltaphi="135.000000" aunit="deg" lunit="mm"/>
-<subtraction name="mirror_tile_type5_PartBody">
-<first ref="mirror_tile_type5_PartBody_op01"/>
-<second ref="mirror_tile_type5_PartBody_op2"/>
-<position name="mirror_tile_type5_PartBody__2_pos_01" x="0" y="0" z="(-RICH_mirror_radius*sin(((RICH_mirror_tilt_angle+alpha1))*DEGtoRAD)) * 1" unit="mm"/>
-<rotation name="mirror_tile_type5_PartBody__2_rot_01" x="90.0" y="0" z="90.0" unit="deg"/>
-</subtraction>
-<box name="rich_entrance_PartBody_op0" x="((RICH_width/2) * 1)*2" y="((RICH_entrance_vertical_gap/2) * 1)*2" z="((RICH_entrance_thickness/2) * 1)*2" lunit="mm"/>
-<cone name="rich_entrance_PartBody_op1" rmin1="0.000000" rmax1="(RICH_pipe_outer_radius_at_entrance) * 1" rmin2="0.000000" rmax2="(RICH_pipe_outer_radius_at_exit) * 1" z="((RICH_length/2) * 1)*2" startphi="0.000000" deltaphi="360.000000" aunit="deg" lunit="mm"/>
-<subtraction name="rich_entrance_PartBody">
-<first ref="rich_entrance_PartBody_op0"/>
-<second ref="rich_entrance_PartBody_op1"/>
-<position name="rich_entrance_PartBody__1_pos_0" x="0" y="0" z="(RICH_length/2-RICH_entrance_thickness/2) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</subtraction>
-<box name="rich_exit_PartBody_op0" x="((RICH_width/2) * 1)*2" y="((RICH_height/2) * 1)*2" z="((RICH_exit_thickness/2) * 1)*2" lunit="mm"/>
-<cone name="rich_exit_PartBody_op1" rmin1="0.000000" rmax1="(RICH_pipe_outer_radius_at_entrance) * 1" rmin2="0.000000" rmax2="(RICH_pipe_outer_radius_at_exit) * 1" z="((RICH_length/2) * 1)*2" startphi="0.000000" deltaphi="360.000000" aunit="deg" lunit="mm"/>
-<subtraction name="rich_exit_PartBody">
-<first ref="rich_exit_PartBody_op0"/>
-<second ref="rich_exit_PartBody_op1"/>
-<position name="rich_exit_PartBody__1_pos_0" x="0" y="0" z="(-RICH_length/2+RICH_exit_thickness/2) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</subtraction>
-<tube name="Shielding_box_top_PartBody" rmin="(Sh_box_Rmin - Sh_box_thickness_back) * 1" rmax="Sh_box_Rmax * 1" z="((Sh_box_thickness_top/2) * 1)*2" startphi="(-Sh_box_horiz_spread_angle/2) * 1" deltaphi="(Sh_box_horiz_spread_angle) * 1" aunit="deg" lunit="mm"/>
-<tube name="Shielding_box_back_PartBody_op0" rmin="(Sh_box_Rmin-Sh_box_thickness_back) * 1" rmax="(Sh_box_Rmin) * 1" z="((Sh_box_vert_space/2) * 1)*2" startphi="(-Sh_box_horiz_spread_angle/2) * 1" deltaphi="(Sh_box_horiz_spread_angle) * 1" aunit="deg" lunit="mm"/>
-<box name="Shielding_box_back_PartBody_op1" x="(500.000000)*2" y="(2000.000000)*2" z="(3000.000000)*2" lunit="mm"/>
-<subtraction name="Shielding_box_back_PartBody">
-<first ref="Shielding_box_back_PartBody_op0"/>
-<second ref="Shielding_box_back_PartBody_op1"/>
-<position name="Shielding_box_back_PartBody__1_pos_0" x="(Camera_origin_Y_coord*sin((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_cut_Z_coord-500-Camera_origin_Z_coord)*cos((Camera_full_Xrot)*DEGtoRAD)) * 1" y="0" z="(-Camera_origin_Y_coord*cos((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_cut_Z_coord-500-Camera_origin_Z_coord)*sin((Camera_full_Xrot)*DEGtoRAD)) * 1" unit="mm"/>
-<rotation name="Shielding_box_back_PartBody__1_rot_0" x="0" y="(-Camera_full_Xrot) * 1" z="0" unit="deg"/>
-</subtraction>
-<cone name="Shielding_box_bottom_PartBody_op0" rmin1="(Sh_box_Rmin-Sh_box_thickness_back) * 1" rmax1="(Sh_box_Rmax_bottom-Sh_box_thickness_nose+Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD)) * 1" rmin2="(Sh_box_Rmin-Sh_box_thickness_back) * 1" rmax2="(Sh_box_Rmax_bottom-Sh_box_thickness_nose) * 1" z="((Sh_box_thickness_bottom/2) * 1)*2" startphi="(-Sh_box_horiz_spread_angle/2) * 1" deltaphi="(Sh_box_horiz_spread_angle) * 1" aunit="deg" lunit="mm"/>
-<box name="Shielding_box_bottom_PartBody_op1" x="(500.000000)*2" y="(2000.000000)*2" z="(3000.000000)*2" lunit="mm"/>
-<subtraction name="Shielding_box_bottom_PartBody">
-<first ref="Shielding_box_bottom_PartBody_op0"/>
-<second ref="Shielding_box_bottom_PartBody_op1"/>
-<position name="Shielding_box_bottom_PartBody__1_pos_0" x="(Camera_origin_Y_coord*sin((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_cut_Z_coord-500-Camera_origin_Z_coord)*cos((Camera_full_Xrot)*DEGtoRAD)) * 1" y="0" z="(-Camera_origin_Y_coord*cos((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_cut_Z_coord-500-Camera_origin_Z_coord)*sin((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_vert_space+Sh_box_thickness_bottom)/2) * 1" unit="mm"/>
-<rotation name="Shielding_box_bottom_PartBody__1_rot_0" x="0" y="(-Camera_full_Xrot) * 1" z="0" unit="deg"/>
-</subtraction>
-<box name="Shielding_box_top_horiz_add_PartBody" x="(((Sh_box_Rmax-Sh_box_Rmin+Sh_box_thickness_back)/2) * 1)*2" y="(((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * 1)*2" z="((Sh_box_thickness_top/2) * 1)*2" lunit="mm"/>
-<box name="Shielding_box_back_horiz_add_PartBody_op0" x="((Sh_box_thickness_back/2) * 1)*2" y="(((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * 1)*2" z="((Sh_box_vert_space/2) * 1)*2" lunit="mm"/>
-<box name="Shielding_box_back_horiz_add_PartBody_op1" x="(500.000000)*2" y="(2000.000000)*2" z="(3000.000000)*2" lunit="mm"/>
-<subtraction name="Shielding_box_back_horiz_add_PartBody">
-<first ref="Shielding_box_back_horiz_add_PartBody_op0"/>
-<second ref="Shielding_box_back_horiz_add_PartBody_op1"/>
-<position name="Shielding_box_back_horiz_add_PartBody__1_pos_0" x="0" y="0" z="(-Camera_origin_Y_coord*cos((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_cut_Z_coord-500-Camera_origin_Z_coord)*sin((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_vert_space+Sh_box_thickness_bottom)/2) * 1" unit="mm"/>
-<rotation name="Shielding_box_back_horiz_add_PartBody__1_rot_0" x="0" y="(-Camera_full_Xrot) * 1" z="(-Sh_box_horiz_spread_angle/2) * 1" unit="deg"/>
-</subtraction>
-<box name="Shielding_box_back_horiz_add_sym_PartBody_op0" x="((Sh_box_thickness_back/2) * 1)*2" y="(((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * 1)*2" z="((Sh_box_vert_space/2) * 1)*2" lunit="mm"/>
-<box name="Shielding_box_back_horiz_add_sym_PartBody_op1" x="(500.000000)*2" y="(2000.000000)*2" z="(3000.000000)*2" lunit="mm"/>
-<subtraction name="Shielding_box_back_horiz_add_sym_PartBody">
-<first ref="Shielding_box_back_horiz_add_sym_PartBody_op0"/>
-<second ref="Shielding_box_back_horiz_add_sym_PartBody_op1"/>
-<position name="Shielding_box_back_horiz_add_sym_PartBody__1_pos_0" x="0" y="0" z="(-Camera_origin_Y_coord*cos((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_cut_Z_coord-500-Camera_origin_Z_coord)*sin((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_vert_space+Sh_box_thickness_bottom)/2) * 1" unit="mm"/>
-<rotation name="Shielding_box_back_horiz_add_sym_PartBody__1_rot_0" x="0" y="(-Camera_full_Xrot) * 1" z="(Sh_box_horiz_spread_angle/2) * 1" unit="deg"/>
-</subtraction>
-<trap name="Shielding_box_bottom_horiz_add_PartBody_op0" z="((Sh_box_thickness_bottom/2) * 1)*2" theta="-atan(tan((Sh_box_nose_angle)*DEGtoRAD)/2)/DEGtoRAD" phi="0.000000" y1="(((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * 1)*2" x1="(((Sh_box_Rmax_bottom-Sh_box_Rmin+Sh_box_thickness_back-Sh_box_thickness_nose+Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD))/2) * 1)*2" x2="(((Sh_box_Rmax_bottom-Sh_box_Rmin+Sh_box_thickness_back-Sh_box_thickness_nose+Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD))/2) * 1)*2" alpha1="0.000000" y2="(((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * 1)*2" x3="(((Sh_box_Rmax_bottom-Sh_box_Rmin+Sh_box_thickness_back-Sh_box_thickness_nose)/2) * 1)*2" x4="(((Sh_box_Rmax_bottom-Sh_box_Rmin+Sh_box_thickness_back-Sh_box_thickness_nose)/2) * 1)*2" alpha2="0.000000" aunit="deg" lunit="mm"/>
-<box name="Shielding_box_bottom_horiz_add_PartBody_op1" x="(500.000000)*2" y="(2000.000000)*2" z="(3000.000000)*2" lunit="mm"/>
-<subtraction name="Shielding_box_bottom_horiz_add_PartBody">
-<first ref="Shielding_box_bottom_horiz_add_PartBody_op0"/>
-<second ref="Shielding_box_bottom_horiz_add_PartBody_op1"/>
-<position name="Shielding_box_bottom_horiz_add_PartBody__1_pos_0" x="0" y="0" z="(-Camera_origin_Y_coord*cos((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_cut_Z_coord-500-Camera_origin_Z_coord)*sin((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_vert_space+Sh_box_thickness_bottom)/2) * 1" unit="mm"/>
-<rotation name="Shielding_box_bottom_horiz_add_PartBody__1_rot_0" x="0" y="(-Camera_full_Xrot) * 1" z="(-Sh_box_horiz_spread_angle/2) * 1" unit="deg"/>
-</subtraction>
-<trap name="Shielding_box_bottom_horiz_add_sym_PartBody_op0" z="((Sh_box_thickness_bottom/2) * 1)*2" theta="-atan(tan((Sh_box_nose_angle)*DEGtoRAD)/2)/DEGtoRAD" phi="0.000000" y1="(((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * 1)*2" x1="(((Sh_box_Rmax_bottom-Sh_box_Rmin+Sh_box_thickness_back-Sh_box_thickness_nose+Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD))/2) * 1)*2" x2="(((Sh_box_Rmax_bottom-Sh_box_Rmin+Sh_box_thickness_back-Sh_box_thickness_nose+Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD))/2) * 1)*2" alpha1="0.000000" y2="(((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * 1)*2" x3="(((Sh_box_Rmax_bottom-Sh_box_Rmin+Sh_box_thickness_back-Sh_box_thickness_nose)/2) * 1)*2" x4="(((Sh_box_Rmax_bottom-Sh_box_Rmin+Sh_box_thickness_back-Sh_box_thickness_nose)/2) * 1)*2" alpha2="0.000000" aunit="deg" lunit="mm"/>
-<box name="Shielding_box_bottom_horiz_add_sym_PartBody_op1" x="(500.000000)*2" y="(2000.000000)*2" z="(3000.000000)*2" lunit="mm"/>
-<subtraction name="Shielding_box_bottom_horiz_add_sym_PartBody">
-<first ref="Shielding_box_bottom_horiz_add_sym_PartBody_op0"/>
-<second ref="Shielding_box_bottom_horiz_add_sym_PartBody_op1"/>
-<position name="Shielding_box_bottom_horiz_add_sym_PartBody__1_pos_0" x="0" y="0" z="(-Camera_origin_Y_coord*cos((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_cut_Z_coord-500-Camera_origin_Z_coord)*sin((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_vert_space+Sh_box_thickness_bottom)/2) * 1" unit="mm"/>
-<rotation name="Shielding_box_bottom_horiz_add_sym_PartBody__1_rot_0" x="0" y="(-Camera_full_Xrot) * 1" z="(Sh_box_horiz_spread_angle/2) * 1" unit="deg"/>
-</subtraction>
-<box name="Shielding_box_side_PartBody_op0" x="(((Sh_box_Rmax-Sh_box_Rmin)/2) * 1)*2" y="((Sh_box_thickness_sides/2) * 1)*2" z="((Sh_box_vert_space/2) * 1)*2" lunit="mm"/>
-<box name="Shielding_box_side_PartBody_op1" x="(500.000000)*2" y="(2000.000000)*2" z="(3000.000000)*2" lunit="mm"/>
-<subtraction name="Shielding_box_side_PartBody">
-<first ref="Shielding_box_side_PartBody_op0"/>
-<second ref="Shielding_box_side_PartBody_op1"/>
-<positionref ref="central"/>
-<rotation name="Shielding_box_side_PartBody__1_rot_0" x="0" y="(-Camera_full_Xrot) * 1" z="(-Sh_box_horiz_spread_angle/2) * 1" unit="deg"/>
-</subtraction>
-<box name="Shielding_box_side_sym_PartBody_op0" x="(((Sh_box_Rmax-Sh_box_Rmin)/2) * 1)*2" y="((Sh_box_thickness_sides/2) * 1)*2" z="((Sh_box_vert_space/2) * 1)*2" lunit="mm"/>
-<box name="Shielding_box_side_sym_PartBody_op1" x="(500.000000)*2" y="(2000.000000)*2" z="(3000.000000)*2" lunit="mm"/>
-<subtraction name="Shielding_box_side_sym_PartBody">
-<first ref="Shielding_box_side_sym_PartBody_op0"/>
-<second ref="Shielding_box_side_sym_PartBody_op1"/>
-<position name="Shielding_box_side_sym_PartBody__1_pos_0" x="0" y="0" z="(-Camera_origin_Y_coord*cos((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_cut_Z_coord-500-Camera_origin_Z_coord)*sin((Camera_full_Xrot)*DEGtoRAD)) * 1" unit="mm"/>
-<rotation name="Shielding_box_side_sym_PartBody__1_rot_0" x="0" y="(-Camera_full_Xrot) * 1" z="(Sh_box_horiz_spread_angle/2) * 1" unit="deg"/>
-</subtraction>
-<trap name="Shielding_box_nose_horiz_add_PartBody" z="((Sh_box_nose_vert_size/2) * 1)*2" theta="(-Sh_box_nose_angle) * 1" phi="0.000000" y1="(((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * 1)*2" x1="((Sh_box_thickness_nose/2) * 1)*2" x2="((Sh_box_thickness_nose/2) * 1)*2" alpha1="0.000000" y2="(((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * 1)*2" x3="((Sh_box_thickness_nose/2) * 1)*2" x4="((Sh_box_thickness_nose/2) * 1)*2" alpha2="0.000000" aunit="deg" lunit="mm"/>
-<trap name="Shielding_box_small_piece_PartBody" z="((Sh_box_thickness_bottom/2) * 1)*2" theta="-atan(tan((Sh_box_nose_angle)*DEGtoRAD)/2)/DEGtoRAD" phi="0.000000" y1="((Sh_box_thickness_sides/2) * 1)*2" x1="(((Sh_box_Rmax-Sh_box_Rmax_bottom-Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD))/2) * 1)*2" x2="(((Sh_box_Rmax-Sh_box_Rmax_bottom-Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD))/2) * 1)*2" alpha1="0.000000" y2="((Sh_box_thickness_sides/2) * 1)*2" x3="(((Sh_box_Rmax-Sh_box_Rmax_bottom)/2) * 1)*2" x4="(((Sh_box_Rmax-Sh_box_Rmax_bottom)/2) * 1)*2" alpha2="0.000000" aunit="deg" lunit="mm"/>
-<cone name="Shielding_box_nose_PartBody_op0" rmin1="(Sh_box_Rmax_bottom-Sh_box_thickness_nose+Sh_box_nose_vert_size*tan((Sh_box_nose_angle)*DEGtoRAD)) * 1" rmax1="(Sh_box_Rmax_bottom+Sh_box_nose_vert_size*tan((Sh_box_nose_angle)*DEGtoRAD)) * 1" rmin2="(Sh_box_Rmax_bottom-Sh_box_thickness_nose) * 1" rmax2="(Sh_box_Rmax_bottom) * 1" z="((Sh_box_nose_vert_size/2) * 1)*2" startphi="(-Sh_box_horiz_spread_angle/2) * 1" deltaphi="(Sh_box_horiz_spread_angle) * 1" aunit="deg" lunit="mm"/>
-<elcone name="Shielding_box_nose_PartBody_op1" dx="(1901.782178)/4078.385024" dy="(2852.673267)/4078.385024" zmax="(4078.385024)/2" zcut="(4078.385024)/2" lunit="mm"/>
-<subtraction name="Shielding_box_nose_PartBody">
-<first ref="Shielding_box_nose_PartBody_op0"/>
-<second ref="Shielding_box_nose_PartBody_op1"/>
-<position name="Shielding_box_nose_PartBody__1_pos_0" x="(Camera_origin_Y_coord*sin((Camera_full_Xrot)*DEGtoRAD) + (4078.385024/2-Camera_origin_Z_coord)*cos((Camera_full_Xrot)*DEGtoRAD)) * 1" y="0" z="(-(Camera_origin_Y_coord*cos((Camera_full_Xrot)*DEGtoRAD) - (4078.385024/2-Camera_origin_Z_coord)*sin((Camera_full_Xrot)*DEGtoRAD) - (Sh_box_vert_space+Sh_box_nose_vert_size)/2)) * 1" unit="mm"/>
-<rotation name="Shielding_box_nose_PartBody__1_rot_0" x="0" y="(-90-Camera_full_Xrot) * 1" z="0" unit="deg"/>
-</subtraction>
-<box name="sens_plane_PartBody_op0" x="(500.000000)*2" y="(500.000000)*2" z="(0.500000)*2" lunit="mm"/>
-<cone name="sens_plane_PartBody_op1" rmin1="0.000000" rmax1="(RICH_pipe_outer_radius_at_entrance) * 1" rmin2="0.000000" rmax2="(RICH_pipe_outer_radius_at_exit) * 1" z="((RICH_length/2) * 1)*2" startphi="0.000000" deltaphi="360.000000" aunit="deg" lunit="mm"/>
-<subtraction name="sens_plane_PartBody">
-<first ref="sens_plane_PartBody_op0"/>
-<second ref="sens_plane_PartBody_op1"/>
-<position name="sens_plane_PartBody__1_pos_0" x="0" y="0" z="(-Sens_plane_pos + (RICH_exit_thickness-RICH_entrance_thickness)/2) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</subtraction>
-<sphere name="Mirror_PartBody_op0" rmin="(RICH_mirror_radius) * 1" rmax="(RICH_mirror_radius+6) * 1" startphi="(-(RICH_mirror_phi_step*9/2+RICH_mirror_phi_size/2)) * 1" deltaphi="(RICH_mirror_phi_step*9+RICH_mirror_phi_size) * 1" starttheta="(90+RICH_mirror_tilt_angle-alpha1) * 1" deltatheta="(2*alpha1) * 1" aunit="deg" lunit="mm"/>
-<box name="Mirror_PartBody_op1" x="(5000.000000)*2" y="((RICH_width/2) * 1)*2" z="(100.000000)*2" lunit="mm"/>
-<subtraction name="Mirror_PartBody_op01">
-<first ref="Mirror_PartBody_op0"/>
-<second ref="Mirror_PartBody_op1"/>
-<position name="Mirror_PartBody__1_pos_0" x="0" y="0" z="(-Mirror_origin_Y_coord-100) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</subtraction>
-<box name="Mirror_PartBody_op2" x="(5000.000000)*2" y="(185.000000)*2" z="(185.000000)*2" lunit="mm"/>
-<subtraction name="Mirror_PartBody">
-<first ref="Mirror_PartBody_op01"/>
-<second ref="Mirror_PartBody_op2"/>
-<position name="Mirror_PartBody__2_pos_01" x="0" y="0" z="(-Mirror_origin_Y_coord) * 1" unit="mm"/>
-<rotation name="Mirror_PartBody__2_rot_01" x="45.0000000000647" y="0" z="0" unit="deg"/>
-</subtraction>
-<tube name="Camera_PartBody" rmin="(RICH_camera_radius-0.5) * 1" rmax="(RICH_camera_radius) * 1" z="(((7*(2*RICH_pmt_size+RICH_camera_gap_size) + 6*RICH_camera_gap_size)/2) * 1)*2" startphi="(-7 * RICH_camera_segment_angle) * 1" deltaphi="(14 * RICH_camera_segment_angle) * 1" aunit="deg" lunit="mm"/>
-<tube name="Solid_behind_camera_PartBody" rmin="(RICH_camera_radius-10.5) * 1" rmax="(RICH_camera_radius-0.5) * 1" z="((RICH_camera_height/2) * 1)*2" startphi="(-7 * RICH_camera_segment_angle) * 1" deltaphi="(14 * RICH_camera_segment_angle) * 1" aunit="deg" lunit="mm"/>
-<box name="mainframe_part2_gas_PartBody" x="(1395.000000)*2" y="(43.000000)*2" z="(43.000000)*2" lunit="mm"/>
-<box name="mainframe_part3_gas_PartBody" x="(43.000000)*2" y="(43.000000)*2" z="(432.919390)*2" lunit="mm"/>
-<trap name="mainframe_part5_gas_PartBody" z="(43.000000)*2" theta="-26.016698" phi="0.000000" y1="(43.000000)*2" x1="(719.697521)*2" x2="(719.697521)*2" alpha1="0.000000" y2="(43.000000)*2" x3="(624.000148)*2" x4="(624.000148)*2" alpha2="0.000000" aunit="deg" lunit="mm"/>
-<box name="mainframe_part8_gas_PartBody" x="(43.000000)*2" y="((RICH_height/2-RICH_covering_thickness-100) * 1)*2" z="(43.000000)*2" lunit="mm"/>
-<box name="mainframe_part9_gas_PartBody" x="(2629.000000)*2" y="(43.000000)*2" z="(43.000000)*2" lunit="mm"/>
-<box name="mainframe_part10_gas_PartBody" x="(43.000000)*2" y="(43.000000)*2" z="(461.955610)*2" lunit="mm"/>
-<box name="mainframe_part2_PartBody" x="(1395.000000)*2" y="(50.000000)*2" z="(50.000000)*2" lunit="mm"/>
-<box name="mainframe_part3_PartBody" x="(50.000000)*2" y="(50.000000)*2" z="(432.919390)*2" lunit="mm"/>
-<trap name="mainframe_part5_PartBody" z="(50.000000)*2" theta="-26.016698" phi="0.000000" y1="(50.000000)*2" x1="(727.486842)*2" x2="(727.486842)*2" alpha1="0.000000" y2="(50.000000)*2" x3="(616.210827)*2" x4="(616.210827)*2" alpha2="0.000000" aunit="deg" lunit="mm"/>
-<box name="mainframe_part8_PartBody" x="(50.000000)*2" y="((RICH_height/2-RICH_covering_thickness-100) * 1)*2" z="(50.000000)*2" lunit="mm"/>
-<box name="mainframe_part9_PartBody" x="(2629.000000)*2" y="(50.000000)*2" z="(50.000000)*2" lunit="mm"/>
-<box name="mainframe_part10_PartBody" x="(50.000000)*2" y="(50.000000)*2" z="(461.955610)*2" lunit="mm"/>
-<box name="rich_gas_PartBody_op0" x="((RICH_width/2-RICH_covering_thickness) * 1)*2" y="((RICH_height/2-RICH_covering_thickness) * 1)*2" z="(((RICH_length-RICH_entrance_thickness-RICH_exit_thickness)/2) * 1)*2" lunit="mm"/>
-<box name="rich_gas_PartBody_op1" x="((RICH_width/2-RICH_covering_thickness) * 1)*2" y="((((RICH_height-RICH_entrance_vertical_gap)/2 - 2*RICH_covering_thickness)/2) * 1)*2" z="(((RICH_addend_Z_size-RICH_covering_thickness + RICH_entrance_thickness)/2) * 1)*2" lunit="mm"/>
-<union name="rich_gas_PartBody_op01">
-<first ref="rich_gas_PartBody_op0"/>
-<second ref="rich_gas_PartBody_op1"/>
-<position name="rich_gas_PartBody__1_pos_0" x="0" y="((RICH_height/2 + RICH_entrance_vertical_gap/2)/2) * 1" z="(-RICH_length/2-RICH_addend_Z_size/2 + RICH_covering_thickness) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</union>
-<box name="rich_gas_PartBody_op2" x="((RICH_width/2-RICH_covering_thickness) * 1)*2" y="((((RICH_height-RICH_entrance_vertical_gap)/2 - 2*RICH_covering_thickness)/2) * 1)*2" z="(((RICH_addend_Z_size-RICH_covering_thickness + RICH_entrance_thickness)/2) * 1)*2" lunit="mm"/>
-<union name="rich_gas_PartBody_op012">
-<first ref="rich_gas_PartBody_op01"/>
-<second ref="rich_gas_PartBody_op2"/>
-<position name="rich_gas_PartBody__2_pos_01" x="0" y="(-(RICH_height/2 + RICH_entrance_vertical_gap/2)/2) * 1" z="(-RICH_length/2-RICH_addend_Z_size/2 + RICH_covering_thickness) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</union>
-<cone name="rich_gas_PartBody_op3" rmin1="0.000000" rmax1="(RICH_pipe_outer_radius_at_entrance) * 1" rmin2="0.000000" rmax2="(RICH_pipe_outer_radius_at_exit) * 1" z="((RICH_length/2) * 1)*2" startphi="0.000000" deltaphi="360.000000" aunit="deg" lunit="mm"/>
-<subtraction name="rich_gas_PartBody">
-<first ref="rich_gas_PartBody_op012"/>
-<second ref="rich_gas_PartBody_op3"/>
-<position name="rich_gas_PartBody__3_pos_012" x="0" y="0" z="(-(RICH_entrance_thickness-RICH_exit_thickness)/2) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</subtraction>
-<box name="rich_container_PartBody_op0" x="((RICH_width/2) * 1)*2" y="((RICH_height/2) * 1)*2" z="((RICH_length/2) * 1)*2" lunit="mm"/>
-<box name="rich_container_PartBody_op1" x="((RICH_width/2) * 1)*2" y="((((RICH_height-RICH_entrance_vertical_gap)/2)/2) * 1)*2" z="((RICH_addend_Z_size/2) * 1)*2" lunit="mm"/>
-<union name="rich_container_PartBody_op01">
-<first ref="rich_container_PartBody_op0"/>
-<second ref="rich_container_PartBody_op1"/>
-<position name="rich_container_PartBody__1_pos_0" x="0" y="((RICH_height/2 + RICH_entrance_vertical_gap/2)/2) * 1" z="(-RICH_length/2-RICH_addend_Z_size/2) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</union>
-<box name="rich_container_PartBody_op2" x="((RICH_width/2) * 1)*2" y="((((RICH_height-RICH_entrance_vertical_gap)/2)/2) * 1)*2" z="((RICH_addend_Z_size/2) * 1)*2" lunit="mm"/>
-<union name="rich_container_PartBody">
-<first ref="rich_container_PartBody_op01"/>
-<second ref="rich_container_PartBody_op2"/>
-<position name="rich_container_PartBody__2_pos_01" x="0" y="(-(RICH_height/2 + RICH_entrance_vertical_gap/2)/2) * 1" z="(-RICH_length/2-RICH_addend_Z_size/2) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</union>
-</solids>
-<structure>
-<volume name="pmt_pixel">
-<materialref ref="CsI"/>
-<solidref ref="pmt_pixel_PartBody"/>
-</volume>
-<volume name="pmt_pixel_wide">
-<materialref ref="CsI"/>
-<solidref ref="pmt_pixel_wide_PartBody"/>
-</volume>
-<volume name="pmt_pixel_vertical">
-<materialref ref="CsI"/>
-<solidref ref="pmt_pixel_vertical_PartBody"/>
-</volume>
-<volume name="pmt_pixel_horisontal">
-<materialref ref="CsI"/>
-<solidref ref="pmt_pixel_horisontal_PartBody"/>
-</volume>
-<volume name="pmt">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="pmt_PartBody"/>
-<physvol copynumber="1">
-<volumeref ref="pmt_pixel_wide"/>
-<position name="pmt_pixel_wide_pos_pmt" x="(3*RICH_pixel_size_middle+RICH_pixel_size_surrounding/2) * 1" y="(3*RICH_pixel_size_middle+RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="2">
-<volumeref ref="pmt_pixel_wide"/>
-<position name="pmt_pixel_wide_pos_pmt" x="(-3*RICH_pixel_size_middle-RICH_pixel_size_surrounding/2) * 1" y="(3*RICH_pixel_size_middle+RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="3">
-<volumeref ref="pmt_pixel_wide"/>
-<position name="pmt_pixel_wide_pos_pmt" x="(3*RICH_pixel_size_middle+RICH_pixel_size_surrounding/2) * 1" y="(-3*RICH_pixel_size_middle-RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="4">
-<volumeref ref="pmt_pixel_wide"/>
-<position name="pmt_pixel_wide_pos_pmt" x="(-3*RICH_pixel_size_middle-RICH_pixel_size_surrounding/2) * 1" y="(-3*RICH_pixel_size_middle-RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1" y="(RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="2">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+6" y="(RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="3">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+12" y="(RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="4">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+18" y="(RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="5">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+24" y="(RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="6">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+30" y="(RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="7">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1" y="(RICH_pixel_size_middle*3/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="8">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+6" y="(RICH_pixel_size_middle*3/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="9">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+12" y="(RICH_pixel_size_middle*3/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="10">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+18" y="(RICH_pixel_size_middle*3/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="11">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+24" y="(RICH_pixel_size_middle*3/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="12">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+30" y="(RICH_pixel_size_middle*3/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="13">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1" y="(RICH_pixel_size_middle*1/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="14">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+6" y="(RICH_pixel_size_middle*1/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="15">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+12" y="(RICH_pixel_size_middle*1/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="16">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+18" y="(RICH_pixel_size_middle*1/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="17">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+24" y="(RICH_pixel_size_middle*1/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="18">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+30" y="(RICH_pixel_size_middle*1/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="19">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1" y="(-RICH_pixel_size_middle*1/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="20">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+6" y="(-RICH_pixel_size_middle*1/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="21">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+12" y="(-RICH_pixel_size_middle*1/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="22">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+18" y="(-RICH_pixel_size_middle*1/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="23">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+24" y="(-RICH_pixel_size_middle*1/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="24">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+30" y="(-RICH_pixel_size_middle*1/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="25">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1" y="(-RICH_pixel_size_middle*3/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="26">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+6" y="(-RICH_pixel_size_middle*3/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="27">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+12" y="(-RICH_pixel_size_middle*3/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="28">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+18" y="(-RICH_pixel_size_middle*3/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="29">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+24" y="(-RICH_pixel_size_middle*3/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="30">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+30" y="(-RICH_pixel_size_middle*3/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="31">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1" y="(-RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="32">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+6" y="(-RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="33">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+12" y="(-RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="34">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+18" y="(-RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="35">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+24" y="(-RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="36">
-<volumeref ref="pmt_pixel"/>
-<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+30" y="(-RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="pmt_pixel_vertical"/>
-<position name="pmt_pixel_vertical_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1" y="(RICH_pixel_size_middle*3+RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="2">
-<volumeref ref="pmt_pixel_vertical"/>
-<position name="pmt_pixel_vertical_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+6" y="(RICH_pixel_size_middle*3+RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="3">
-<volumeref ref="pmt_pixel_vertical"/>
-<position name="pmt_pixel_vertical_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+12" y="(RICH_pixel_size_middle*3+RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="4">
-<volumeref ref="pmt_pixel_vertical"/>
-<position name="pmt_pixel_vertical_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+18" y="(RICH_pixel_size_middle*3+RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="5">
-<volumeref ref="pmt_pixel_vertical"/>
-<position name="pmt_pixel_vertical_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+24" y="(RICH_pixel_size_middle*3+RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="6">
-<volumeref ref="pmt_pixel_vertical"/>
-<position name="pmt_pixel_vertical_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+30" y="(RICH_pixel_size_middle*3+RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="7">
-<volumeref ref="pmt_pixel_vertical"/>
-<position name="pmt_pixel_vertical_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1" y="(-RICH_pixel_size_middle*3-RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="8">
-<volumeref ref="pmt_pixel_vertical"/>
-<position name="pmt_pixel_vertical_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+6" y="(-RICH_pixel_size_middle*3-RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="9">
-<volumeref ref="pmt_pixel_vertical"/>
-<position name="pmt_pixel_vertical_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+12" y="(-RICH_pixel_size_middle*3-RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="10">
-<volumeref ref="pmt_pixel_vertical"/>
-<position name="pmt_pixel_vertical_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+18" y="(-RICH_pixel_size_middle*3-RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="11">
-<volumeref ref="pmt_pixel_vertical"/>
-<position name="pmt_pixel_vertical_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+24" y="(-RICH_pixel_size_middle*3-RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="12">
-<volumeref ref="pmt_pixel_vertical"/>
-<position name="pmt_pixel_vertical_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+30" y="(-RICH_pixel_size_middle*3-RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="pmt_pixel_horisontal"/>
-<position name="pmt_pixel_horisontal_pos_pmt" x="(-RICH_pixel_size_middle*3-RICH_pixel_size_surrounding/2) * 1" y="(-RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="2">
-<volumeref ref="pmt_pixel_horisontal"/>
-<position name="pmt_pixel_horisontal_pos_pmt" x="(-RICH_pixel_size_middle*3-RICH_pixel_size_surrounding/2) * 1" y="(-RICH_pixel_size_middle*5/2) * 1+6" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="3">
-<volumeref ref="pmt_pixel_horisontal"/>
-<position name="pmt_pixel_horisontal_pos_pmt" x="(-RICH_pixel_size_middle*3-RICH_pixel_size_surrounding/2) * 1" y="(-RICH_pixel_size_middle*5/2) * 1+12" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="4">
-<volumeref ref="pmt_pixel_horisontal"/>
-<position name="pmt_pixel_horisontal_pos_pmt" x="(-RICH_pixel_size_middle*3-RICH_pixel_size_surrounding/2) * 1" y="(-RICH_pixel_size_middle*5/2) * 1+18" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="5">
-<volumeref ref="pmt_pixel_horisontal"/>
-<position name="pmt_pixel_horisontal_pos_pmt" x="(-RICH_pixel_size_middle*3-RICH_pixel_size_surrounding/2) * 1" y="(-RICH_pixel_size_middle*5/2) * 1+24" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="6">
-<volumeref ref="pmt_pixel_horisontal"/>
-<position name="pmt_pixel_horisontal_pos_pmt" x="(-RICH_pixel_size_middle*3-RICH_pixel_size_surrounding/2) * 1" y="(-RICH_pixel_size_middle*5/2) * 1+30" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="7">
-<volumeref ref="pmt_pixel_horisontal"/>
-<position name="pmt_pixel_horisontal_pos_pmt" x="(RICH_pixel_size_middle*3+RICH_pixel_size_surrounding/2) * 1" y="(-RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="8">
-<volumeref ref="pmt_pixel_horisontal"/>
-<position name="pmt_pixel_horisontal_pos_pmt" x="(RICH_pixel_size_middle*3+RICH_pixel_size_surrounding/2) * 1" y="(-RICH_pixel_size_middle*5/2) * 1+6" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="9">
-<volumeref ref="pmt_pixel_horisontal"/>
-<position name="pmt_pixel_horisontal_pos_pmt" x="(RICH_pixel_size_middle*3+RICH_pixel_size_surrounding/2) * 1" y="(-RICH_pixel_size_middle*5/2) * 1+12" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="10">
-<volumeref ref="pmt_pixel_horisontal"/>
-<position name="pmt_pixel_horisontal_pos_pmt" x="(RICH_pixel_size_middle*3+RICH_pixel_size_surrounding/2) * 1" y="(-RICH_pixel_size_middle*5/2) * 1+18" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="11">
-<volumeref ref="pmt_pixel_horisontal"/>
-<position name="pmt_pixel_horisontal_pos_pmt" x="(RICH_pixel_size_middle*3+RICH_pixel_size_surrounding/2) * 1" y="(-RICH_pixel_size_middle*5/2) * 1+24" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="12">
-<volumeref ref="pmt_pixel_horisontal"/>
-<position name="pmt_pixel_horisontal_pos_pmt" x="(RICH_pixel_size_middle*3+RICH_pixel_size_surrounding/2) * 1" y="(-RICH_pixel_size_middle*5/2) * 1+30" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-</volume>
-<volume name="pmt_container">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="pmt_container_PartBody"/>
-<physvol copynumber="1">
-<volumeref ref="pmt"/>
-<positionref ref="central"/>
-<rotationref ref="identity"/>
-</physvol>
-</volume>
-<volume name="camera_module">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="camera_module_PartBody"/>
-<physvol copynumber="1">
-<volumeref ref="pmt_container"/>
-<position name="pmt_container_pos_camera_module" x="(-RICH_pmt_size-RICH_camera_gap_size) * 1" y="((RICH_pmt_size+RICH_camera_gap_size)/2) * 1" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="2">
-<volumeref ref="pmt_container"/>
-<position name="pmt_container_pos_camera_module" x="0" y="((RICH_pmt_size+RICH_camera_gap_size)/2) * 1" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="3">
-<volumeref ref="pmt_container"/>
-<position name="pmt_container_pos_camera_module" x="(RICH_pmt_size+RICH_camera_gap_size) * 1" y="((RICH_pmt_size+RICH_camera_gap_size)/2) * 1" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="4">
-<volumeref ref="pmt_container"/>
-<position name="pmt_container_pos_camera_module" x="(-RICH_pmt_size-RICH_camera_gap_size) * 1" y="(-(RICH_pmt_size+RICH_camera_gap_size)/2) * 1" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="5">
-<volumeref ref="pmt_container"/>
-<position name="pmt_container_pos_camera_module" x="0" y="(-(RICH_pmt_size+RICH_camera_gap_size)/2) * 1" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="6">
-<volumeref ref="pmt_container"/>
-<position name="pmt_container_pos_camera_module" x="(RICH_pmt_size+RICH_camera_gap_size) * 1" y="(-(RICH_pmt_size+RICH_camera_gap_size)/2) * 1" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-</volume>
-<volume name="alu_frame">
-<materialref ref="aluminium"/>
-<solidref ref="alu_frame_PartBody"/>
-</volume>
-<volume name="camera_strip">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="camera_strip_PartBody"/>
-<physvol copynumber="1">
-<volumeref ref="camera_module"/>
-<position name="camera_module_pos_camera_strip" x="0" y="(-3*(2*RICH_pmt_size+2*RICH_camera_gap_size)) * 1" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="2">
-<volumeref ref="camera_module"/>
-<position name="camera_module_pos_camera_strip" x="0" y="(-3*(2*RICH_pmt_size+2*RICH_camera_gap_size)) * 1+106" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="3">
-<volumeref ref="camera_module"/>
-<position name="camera_module_pos_camera_strip" x="0" y="(-3*(2*RICH_pmt_size+2*RICH_camera_gap_size)) * 1+212" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="4">
-<volumeref ref="camera_module"/>
-<position name="camera_module_pos_camera_strip" x="0" y="(-3*(2*RICH_pmt_size+2*RICH_camera_gap_size)) * 1+318" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="5">
-<volumeref ref="camera_module"/>
-<position name="camera_module_pos_camera_strip" x="0" y="(-3*(2*RICH_pmt_size+2*RICH_camera_gap_size)) * 1+424" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="6">
-<volumeref ref="camera_module"/>
-<position name="camera_module_pos_camera_strip" x="0" y="(-3*(2*RICH_pmt_size+2*RICH_camera_gap_size)) * 1+530" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="7">
-<volumeref ref="camera_module"/>
-<position name="camera_module_pos_camera_strip" x="0" y="(-3*(2*RICH_pmt_size+2*RICH_camera_gap_size)) * 1+636" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="alu_frame"/>
-<position name="alu_frame_pos_camera_strip" x="0" y="0" z="(-RICH_pmt_depth/2-5) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-</volume>
-<assembly name="camera_container">
-<physvol copynumber="1">
-<volumeref ref="camera_strip"/>
-<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(-7+0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(-7+0.5))*DEGtoRAD)) * 1" unit="mm"/>
-<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(-7+0.5)) * 1)" z="-(0)" unit="deg"/>
-</physvol>
-<physvol copynumber="2">
-<volumeref ref="camera_strip"/>
-<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(-6+0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(-6+0.5))*DEGtoRAD)) * 1" unit="mm"/>
-<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(-6+0.5)) * 1)" z="-(0)" unit="deg"/>
-</physvol>
-<physvol copynumber="3">
-<volumeref ref="camera_strip"/>
-<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(-5+0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(-5+0.5))*DEGtoRAD)) * 1" unit="mm"/>
-<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(-5+0.5)) * 1)" z="-(0)" unit="deg"/>
-</physvol>
-<physvol copynumber="4">
-<volumeref ref="camera_strip"/>
-<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(-4+0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(-4+0.5))*DEGtoRAD)) * 1" unit="mm"/>
-<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(-4+0.5)) * 1)" z="-(0)" unit="deg"/>
-</physvol>
-<physvol copynumber="5">
-<volumeref ref="camera_strip"/>
-<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(-3+0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(-3+0.5))*DEGtoRAD)) * 1" unit="mm"/>
-<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(-3+0.5)) * 1)" z="-(0)" unit="deg"/>
-</physvol>
-<physvol copynumber="6">
-<volumeref ref="camera_strip"/>
-<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(-2+0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(-2+0.5))*DEGtoRAD)) * 1" unit="mm"/>
-<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(-2+0.5)) * 1)" z="-(0)" unit="deg"/>
-</physvol>
-<physvol copynumber="7">
-<volumeref ref="camera_strip"/>
-<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(-1+0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(-1+0.5))*DEGtoRAD)) * 1" unit="mm"/>
-<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(-1+0.5)) * 1)" z="-(0)" unit="deg"/>
-</physvol>
-<physvol copynumber="8">
-<volumeref ref="camera_strip"/>
-<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(1-0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(1-0.5))*DEGtoRAD)) * 1" unit="mm"/>
-<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(1-0.5)) * 1)" z="-(0)" unit="deg"/>
-</physvol>
-<physvol copynumber="9">
-<volumeref ref="camera_strip"/>
-<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(2-0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(2-0.5))*DEGtoRAD)) * 1" unit="mm"/>
-<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(2-0.5)) * 1)" z="-(0)" unit="deg"/>
-</physvol>
-<physvol copynumber="10">
-<volumeref ref="camera_strip"/>
-<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(3-0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(3-0.5))*DEGtoRAD)) * 1" unit="mm"/>
-<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(3-0.5)) * 1)" z="-(0)" unit="deg"/>
-</physvol>
-<physvol copynumber="11">
-<volumeref ref="camera_strip"/>
-<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(4-0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(4-0.5))*DEGtoRAD)) * 1" unit="mm"/>
-<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(4-0.5)) * 1)" z="-(0)" unit="deg"/>
-</physvol>
-<physvol copynumber="12">
-<volumeref ref="camera_strip"/>
-<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(5-0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(5-0.5))*DEGtoRAD)) * 1" unit="mm"/>
-<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(5-0.5)) * 1)" z="-(0)" unit="deg"/>
-</physvol>
-<physvol copynumber="13">
-<volumeref ref="camera_strip"/>
-<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(6-0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(6-0.5))*DEGtoRAD)) * 1" unit="mm"/>
-<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(6-0.5)) * 1)" z="-(0)" unit="deg"/>
-</physvol>
-<physvol copynumber="14">
-<volumeref ref="camera_strip"/>
-<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(7-0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(7-0.5))*DEGtoRAD)) * 1" unit="mm"/>
-<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(7-0.5)) * 1)" z="-(0)" unit="deg"/>
-</physvol>
-</assembly>
-<volume name="rich_cyl_pipe_section_vac">
-<materialref ref="vacuum"/>
-<solidref ref="rich_cyl_pipe_section_vac_PartBody"/>
-</volume>
-<volume name="rich_cyl_pipe_section">
-<materialref ref="aluminium"/>
-<solidref ref="rich_cyl_pipe_section_PartBody"/>
-<physvol copynumber="1">
-<volumeref ref="rich_cyl_pipe_section_vac"/>
-<positionref ref="central"/>
-<rotationref ref="identity"/>
-</physvol>
-</volume>
-<volume name="rich_pipe_flange">
-<materialref ref="aluminium"/>
-<solidref ref="rich_pipe_flange_PartBody"/>
-</volume>
-<volume name="rich_pipe_section_vac">
-<materialref ref="vacuum"/>
-<solidref ref="rich_pipe_section_vac_PartBody"/>
-</volume>
-<volume name="rich_pipe_section">
-<materialref ref="aluminium"/>
-<solidref ref="rich_pipe_section_PartBody"/>
-<physvol copynumber="1">
-<volumeref ref="rich_pipe_section_vac"/>
-<positionref ref="central"/>
-<rotationref ref="identity"/>
-</physvol>
-</volume>
-<volume name="mirror_tile_type0">
-<materialref ref="RICHglass"/>
-<solidref ref="mirror_tile_type0_PartBody"/>
-</volume>
-<volume name="mirror_tile_type1">
-<materialref ref="RICHglass"/>
-<solidref ref="mirror_tile_type1_PartBody"/>
-</volume>
-<volume name="mirror_tile_type2">
-<materialref ref="RICHglass"/>
-<solidref ref="mirror_tile_type2_PartBody"/>
-</volume>
-<volume name="mirror_tile_type3">
-<materialref ref="RICHglass"/>
-<solidref ref="mirror_tile_type3_PartBody"/>
-</volume>
-<volume name="mirror_tile_type4">
-<materialref ref="RICHglass"/>
-<solidref ref="mirror_tile_type4_PartBody"/>
-</volume>
-<volume name="mirror_tile_type5">
-<materialref ref="RICHglass"/>
-<solidref ref="mirror_tile_type5_PartBody"/>
-</volume>
-<assembly name="mirror_full_half_no_misalign">
-<physvol copynumber="1">
-<volumeref ref="mirror_tile_type0"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type0_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*9/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="2">
-<volumeref ref="mirror_tile_type0"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type0_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*7/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="3">
-<volumeref ref="mirror_tile_type0"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type0_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*5/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="4">
-<volumeref ref="mirror_tile_type0"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type0_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*3/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="mirror_tile_type4"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type4_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*1/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="mirror_tile_type5"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type5_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*1/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="5">
-<volumeref ref="mirror_tile_type0"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type0_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*3/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="6">
-<volumeref ref="mirror_tile_type0"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type0_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*5/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="7">
-<volumeref ref="mirror_tile_type0"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type0_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*7/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="8">
-<volumeref ref="mirror_tile_type0"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type0_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*9/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="mirror_tile_type1"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type1_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*9/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="2">
-<volumeref ref="mirror_tile_type1"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type1_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*7/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="3">
-<volumeref ref="mirror_tile_type1"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type1_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*5/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="4">
-<volumeref ref="mirror_tile_type1"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type1_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*3/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="5">
-<volumeref ref="mirror_tile_type1"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type1_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*1/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="6">
-<volumeref ref="mirror_tile_type1"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type1_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*1/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="7">
-<volumeref ref="mirror_tile_type1"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type1_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*3/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="8">
-<volumeref ref="mirror_tile_type1"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type1_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*5/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="9">
-<volumeref ref="mirror_tile_type1"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type1_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*7/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="10">
-<volumeref ref="mirror_tile_type1"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type1_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*9/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="mirror_tile_type2"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type2_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*9/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="2">
-<volumeref ref="mirror_tile_type2"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type2_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*7/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="3">
-<volumeref ref="mirror_tile_type2"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type2_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*5/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="4">
-<volumeref ref="mirror_tile_type2"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type2_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*3/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="5">
-<volumeref ref="mirror_tile_type2"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type2_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*1/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="6">
-<volumeref ref="mirror_tile_type2"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type2_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*1/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="7">
-<volumeref ref="mirror_tile_type2"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type2_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*3/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="8">
-<volumeref ref="mirror_tile_type2"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type2_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*5/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="9">
-<volumeref ref="mirror_tile_type2"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type2_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*7/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="10">
-<volumeref ref="mirror_tile_type2"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type2_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*9/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="mirror_tile_type3"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type3_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*9/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="2">
-<volumeref ref="mirror_tile_type3"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type3_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*7/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="3">
-<volumeref ref="mirror_tile_type3"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type3_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*5/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="4">
-<volumeref ref="mirror_tile_type3"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type3_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*3/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="5">
-<volumeref ref="mirror_tile_type3"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type3_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*1/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="6">
-<volumeref ref="mirror_tile_type3"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type3_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*1/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="7">
-<volumeref ref="mirror_tile_type3"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type3_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*3/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="8">
-<volumeref ref="mirror_tile_type3"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type3_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*5/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="9">
-<volumeref ref="mirror_tile_type3"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type3_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*7/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="10">
-<volumeref ref="mirror_tile_type3"/>
-<positionref ref="central"/>
-<rotation name="mirror_tile_type3_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*9/2) * 1)" unit="deg"/>
-</physvol>
-</assembly>
-<volume name="rich_entrance">
-<materialref ref="kapton"/>
-<solidref ref="rich_entrance_PartBody"/>
-</volume>
-<volume name="rich_exit">
-<materialref ref="kapton"/>
-<solidref ref="rich_exit_PartBody"/>
-</volume>
-<volume name="Shielding_box_top">
-<materialref ref="iron"/>
-<solidref ref="Shielding_box_top_PartBody"/>
-</volume>
-<volume name="Shielding_box_back">
-<materialref ref="iron"/>
-<solidref ref="Shielding_box_back_PartBody"/>
-</volume>
-<volume name="Shielding_box_bottom">
-<materialref ref="iron"/>
-<solidref ref="Shielding_box_bottom_PartBody"/>
-</volume>
-<volume name="Shielding_box_top_horiz_add">
-<materialref ref="iron"/>
-<solidref ref="Shielding_box_top_horiz_add_PartBody"/>
-</volume>
-<volume name="Shielding_box_back_horiz_add">
-<materialref ref="iron"/>
-<solidref ref="Shielding_box_back_horiz_add_PartBody"/>
-</volume>
-<volume name="Shielding_box_back_horiz_add_sym">
-<materialref ref="iron"/>
-<solidref ref="Shielding_box_back_horiz_add_sym_PartBody"/>
-</volume>
-<volume name="Shielding_box_bottom_horiz_add">
-<materialref ref="iron"/>
-<solidref ref="Shielding_box_bottom_horiz_add_PartBody"/>
-</volume>
-<volume name="Shielding_box_bottom_horiz_add_sym">
-<materialref ref="iron"/>
-<solidref ref="Shielding_box_bottom_horiz_add_sym_PartBody"/>
-</volume>
-<volume name="Shielding_box_side">
-<materialref ref="iron"/>
-<solidref ref="Shielding_box_side_PartBody"/>
-</volume>
-<volume name="Shielding_box_side_sym">
-<materialref ref="iron"/>
-<solidref ref="Shielding_box_side_sym_PartBody"/>
-</volume>
-<volume name="Shielding_box_nose_horiz_add">
-<materialref ref="iron"/>
-<solidref ref="Shielding_box_nose_horiz_add_PartBody"/>
-</volume>
-<volume name="Shielding_box_small_piece">
-<materialref ref="iron"/>
-<solidref ref="Shielding_box_small_piece_PartBody"/>
-</volume>
-<volume name="Shielding_box_nose">
-<materialref ref="iron"/>
-<solidref ref="Shielding_box_nose_PartBody"/>
-</volume>
-<assembly name="shielding_box_container">
-<physvol copynumber="1">
-<volumeref ref="Shielding_box_top"/>
-<position name="Shielding_box_top_pos_shielding_box_container" x="0" y="0" z="((Sh_box_vert_space+Sh_box_thickness_top)/2) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="Shielding_box_back"/>
-<positionref ref="central"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="Shielding_box_bottom"/>
-<position name="Shielding_box_bottom_pos_shielding_box_container" x="0" y="0" z="(-(Sh_box_vert_space+Sh_box_thickness_bottom)/2) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="Shielding_box_top_horiz_add"/>
-<position name="Shielding_box_top_horiz_add_pos_shielding_box_container" x="(((Sh_box_Rmax+Sh_box_Rmin-Sh_box_thickness_back)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" y="(((Sh_box_Rmax+Sh_box_Rmin-Sh_box_thickness_back)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) + ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" z="((Sh_box_vert_space+Sh_box_thickness_top)/2) * 1" unit="mm"/>
-<rotation name="Shielding_box_top_horiz_add_rot_shielding_box_container" x="-(0)" y="-(0)" z="-((Sh_box_horiz_spread_angle/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="2">
-<volumeref ref="Shielding_box_top_horiz_add"/>
-<position name="Shielding_box_top_horiz_add_pos_shielding_box_container" x="(((Sh_box_Rmax+Sh_box_Rmin-Sh_box_thickness_back)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" y="(-((Sh_box_Rmax+Sh_box_Rmin-Sh_box_thickness_back)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" z="((Sh_box_vert_space+Sh_box_thickness_top)/2) * 1" unit="mm"/>
-<rotation name="Shielding_box_top_horiz_add_rot_shielding_box_container" x="-(0)" y="-(0)" z="-((-Sh_box_horiz_spread_angle/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="Shielding_box_back_horiz_add"/>
-<position name="Shielding_box_back_horiz_add_pos_shielding_box_container" x="((Sh_box_Rmin-Sh_box_thickness_back/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" y="((Sh_box_Rmin-Sh_box_thickness_back/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) + ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" z="0" unit="mm"/>
-<rotation name="Shielding_box_back_horiz_add_rot_shielding_box_container" x="-(0)" y="-(0)" z="-((Sh_box_horiz_spread_angle/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="Shielding_box_back_horiz_add_sym"/>
-<position name="Shielding_box_back_horiz_add_sym_pos_shielding_box_container" x="((Sh_box_Rmin-Sh_box_thickness_back/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" y="(-(Sh_box_Rmin-Sh_box_thickness_back/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" z="0" unit="mm"/>
-<rotation name="Shielding_box_back_horiz_add_sym_rot_shielding_box_container" x="-(0)" y="-(0)" z="-((-Sh_box_horiz_spread_angle/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="Shielding_box_bottom_horiz_add"/>
-<position name="Shielding_box_bottom_horiz_add_pos_shielding_box_container" x="(((Sh_box_Rmax_bottom-Sh_box_thickness_nose+Sh_box_Rmin-Sh_box_thickness_back+Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD)/2)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" y="(((Sh_box_Rmax_bottom-Sh_box_thickness_nose+Sh_box_Rmin-Sh_box_thickness_back+Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD)/2)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) + ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" z="(-(Sh_box_vert_space+Sh_box_thickness_bottom)/2) * 1" unit="mm"/>
-<rotation name="Shielding_box_bottom_horiz_add_rot_shielding_box_container" x="-(0)" y="-(0)" z="-((Sh_box_horiz_spread_angle/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="Shielding_box_bottom_horiz_add_sym"/>
-<position name="Shielding_box_bottom_horiz_add_sym_pos_shielding_box_container" x="(((Sh_box_Rmax_bottom-Sh_box_thickness_nose+Sh_box_Rmin-Sh_box_thickness_back+Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD)/2)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" y="(-((Sh_box_Rmax_bottom-Sh_box_thickness_nose+Sh_box_Rmin-Sh_box_thickness_back+Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD)/2)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" z="(-(Sh_box_vert_space+Sh_box_thickness_bottom)/2) * 1" unit="mm"/>
-<rotation name="Shielding_box_bottom_horiz_add_sym_rot_shielding_box_container" x="-(0)" y="-(0)" z="-((-Sh_box_horiz_spread_angle/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="Shielding_box_side"/>
-<position name="Shielding_box_side_pos_shielding_box_container" x="(((Sh_box_Rmax+Sh_box_Rmin)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - (Sh_box_horiz_add+Sh_box_thickness_sides/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" y="(((Sh_box_Rmax+Sh_box_Rmin)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) + (Sh_box_horiz_add+Sh_box_thickness_sides/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" z="0" unit="mm"/>
-<rotation name="Shielding_box_side_rot_shielding_box_container" x="-(0)" y="-(0)" z="-((Sh_box_horiz_spread_angle/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="Shielding_box_side_sym"/>
-<position name="Shielding_box_side_sym_pos_shielding_box_container" x="(((Sh_box_Rmax+Sh_box_Rmin)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - (Sh_box_horiz_add+Sh_box_thickness_sides/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" y="(-((Sh_box_Rmax+Sh_box_Rmin)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - (Sh_box_horiz_add+Sh_box_thickness_sides/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" z="0" unit="mm"/>
-<rotation name="Shielding_box_side_sym_rot_shielding_box_container" x="-(0)" y="-(0)" z="-((-Sh_box_horiz_spread_angle/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="Shielding_box_nose_horiz_add"/>
-<position name="Shielding_box_nose_horiz_add_pos_shielding_box_container" x="((Sh_box_Rmax_bottom+Sh_box_nose_vert_size*tan((Sh_box_nose_angle)*DEGtoRAD)/2-Sh_box_thickness_nose/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" y="((Sh_box_Rmax_bottom+Sh_box_nose_vert_size*tan((Sh_box_nose_angle)*DEGtoRAD)/2-Sh_box_thickness_nose/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) + ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" z="((-Sh_box_vert_space-Sh_box_nose_vert_size)/2) * 1" unit="mm"/>
-<rotation name="Shielding_box_nose_horiz_add_rot_shielding_box_container" x="-(0)" y="-(0)" z="-((Sh_box_horiz_spread_angle/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="2">
-<volumeref ref="Shielding_box_nose_horiz_add"/>
-<position name="Shielding_box_nose_horiz_add_pos_shielding_box_container" x="((Sh_box_Rmax_bottom+Sh_box_nose_vert_size*tan((Sh_box_nose_angle)*DEGtoRAD)/2-Sh_box_thickness_nose/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" y="(-(Sh_box_Rmax_bottom+Sh_box_nose_vert_size*tan((Sh_box_nose_angle)*DEGtoRAD)/2-Sh_box_thickness_nose/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" z="((-Sh_box_vert_space-Sh_box_nose_vert_size)/2) * 1" unit="mm"/>
-<rotation name="Shielding_box_nose_horiz_add_rot_shielding_box_container" x="-(0)" y="-(0)" z="-((-Sh_box_horiz_spread_angle/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="Shielding_box_small_piece"/>
-<position name="Shielding_box_small_piece_pos_shielding_box_container" x="(((Sh_box_Rmax+Sh_box_Rmax_bottom+Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD)/2)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - (Sh_box_horiz_add+Sh_box_thickness_sides/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" y="(((Sh_box_Rmax+Sh_box_Rmax_bottom+Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD)/2)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) + (Sh_box_horiz_add+Sh_box_thickness_sides/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" z="(-(Sh_box_vert_space+Sh_box_thickness_bottom)/2) * 1" unit="mm"/>
-<rotation name="Shielding_box_small_piece_rot_shielding_box_container" x="-(0)" y="-(0)" z="-((Sh_box_horiz_spread_angle/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="2">
-<volumeref ref="Shielding_box_small_piece"/>
-<position name="Shielding_box_small_piece_pos_shielding_box_container" x="(((Sh_box_Rmax+Sh_box_Rmax_bottom+Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD)/2)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - (Sh_box_horiz_add+Sh_box_thickness_sides/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" y="(-((Sh_box_Rmax+Sh_box_Rmax_bottom+Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD)/2)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - (Sh_box_horiz_add+Sh_box_thickness_sides/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" z="(-(Sh_box_vert_space+Sh_box_thickness_bottom)/2) * 1" unit="mm"/>
-<rotation name="Shielding_box_small_piece_rot_shielding_box_container" x="-(0)" y="-(0)" z="-((-Sh_box_horiz_spread_angle/2) * 1)" unit="deg"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="Shielding_box_nose"/>
-<position name="Shielding_box_nose_pos_shielding_box_container" x="0" y="0" z="((-Sh_box_vert_space-Sh_box_nose_vert_size)/2) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-</assembly>
-<volume name="sens_plane">
-<materialref ref="RICHgas_CO2_dis+"/>
-<solidref ref="sens_plane_PartBody"/>
-</volume>
-<!--
-<volume name="Mirror">
-<materialref ref="RICHglass"/>
-<solidref ref="Mirror_PartBody"/>
-</volume>
-<volume name="Camera">
-<materialref ref="CsI"/>
-<solidref ref="Camera_PartBody"/>
-</volume>
-<volume name="Solid_behind_camera">
-<materialref ref="aluminium"/>
-<solidref ref="Solid_behind_camera_PartBody"/>
-</volume>
--->
-<volume name="mainframe_part2_gas">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="mainframe_part2_gas_PartBody"/>
-</volume>
-<volume name="mainframe_part3_gas">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="mainframe_part3_gas_PartBody"/>
-</volume>
-<volume name="mainframe_part5_gas">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="mainframe_part5_gas_PartBody"/>
-</volume>
-<volume name="mainframe_part8_gas">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="mainframe_part8_gas_PartBody"/>
-</volume>
-<volume name="mainframe_part9_gas">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="mainframe_part9_gas_PartBody"/>
-</volume>
-<volume name="mainframe_part10_gas">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="mainframe_part10_gas_PartBody"/>
-</volume>
-<volume name="mainframe_part2">
-<materialref ref="aluminium"/>
-<solidref ref="mainframe_part2_PartBody"/>
-<physvol copynumber="1">
-<volumeref ref="mainframe_part2_gas"/>
-<positionref ref="central"/>
-<rotationref ref="identity"/>
-</physvol>
-</volume>
-<volume name="mainframe_part3">
-<materialref ref="aluminium"/>
-<solidref ref="mainframe_part3_PartBody"/>
-<physvol copynumber="1">
-<volumeref ref="mainframe_part3_gas"/>
-<positionref ref="central"/>
-<rotationref ref="identity"/>
-</physvol>
-</volume>
-<volume name="mainframe_part5">
-<materialref ref="aluminium"/>
-<solidref ref="mainframe_part5_PartBody"/>
-<physvol copynumber="1">
-<volumeref ref="mainframe_part5_gas"/>
-<positionref ref="central"/>
-<rotationref ref="identity"/>
-</physvol>
-</volume>
-<volume name="mainframe_part8">
-<materialref ref="aluminium"/>
-<solidref ref="mainframe_part8_PartBody"/>
-<physvol copynumber="1">
-<volumeref ref="mainframe_part8_gas"/>
-<positionref ref="central"/>
-<rotationref ref="identity"/>
-</physvol>
-</volume>
-<volume name="mainframe_part9">
-<materialref ref="aluminium"/>
-<solidref ref="mainframe_part9_PartBody"/>
-<physvol copynumber="1">
-<volumeref ref="mainframe_part9_gas"/>
-<positionref ref="central"/>
-<rotationref ref="identity"/>
-</physvol>
-</volume>
-<volume name="mainframe_part10">
-<materialref ref="aluminium"/>
-<solidref ref="mainframe_part10_PartBody"/>
-<physvol copynumber="1">
-<volumeref ref="mainframe_part10_gas"/>
-<positionref ref="central"/>
-<rotationref ref="identity"/>
-</physvol>
-</volume>
-<assembly name="mainframe_assembly">
-<physvol copynumber="1">
-<volumeref ref="mainframe_part8"/>
-<position name="mainframe_part8_pos_mainframe_assembly" x="-2579" y="0" z="511.95561" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="2">
-<volumeref ref="mainframe_part8"/>
-<position name="mainframe_part8_pos_mainframe_assembly" x="2579" y="0" z="511.95561" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="3">
-<volumeref ref="mainframe_part8"/>
-<position name="mainframe_part8_pos_mainframe_assembly" x="-2579" y="0" z="-511.95561" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="4">
-<volumeref ref="mainframe_part8"/>
-<position name="mainframe_part8_pos_mainframe_assembly" x="2579" y="0" z="-511.95561" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="mainframe_part9"/>
-<position name="mainframe_part9_pos_mainframe_assembly" x="0" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="511.95561" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="2">
-<volumeref ref="mainframe_part9"/>
-<position name="mainframe_part9_pos_mainframe_assembly" x="0" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="-511.95561" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="3">
-<volumeref ref="mainframe_part9"/>
-<position name="mainframe_part9_pos_mainframe_assembly" x="0" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="511.95561" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="4">
-<volumeref ref="mainframe_part9"/>
-<position name="mainframe_part9_pos_mainframe_assembly" x="0" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="-511.95561" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="mainframe_part10"/>
-<position name="mainframe_part10_pos_mainframe_assembly" x="-2579" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="2">
-<volumeref ref="mainframe_part10"/>
-<position name="mainframe_part10_pos_mainframe_assembly" x="-2579" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="3">
-<volumeref ref="mainframe_part10"/>
-<position name="mainframe_part10_pos_mainframe_assembly" x="2579" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="4">
-<volumeref ref="mainframe_part10"/>
-<position name="mainframe_part10_pos_mainframe_assembly" x="2579" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="mainframe_part5"/>
-<position name="mainframe_part5_pos_mainframe_assembly" x="1964.811997" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="-917.898222" unit="mm"/>
-<rotation name="mainframe_part5_rot_mainframe_assembly" x="-(0)" y="-(-31.991651000046)" z="-(0)" unit="deg"/>
-</physvol>
-<physvol copynumber="2">
-<volumeref ref="mainframe_part5"/>
-<position name="mainframe_part5_pos_mainframe_assembly" x="1964.811997" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="-917.898222" unit="mm"/>
-<rotation name="mainframe_part5_rot_mainframe_assembly" x="-(0)" y="-(-31.991651000046)" z="-(0)" unit="deg"/>
-</physvol>
-<physvol copynumber="3">
-<volumeref ref="mainframe_part5"/>
-<position name="mainframe_part5_pos_mainframe_assembly" x="-1964.811997" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="-917.898222" unit="mm"/>
-<rotation name="mainframe_part5_rot_mainframe_assembly" x="-(0)" y="-(31.991651000092)" z="-(180.0)" unit="deg"/>
-</physvol>
-<physvol copynumber="4">
-<volumeref ref="mainframe_part5"/>
-<position name="mainframe_part5_pos_mainframe_assembly" x="-1964.811997" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="-917.898222" unit="mm"/>
-<rotation name="mainframe_part5_rot_mainframe_assembly" x="-(0)" y="-(31.991651000092)" z="-(180.0)" unit="deg"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="mainframe_part3"/>
-<position name="mainframe_part3_pos_mainframe_assembly" x="-1345" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="-994.875" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="2">
-<volumeref ref="mainframe_part3"/>
-<position name="mainframe_part3_pos_mainframe_assembly" x="-1345" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="-994.875" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="3">
-<volumeref ref="mainframe_part3"/>
-<position name="mainframe_part3_pos_mainframe_assembly" x="1345" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="-994.875" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="4">
-<volumeref ref="mainframe_part3"/>
-<position name="mainframe_part3_pos_mainframe_assembly" x="1345" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="-994.875" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="5">
-<volumeref ref="mainframe_part8"/>
-<position name="mainframe_part8_pos_mainframe_assembly" x="2151.316481" y="0" z="-801.395071" unit="mm"/>
-<rotation name="mainframe_part8_rot_mainframe_assembly" x="-(0)" y="-(-31.991651000046)" z="-(0)" unit="deg"/>
-</physvol>
-<physvol copynumber="6">
-<volumeref ref="mainframe_part8"/>
-<position name="mainframe_part8_pos_mainframe_assembly" x="1781.11648" y="0" z="-1032.646704" unit="mm"/>
-<rotation name="mainframe_part8_rot_mainframe_assembly" x="-(0)" y="-(-31.991651000046)" z="-(0)" unit="deg"/>
-</physvol>
-<physvol copynumber="7">
-<volumeref ref="mainframe_part8"/>
-<position name="mainframe_part8_pos_mainframe_assembly" x="1463.896048" y="0" z="-1230.803763" unit="mm"/>
-<rotation name="mainframe_part8_rot_mainframe_assembly" x="-(0)" y="-(-31.991651000046)" z="-(0)" unit="deg"/>
-</physvol>
-<physvol copynumber="8">
-<volumeref ref="mainframe_part8"/>
-<position name="mainframe_part8_pos_mainframe_assembly" x="-2151.316481" y="0" z="-801.395071" unit="mm"/>
-<rotation name="mainframe_part8_rot_mainframe_assembly" x="-(0)" y="-(31.991651000046)" z="-(0)" unit="deg"/>
-</physvol>
-<physvol copynumber="9">
-<volumeref ref="mainframe_part8"/>
-<position name="mainframe_part8_pos_mainframe_assembly" x="-1781.11648" y="0" z="-1032.646704" unit="mm"/>
-<rotation name="mainframe_part8_rot_mainframe_assembly" x="-(0)" y="-(31.991651000046)" z="-(0)" unit="deg"/>
-</physvol>
-<physvol copynumber="10">
-<volumeref ref="mainframe_part8"/>
-<position name="mainframe_part8_pos_mainframe_assembly" x="-1463.896048" y="0" z="-1230.803763" unit="mm"/>
-<rotation name="mainframe_part8_rot_mainframe_assembly" x="-(0)" y="-(31.991651000046)" z="-(0)" unit="deg"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="mainframe_part2"/>
-<position name="mainframe_part2_pos_mainframe_assembly" x="0" y="1000" z="-1282.79439" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="2">
-<volumeref ref="mainframe_part2"/>
-<position name="mainframe_part2_pos_mainframe_assembly" x="0" y="-1000" z="-1282.79439" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="5">
-<volumeref ref="mainframe_part10"/>
-<position name="mainframe_part10_pos_mainframe_assembly" x="-1345" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="6">
-<volumeref ref="mainframe_part10"/>
-<position name="mainframe_part10_pos_mainframe_assembly" x="-1345" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="7">
-<volumeref ref="mainframe_part10"/>
-<position name="mainframe_part10_pos_mainframe_assembly" x="1345" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="8">
-<volumeref ref="mainframe_part10"/>
-<position name="mainframe_part10_pos_mainframe_assembly" x="1345" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="9">
-<volumeref ref="mainframe_part10"/>
-<position name="mainframe_part10_pos_mainframe_assembly" x="0" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="10">
-<volumeref ref="mainframe_part10"/>
-<position name="mainframe_part10_pos_mainframe_assembly" x="0" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="11">
-<volumeref ref="mainframe_part10"/>
-<position name="mainframe_part10_pos_mainframe_assembly" x="2579" y="878" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="12">
-<volumeref ref="mainframe_part10"/>
-<position name="mainframe_part10_pos_mainframe_assembly" x="2579" y="-878" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="13">
-<volumeref ref="mainframe_part10"/>
-<position name="mainframe_part10_pos_mainframe_assembly" x="-2579" y="878" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="14">
-<volumeref ref="mainframe_part10"/>
-<position name="mainframe_part10_pos_mainframe_assembly" x="-2579" y="-878" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="15">
-<volumeref ref="mainframe_part10"/>
-<position name="mainframe_part10_pos_mainframe_assembly" x="-1926" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="16">
-<volumeref ref="mainframe_part10"/>
-<position name="mainframe_part10_pos_mainframe_assembly" x="-1926" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="17">
-<volumeref ref="mainframe_part10"/>
-<position name="mainframe_part10_pos_mainframe_assembly" x="1926" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="18">
-<volumeref ref="mainframe_part10"/>
-<position name="mainframe_part10_pos_mainframe_assembly" x="1926" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="0" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="3">
-<volumeref ref="mainframe_part2"/>
-<position name="mainframe_part2_pos_mainframe_assembly" x="0" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="-1477.79439" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="4">
-<volumeref ref="mainframe_part2"/>
-<position name="mainframe_part2_pos_mainframe_assembly" x="0" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="-1477.79439" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-</assembly>
-<volume name="rich_gas">
-<materialref ref="RICHgas_CO2_dis"/>
-<solidref ref="rich_gas_PartBody"/>
-<!--
-<physvol copynumber="1">
-<volumeref ref="shielding_box_container"/>
-<position name="shielding_box_container_pos_rich_gas" x="0" y="(Camera_origin_Y_coord) * 1" z="(-1800-1900/2+Camera_origin_Z_coord) * 1" unit="mm"/>
-<rotation name="shielding_box_container_rot_rich_gas" x="-((-90+Camera_full_Xrot) * 1)" y="-(0)" z="-(-90.0)" unit="deg"/>
-</physvol>
-<physvol copynumber="2">
-<volumeref ref="shielding_box_container"/>
-<position name="shielding_box_container_pos_rich_gas" x="0" y="(-Camera_origin_Y_coord) * 1" z="(-1800-1900/2+Camera_origin_Z_coord) * 1" unit="mm"/>
-<rotation name="shielding_box_container_rot_rich_gas" x="-((90-Camera_full_Xrot) * 1)" y="-(0)" z="-(90.0)" unit="deg"/>
-</physvol>
--->
-<physvol copynumber="1">
-<volumeref ref="camera_container"/>
-<position name="camera_container_pos_rich_gas" x="0" y="(Camera_origin_Y_coord + RICH_camera_shift_Y) * 1" z="(-1800-RICH_length/2+Camera_origin_Z_coord+RICH_camera_shift_Z) * 1" unit="mm"/>
-<rotation name="camera_container_rot_rich_gas" x="-((Camera_full_Xrot) * 1)" y="-(0)" z="-(0)" unit="deg"/>
-</physvol>
-<physvol copynumber="2">
-<volumeref ref="camera_container"/>
-<position name="camera_container_pos_rich_gas" x="0" y="(-Camera_origin_Y_coord-RICH_camera_shift_Y) * 1" z="(-1800-RICH_length/2+Camera_origin_Z_coord+RICH_camera_shift_Z) * 1" unit="mm"/>
-<rotation name="camera_container_rot_rich_gas" x="-((-Camera_full_Xrot) * 1)" y="-(0)" z="-(0)" unit="deg"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="mirror_full_half_no_misalign"/>
-<position name="mirror_full_half_no_misalign_pos_rich_gas" x="0" y="(Mirror_origin_Y_coord) * 1" z="(-1800-RICH_length/2+Mirror_origin_Z_coord) * 1" unit="mm"/>
-<rotation name="mirror_full_half_no_misalign_rot_rich_gas" x="-(-90.0)" y="-(0)" z="-(-90.0)" unit="deg"/>
-</physvol>
-<physvol copynumber="2">
-<volumeref ref="mirror_full_half_no_misalign"/>
-<position name="mirror_full_half_no_misalign_pos_rich_gas" x="0" y="(-Mirror_origin_Y_coord) * 1" z="(-1800-RICH_length/2+Mirror_origin_Z_coord) * 1" unit="mm"/>
-<rotation name="mirror_full_half_no_misalign_rot_rich_gas" x="-(90.0)" y="-(0)" z="-(90.0)" unit="deg"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="sens_plane"/>
-<position name="sens_plane_pos_rich_gas" x="0" y="0" z="-300" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="mainframe_assembly"/>
-<position name="mainframe_assembly_pos_rich_gas" x="0" y="0" z="385.41939" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<!--
-<physvol copynumber="1">
-<volumeref ref="Mirror"/>
-<position name="Mirror_pos_rich_gas" x="0" y="Mirror_origin_Y_coord * 1" z="(-1800-RICH_length/2+Mirror_origin_Z_coord) * 1" unit="mm"/>
-<rotation name="Mirror_rot_rich_gas" x="-(-90.0)" y="-(0)" z="-(-90.0)" unit="deg"/>
-</physvol>
-<physvol copynumber="2">
-<volumeref ref="Mirror"/>
-<position name="Mirror_pos_rich_gas" x="0" y="(-Mirror_origin_Y_coord) * 1" z="(-1800-1900/2+Mirror_origin_Z_coord) * 1" unit="mm"/>
-<rotation name="Mirror_rot_rich_gas" x="-(90.0)" y="-(0)" z="-(90.0)" unit="deg"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="Camera"/>
-<position name="Camera_pos_rich_gas" x="0" y="(Camera_origin_Y_coord + RICH_camera_shift_Y) * 1" z="(-1800-RICH_length/2+Camera_origin_Z_coord + RICH_camera_shift_Z) * 1" unit="mm"/>
-<rotation name="Camera_rot_rich_gas" x="-((-90+Camera_full_Xrot) * 1)" y="-(0)" z="-(-90.0)" unit="deg"/>
-</physvol>
-<physvol copynumber="2">
-<volumeref ref="Camera"/>
-<position name="Camera_pos_rich_gas" x="0" y="(-Camera_origin_Y_coord-RICH_camera_shift_Y) * 1" z="(-1800-RICH_length/2+Camera_origin_Z_coord+RICH_camera_shift_Z) * 1" unit="mm"/>
-<rotation name="Camera_rot_rich_gas" x="-((90-Camera_full_Xrot) * 1)" y="-(0)" z="-(90.0)" unit="deg"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="Solid_behind_camera"/>
-<position name="Solid_behind_camera_pos_rich_gas" x="0" y="(Camera_origin_Y_coord+RICH_camera_shift_Y) * 1" z="(-1800-RICH_length/2+Camera_origin_Z_coord+RICH_camera_shift_Z) * 1" unit="mm"/>
-<rotation name="Solid_behind_camera_rot_rich_gas" x="-((-90+Camera_full_Xrot) * 1)" y="-(0)" z="-(-90.0)" unit="deg"/>
-</physvol>
-<physvol copynumber="2">
-<volumeref ref="Solid_behind_camera"/>
-<position name="Solid_behind_camera_pos_rich_gas" x="0" y="(-Camera_origin_Y_coord-RICH_camera_shift_Y) * 1" z="(-1800-RICH_length/2+Camera_origin_Z_coord+RICH_camera_shift_Z) * 1" unit="mm"/>
-<rotation name="Solid_behind_camera_rot_rich_gas" x="-((90-Camera_full_Xrot) * 1)" y="-(0)" z="-(90.0)" unit="deg"/>
-</physvol>
--->
-</volume>
-<volume name="rich_container">
-<materialref ref="aluminium"/>
-<solidref ref="rich_container_PartBody"/>
-<physvol copynumber="1">
-<volumeref ref="rich_gas"/>
-<position name="rich_gas_pos_rich_container" x="0" y="0" z="((RICH_entrance_thickness-RICH_exit_thickness)/2) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="rich_entrance"/>
-<position name="rich_entrance_pos_rich_container" x="0" y="0" z="(-RICH_length/2+RICH_entrance_thickness/2) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="rich_exit"/>
-<position name="rich_exit_pos_rich_container" x="0" y="0" z="(RICH_length/2-RICH_exit_thickness/2) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="rich_pipe_section"/>
-<positionref ref="central"/>
-<rotationref ref="identity"/>
-</physvol>
-</volume>
-<assembly name="rich_opt">
-<physvol copynumber="1">
-<volumeref ref="rich_container"/>
-<position name="rich_container_pos_rich_opt" x="0" y="0" z="(1800 + RICH_length/2) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="rich_cyl_pipe_section"/>
-<position name="rich_cyl_pipe_section_pos_rich_opt" x="0" y="0" z="(1800 - RICH_pipe_cyl_part_length/2) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-<physvol copynumber="1">
-<volumeref ref="rich_pipe_flange"/>
-<position name="rich_pipe_flange_pos_rich_opt" x="0" y="0" z="(1800 - RICH_pipe_cyl_part_length + RICH_pipe_flange_thickness/2) * 1" unit="mm"/>
-<rotationref ref="identity"/>
-</physvol>
-</assembly>
-</structure>
-<setup name="FAIRgeom" version="1.0">
-<world ref="rich_opt"/>
-</setup>
-</gdml>
+<?xml version="1.0" encoding="UTF-8"?>
+<gdml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://service-spi.web.cern.ch/service-spi/app/releases/GDML/schema/gdml.xsd">
+
+<define>
+<position name="central" x="0" y="0" z="0" unit="mm"/>
+<rotation name="identity" x="0" y="0" z="0" unit="degree"/>
+<variable name="DEGtoRAD" value="1.74532925199433E-02"/>
+<variable name="Acceptance_angle" value="25"/>
+<variable name="Acceptance_scaling_factor" value="1.5"/>
+<variable name="RICH_length" value="1900"/>
+<variable name="RICH_height" value="5000"/>
+<variable name="RICH_width" value="5268"/>
+<variable name="RICH_entrance_vertical_gap" value="1800"/>
+<variable name="RICH_covering_thickness" value="5"/>
+<variable name="RICH_entrance_thickness" value="0.25"/>
+<variable name="RICH_exit_thickness" value="5"/>
+<variable name="RICH_addend_Z_size" value="200"/>
+<variable name="RICH_pipe_outer_radius_at_entrance" value="74.2"/>
+<variable name="RICH_pipe_thickness_at_entrance" value="1.48"/>
+<variable name="RICH_pipe_outer_radius_at_exit" value="161.6"/>
+<variable name="RICH_pipe_thickness_at_exit" value="3.2"/>
+<variable name="RICH_pipe_cyl_part_length" value="100"/>
+<variable name="RICH_pipe_flange_thickness" value="3"/>
+<variable name="RICH_mirror_radius" value="3000"/>
+<variable name="RICH_mirror_position" value="3500"/>
+_RICH_OPTIMIZATION_PARAMATERS_
+<variable name="RICH_camera_radius" value="1697"/>
+<variable name="RICH_mirror_phi_size" value="8.425"/>
+<variable name="RICH_mirror_phi_step" value="8.5"/>
+<variable name="RICH_mirror_theta_gap" value="0.0745"/>
+<variable name="RICH_pixel_size_middle" value="6"/>
+<variable name="RICH_pixel_size_surrounding" value="6.25"/>
+<variable name="RICH_pmt_size" value="52"/>
+<variable name="RICH_pmt_depth" value="38.71"/>
+<variable name="RICH_camera_module_depth" value="250"/>
+<variable name="RICH_camera_gap_size" value="1"/>
+<variable name="RICH_camera_height" value="7*(2*RICH_pmt_size+RICH_camera_gap_size) + 6*RICH_camera_gap_size"/>
+<variable name="RICH_camera_touch_width" value="157.5"/>
+<variable name="RICH_camera_touch_radius" value="sqrt((RICH_camera_radius-10-RICH_pmt_depth)*(RICH_camera_radius-10-RICH_pmt_depth) + RICH_camera_touch_width*RICH_camera_touch_width/4)"/>
+<variable name="RICH_camera_segment_angle" value="(2*asin((RICH_camera_touch_width/2)/RICH_camera_touch_radius)/DEGtoRAD)"/>
+<variable name="RICH_camera_alu_frame_height" value="800"/>
+<variable name="Sens_plane_pos" value="-250"/>
+<variable name="Sh_box_thickness_top" value="30"/>
+<variable name="Sh_box_thickness_bottom" value="60"/>
+<variable name="Sh_box_thickness_sides" value="40"/>
+<variable name="Sh_box_thickness_back" value="50"/>
+<variable name="Sh_box_thickness_nose" value="60"/>
+<variable name="Sh_box_vert_space" value="800"/>
+<variable name="Sh_box_horiz_spread_angle" value="78"/>
+<variable name="Sh_box_horiz_add" value="40"/>
+<variable name="Sh_box_Rmin" value="1390"/>
+<variable name="Sh_box_Rmax" value="1680"/>
+<variable name="Sh_box_Rmax_bottom" value="1600"/>
+<variable name="Sh_box_nose_angle" value="45"/>
+<variable name="Sh_box_nose_vert_size" value="593"/>
+<variable name="Sh_box_cut_Z_coord" value="1600"/>
+<variable name="Back_cut_enabled" value="false"/>
+<variable name="Nose_enabled" value="true"/>
+<variable name="E" value="sin(((90-Acceptance_angle-RICH_mirror_tilt_angle))*DEGtoRAD) / sin((Acceptance_angle)*DEGtoRAD)"/>
+<variable name="A" value="(4*E*E+4*E*sin((RICH_mirror_tilt_angle)*DEGtoRAD)+1) / (cos((RICH_mirror_tilt_angle)*DEGtoRAD)*cos((RICH_mirror_tilt_angle)*DEGtoRAD))"/>
+<variable name="B" value="(2*(2*E+sin((RICH_mirror_tilt_angle)*DEGtoRAD))/cos((RICH_mirror_tilt_angle)*DEGtoRAD)) * (1 - RICH_mirror_position/(RICH_mirror_radius*cos((RICH_mirror_tilt_angle)*DEGtoRAD)))"/>
+<variable name="C" value="RICH_mirror_position*(RICH_mirror_position-2*RICH_mirror_radius*cos((RICH_mirror_tilt_angle)*DEGtoRAD)) / (RICH_mirror_radius*RICH_mirror_radius*cos((RICH_mirror_tilt_angle)*DEGtoRAD)*cos((RICH_mirror_tilt_angle)*DEGtoRAD))"/>
+<variable name="t1" value="(-B+sqrt(B*B-4*A*C)) / (2*A)"/>
+<variable name="t2" value="(-B-sqrt(B*B-4*A*C)) / (2*A)"/>
+<variable name="alpha1" value="(asin(t1)/DEGtoRAD)"/>
+<variable name="alpha2" value="(asin(t2)/DEGtoRAD)"/>
+<variable name="psi" value="(atan((RICH_mirror_radius*(sin((alpha1)*DEGtoRAD)*cos((RICH_mirror_tilt_angle)*DEGtoRAD) - sin((RICH_mirror_tilt_angle)*DEGtoRAD)*(1-cos((alpha1)*DEGtoRAD))))/RICH_mirror_position)/DEGtoRAD)"/>
+<variable name="Camera_full_Xrot" value="(psi+2*RICH_mirror_tilt_angle - RICH_camera_tilt_angle)"/>
+<variable name="Camera_origin_Y_coord" value="RICH_mirror_position*tan((psi)*DEGtoRAD) + (RICH_mirror_radius/2)*sin(((psi+2*RICH_mirror_tilt_angle))*DEGtoRAD) + RICH_camera_radius*sin((Camera_full_Xrot)*DEGtoRAD)"/>
+<variable name="Camera_origin_Z_coord" value="RICH_mirror_position - (RICH_mirror_radius/2)*cos(((psi+2*RICH_mirror_tilt_angle))*DEGtoRAD) - RICH_camera_radius*cos((Camera_full_Xrot)*DEGtoRAD)"/>
+<variable name="Mirror_origin_Y_coord" value="RICH_mirror_radius * sin(((RICH_mirror_tilt_angle+alpha1))*DEGtoRAD)"/>
+<variable name="Mirror_origin_Z_coord" value="RICH_mirror_position - RICH_mirror_radius*cos((RICH_mirror_tilt_angle)*DEGtoRAD)"/>
+</define>
+
+<materials>
+<material name="CsI" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="RICHgas_CO2_dis" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="aluminium" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="vacuum" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="RICHglass" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="kapton" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="iron" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+<material name="RICHgas_CO2_dis+" Z="1.0">
+<D value="1"/>
+<atom value="1"/>
+</material>
+</materials>
+
+<solids>
+<box name="pmt_pixel_PartBody" x="((RICH_pixel_size_middle/2) * 1)*2" y="((RICH_pixel_size_middle/2) * 1)*2" z="(0.250000)*2" lunit="mm"/>
+<box name="pmt_pixel_wide_PartBody" x="((RICH_pixel_size_surrounding/2) * 1)*2" y="((RICH_pixel_size_surrounding/2) * 1)*2" z="(0.250000)*2" lunit="mm"/>
+<box name="pmt_pixel_vertical_PartBody" x="((RICH_pixel_size_middle/2) * 1)*2" y="((RICH_pixel_size_surrounding/2) * 1)*2" z="(0.250000)*2" lunit="mm"/>
+<box name="pmt_pixel_horisontal_PartBody" x="((RICH_pixel_size_surrounding/2) * 1)*2" y="((RICH_pixel_size_middle/2) * 1)*2" z="(0.250000)*2" lunit="mm"/>
+<box name="pmt_PartBody" x="((RICH_pmt_size/2) * 1)*2" y="((RICH_pmt_size/2) * 1)*2" z="((RICH_pmt_depth/2) * 1)*2" lunit="mm"/>
+<box name="pmt_container_PartBody" x="((RICH_pmt_size/2) * 1)*2" y="((RICH_pmt_size/2) * 1)*2" z="((RICH_pmt_depth/2) * 1)*2" lunit="mm"/>
+<box name="camera_module_PartBody" x="(((3*RICH_pmt_size+2*RICH_camera_gap_size)/2) * 1)*2" y="(((2*RICH_pmt_size+RICH_camera_gap_size)/2) * 1)*2" z="((RICH_pmt_depth/2) * 1)*2" lunit="mm"/>
+<box name="alu_frame_PartBody" x="((RICH_camera_touch_width/2) * 1)*2" y="(((14*RICH_pmt_size+13*RICH_camera_gap_size)/2) * 1)*2" z="(5.000000)*2" lunit="mm"/>
+<box name="camera_strip_PartBody_op0" x="(((3*RICH_pmt_size+2*RICH_camera_gap_size)/2) * 1)*2" y="(((7*(2*RICH_pmt_size+RICH_camera_gap_size) + 6*RICH_camera_gap_size)/2) * 1)*2" z="((RICH_pmt_depth/2) * 1)*2" lunit="mm"/>
+<box name="camera_strip_PartBody_op1" x="((RICH_camera_touch_width/2) * 1)*2" y="(((7*(2*RICH_pmt_size+RICH_camera_gap_size) + 6*RICH_camera_gap_size)/2) * 1)*2" z="(5.000000)*2" lunit="mm"/>
+<union name="camera_strip_PartBody">
+<first ref="camera_strip_PartBody_op0"/>
+<second ref="camera_strip_PartBody_op1"/>
+<position name="camera_strip_PartBody__1_pos_0" x="0" y="0" z="(-RICH_pmt_depth/2-5) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</union>
+<tube name="rich_cyl_pipe_section_vac_PartBody" rmin="0.000000" rmax="(RICH_pipe_outer_radius_at_entrance-RICH_pipe_thickness_at_entrance) * 1" z="((RICH_pipe_cyl_part_length/2) * 1)*2" startphi="0.000000" deltaphi="360.000000" aunit="deg" lunit="mm"/>
+<tube name="rich_cyl_pipe_section_PartBody" rmin="0.000000" rmax="(RICH_pipe_outer_radius_at_entrance) * 1" z="((RICH_pipe_cyl_part_length/2) * 1)*2" startphi="0.000000" deltaphi="360.000000" aunit="deg" lunit="mm"/>
+<tube name="rich_pipe_flange_PartBody" rmin="(RICH_pipe_outer_radius_at_entrance) * 1" rmax="80.000000" z="((RICH_pipe_flange_thickness/2) * 1)*2" startphi="0.000000" deltaphi="360.000000" aunit="deg" lunit="mm"/>
+<cone name="rich_pipe_section_vac_PartBody" rmin1="0.000000" rmax1="(RICH_pipe_outer_radius_at_entrance-RICH_pipe_thickness_at_entrance) * 1" rmin2="0.000000" rmax2="(RICH_pipe_outer_radius_at_exit-RICH_pipe_thickness_at_exit) * 1" z="((RICH_length/2) * 1)*2" startphi="0.000000" deltaphi="360.000000" aunit="deg" lunit="mm"/>
+<cone name="rich_pipe_section_PartBody" rmin1="0.000000" rmax1="(RICH_pipe_outer_radius_at_entrance) * 1" rmin2="0.000000" rmax2="(RICH_pipe_outer_radius_at_exit) * 1" z="((RICH_length/2) * 1)*2" startphi="0.000000" deltaphi="360.000000" aunit="deg" lunit="mm"/>
+<sphere name="mirror_tile_type0_PartBody_op0" rmin="(RICH_mirror_radius) * 1" rmax="(RICH_mirror_radius+6) * 1" startphi="(-RICH_mirror_phi_size/2) * 1" deltaphi="(RICH_mirror_phi_size) * 1" starttheta="(90+RICH_mirror_tilt_angle+alpha1/2+RICH_mirror_theta_gap*3/4) * 1" deltatheta="(alpha1/2 - RICH_mirror_theta_gap*3/4) * 1" aunit="deg" lunit="mm"/>
+<box name="mirror_tile_type0_PartBody_op1" x="(5000.000000)*2" y="((RICH_width/2) * 1)*2" z="(100.000000)*2" lunit="mm"/>
+<subtraction name="mirror_tile_type0_PartBody">
+<first ref="mirror_tile_type0_PartBody_op0"/>
+<second ref="mirror_tile_type0_PartBody_op1"/>
+<position name="mirror_tile_type0_PartBody__1_pos_0" x="0" y="0" z="(-Mirror_origin_Y_coord-100) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</subtraction>
+<sphere name="mirror_tile_type1_PartBody" rmin="(RICH_mirror_radius) * 1" rmax="(RICH_mirror_radius+6) * 1" startphi="(-RICH_mirror_phi_size/2) * 1" deltaphi="(RICH_mirror_phi_size) * 1" starttheta="(90+RICH_mirror_tilt_angle+RICH_mirror_theta_gap/2) * 1" deltatheta="(alpha1/2 - RICH_mirror_theta_gap*3/4) * 1" aunit="deg" lunit="mm"/>
+<sphere name="mirror_tile_type2_PartBody" rmin="(RICH_mirror_radius) * 1" rmax="(RICH_mirror_radius+6) * 1" startphi="(-RICH_mirror_phi_size/2) * 1" deltaphi="(RICH_mirror_phi_size) * 1" starttheta="(90+RICH_mirror_tilt_angle-alpha1/2+RICH_mirror_theta_gap/4) * 1" deltatheta="(alpha1/2 - RICH_mirror_theta_gap*3/4) * 1" aunit="deg" lunit="mm"/>
+<sphere name="mirror_tile_type3_PartBody" rmin="(RICH_mirror_radius) * 1" rmax="(RICH_mirror_radius+6) * 1" startphi="(-RICH_mirror_phi_size/2) * 1" deltaphi="(RICH_mirror_phi_size) * 1" starttheta="(90+RICH_mirror_tilt_angle-alpha1) * 1" deltatheta="(alpha1/2 - RICH_mirror_theta_gap*3/4) * 1" aunit="deg" lunit="mm"/>
+<sphere name="mirror_tile_type4_PartBody_op0" rmin="(RICH_mirror_radius) * 1" rmax="(RICH_mirror_radius+6) * 1" startphi="(-RICH_mirror_phi_size/2) * 1" deltaphi="(RICH_mirror_phi_size) * 1" starttheta="(90+RICH_mirror_tilt_angle+alpha1/2+RICH_mirror_theta_gap*3/4) * 1" deltatheta="(alpha1/2 - RICH_mirror_theta_gap*3/4) * 1" aunit="deg" lunit="mm"/>
+<box name="mirror_tile_type4_PartBody_op1" x="(5000.000000)*2" y="((RICH_width/2) * 1)*2" z="(100.000000)*2" lunit="mm"/>
+<subtraction name="mirror_tile_type4_PartBody_op01">
+<first ref="mirror_tile_type4_PartBody_op0"/>
+<second ref="mirror_tile_type4_PartBody_op1"/>
+<position name="mirror_tile_type4_PartBody__1_pos_0" x="0" y="0" z="(-Mirror_origin_Y_coord-100) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</subtraction>
+<tube name="mirror_tile_type4_PartBody_op2" rmin="0.000000" rmax="800.000000" z="(3200.000000)*2" startphi="-90.000000" deltaphi="135.000000" aunit="deg" lunit="mm"/>
+<subtraction name="mirror_tile_type4_PartBody">
+<first ref="mirror_tile_type4_PartBody_op01"/>
+<second ref="mirror_tile_type4_PartBody_op2"/>
+<position name="mirror_tile_type4_PartBody__2_pos_01" x="0" y="0" z="(-RICH_mirror_radius*sin(((RICH_mirror_tilt_angle+alpha1))*DEGtoRAD)) * 1" unit="mm"/>
+<rotation name="mirror_tile_type4_PartBody__2_rot_01" x="90.0" y="0" z="90.0" unit="deg"/>
+</subtraction>
+<sphere name="mirror_tile_type5_PartBody_op0" rmin="(RICH_mirror_radius) * 1" rmax="(RICH_mirror_radius+6) * 1" startphi="(-RICH_mirror_phi_size/2) * 1" deltaphi="(RICH_mirror_phi_size) * 1" starttheta="(90+RICH_mirror_tilt_angle+alpha1/2+RICH_mirror_theta_gap*3/4) * 1" deltatheta="(alpha1/2 - RICH_mirror_theta_gap*3/4) * 1" aunit="deg" lunit="mm"/>
+<box name="mirror_tile_type5_PartBody_op1" x="(5000.000000)*2" y="((RICH_width/2) * 1)*2" z="(100.000000)*2" lunit="mm"/>
+<subtraction name="mirror_tile_type5_PartBody_op01">
+<first ref="mirror_tile_type5_PartBody_op0"/>
+<second ref="mirror_tile_type5_PartBody_op1"/>
+<position name="mirror_tile_type5_PartBody__1_pos_0" x="0" y="0" z="(-Mirror_origin_Y_coord-100) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</subtraction>
+<tube name="mirror_tile_type5_PartBody_op2" rmin="0.000000" rmax="800.000000" z="(3200.000000)*2" startphi="135.000000" deltaphi="135.000000" aunit="deg" lunit="mm"/>
+<subtraction name="mirror_tile_type5_PartBody">
+<first ref="mirror_tile_type5_PartBody_op01"/>
+<second ref="mirror_tile_type5_PartBody_op2"/>
+<position name="mirror_tile_type5_PartBody__2_pos_01" x="0" y="0" z="(-RICH_mirror_radius*sin(((RICH_mirror_tilt_angle+alpha1))*DEGtoRAD)) * 1" unit="mm"/>
+<rotation name="mirror_tile_type5_PartBody__2_rot_01" x="90.0" y="0" z="90.0" unit="deg"/>
+</subtraction>
+<box name="rich_entrance_PartBody_op0" x="((RICH_width/2) * 1)*2" y="((RICH_entrance_vertical_gap/2) * 1)*2" z="((RICH_entrance_thickness/2) * 1)*2" lunit="mm"/>
+<cone name="rich_entrance_PartBody_op1" rmin1="0.000000" rmax1="(RICH_pipe_outer_radius_at_entrance) * 1" rmin2="0.000000" rmax2="(RICH_pipe_outer_radius_at_exit) * 1" z="((RICH_length/2) * 1)*2" startphi="0.000000" deltaphi="360.000000" aunit="deg" lunit="mm"/>
+<subtraction name="rich_entrance_PartBody">
+<first ref="rich_entrance_PartBody_op0"/>
+<second ref="rich_entrance_PartBody_op1"/>
+<position name="rich_entrance_PartBody__1_pos_0" x="0" y="0" z="(RICH_length/2-RICH_entrance_thickness/2) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</subtraction>
+<box name="rich_exit_PartBody_op0" x="((RICH_width/2) * 1)*2" y="((RICH_height/2) * 1)*2" z="((RICH_exit_thickness/2) * 1)*2" lunit="mm"/>
+<cone name="rich_exit_PartBody_op1" rmin1="0.000000" rmax1="(RICH_pipe_outer_radius_at_entrance) * 1" rmin2="0.000000" rmax2="(RICH_pipe_outer_radius_at_exit) * 1" z="((RICH_length/2) * 1)*2" startphi="0.000000" deltaphi="360.000000" aunit="deg" lunit="mm"/>
+<subtraction name="rich_exit_PartBody">
+<first ref="rich_exit_PartBody_op0"/>
+<second ref="rich_exit_PartBody_op1"/>
+<position name="rich_exit_PartBody__1_pos_0" x="0" y="0" z="(-RICH_length/2+RICH_exit_thickness/2) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</subtraction>
+<tube name="Shielding_box_top_PartBody" rmin="(Sh_box_Rmin - Sh_box_thickness_back) * 1" rmax="Sh_box_Rmax * 1" z="((Sh_box_thickness_top/2) * 1)*2" startphi="(-Sh_box_horiz_spread_angle/2) * 1" deltaphi="(Sh_box_horiz_spread_angle) * 1" aunit="deg" lunit="mm"/>
+<tube name="Shielding_box_back_PartBody_op0" rmin="(Sh_box_Rmin-Sh_box_thickness_back) * 1" rmax="(Sh_box_Rmin) * 1" z="((Sh_box_vert_space/2) * 1)*2" startphi="(-Sh_box_horiz_spread_angle/2) * 1" deltaphi="(Sh_box_horiz_spread_angle) * 1" aunit="deg" lunit="mm"/>
+<box name="Shielding_box_back_PartBody_op1" x="(500.000000)*2" y="(2000.000000)*2" z="(3000.000000)*2" lunit="mm"/>
+<subtraction name="Shielding_box_back_PartBody">
+<first ref="Shielding_box_back_PartBody_op0"/>
+<second ref="Shielding_box_back_PartBody_op1"/>
+<position name="Shielding_box_back_PartBody__1_pos_0" x="(Camera_origin_Y_coord*sin((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_cut_Z_coord-500-Camera_origin_Z_coord)*cos((Camera_full_Xrot)*DEGtoRAD)) * 1" y="0" z="(-Camera_origin_Y_coord*cos((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_cut_Z_coord-500-Camera_origin_Z_coord)*sin((Camera_full_Xrot)*DEGtoRAD)) * 1" unit="mm"/>
+<rotation name="Shielding_box_back_PartBody__1_rot_0" x="0" y="(-Camera_full_Xrot) * 1" z="0" unit="deg"/>
+</subtraction>
+<cone name="Shielding_box_bottom_PartBody_op0" rmin1="(Sh_box_Rmin-Sh_box_thickness_back) * 1" rmax1="(Sh_box_Rmax_bottom-Sh_box_thickness_nose+Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD)) * 1" rmin2="(Sh_box_Rmin-Sh_box_thickness_back) * 1" rmax2="(Sh_box_Rmax_bottom-Sh_box_thickness_nose) * 1" z="((Sh_box_thickness_bottom/2) * 1)*2" startphi="(-Sh_box_horiz_spread_angle/2) * 1" deltaphi="(Sh_box_horiz_spread_angle) * 1" aunit="deg" lunit="mm"/>
+<box name="Shielding_box_bottom_PartBody_op1" x="(500.000000)*2" y="(2000.000000)*2" z="(3000.000000)*2" lunit="mm"/>
+<subtraction name="Shielding_box_bottom_PartBody">
+<first ref="Shielding_box_bottom_PartBody_op0"/>
+<second ref="Shielding_box_bottom_PartBody_op1"/>
+<position name="Shielding_box_bottom_PartBody__1_pos_0" x="(Camera_origin_Y_coord*sin((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_cut_Z_coord-500-Camera_origin_Z_coord)*cos((Camera_full_Xrot)*DEGtoRAD)) * 1" y="0" z="(-Camera_origin_Y_coord*cos((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_cut_Z_coord-500-Camera_origin_Z_coord)*sin((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_vert_space+Sh_box_thickness_bottom)/2) * 1" unit="mm"/>
+<rotation name="Shielding_box_bottom_PartBody__1_rot_0" x="0" y="(-Camera_full_Xrot) * 1" z="0" unit="deg"/>
+</subtraction>
+<box name="Shielding_box_top_horiz_add_PartBody" x="(((Sh_box_Rmax-Sh_box_Rmin+Sh_box_thickness_back)/2) * 1)*2" y="(((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * 1)*2" z="((Sh_box_thickness_top/2) * 1)*2" lunit="mm"/>
+<box name="Shielding_box_back_horiz_add_PartBody_op0" x="((Sh_box_thickness_back/2) * 1)*2" y="(((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * 1)*2" z="((Sh_box_vert_space/2) * 1)*2" lunit="mm"/>
+<box name="Shielding_box_back_horiz_add_PartBody_op1" x="(500.000000)*2" y="(2000.000000)*2" z="(3000.000000)*2" lunit="mm"/>
+<subtraction name="Shielding_box_back_horiz_add_PartBody">
+<first ref="Shielding_box_back_horiz_add_PartBody_op0"/>
+<second ref="Shielding_box_back_horiz_add_PartBody_op1"/>
+<position name="Shielding_box_back_horiz_add_PartBody__1_pos_0" x="0" y="0" z="(-Camera_origin_Y_coord*cos((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_cut_Z_coord-500-Camera_origin_Z_coord)*sin((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_vert_space+Sh_box_thickness_bottom)/2) * 1" unit="mm"/>
+<rotation name="Shielding_box_back_horiz_add_PartBody__1_rot_0" x="0" y="(-Camera_full_Xrot) * 1" z="(-Sh_box_horiz_spread_angle/2) * 1" unit="deg"/>
+</subtraction>
+<box name="Shielding_box_back_horiz_add_sym_PartBody_op0" x="((Sh_box_thickness_back/2) * 1)*2" y="(((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * 1)*2" z="((Sh_box_vert_space/2) * 1)*2" lunit="mm"/>
+<box name="Shielding_box_back_horiz_add_sym_PartBody_op1" x="(500.000000)*2" y="(2000.000000)*2" z="(3000.000000)*2" lunit="mm"/>
+<subtraction name="Shielding_box_back_horiz_add_sym_PartBody">
+<first ref="Shielding_box_back_horiz_add_sym_PartBody_op0"/>
+<second ref="Shielding_box_back_horiz_add_sym_PartBody_op1"/>
+<position name="Shielding_box_back_horiz_add_sym_PartBody__1_pos_0" x="0" y="0" z="(-Camera_origin_Y_coord*cos((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_cut_Z_coord-500-Camera_origin_Z_coord)*sin((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_vert_space+Sh_box_thickness_bottom)/2) * 1" unit="mm"/>
+<rotation name="Shielding_box_back_horiz_add_sym_PartBody__1_rot_0" x="0" y="(-Camera_full_Xrot) * 1" z="(Sh_box_horiz_spread_angle/2) * 1" unit="deg"/>
+</subtraction>
+<trap name="Shielding_box_bottom_horiz_add_PartBody_op0" z="((Sh_box_thickness_bottom/2) * 1)*2" theta="-atan(tan((Sh_box_nose_angle)*DEGtoRAD)/2)/DEGtoRAD" phi="0.000000" y1="(((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * 1)*2" x1="(((Sh_box_Rmax_bottom-Sh_box_Rmin+Sh_box_thickness_back-Sh_box_thickness_nose+Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD))/2) * 1)*2" x2="(((Sh_box_Rmax_bottom-Sh_box_Rmin+Sh_box_thickness_back-Sh_box_thickness_nose+Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD))/2) * 1)*2" alpha1="0.000000" y2="(((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * 1)*2" x3="(((Sh_box_Rmax_bottom-Sh_box_Rmin+Sh_box_thickness_back-Sh_box_thickness_nose)/2) * 1)*2" x4="(((Sh_box_Rmax_bottom-Sh_box_Rmin+Sh_box_thickness_back-Sh_box_thickness_nose)/2) * 1)*2" alpha2="0.000000" aunit="deg" lunit="mm"/>
+<box name="Shielding_box_bottom_horiz_add_PartBody_op1" x="(500.000000)*2" y="(2000.000000)*2" z="(3000.000000)*2" lunit="mm"/>
+<subtraction name="Shielding_box_bottom_horiz_add_PartBody">
+<first ref="Shielding_box_bottom_horiz_add_PartBody_op0"/>
+<second ref="Shielding_box_bottom_horiz_add_PartBody_op1"/>
+<position name="Shielding_box_bottom_horiz_add_PartBody__1_pos_0" x="0" y="0" z="(-Camera_origin_Y_coord*cos((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_cut_Z_coord-500-Camera_origin_Z_coord)*sin((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_vert_space+Sh_box_thickness_bottom)/2) * 1" unit="mm"/>
+<rotation name="Shielding_box_bottom_horiz_add_PartBody__1_rot_0" x="0" y="(-Camera_full_Xrot) * 1" z="(-Sh_box_horiz_spread_angle/2) * 1" unit="deg"/>
+</subtraction>
+<trap name="Shielding_box_bottom_horiz_add_sym_PartBody_op0" z="((Sh_box_thickness_bottom/2) * 1)*2" theta="-atan(tan((Sh_box_nose_angle)*DEGtoRAD)/2)/DEGtoRAD" phi="0.000000" y1="(((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * 1)*2" x1="(((Sh_box_Rmax_bottom-Sh_box_Rmin+Sh_box_thickness_back-Sh_box_thickness_nose+Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD))/2) * 1)*2" x2="(((Sh_box_Rmax_bottom-Sh_box_Rmin+Sh_box_thickness_back-Sh_box_thickness_nose+Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD))/2) * 1)*2" alpha1="0.000000" y2="(((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * 1)*2" x3="(((Sh_box_Rmax_bottom-Sh_box_Rmin+Sh_box_thickness_back-Sh_box_thickness_nose)/2) * 1)*2" x4="(((Sh_box_Rmax_bottom-Sh_box_Rmin+Sh_box_thickness_back-Sh_box_thickness_nose)/2) * 1)*2" alpha2="0.000000" aunit="deg" lunit="mm"/>
+<box name="Shielding_box_bottom_horiz_add_sym_PartBody_op1" x="(500.000000)*2" y="(2000.000000)*2" z="(3000.000000)*2" lunit="mm"/>
+<subtraction name="Shielding_box_bottom_horiz_add_sym_PartBody">
+<first ref="Shielding_box_bottom_horiz_add_sym_PartBody_op0"/>
+<second ref="Shielding_box_bottom_horiz_add_sym_PartBody_op1"/>
+<position name="Shielding_box_bottom_horiz_add_sym_PartBody__1_pos_0" x="0" y="0" z="(-Camera_origin_Y_coord*cos((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_cut_Z_coord-500-Camera_origin_Z_coord)*sin((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_vert_space+Sh_box_thickness_bottom)/2) * 1" unit="mm"/>
+<rotation name="Shielding_box_bottom_horiz_add_sym_PartBody__1_rot_0" x="0" y="(-Camera_full_Xrot) * 1" z="(Sh_box_horiz_spread_angle/2) * 1" unit="deg"/>
+</subtraction>
+<box name="Shielding_box_side_PartBody_op0" x="(((Sh_box_Rmax-Sh_box_Rmin)/2) * 1)*2" y="((Sh_box_thickness_sides/2) * 1)*2" z="((Sh_box_vert_space/2) * 1)*2" lunit="mm"/>
+<box name="Shielding_box_side_PartBody_op1" x="(500.000000)*2" y="(2000.000000)*2" z="(3000.000000)*2" lunit="mm"/>
+<subtraction name="Shielding_box_side_PartBody">
+<first ref="Shielding_box_side_PartBody_op0"/>
+<second ref="Shielding_box_side_PartBody_op1"/>
+<positionref ref="central"/>
+<rotation name="Shielding_box_side_PartBody__1_rot_0" x="0" y="(-Camera_full_Xrot) * 1" z="(-Sh_box_horiz_spread_angle/2) * 1" unit="deg"/>
+</subtraction>
+<box name="Shielding_box_side_sym_PartBody_op0" x="(((Sh_box_Rmax-Sh_box_Rmin)/2) * 1)*2" y="((Sh_box_thickness_sides/2) * 1)*2" z="((Sh_box_vert_space/2) * 1)*2" lunit="mm"/>
+<box name="Shielding_box_side_sym_PartBody_op1" x="(500.000000)*2" y="(2000.000000)*2" z="(3000.000000)*2" lunit="mm"/>
+<subtraction name="Shielding_box_side_sym_PartBody">
+<first ref="Shielding_box_side_sym_PartBody_op0"/>
+<second ref="Shielding_box_side_sym_PartBody_op1"/>
+<position name="Shielding_box_side_sym_PartBody__1_pos_0" x="0" y="0" z="(-Camera_origin_Y_coord*cos((Camera_full_Xrot)*DEGtoRAD) + (Sh_box_cut_Z_coord-500-Camera_origin_Z_coord)*sin((Camera_full_Xrot)*DEGtoRAD)) * 1" unit="mm"/>
+<rotation name="Shielding_box_side_sym_PartBody__1_rot_0" x="0" y="(-Camera_full_Xrot) * 1" z="(Sh_box_horiz_spread_angle/2) * 1" unit="deg"/>
+</subtraction>
+<trap name="Shielding_box_nose_horiz_add_PartBody" z="((Sh_box_nose_vert_size/2) * 1)*2" theta="(-Sh_box_nose_angle) * 1" phi="0.000000" y1="(((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * 1)*2" x1="((Sh_box_thickness_nose/2) * 1)*2" x2="((Sh_box_thickness_nose/2) * 1)*2" alpha1="0.000000" y2="(((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * 1)*2" x3="((Sh_box_thickness_nose/2) * 1)*2" x4="((Sh_box_thickness_nose/2) * 1)*2" alpha2="0.000000" aunit="deg" lunit="mm"/>
+<trap name="Shielding_box_small_piece_PartBody" z="((Sh_box_thickness_bottom/2) * 1)*2" theta="-atan(tan((Sh_box_nose_angle)*DEGtoRAD)/2)/DEGtoRAD" phi="0.000000" y1="((Sh_box_thickness_sides/2) * 1)*2" x1="(((Sh_box_Rmax-Sh_box_Rmax_bottom-Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD))/2) * 1)*2" x2="(((Sh_box_Rmax-Sh_box_Rmax_bottom-Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD))/2) * 1)*2" alpha1="0.000000" y2="((Sh_box_thickness_sides/2) * 1)*2" x3="(((Sh_box_Rmax-Sh_box_Rmax_bottom)/2) * 1)*2" x4="(((Sh_box_Rmax-Sh_box_Rmax_bottom)/2) * 1)*2" alpha2="0.000000" aunit="deg" lunit="mm"/>
+<cone name="Shielding_box_nose_PartBody_op0" rmin1="(Sh_box_Rmax_bottom-Sh_box_thickness_nose+Sh_box_nose_vert_size*tan((Sh_box_nose_angle)*DEGtoRAD)) * 1" rmax1="(Sh_box_Rmax_bottom+Sh_box_nose_vert_size*tan((Sh_box_nose_angle)*DEGtoRAD)) * 1" rmin2="(Sh_box_Rmax_bottom-Sh_box_thickness_nose) * 1" rmax2="(Sh_box_Rmax_bottom) * 1" z="((Sh_box_nose_vert_size/2) * 1)*2" startphi="(-Sh_box_horiz_spread_angle/2) * 1" deltaphi="(Sh_box_horiz_spread_angle) * 1" aunit="deg" lunit="mm"/>
+<elcone name="Shielding_box_nose_PartBody_op1" dx="(1901.782178)/4078.385024" dy="(2852.673267)/4078.385024" zmax="(4078.385024)/2" zcut="(4078.385024)/2" lunit="mm"/>
+<subtraction name="Shielding_box_nose_PartBody">
+<first ref="Shielding_box_nose_PartBody_op0"/>
+<second ref="Shielding_box_nose_PartBody_op1"/>
+<position name="Shielding_box_nose_PartBody__1_pos_0" x="(Camera_origin_Y_coord*sin((Camera_full_Xrot)*DEGtoRAD) + (4078.385024/2-Camera_origin_Z_coord)*cos((Camera_full_Xrot)*DEGtoRAD)) * 1" y="0" z="(-(Camera_origin_Y_coord*cos((Camera_full_Xrot)*DEGtoRAD) - (4078.385024/2-Camera_origin_Z_coord)*sin((Camera_full_Xrot)*DEGtoRAD) - (Sh_box_vert_space+Sh_box_nose_vert_size)/2)) * 1" unit="mm"/>
+<rotation name="Shielding_box_nose_PartBody__1_rot_0" x="0" y="(-90-Camera_full_Xrot) * 1" z="0" unit="deg"/>
+</subtraction>
+<box name="sens_plane_PartBody_op0" x="(500.000000)*2" y="(500.000000)*2" z="(0.500000)*2" lunit="mm"/>
+<cone name="sens_plane_PartBody_op1" rmin1="0.000000" rmax1="(RICH_pipe_outer_radius_at_entrance) * 1" rmin2="0.000000" rmax2="(RICH_pipe_outer_radius_at_exit) * 1" z="((RICH_length/2) * 1)*2" startphi="0.000000" deltaphi="360.000000" aunit="deg" lunit="mm"/>
+<subtraction name="sens_plane_PartBody">
+<first ref="sens_plane_PartBody_op0"/>
+<second ref="sens_plane_PartBody_op1"/>
+<position name="sens_plane_PartBody__1_pos_0" x="0" y="0" z="(-Sens_plane_pos + (RICH_exit_thickness-RICH_entrance_thickness)/2) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</subtraction>
+<sphere name="Mirror_PartBody_op0" rmin="(RICH_mirror_radius) * 1" rmax="(RICH_mirror_radius+6) * 1" startphi="(-(RICH_mirror_phi_step*9/2+RICH_mirror_phi_size/2)) * 1" deltaphi="(RICH_mirror_phi_step*9+RICH_mirror_phi_size) * 1" starttheta="(90+RICH_mirror_tilt_angle-alpha1) * 1" deltatheta="(2*alpha1) * 1" aunit="deg" lunit="mm"/>
+<box name="Mirror_PartBody_op1" x="(5000.000000)*2" y="((RICH_width/2) * 1)*2" z="(100.000000)*2" lunit="mm"/>
+<subtraction name="Mirror_PartBody_op01">
+<first ref="Mirror_PartBody_op0"/>
+<second ref="Mirror_PartBody_op1"/>
+<position name="Mirror_PartBody__1_pos_0" x="0" y="0" z="(-Mirror_origin_Y_coord-100) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</subtraction>
+<box name="Mirror_PartBody_op2" x="(5000.000000)*2" y="(185.000000)*2" z="(185.000000)*2" lunit="mm"/>
+<subtraction name="Mirror_PartBody">
+<first ref="Mirror_PartBody_op01"/>
+<second ref="Mirror_PartBody_op2"/>
+<position name="Mirror_PartBody__2_pos_01" x="0" y="0" z="(-Mirror_origin_Y_coord) * 1" unit="mm"/>
+<rotation name="Mirror_PartBody__2_rot_01" x="45.0000000000647" y="0" z="0" unit="deg"/>
+</subtraction>
+<tube name="Camera_PartBody" rmin="(RICH_camera_radius-0.5) * 1" rmax="(RICH_camera_radius) * 1" z="(((7*(2*RICH_pmt_size+RICH_camera_gap_size) + 6*RICH_camera_gap_size)/2) * 1)*2" startphi="(-7 * RICH_camera_segment_angle) * 1" deltaphi="(14 * RICH_camera_segment_angle) * 1" aunit="deg" lunit="mm"/>
+<tube name="Solid_behind_camera_PartBody" rmin="(RICH_camera_radius-10.5) * 1" rmax="(RICH_camera_radius-0.5) * 1" z="((RICH_camera_height/2) * 1)*2" startphi="(-7 * RICH_camera_segment_angle) * 1" deltaphi="(14 * RICH_camera_segment_angle) * 1" aunit="deg" lunit="mm"/>
+<box name="mainframe_part2_gas_PartBody" x="(1395.000000)*2" y="(43.000000)*2" z="(43.000000)*2" lunit="mm"/>
+<box name="mainframe_part3_gas_PartBody" x="(43.000000)*2" y="(43.000000)*2" z="(432.919390)*2" lunit="mm"/>
+<trap name="mainframe_part5_gas_PartBody" z="(43.000000)*2" theta="-26.016698" phi="0.000000" y1="(43.000000)*2" x1="(719.697521)*2" x2="(719.697521)*2" alpha1="0.000000" y2="(43.000000)*2" x3="(624.000148)*2" x4="(624.000148)*2" alpha2="0.000000" aunit="deg" lunit="mm"/>
+<box name="mainframe_part8_gas_PartBody" x="(43.000000)*2" y="((RICH_height/2-RICH_covering_thickness-100) * 1)*2" z="(43.000000)*2" lunit="mm"/>
+<box name="mainframe_part9_gas_PartBody" x="(2629.000000)*2" y="(43.000000)*2" z="(43.000000)*2" lunit="mm"/>
+<box name="mainframe_part10_gas_PartBody" x="(43.000000)*2" y="(43.000000)*2" z="(461.955610)*2" lunit="mm"/>
+<box name="mainframe_part2_PartBody" x="(1395.000000)*2" y="(50.000000)*2" z="(50.000000)*2" lunit="mm"/>
+<box name="mainframe_part3_PartBody" x="(50.000000)*2" y="(50.000000)*2" z="(432.919390)*2" lunit="mm"/>
+<trap name="mainframe_part5_PartBody" z="(50.000000)*2" theta="-26.016698" phi="0.000000" y1="(50.000000)*2" x1="(727.486842)*2" x2="(727.486842)*2" alpha1="0.000000" y2="(50.000000)*2" x3="(616.210827)*2" x4="(616.210827)*2" alpha2="0.000000" aunit="deg" lunit="mm"/>
+<box name="mainframe_part8_PartBody" x="(50.000000)*2" y="((RICH_height/2-RICH_covering_thickness-100) * 1)*2" z="(50.000000)*2" lunit="mm"/>
+<box name="mainframe_part9_PartBody" x="(2629.000000)*2" y="(50.000000)*2" z="(50.000000)*2" lunit="mm"/>
+<box name="mainframe_part10_PartBody" x="(50.000000)*2" y="(50.000000)*2" z="(461.955610)*2" lunit="mm"/>
+<box name="rich_gas_PartBody_op0" x="((RICH_width/2-RICH_covering_thickness) * 1)*2" y="((RICH_height/2-RICH_covering_thickness) * 1)*2" z="(((RICH_length-RICH_entrance_thickness-RICH_exit_thickness)/2) * 1)*2" lunit="mm"/>
+<box name="rich_gas_PartBody_op1" x="((RICH_width/2-RICH_covering_thickness) * 1)*2" y="((((RICH_height-RICH_entrance_vertical_gap)/2 - 2*RICH_covering_thickness)/2) * 1)*2" z="(((RICH_addend_Z_size-RICH_covering_thickness + RICH_entrance_thickness)/2) * 1)*2" lunit="mm"/>
+<union name="rich_gas_PartBody_op01">
+<first ref="rich_gas_PartBody_op0"/>
+<second ref="rich_gas_PartBody_op1"/>
+<position name="rich_gas_PartBody__1_pos_0" x="0" y="((RICH_height/2 + RICH_entrance_vertical_gap/2)/2) * 1" z="(-RICH_length/2-RICH_addend_Z_size/2 + RICH_covering_thickness) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</union>
+<box name="rich_gas_PartBody_op2" x="((RICH_width/2-RICH_covering_thickness) * 1)*2" y="((((RICH_height-RICH_entrance_vertical_gap)/2 - 2*RICH_covering_thickness)/2) * 1)*2" z="(((RICH_addend_Z_size-RICH_covering_thickness + RICH_entrance_thickness)/2) * 1)*2" lunit="mm"/>
+<union name="rich_gas_PartBody_op012">
+<first ref="rich_gas_PartBody_op01"/>
+<second ref="rich_gas_PartBody_op2"/>
+<position name="rich_gas_PartBody__2_pos_01" x="0" y="(-(RICH_height/2 + RICH_entrance_vertical_gap/2)/2) * 1" z="(-RICH_length/2-RICH_addend_Z_size/2 + RICH_covering_thickness) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</union>
+<cone name="rich_gas_PartBody_op3" rmin1="0.000000" rmax1="(RICH_pipe_outer_radius_at_entrance) * 1" rmin2="0.000000" rmax2="(RICH_pipe_outer_radius_at_exit) * 1" z="((RICH_length/2) * 1)*2" startphi="0.000000" deltaphi="360.000000" aunit="deg" lunit="mm"/>
+<subtraction name="rich_gas_PartBody">
+<first ref="rich_gas_PartBody_op012"/>
+<second ref="rich_gas_PartBody_op3"/>
+<position name="rich_gas_PartBody__3_pos_012" x="0" y="0" z="(-(RICH_entrance_thickness-RICH_exit_thickness)/2) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</subtraction>
+<box name="rich_container_PartBody_op0" x="((RICH_width/2) * 1)*2" y="((RICH_height/2) * 1)*2" z="((RICH_length/2) * 1)*2" lunit="mm"/>
+<box name="rich_container_PartBody_op1" x="((RICH_width/2) * 1)*2" y="((((RICH_height-RICH_entrance_vertical_gap)/2)/2) * 1)*2" z="((RICH_addend_Z_size/2) * 1)*2" lunit="mm"/>
+<union name="rich_container_PartBody_op01">
+<first ref="rich_container_PartBody_op0"/>
+<second ref="rich_container_PartBody_op1"/>
+<position name="rich_container_PartBody__1_pos_0" x="0" y="((RICH_height/2 + RICH_entrance_vertical_gap/2)/2) * 1" z="(-RICH_length/2-RICH_addend_Z_size/2) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</union>
+<box name="rich_container_PartBody_op2" x="((RICH_width/2) * 1)*2" y="((((RICH_height-RICH_entrance_vertical_gap)/2)/2) * 1)*2" z="((RICH_addend_Z_size/2) * 1)*2" lunit="mm"/>
+<union name="rich_container_PartBody">
+<first ref="rich_container_PartBody_op01"/>
+<second ref="rich_container_PartBody_op2"/>
+<position name="rich_container_PartBody__2_pos_01" x="0" y="(-(RICH_height/2 + RICH_entrance_vertical_gap/2)/2) * 1" z="(-RICH_length/2-RICH_addend_Z_size/2) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</union>
+</solids>
+<structure>
+<volume name="pmt_pixel">
+<materialref ref="CsI"/>
+<solidref ref="pmt_pixel_PartBody"/>
+</volume>
+<volume name="pmt_pixel_wide">
+<materialref ref="CsI"/>
+<solidref ref="pmt_pixel_wide_PartBody"/>
+</volume>
+<volume name="pmt_pixel_vertical">
+<materialref ref="CsI"/>
+<solidref ref="pmt_pixel_vertical_PartBody"/>
+</volume>
+<volume name="pmt_pixel_horisontal">
+<materialref ref="CsI"/>
+<solidref ref="pmt_pixel_horisontal_PartBody"/>
+</volume>
+<volume name="pmt">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="pmt_PartBody"/>
+<physvol copynumber="1">
+<volumeref ref="pmt_pixel_wide"/>
+<position name="pmt_pixel_wide_pos_pmt" x="(3*RICH_pixel_size_middle+RICH_pixel_size_surrounding/2) * 1" y="(3*RICH_pixel_size_middle+RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="2">
+<volumeref ref="pmt_pixel_wide"/>
+<position name="pmt_pixel_wide_pos_pmt" x="(-3*RICH_pixel_size_middle-RICH_pixel_size_surrounding/2) * 1" y="(3*RICH_pixel_size_middle+RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="3">
+<volumeref ref="pmt_pixel_wide"/>
+<position name="pmt_pixel_wide_pos_pmt" x="(3*RICH_pixel_size_middle+RICH_pixel_size_surrounding/2) * 1" y="(-3*RICH_pixel_size_middle-RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="4">
+<volumeref ref="pmt_pixel_wide"/>
+<position name="pmt_pixel_wide_pos_pmt" x="(-3*RICH_pixel_size_middle-RICH_pixel_size_surrounding/2) * 1" y="(-3*RICH_pixel_size_middle-RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1" y="(RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="2">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+6" y="(RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="3">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+12" y="(RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="4">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+18" y="(RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="5">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+24" y="(RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="6">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+30" y="(RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="7">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1" y="(RICH_pixel_size_middle*3/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="8">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+6" y="(RICH_pixel_size_middle*3/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="9">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+12" y="(RICH_pixel_size_middle*3/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="10">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+18" y="(RICH_pixel_size_middle*3/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="11">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+24" y="(RICH_pixel_size_middle*3/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="12">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+30" y="(RICH_pixel_size_middle*3/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="13">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1" y="(RICH_pixel_size_middle*1/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="14">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+6" y="(RICH_pixel_size_middle*1/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="15">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+12" y="(RICH_pixel_size_middle*1/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="16">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+18" y="(RICH_pixel_size_middle*1/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="17">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+24" y="(RICH_pixel_size_middle*1/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="18">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+30" y="(RICH_pixel_size_middle*1/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="19">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1" y="(-RICH_pixel_size_middle*1/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="20">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+6" y="(-RICH_pixel_size_middle*1/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="21">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+12" y="(-RICH_pixel_size_middle*1/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="22">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+18" y="(-RICH_pixel_size_middle*1/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="23">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+24" y="(-RICH_pixel_size_middle*1/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="24">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+30" y="(-RICH_pixel_size_middle*1/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="25">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1" y="(-RICH_pixel_size_middle*3/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="26">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+6" y="(-RICH_pixel_size_middle*3/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="27">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+12" y="(-RICH_pixel_size_middle*3/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="28">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+18" y="(-RICH_pixel_size_middle*3/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="29">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+24" y="(-RICH_pixel_size_middle*3/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="30">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+30" y="(-RICH_pixel_size_middle*3/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="31">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1" y="(-RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="32">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+6" y="(-RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="33">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+12" y="(-RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="34">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+18" y="(-RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="35">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+24" y="(-RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="36">
+<volumeref ref="pmt_pixel"/>
+<position name="pmt_pixel_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+30" y="(-RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="pmt_pixel_vertical"/>
+<position name="pmt_pixel_vertical_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1" y="(RICH_pixel_size_middle*3+RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="2">
+<volumeref ref="pmt_pixel_vertical"/>
+<position name="pmt_pixel_vertical_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+6" y="(RICH_pixel_size_middle*3+RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="3">
+<volumeref ref="pmt_pixel_vertical"/>
+<position name="pmt_pixel_vertical_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+12" y="(RICH_pixel_size_middle*3+RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="4">
+<volumeref ref="pmt_pixel_vertical"/>
+<position name="pmt_pixel_vertical_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+18" y="(RICH_pixel_size_middle*3+RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="5">
+<volumeref ref="pmt_pixel_vertical"/>
+<position name="pmt_pixel_vertical_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+24" y="(RICH_pixel_size_middle*3+RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="6">
+<volumeref ref="pmt_pixel_vertical"/>
+<position name="pmt_pixel_vertical_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+30" y="(RICH_pixel_size_middle*3+RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="7">
+<volumeref ref="pmt_pixel_vertical"/>
+<position name="pmt_pixel_vertical_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1" y="(-RICH_pixel_size_middle*3-RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="8">
+<volumeref ref="pmt_pixel_vertical"/>
+<position name="pmt_pixel_vertical_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+6" y="(-RICH_pixel_size_middle*3-RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="9">
+<volumeref ref="pmt_pixel_vertical"/>
+<position name="pmt_pixel_vertical_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+12" y="(-RICH_pixel_size_middle*3-RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="10">
+<volumeref ref="pmt_pixel_vertical"/>
+<position name="pmt_pixel_vertical_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+18" y="(-RICH_pixel_size_middle*3-RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="11">
+<volumeref ref="pmt_pixel_vertical"/>
+<position name="pmt_pixel_vertical_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+24" y="(-RICH_pixel_size_middle*3-RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="12">
+<volumeref ref="pmt_pixel_vertical"/>
+<position name="pmt_pixel_vertical_pos_pmt" x="(-RICH_pixel_size_middle*5/2) * 1+30" y="(-RICH_pixel_size_middle*3-RICH_pixel_size_surrounding/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="pmt_pixel_horisontal"/>
+<position name="pmt_pixel_horisontal_pos_pmt" x="(-RICH_pixel_size_middle*3-RICH_pixel_size_surrounding/2) * 1" y="(-RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="2">
+<volumeref ref="pmt_pixel_horisontal"/>
+<position name="pmt_pixel_horisontal_pos_pmt" x="(-RICH_pixel_size_middle*3-RICH_pixel_size_surrounding/2) * 1" y="(-RICH_pixel_size_middle*5/2) * 1+6" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="3">
+<volumeref ref="pmt_pixel_horisontal"/>
+<position name="pmt_pixel_horisontal_pos_pmt" x="(-RICH_pixel_size_middle*3-RICH_pixel_size_surrounding/2) * 1" y="(-RICH_pixel_size_middle*5/2) * 1+12" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="4">
+<volumeref ref="pmt_pixel_horisontal"/>
+<position name="pmt_pixel_horisontal_pos_pmt" x="(-RICH_pixel_size_middle*3-RICH_pixel_size_surrounding/2) * 1" y="(-RICH_pixel_size_middle*5/2) * 1+18" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="5">
+<volumeref ref="pmt_pixel_horisontal"/>
+<position name="pmt_pixel_horisontal_pos_pmt" x="(-RICH_pixel_size_middle*3-RICH_pixel_size_surrounding/2) * 1" y="(-RICH_pixel_size_middle*5/2) * 1+24" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="6">
+<volumeref ref="pmt_pixel_horisontal"/>
+<position name="pmt_pixel_horisontal_pos_pmt" x="(-RICH_pixel_size_middle*3-RICH_pixel_size_surrounding/2) * 1" y="(-RICH_pixel_size_middle*5/2) * 1+30" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="7">
+<volumeref ref="pmt_pixel_horisontal"/>
+<position name="pmt_pixel_horisontal_pos_pmt" x="(RICH_pixel_size_middle*3+RICH_pixel_size_surrounding/2) * 1" y="(-RICH_pixel_size_middle*5/2) * 1" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="8">
+<volumeref ref="pmt_pixel_horisontal"/>
+<position name="pmt_pixel_horisontal_pos_pmt" x="(RICH_pixel_size_middle*3+RICH_pixel_size_surrounding/2) * 1" y="(-RICH_pixel_size_middle*5/2) * 1+6" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="9">
+<volumeref ref="pmt_pixel_horisontal"/>
+<position name="pmt_pixel_horisontal_pos_pmt" x="(RICH_pixel_size_middle*3+RICH_pixel_size_surrounding/2) * 1" y="(-RICH_pixel_size_middle*5/2) * 1+12" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="10">
+<volumeref ref="pmt_pixel_horisontal"/>
+<position name="pmt_pixel_horisontal_pos_pmt" x="(RICH_pixel_size_middle*3+RICH_pixel_size_surrounding/2) * 1" y="(-RICH_pixel_size_middle*5/2) * 1+18" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="11">
+<volumeref ref="pmt_pixel_horisontal"/>
+<position name="pmt_pixel_horisontal_pos_pmt" x="(RICH_pixel_size_middle*3+RICH_pixel_size_surrounding/2) * 1" y="(-RICH_pixel_size_middle*5/2) * 1+24" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="12">
+<volumeref ref="pmt_pixel_horisontal"/>
+<position name="pmt_pixel_horisontal_pos_pmt" x="(RICH_pixel_size_middle*3+RICH_pixel_size_surrounding/2) * 1" y="(-RICH_pixel_size_middle*5/2) * 1+30" z="(RICH_pmt_depth/2-0.25) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+</volume>
+<volume name="pmt_container">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="pmt_container_PartBody"/>
+<physvol copynumber="1">
+<volumeref ref="pmt"/>
+<positionref ref="central"/>
+<rotationref ref="identity"/>
+</physvol>
+</volume>
+<volume name="camera_module">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="camera_module_PartBody"/>
+<physvol copynumber="1">
+<volumeref ref="pmt_container"/>
+<position name="pmt_container_pos_camera_module" x="(-RICH_pmt_size-RICH_camera_gap_size) * 1" y="((RICH_pmt_size+RICH_camera_gap_size)/2) * 1" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="2">
+<volumeref ref="pmt_container"/>
+<position name="pmt_container_pos_camera_module" x="0" y="((RICH_pmt_size+RICH_camera_gap_size)/2) * 1" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="3">
+<volumeref ref="pmt_container"/>
+<position name="pmt_container_pos_camera_module" x="(RICH_pmt_size+RICH_camera_gap_size) * 1" y="((RICH_pmt_size+RICH_camera_gap_size)/2) * 1" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="4">
+<volumeref ref="pmt_container"/>
+<position name="pmt_container_pos_camera_module" x="(-RICH_pmt_size-RICH_camera_gap_size) * 1" y="(-(RICH_pmt_size+RICH_camera_gap_size)/2) * 1" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="5">
+<volumeref ref="pmt_container"/>
+<position name="pmt_container_pos_camera_module" x="0" y="(-(RICH_pmt_size+RICH_camera_gap_size)/2) * 1" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="6">
+<volumeref ref="pmt_container"/>
+<position name="pmt_container_pos_camera_module" x="(RICH_pmt_size+RICH_camera_gap_size) * 1" y="(-(RICH_pmt_size+RICH_camera_gap_size)/2) * 1" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+</volume>
+<volume name="alu_frame">
+<materialref ref="aluminium"/>
+<solidref ref="alu_frame_PartBody"/>
+</volume>
+<volume name="camera_strip">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="camera_strip_PartBody"/>
+<physvol copynumber="1">
+<volumeref ref="camera_module"/>
+<position name="camera_module_pos_camera_strip" x="0" y="(-3*(2*RICH_pmt_size+2*RICH_camera_gap_size)) * 1" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="2">
+<volumeref ref="camera_module"/>
+<position name="camera_module_pos_camera_strip" x="0" y="(-3*(2*RICH_pmt_size+2*RICH_camera_gap_size)) * 1+106" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="3">
+<volumeref ref="camera_module"/>
+<position name="camera_module_pos_camera_strip" x="0" y="(-3*(2*RICH_pmt_size+2*RICH_camera_gap_size)) * 1+212" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="4">
+<volumeref ref="camera_module"/>
+<position name="camera_module_pos_camera_strip" x="0" y="(-3*(2*RICH_pmt_size+2*RICH_camera_gap_size)) * 1+318" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="5">
+<volumeref ref="camera_module"/>
+<position name="camera_module_pos_camera_strip" x="0" y="(-3*(2*RICH_pmt_size+2*RICH_camera_gap_size)) * 1+424" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="6">
+<volumeref ref="camera_module"/>
+<position name="camera_module_pos_camera_strip" x="0" y="(-3*(2*RICH_pmt_size+2*RICH_camera_gap_size)) * 1+530" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="7">
+<volumeref ref="camera_module"/>
+<position name="camera_module_pos_camera_strip" x="0" y="(-3*(2*RICH_pmt_size+2*RICH_camera_gap_size)) * 1+636" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="alu_frame"/>
+<position name="alu_frame_pos_camera_strip" x="0" y="0" z="(-RICH_pmt_depth/2-5) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+</volume>
+<assembly name="camera_container">
+<physvol copynumber="1">
+<volumeref ref="camera_strip"/>
+<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(-7+0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(-7+0.5))*DEGtoRAD)) * 1" unit="mm"/>
+<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(-7+0.5)) * 1)" z="-(0)" unit="deg"/>
+</physvol>
+<physvol copynumber="2">
+<volumeref ref="camera_strip"/>
+<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(-6+0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(-6+0.5))*DEGtoRAD)) * 1" unit="mm"/>
+<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(-6+0.5)) * 1)" z="-(0)" unit="deg"/>
+</physvol>
+<physvol copynumber="3">
+<volumeref ref="camera_strip"/>
+<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(-5+0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(-5+0.5))*DEGtoRAD)) * 1" unit="mm"/>
+<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(-5+0.5)) * 1)" z="-(0)" unit="deg"/>
+</physvol>
+<physvol copynumber="4">
+<volumeref ref="camera_strip"/>
+<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(-4+0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(-4+0.5))*DEGtoRAD)) * 1" unit="mm"/>
+<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(-4+0.5)) * 1)" z="-(0)" unit="deg"/>
+</physvol>
+<physvol copynumber="5">
+<volumeref ref="camera_strip"/>
+<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(-3+0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(-3+0.5))*DEGtoRAD)) * 1" unit="mm"/>
+<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(-3+0.5)) * 1)" z="-(0)" unit="deg"/>
+</physvol>
+<physvol copynumber="6">
+<volumeref ref="camera_strip"/>
+<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(-2+0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(-2+0.5))*DEGtoRAD)) * 1" unit="mm"/>
+<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(-2+0.5)) * 1)" z="-(0)" unit="deg"/>
+</physvol>
+<physvol copynumber="7">
+<volumeref ref="camera_strip"/>
+<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(-1+0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(-1+0.5))*DEGtoRAD)) * 1" unit="mm"/>
+<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(-1+0.5)) * 1)" z="-(0)" unit="deg"/>
+</physvol>
+<physvol copynumber="8">
+<volumeref ref="camera_strip"/>
+<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(1-0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(1-0.5))*DEGtoRAD)) * 1" unit="mm"/>
+<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(1-0.5)) * 1)" z="-(0)" unit="deg"/>
+</physvol>
+<physvol copynumber="9">
+<volumeref ref="camera_strip"/>
+<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(2-0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(2-0.5))*DEGtoRAD)) * 1" unit="mm"/>
+<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(2-0.5)) * 1)" z="-(0)" unit="deg"/>
+</physvol>
+<physvol copynumber="10">
+<volumeref ref="camera_strip"/>
+<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(3-0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(3-0.5))*DEGtoRAD)) * 1" unit="mm"/>
+<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(3-0.5)) * 1)" z="-(0)" unit="deg"/>
+</physvol>
+<physvol copynumber="11">
+<volumeref ref="camera_strip"/>
+<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(4-0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(4-0.5))*DEGtoRAD)) * 1" unit="mm"/>
+<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(4-0.5)) * 1)" z="-(0)" unit="deg"/>
+</physvol>
+<physvol copynumber="12">
+<volumeref ref="camera_strip"/>
+<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(5-0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(5-0.5))*DEGtoRAD)) * 1" unit="mm"/>
+<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(5-0.5)) * 1)" z="-(0)" unit="deg"/>
+</physvol>
+<physvol copynumber="13">
+<volumeref ref="camera_strip"/>
+<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(6-0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(6-0.5))*DEGtoRAD)) * 1" unit="mm"/>
+<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(6-0.5)) * 1)" z="-(0)" unit="deg"/>
+</physvol>
+<physvol copynumber="14">
+<volumeref ref="camera_strip"/>
+<position name="camera_strip_pos_camera_container" x="((RICH_camera_radius-RICH_pmt_depth/2) * sin((RICH_camera_segment_angle*(7-0.5))*DEGtoRAD)) * 1" y="0" z="((RICH_camera_radius-RICH_pmt_depth/2) * cos((RICH_camera_segment_angle*(7-0.5))*DEGtoRAD)) * 1" unit="mm"/>
+<rotation name="camera_strip_rot_camera_container" x="-(0)" y="-((RICH_camera_segment_angle*(7-0.5)) * 1)" z="-(0)" unit="deg"/>
+</physvol>
+</assembly>
+<volume name="rich_cyl_pipe_section_vac">
+<materialref ref="vacuum"/>
+<solidref ref="rich_cyl_pipe_section_vac_PartBody"/>
+</volume>
+<volume name="rich_cyl_pipe_section">
+<materialref ref="aluminium"/>
+<solidref ref="rich_cyl_pipe_section_PartBody"/>
+<physvol copynumber="1">
+<volumeref ref="rich_cyl_pipe_section_vac"/>
+<positionref ref="central"/>
+<rotationref ref="identity"/>
+</physvol>
+</volume>
+<volume name="rich_pipe_flange">
+<materialref ref="aluminium"/>
+<solidref ref="rich_pipe_flange_PartBody"/>
+</volume>
+<volume name="rich_pipe_section_vac">
+<materialref ref="vacuum"/>
+<solidref ref="rich_pipe_section_vac_PartBody"/>
+</volume>
+<volume name="rich_pipe_section">
+<materialref ref="aluminium"/>
+<solidref ref="rich_pipe_section_PartBody"/>
+<physvol copynumber="1">
+<volumeref ref="rich_pipe_section_vac"/>
+<positionref ref="central"/>
+<rotationref ref="identity"/>
+</physvol>
+</volume>
+<volume name="mirror_tile_type0">
+<materialref ref="RICHglass"/>
+<solidref ref="mirror_tile_type0_PartBody"/>
+</volume>
+<volume name="mirror_tile_type1">
+<materialref ref="RICHglass"/>
+<solidref ref="mirror_tile_type1_PartBody"/>
+</volume>
+<volume name="mirror_tile_type2">
+<materialref ref="RICHglass"/>
+<solidref ref="mirror_tile_type2_PartBody"/>
+</volume>
+<volume name="mirror_tile_type3">
+<materialref ref="RICHglass"/>
+<solidref ref="mirror_tile_type3_PartBody"/>
+</volume>
+<volume name="mirror_tile_type4">
+<materialref ref="RICHglass"/>
+<solidref ref="mirror_tile_type4_PartBody"/>
+</volume>
+<volume name="mirror_tile_type5">
+<materialref ref="RICHglass"/>
+<solidref ref="mirror_tile_type5_PartBody"/>
+</volume>
+<assembly name="mirror_full_half_no_misalign">
+<physvol copynumber="1">
+<volumeref ref="mirror_tile_type0"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type0_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*9/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="2">
+<volumeref ref="mirror_tile_type0"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type0_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*7/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="3">
+<volumeref ref="mirror_tile_type0"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type0_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*5/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="4">
+<volumeref ref="mirror_tile_type0"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type0_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*3/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="mirror_tile_type4"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type4_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*1/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="mirror_tile_type5"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type5_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*1/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="5">
+<volumeref ref="mirror_tile_type0"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type0_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*3/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="6">
+<volumeref ref="mirror_tile_type0"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type0_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*5/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="7">
+<volumeref ref="mirror_tile_type0"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type0_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*7/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="8">
+<volumeref ref="mirror_tile_type0"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type0_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*9/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="mirror_tile_type1"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type1_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*9/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="2">
+<volumeref ref="mirror_tile_type1"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type1_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*7/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="3">
+<volumeref ref="mirror_tile_type1"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type1_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*5/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="4">
+<volumeref ref="mirror_tile_type1"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type1_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*3/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="5">
+<volumeref ref="mirror_tile_type1"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type1_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*1/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="6">
+<volumeref ref="mirror_tile_type1"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type1_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*1/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="7">
+<volumeref ref="mirror_tile_type1"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type1_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*3/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="8">
+<volumeref ref="mirror_tile_type1"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type1_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*5/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="9">
+<volumeref ref="mirror_tile_type1"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type1_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*7/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="10">
+<volumeref ref="mirror_tile_type1"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type1_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*9/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="mirror_tile_type2"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type2_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*9/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="2">
+<volumeref ref="mirror_tile_type2"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type2_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*7/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="3">
+<volumeref ref="mirror_tile_type2"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type2_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*5/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="4">
+<volumeref ref="mirror_tile_type2"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type2_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*3/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="5">
+<volumeref ref="mirror_tile_type2"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type2_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*1/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="6">
+<volumeref ref="mirror_tile_type2"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type2_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*1/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="7">
+<volumeref ref="mirror_tile_type2"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type2_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*3/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="8">
+<volumeref ref="mirror_tile_type2"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type2_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*5/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="9">
+<volumeref ref="mirror_tile_type2"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type2_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*7/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="10">
+<volumeref ref="mirror_tile_type2"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type2_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*9/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="mirror_tile_type3"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type3_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*9/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="2">
+<volumeref ref="mirror_tile_type3"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type3_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*7/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="3">
+<volumeref ref="mirror_tile_type3"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type3_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*5/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="4">
+<volumeref ref="mirror_tile_type3"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type3_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*3/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="5">
+<volumeref ref="mirror_tile_type3"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type3_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((-RICH_mirror_phi_step*1/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="6">
+<volumeref ref="mirror_tile_type3"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type3_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*1/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="7">
+<volumeref ref="mirror_tile_type3"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type3_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*3/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="8">
+<volumeref ref="mirror_tile_type3"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type3_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*5/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="9">
+<volumeref ref="mirror_tile_type3"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type3_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*7/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="10">
+<volumeref ref="mirror_tile_type3"/>
+<positionref ref="central"/>
+<rotation name="mirror_tile_type3_rot_mirror_full_half_no_misalign" x="-(0)" y="-(0)" z="-((RICH_mirror_phi_step*9/2) * 1)" unit="deg"/>
+</physvol>
+</assembly>
+<volume name="rich_entrance">
+<materialref ref="kapton"/>
+<solidref ref="rich_entrance_PartBody"/>
+</volume>
+<volume name="rich_exit">
+<materialref ref="kapton"/>
+<solidref ref="rich_exit_PartBody"/>
+</volume>
+<volume name="Shielding_box_top">
+<materialref ref="iron"/>
+<solidref ref="Shielding_box_top_PartBody"/>
+</volume>
+<volume name="Shielding_box_back">
+<materialref ref="iron"/>
+<solidref ref="Shielding_box_back_PartBody"/>
+</volume>
+<volume name="Shielding_box_bottom">
+<materialref ref="iron"/>
+<solidref ref="Shielding_box_bottom_PartBody"/>
+</volume>
+<volume name="Shielding_box_top_horiz_add">
+<materialref ref="iron"/>
+<solidref ref="Shielding_box_top_horiz_add_PartBody"/>
+</volume>
+<volume name="Shielding_box_back_horiz_add">
+<materialref ref="iron"/>
+<solidref ref="Shielding_box_back_horiz_add_PartBody"/>
+</volume>
+<volume name="Shielding_box_back_horiz_add_sym">
+<materialref ref="iron"/>
+<solidref ref="Shielding_box_back_horiz_add_sym_PartBody"/>
+</volume>
+<volume name="Shielding_box_bottom_horiz_add">
+<materialref ref="iron"/>
+<solidref ref="Shielding_box_bottom_horiz_add_PartBody"/>
+</volume>
+<volume name="Shielding_box_bottom_horiz_add_sym">
+<materialref ref="iron"/>
+<solidref ref="Shielding_box_bottom_horiz_add_sym_PartBody"/>
+</volume>
+<volume name="Shielding_box_side">
+<materialref ref="iron"/>
+<solidref ref="Shielding_box_side_PartBody"/>
+</volume>
+<volume name="Shielding_box_side_sym">
+<materialref ref="iron"/>
+<solidref ref="Shielding_box_side_sym_PartBody"/>
+</volume>
+<volume name="Shielding_box_nose_horiz_add">
+<materialref ref="iron"/>
+<solidref ref="Shielding_box_nose_horiz_add_PartBody"/>
+</volume>
+<volume name="Shielding_box_small_piece">
+<materialref ref="iron"/>
+<solidref ref="Shielding_box_small_piece_PartBody"/>
+</volume>
+<volume name="Shielding_box_nose">
+<materialref ref="iron"/>
+<solidref ref="Shielding_box_nose_PartBody"/>
+</volume>
+<assembly name="shielding_box_container">
+<physvol copynumber="1">
+<volumeref ref="Shielding_box_top"/>
+<position name="Shielding_box_top_pos_shielding_box_container" x="0" y="0" z="((Sh_box_vert_space+Sh_box_thickness_top)/2) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="Shielding_box_back"/>
+<positionref ref="central"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="Shielding_box_bottom"/>
+<position name="Shielding_box_bottom_pos_shielding_box_container" x="0" y="0" z="(-(Sh_box_vert_space+Sh_box_thickness_bottom)/2) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="Shielding_box_top_horiz_add"/>
+<position name="Shielding_box_top_horiz_add_pos_shielding_box_container" x="(((Sh_box_Rmax+Sh_box_Rmin-Sh_box_thickness_back)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" y="(((Sh_box_Rmax+Sh_box_Rmin-Sh_box_thickness_back)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) + ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" z="((Sh_box_vert_space+Sh_box_thickness_top)/2) * 1" unit="mm"/>
+<rotation name="Shielding_box_top_horiz_add_rot_shielding_box_container" x="-(0)" y="-(0)" z="-((Sh_box_horiz_spread_angle/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="2">
+<volumeref ref="Shielding_box_top_horiz_add"/>
+<position name="Shielding_box_top_horiz_add_pos_shielding_box_container" x="(((Sh_box_Rmax+Sh_box_Rmin-Sh_box_thickness_back)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" y="(-((Sh_box_Rmax+Sh_box_Rmin-Sh_box_thickness_back)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" z="((Sh_box_vert_space+Sh_box_thickness_top)/2) * 1" unit="mm"/>
+<rotation name="Shielding_box_top_horiz_add_rot_shielding_box_container" x="-(0)" y="-(0)" z="-((-Sh_box_horiz_spread_angle/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="Shielding_box_back_horiz_add"/>
+<position name="Shielding_box_back_horiz_add_pos_shielding_box_container" x="((Sh_box_Rmin-Sh_box_thickness_back/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" y="((Sh_box_Rmin-Sh_box_thickness_back/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) + ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" z="0" unit="mm"/>
+<rotation name="Shielding_box_back_horiz_add_rot_shielding_box_container" x="-(0)" y="-(0)" z="-((Sh_box_horiz_spread_angle/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="Shielding_box_back_horiz_add_sym"/>
+<position name="Shielding_box_back_horiz_add_sym_pos_shielding_box_container" x="((Sh_box_Rmin-Sh_box_thickness_back/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" y="(-(Sh_box_Rmin-Sh_box_thickness_back/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" z="0" unit="mm"/>
+<rotation name="Shielding_box_back_horiz_add_sym_rot_shielding_box_container" x="-(0)" y="-(0)" z="-((-Sh_box_horiz_spread_angle/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="Shielding_box_bottom_horiz_add"/>
+<position name="Shielding_box_bottom_horiz_add_pos_shielding_box_container" x="(((Sh_box_Rmax_bottom-Sh_box_thickness_nose+Sh_box_Rmin-Sh_box_thickness_back+Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD)/2)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" y="(((Sh_box_Rmax_bottom-Sh_box_thickness_nose+Sh_box_Rmin-Sh_box_thickness_back+Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD)/2)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) + ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" z="(-(Sh_box_vert_space+Sh_box_thickness_bottom)/2) * 1" unit="mm"/>
+<rotation name="Shielding_box_bottom_horiz_add_rot_shielding_box_container" x="-(0)" y="-(0)" z="-((Sh_box_horiz_spread_angle/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="Shielding_box_bottom_horiz_add_sym"/>
+<position name="Shielding_box_bottom_horiz_add_sym_pos_shielding_box_container" x="(((Sh_box_Rmax_bottom-Sh_box_thickness_nose+Sh_box_Rmin-Sh_box_thickness_back+Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD)/2)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" y="(-((Sh_box_Rmax_bottom-Sh_box_thickness_nose+Sh_box_Rmin-Sh_box_thickness_back+Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD)/2)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" z="(-(Sh_box_vert_space+Sh_box_thickness_bottom)/2) * 1" unit="mm"/>
+<rotation name="Shielding_box_bottom_horiz_add_sym_rot_shielding_box_container" x="-(0)" y="-(0)" z="-((-Sh_box_horiz_spread_angle/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="Shielding_box_side"/>
+<position name="Shielding_box_side_pos_shielding_box_container" x="(((Sh_box_Rmax+Sh_box_Rmin)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - (Sh_box_horiz_add+Sh_box_thickness_sides/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" y="(((Sh_box_Rmax+Sh_box_Rmin)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) + (Sh_box_horiz_add+Sh_box_thickness_sides/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" z="0" unit="mm"/>
+<rotation name="Shielding_box_side_rot_shielding_box_container" x="-(0)" y="-(0)" z="-((Sh_box_horiz_spread_angle/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="Shielding_box_side_sym"/>
+<position name="Shielding_box_side_sym_pos_shielding_box_container" x="(((Sh_box_Rmax+Sh_box_Rmin)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - (Sh_box_horiz_add+Sh_box_thickness_sides/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" y="(-((Sh_box_Rmax+Sh_box_Rmin)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - (Sh_box_horiz_add+Sh_box_thickness_sides/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" z="0" unit="mm"/>
+<rotation name="Shielding_box_side_sym_rot_shielding_box_container" x="-(0)" y="-(0)" z="-((-Sh_box_horiz_spread_angle/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="Shielding_box_nose_horiz_add"/>
+<position name="Shielding_box_nose_horiz_add_pos_shielding_box_container" x="((Sh_box_Rmax_bottom+Sh_box_nose_vert_size*tan((Sh_box_nose_angle)*DEGtoRAD)/2-Sh_box_thickness_nose/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" y="((Sh_box_Rmax_bottom+Sh_box_nose_vert_size*tan((Sh_box_nose_angle)*DEGtoRAD)/2-Sh_box_thickness_nose/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) + ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" z="((-Sh_box_vert_space-Sh_box_nose_vert_size)/2) * 1" unit="mm"/>
+<rotation name="Shielding_box_nose_horiz_add_rot_shielding_box_container" x="-(0)" y="-(0)" z="-((Sh_box_horiz_spread_angle/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="2">
+<volumeref ref="Shielding_box_nose_horiz_add"/>
+<position name="Shielding_box_nose_horiz_add_pos_shielding_box_container" x="((Sh_box_Rmax_bottom+Sh_box_nose_vert_size*tan((Sh_box_nose_angle)*DEGtoRAD)/2-Sh_box_thickness_nose/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" y="(-(Sh_box_Rmax_bottom+Sh_box_nose_vert_size*tan((Sh_box_nose_angle)*DEGtoRAD)/2-Sh_box_thickness_nose/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - ((Sh_box_horiz_add+Sh_box_thickness_sides)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" z="((-Sh_box_vert_space-Sh_box_nose_vert_size)/2) * 1" unit="mm"/>
+<rotation name="Shielding_box_nose_horiz_add_rot_shielding_box_container" x="-(0)" y="-(0)" z="-((-Sh_box_horiz_spread_angle/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="Shielding_box_small_piece"/>
+<position name="Shielding_box_small_piece_pos_shielding_box_container" x="(((Sh_box_Rmax+Sh_box_Rmax_bottom+Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD)/2)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - (Sh_box_horiz_add+Sh_box_thickness_sides/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" y="(((Sh_box_Rmax+Sh_box_Rmax_bottom+Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD)/2)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) + (Sh_box_horiz_add+Sh_box_thickness_sides/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" z="(-(Sh_box_vert_space+Sh_box_thickness_bottom)/2) * 1" unit="mm"/>
+<rotation name="Shielding_box_small_piece_rot_shielding_box_container" x="-(0)" y="-(0)" z="-((Sh_box_horiz_spread_angle/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="2">
+<volumeref ref="Shielding_box_small_piece"/>
+<position name="Shielding_box_small_piece_pos_shielding_box_container" x="(((Sh_box_Rmax+Sh_box_Rmax_bottom+Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD)/2)/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - (Sh_box_horiz_add+Sh_box_thickness_sides/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" y="(-((Sh_box_Rmax+Sh_box_Rmax_bottom+Sh_box_thickness_bottom*tan((Sh_box_nose_angle)*DEGtoRAD)/2)/2) * sin(((Sh_box_horiz_spread_angle/2))*DEGtoRAD) - (Sh_box_horiz_add+Sh_box_thickness_sides/2) * cos(((Sh_box_horiz_spread_angle/2))*DEGtoRAD)) * 1" z="(-(Sh_box_vert_space+Sh_box_thickness_bottom)/2) * 1" unit="mm"/>
+<rotation name="Shielding_box_small_piece_rot_shielding_box_container" x="-(0)" y="-(0)" z="-((-Sh_box_horiz_spread_angle/2) * 1)" unit="deg"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="Shielding_box_nose"/>
+<position name="Shielding_box_nose_pos_shielding_box_container" x="0" y="0" z="((-Sh_box_vert_space-Sh_box_nose_vert_size)/2) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+</assembly>
+<volume name="sens_plane">
+<materialref ref="RICHgas_CO2_dis+"/>
+<solidref ref="sens_plane_PartBody"/>
+</volume>
+<!--
+<volume name="Mirror">
+<materialref ref="RICHglass"/>
+<solidref ref="Mirror_PartBody"/>
+</volume>
+<volume name="Camera">
+<materialref ref="CsI"/>
+<solidref ref="Camera_PartBody"/>
+</volume>
+<volume name="Solid_behind_camera">
+<materialref ref="aluminium"/>
+<solidref ref="Solid_behind_camera_PartBody"/>
+</volume>
+-->
+<volume name="mainframe_part2_gas">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="mainframe_part2_gas_PartBody"/>
+</volume>
+<volume name="mainframe_part3_gas">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="mainframe_part3_gas_PartBody"/>
+</volume>
+<volume name="mainframe_part5_gas">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="mainframe_part5_gas_PartBody"/>
+</volume>
+<volume name="mainframe_part8_gas">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="mainframe_part8_gas_PartBody"/>
+</volume>
+<volume name="mainframe_part9_gas">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="mainframe_part9_gas_PartBody"/>
+</volume>
+<volume name="mainframe_part10_gas">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="mainframe_part10_gas_PartBody"/>
+</volume>
+<volume name="mainframe_part2">
+<materialref ref="aluminium"/>
+<solidref ref="mainframe_part2_PartBody"/>
+<physvol copynumber="1">
+<volumeref ref="mainframe_part2_gas"/>
+<positionref ref="central"/>
+<rotationref ref="identity"/>
+</physvol>
+</volume>
+<volume name="mainframe_part3">
+<materialref ref="aluminium"/>
+<solidref ref="mainframe_part3_PartBody"/>
+<physvol copynumber="1">
+<volumeref ref="mainframe_part3_gas"/>
+<positionref ref="central"/>
+<rotationref ref="identity"/>
+</physvol>
+</volume>
+<volume name="mainframe_part5">
+<materialref ref="aluminium"/>
+<solidref ref="mainframe_part5_PartBody"/>
+<physvol copynumber="1">
+<volumeref ref="mainframe_part5_gas"/>
+<positionref ref="central"/>
+<rotationref ref="identity"/>
+</physvol>
+</volume>
+<volume name="mainframe_part8">
+<materialref ref="aluminium"/>
+<solidref ref="mainframe_part8_PartBody"/>
+<physvol copynumber="1">
+<volumeref ref="mainframe_part8_gas"/>
+<positionref ref="central"/>
+<rotationref ref="identity"/>
+</physvol>
+</volume>
+<volume name="mainframe_part9">
+<materialref ref="aluminium"/>
+<solidref ref="mainframe_part9_PartBody"/>
+<physvol copynumber="1">
+<volumeref ref="mainframe_part9_gas"/>
+<positionref ref="central"/>
+<rotationref ref="identity"/>
+</physvol>
+</volume>
+<volume name="mainframe_part10">
+<materialref ref="aluminium"/>
+<solidref ref="mainframe_part10_PartBody"/>
+<physvol copynumber="1">
+<volumeref ref="mainframe_part10_gas"/>
+<positionref ref="central"/>
+<rotationref ref="identity"/>
+</physvol>
+</volume>
+<assembly name="mainframe_assembly">
+<physvol copynumber="1">
+<volumeref ref="mainframe_part8"/>
+<position name="mainframe_part8_pos_mainframe_assembly" x="-2579" y="0" z="511.95561" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="2">
+<volumeref ref="mainframe_part8"/>
+<position name="mainframe_part8_pos_mainframe_assembly" x="2579" y="0" z="511.95561" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="3">
+<volumeref ref="mainframe_part8"/>
+<position name="mainframe_part8_pos_mainframe_assembly" x="-2579" y="0" z="-511.95561" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="4">
+<volumeref ref="mainframe_part8"/>
+<position name="mainframe_part8_pos_mainframe_assembly" x="2579" y="0" z="-511.95561" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="mainframe_part9"/>
+<position name="mainframe_part9_pos_mainframe_assembly" x="0" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="511.95561" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="2">
+<volumeref ref="mainframe_part9"/>
+<position name="mainframe_part9_pos_mainframe_assembly" x="0" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="-511.95561" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="3">
+<volumeref ref="mainframe_part9"/>
+<position name="mainframe_part9_pos_mainframe_assembly" x="0" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="511.95561" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="4">
+<volumeref ref="mainframe_part9"/>
+<position name="mainframe_part9_pos_mainframe_assembly" x="0" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="-511.95561" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="mainframe_part10"/>
+<position name="mainframe_part10_pos_mainframe_assembly" x="-2579" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="2">
+<volumeref ref="mainframe_part10"/>
+<position name="mainframe_part10_pos_mainframe_assembly" x="-2579" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="3">
+<volumeref ref="mainframe_part10"/>
+<position name="mainframe_part10_pos_mainframe_assembly" x="2579" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="4">
+<volumeref ref="mainframe_part10"/>
+<position name="mainframe_part10_pos_mainframe_assembly" x="2579" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="mainframe_part5"/>
+<position name="mainframe_part5_pos_mainframe_assembly" x="1964.811997" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="-917.898222" unit="mm"/>
+<rotation name="mainframe_part5_rot_mainframe_assembly" x="-(0)" y="-(-31.991651000046)" z="-(0)" unit="deg"/>
+</physvol>
+<physvol copynumber="2">
+<volumeref ref="mainframe_part5"/>
+<position name="mainframe_part5_pos_mainframe_assembly" x="1964.811997" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="-917.898222" unit="mm"/>
+<rotation name="mainframe_part5_rot_mainframe_assembly" x="-(0)" y="-(-31.991651000046)" z="-(0)" unit="deg"/>
+</physvol>
+<physvol copynumber="3">
+<volumeref ref="mainframe_part5"/>
+<position name="mainframe_part5_pos_mainframe_assembly" x="-1964.811997" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="-917.898222" unit="mm"/>
+<rotation name="mainframe_part5_rot_mainframe_assembly" x="-(0)" y="-(31.991651000092)" z="-(180.0)" unit="deg"/>
+</physvol>
+<physvol copynumber="4">
+<volumeref ref="mainframe_part5"/>
+<position name="mainframe_part5_pos_mainframe_assembly" x="-1964.811997" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="-917.898222" unit="mm"/>
+<rotation name="mainframe_part5_rot_mainframe_assembly" x="-(0)" y="-(31.991651000092)" z="-(180.0)" unit="deg"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="mainframe_part3"/>
+<position name="mainframe_part3_pos_mainframe_assembly" x="-1345" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="-994.875" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="2">
+<volumeref ref="mainframe_part3"/>
+<position name="mainframe_part3_pos_mainframe_assembly" x="-1345" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="-994.875" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="3">
+<volumeref ref="mainframe_part3"/>
+<position name="mainframe_part3_pos_mainframe_assembly" x="1345" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="-994.875" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="4">
+<volumeref ref="mainframe_part3"/>
+<position name="mainframe_part3_pos_mainframe_assembly" x="1345" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="-994.875" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="5">
+<volumeref ref="mainframe_part8"/>
+<position name="mainframe_part8_pos_mainframe_assembly" x="2151.316481" y="0" z="-801.395071" unit="mm"/>
+<rotation name="mainframe_part8_rot_mainframe_assembly" x="-(0)" y="-(-31.991651000046)" z="-(0)" unit="deg"/>
+</physvol>
+<physvol copynumber="6">
+<volumeref ref="mainframe_part8"/>
+<position name="mainframe_part8_pos_mainframe_assembly" x="1781.11648" y="0" z="-1032.646704" unit="mm"/>
+<rotation name="mainframe_part8_rot_mainframe_assembly" x="-(0)" y="-(-31.991651000046)" z="-(0)" unit="deg"/>
+</physvol>
+<physvol copynumber="7">
+<volumeref ref="mainframe_part8"/>
+<position name="mainframe_part8_pos_mainframe_assembly" x="1463.896048" y="0" z="-1230.803763" unit="mm"/>
+<rotation name="mainframe_part8_rot_mainframe_assembly" x="-(0)" y="-(-31.991651000046)" z="-(0)" unit="deg"/>
+</physvol>
+<physvol copynumber="8">
+<volumeref ref="mainframe_part8"/>
+<position name="mainframe_part8_pos_mainframe_assembly" x="-2151.316481" y="0" z="-801.395071" unit="mm"/>
+<rotation name="mainframe_part8_rot_mainframe_assembly" x="-(0)" y="-(31.991651000046)" z="-(0)" unit="deg"/>
+</physvol>
+<physvol copynumber="9">
+<volumeref ref="mainframe_part8"/>
+<position name="mainframe_part8_pos_mainframe_assembly" x="-1781.11648" y="0" z="-1032.646704" unit="mm"/>
+<rotation name="mainframe_part8_rot_mainframe_assembly" x="-(0)" y="-(31.991651000046)" z="-(0)" unit="deg"/>
+</physvol>
+<physvol copynumber="10">
+<volumeref ref="mainframe_part8"/>
+<position name="mainframe_part8_pos_mainframe_assembly" x="-1463.896048" y="0" z="-1230.803763" unit="mm"/>
+<rotation name="mainframe_part8_rot_mainframe_assembly" x="-(0)" y="-(31.991651000046)" z="-(0)" unit="deg"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="mainframe_part2"/>
+<position name="mainframe_part2_pos_mainframe_assembly" x="0" y="1000" z="-1282.79439" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="2">
+<volumeref ref="mainframe_part2"/>
+<position name="mainframe_part2_pos_mainframe_assembly" x="0" y="-1000" z="-1282.79439" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="5">
+<volumeref ref="mainframe_part10"/>
+<position name="mainframe_part10_pos_mainframe_assembly" x="-1345" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="6">
+<volumeref ref="mainframe_part10"/>
+<position name="mainframe_part10_pos_mainframe_assembly" x="-1345" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="7">
+<volumeref ref="mainframe_part10"/>
+<position name="mainframe_part10_pos_mainframe_assembly" x="1345" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="8">
+<volumeref ref="mainframe_part10"/>
+<position name="mainframe_part10_pos_mainframe_assembly" x="1345" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="9">
+<volumeref ref="mainframe_part10"/>
+<position name="mainframe_part10_pos_mainframe_assembly" x="0" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="10">
+<volumeref ref="mainframe_part10"/>
+<position name="mainframe_part10_pos_mainframe_assembly" x="0" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="11">
+<volumeref ref="mainframe_part10"/>
+<position name="mainframe_part10_pos_mainframe_assembly" x="2579" y="878" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="12">
+<volumeref ref="mainframe_part10"/>
+<position name="mainframe_part10_pos_mainframe_assembly" x="2579" y="-878" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="13">
+<volumeref ref="mainframe_part10"/>
+<position name="mainframe_part10_pos_mainframe_assembly" x="-2579" y="878" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="14">
+<volumeref ref="mainframe_part10"/>
+<position name="mainframe_part10_pos_mainframe_assembly" x="-2579" y="-878" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="15">
+<volumeref ref="mainframe_part10"/>
+<position name="mainframe_part10_pos_mainframe_assembly" x="-1926" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="16">
+<volumeref ref="mainframe_part10"/>
+<position name="mainframe_part10_pos_mainframe_assembly" x="-1926" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="17">
+<volumeref ref="mainframe_part10"/>
+<position name="mainframe_part10_pos_mainframe_assembly" x="1926" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="18">
+<volumeref ref="mainframe_part10"/>
+<position name="mainframe_part10_pos_mainframe_assembly" x="1926" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="0" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="3">
+<volumeref ref="mainframe_part2"/>
+<position name="mainframe_part2_pos_mainframe_assembly" x="0" y="(RICH_height/2-RICH_covering_thickness-50) * 1" z="-1477.79439" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="4">
+<volumeref ref="mainframe_part2"/>
+<position name="mainframe_part2_pos_mainframe_assembly" x="0" y="(-RICH_height/2+RICH_covering_thickness+50) * 1" z="-1477.79439" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+</assembly>
+<volume name="rich_gas">
+<materialref ref="RICHgas_CO2_dis"/>
+<solidref ref="rich_gas_PartBody"/>
+<!--
+<physvol copynumber="1">
+<volumeref ref="shielding_box_container"/>
+<position name="shielding_box_container_pos_rich_gas" x="0" y="(Camera_origin_Y_coord) * 1" z="(-1800-1900/2+Camera_origin_Z_coord) * 1" unit="mm"/>
+<rotation name="shielding_box_container_rot_rich_gas" x="-((-90+Camera_full_Xrot) * 1)" y="-(0)" z="-(-90.0)" unit="deg"/>
+</physvol>
+<physvol copynumber="2">
+<volumeref ref="shielding_box_container"/>
+<position name="shielding_box_container_pos_rich_gas" x="0" y="(-Camera_origin_Y_coord) * 1" z="(-1800-1900/2+Camera_origin_Z_coord) * 1" unit="mm"/>
+<rotation name="shielding_box_container_rot_rich_gas" x="-((90-Camera_full_Xrot) * 1)" y="-(0)" z="-(90.0)" unit="deg"/>
+</physvol>
+-->
+<physvol copynumber="1">
+<volumeref ref="camera_container"/>
+<position name="camera_container_pos_rich_gas" x="0" y="(Camera_origin_Y_coord + RICH_camera_shift_Y) * 1" z="(-1800-RICH_length/2+Camera_origin_Z_coord+RICH_camera_shift_Z) * 1" unit="mm"/>
+<rotation name="camera_container_rot_rich_gas" x="-((Camera_full_Xrot) * 1)" y="-(0)" z="-(0)" unit="deg"/>
+</physvol>
+<physvol copynumber="2">
+<volumeref ref="camera_container"/>
+<position name="camera_container_pos_rich_gas" x="0" y="(-Camera_origin_Y_coord-RICH_camera_shift_Y) * 1" z="(-1800-RICH_length/2+Camera_origin_Z_coord+RICH_camera_shift_Z) * 1" unit="mm"/>
+<rotation name="camera_container_rot_rich_gas" x="-((-Camera_full_Xrot) * 1)" y="-(0)" z="-(0)" unit="deg"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="mirror_full_half_no_misalign"/>
+<position name="mirror_full_half_no_misalign_pos_rich_gas" x="0" y="(Mirror_origin_Y_coord) * 1" z="(-1800-RICH_length/2+Mirror_origin_Z_coord) * 1" unit="mm"/>
+<rotation name="mirror_full_half_no_misalign_rot_rich_gas" x="-(-90.0)" y="-(0)" z="-(-90.0)" unit="deg"/>
+</physvol>
+<physvol copynumber="2">
+<volumeref ref="mirror_full_half_no_misalign"/>
+<position name="mirror_full_half_no_misalign_pos_rich_gas" x="0" y="(-Mirror_origin_Y_coord) * 1" z="(-1800-RICH_length/2+Mirror_origin_Z_coord) * 1" unit="mm"/>
+<rotation name="mirror_full_half_no_misalign_rot_rich_gas" x="-(90.0)" y="-(0)" z="-(90.0)" unit="deg"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="sens_plane"/>
+<position name="sens_plane_pos_rich_gas" x="0" y="0" z="-300" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="mainframe_assembly"/>
+<position name="mainframe_assembly_pos_rich_gas" x="0" y="0" z="385.41939" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<!--
+<physvol copynumber="1">
+<volumeref ref="Mirror"/>
+<position name="Mirror_pos_rich_gas" x="0" y="Mirror_origin_Y_coord * 1" z="(-1800-RICH_length/2+Mirror_origin_Z_coord) * 1" unit="mm"/>
+<rotation name="Mirror_rot_rich_gas" x="-(-90.0)" y="-(0)" z="-(-90.0)" unit="deg"/>
+</physvol>
+<physvol copynumber="2">
+<volumeref ref="Mirror"/>
+<position name="Mirror_pos_rich_gas" x="0" y="(-Mirror_origin_Y_coord) * 1" z="(-1800-1900/2+Mirror_origin_Z_coord) * 1" unit="mm"/>
+<rotation name="Mirror_rot_rich_gas" x="-(90.0)" y="-(0)" z="-(90.0)" unit="deg"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="Camera"/>
+<position name="Camera_pos_rich_gas" x="0" y="(Camera_origin_Y_coord + RICH_camera_shift_Y) * 1" z="(-1800-RICH_length/2+Camera_origin_Z_coord + RICH_camera_shift_Z) * 1" unit="mm"/>
+<rotation name="Camera_rot_rich_gas" x="-((-90+Camera_full_Xrot) * 1)" y="-(0)" z="-(-90.0)" unit="deg"/>
+</physvol>
+<physvol copynumber="2">
+<volumeref ref="Camera"/>
+<position name="Camera_pos_rich_gas" x="0" y="(-Camera_origin_Y_coord-RICH_camera_shift_Y) * 1" z="(-1800-RICH_length/2+Camera_origin_Z_coord+RICH_camera_shift_Z) * 1" unit="mm"/>
+<rotation name="Camera_rot_rich_gas" x="-((90-Camera_full_Xrot) * 1)" y="-(0)" z="-(90.0)" unit="deg"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="Solid_behind_camera"/>
+<position name="Solid_behind_camera_pos_rich_gas" x="0" y="(Camera_origin_Y_coord+RICH_camera_shift_Y) * 1" z="(-1800-RICH_length/2+Camera_origin_Z_coord+RICH_camera_shift_Z) * 1" unit="mm"/>
+<rotation name="Solid_behind_camera_rot_rich_gas" x="-((-90+Camera_full_Xrot) * 1)" y="-(0)" z="-(-90.0)" unit="deg"/>
+</physvol>
+<physvol copynumber="2">
+<volumeref ref="Solid_behind_camera"/>
+<position name="Solid_behind_camera_pos_rich_gas" x="0" y="(-Camera_origin_Y_coord-RICH_camera_shift_Y) * 1" z="(-1800-RICH_length/2+Camera_origin_Z_coord+RICH_camera_shift_Z) * 1" unit="mm"/>
+<rotation name="Solid_behind_camera_rot_rich_gas" x="-((90-Camera_full_Xrot) * 1)" y="-(0)" z="-(90.0)" unit="deg"/>
+</physvol>
+-->
+</volume>
+<volume name="rich_container">
+<materialref ref="aluminium"/>
+<solidref ref="rich_container_PartBody"/>
+<physvol copynumber="1">
+<volumeref ref="rich_gas"/>
+<position name="rich_gas_pos_rich_container" x="0" y="0" z="((RICH_entrance_thickness-RICH_exit_thickness)/2) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="rich_entrance"/>
+<position name="rich_entrance_pos_rich_container" x="0" y="0" z="(-RICH_length/2+RICH_entrance_thickness/2) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="rich_exit"/>
+<position name="rich_exit_pos_rich_container" x="0" y="0" z="(RICH_length/2-RICH_exit_thickness/2) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="rich_pipe_section"/>
+<positionref ref="central"/>
+<rotationref ref="identity"/>
+</physvol>
+</volume>
+<assembly name="rich_opt">
+<physvol copynumber="1">
+<volumeref ref="rich_container"/>
+<position name="rich_container_pos_rich_opt" x="0" y="0" z="(1800 + RICH_length/2) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="rich_cyl_pipe_section"/>
+<position name="rich_cyl_pipe_section_pos_rich_opt" x="0" y="0" z="(1800 - RICH_pipe_cyl_part_length/2) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+<physvol copynumber="1">
+<volumeref ref="rich_pipe_flange"/>
+<position name="rich_pipe_flange_pos_rich_opt" x="0" y="0" z="(1800 - RICH_pipe_cyl_part_length + RICH_pipe_flange_thickness/2) * 1" unit="mm"/>
+<rotationref ref="identity"/>
+</physvol>
+</assembly>
+</structure>
+<setup name="FAIRgeom" version="1.0">
+<world ref="rich_opt"/>
+</setup>
+</gdml>
diff --git a/macro/sts/geometry/gdml/Import_GDML_Export_ROOT.c b/macro/sts/geometry/gdml/Import_GDML_Export_ROOT.c
index 0addf3c703..92c2f1a0ee 100644
--- a/macro/sts/geometry/gdml/Import_GDML_Export_ROOT.c
+++ b/macro/sts/geometry/gdml/Import_GDML_Export_ROOT.c
@@ -1,24 +1,24 @@
-void Import_GDML_Export_ROOT() {
-  TGeoManager* gdml = new TGeoManager("gdml", "My 3D Project");
-
-  TGDMLParse parser;
-  // Define your input GDML file HERE
-  TGeoVolume* gdmlTop = parser.GDMLReadFile("cframe.gdml");
-
-  TGeoVolume* rootTop = new TGeoVolumeAssembly("geometryFromGDML");
-  gGeoManager->SetTopVolume(rootTop);
-
-  // Define your position HERE
-  TGeoRotation* rot = new TGeoRotation("rot", 0., 0., 0.);
-  //	TGeoCombiTrans* posrot = new TGeoCombiTrans (-60., 0., 45., rot);
-  TGeoCombiTrans* posrot = new TGeoCombiTrans(-60., 0., 20., rot);
-
-  rootTop->AddNode(gdmlTop, 1, posrot);
-
-  gGeoManager->CloseGeometry();
-  // Define you output ROOT file HERE
-  TFile* outfile = new TFile("cframe.geo.root", "RECREATE");
-
-  rootTop->Write();
-  outfile->Close();
-}
+void Import_GDML_Export_ROOT() {
+  TGeoManager* gdml = new TGeoManager("gdml", "My 3D Project");
+
+  TGDMLParse parser;
+  // Define your input GDML file HERE
+  TGeoVolume* gdmlTop = parser.GDMLReadFile("cframe.gdml");
+
+  TGeoVolume* rootTop = new TGeoVolumeAssembly("geometryFromGDML");
+  gGeoManager->SetTopVolume(rootTop);
+
+  // Define your position HERE
+  TGeoRotation* rot = new TGeoRotation("rot", 0., 0., 0.);
+  //	TGeoCombiTrans* posrot = new TGeoCombiTrans (-60., 0., 45., rot);
+  TGeoCombiTrans* posrot = new TGeoCombiTrans(-60., 0., 20., rot);
+
+  rootTop->AddNode(gdmlTop, 1, posrot);
+
+  gGeoManager->CloseGeometry();
+  // Define you output ROOT file HERE
+  TFile* outfile = new TFile("cframe.geo.root", "RECREATE");
+
+  rootTop->Write();
+  outfile->Close();
+}
diff --git a/macro/sts/matbudget_ana.C b/macro/sts/matbudget_ana.C
index e702f40e6b..790b50b514 100644
--- a/macro/sts/matbudget_ana.C
+++ b/macro/sts/matbudget_ana.C
@@ -1,210 +1,210 @@
-#if !defined(__CINT__) || defined(__MAKECINT__)
-#include "TCanvas.h"
-#include "TClonesArray.h"
-#include "TFile.h"
-#include "TH1.h"
-#include "TProfile2D.h"
-#include "TROOT.h"
-#include "TString.h"
-#include "TStyle.h"
-#include "TSystem.h"
-#include "TTree.h"
-#include "TVector3.h"
-
-#include "FairRadLenPoint.h"
-
-#include <iostream>
-#include <vector>
-using std::cout;
-using std::endl;
-using std::vector;
-#endif
-
-// need to set this root include path:
-// include path: -I/opt/cbm/fairsoft_jul15p1/installation/include/root -I/opt/cbm/fairroot_v-15.07-fairsoft_jul15p1/include -I/opt/cbm/fairsoft_jul15p1/installation/include
-//.include $SIMPATH/include
-//.include $FAIRROOTPATH/include
-
-//Int_t matbudget_ana(Int_t nEvents = 10      , const char* stsGeo = "v16v")
-//Int_t matbudget_ana(Int_t nEvents = 1000000 , const char* stsGeo = "v16v")
-Int_t matbudget_ana(Int_t nEvents = 10000000, const char* stsGeo = "v16v") {
-
-  // Input file (MC)
-  TString stsVersion(stsGeo);
-  TString inFile = "data/matbudget." + stsVersion + ".mc.root";
-  TFile* input   = new TFile(inFile);
-  if (!input) {
-    cout
-      << "*** matbudget_ana: Input file " << inFile << " not found!\n"
-      << "Be sure to run matbudget_mc.C before for the respective STS geometry!"
-      << endl;
-    exit(1);
-  }
-
-  // Output file (material maps)
-  TString outFile = "sts_matbudget_" + stsVersion + ".root";
-
-  // Input tree and branch
-  TTree* tree          = (TTree*) input->Get("cbmsim");
-  TClonesArray* points = new TClonesArray("FairRadLenPoint");
-  tree->SetBranchAddress("RadLen", &points);
-
-  // Create output histograms
-  TH1D* hisRadLen     = new TH1D("hisRadLen", "Radiation Length", 1000, 0, 100);
-  const int nStations = 8;     // number of STS stations
-  const int nBins     = 1000;  // number of bins in histograms (in both x and y)
-  const int rMax      = 55;  // maximal radius for histograms (for both x and y)
-  const double zRange = 1.4;
-  TProfile2D* hStationRadLen[nStations];
-  TProfile2D* hStsRadLen;
-  double StsRadThick = 0;
-
-  TString stsname = "Material Budget x/X_{0} [%], STS";
-  hStsRadLen =
-    new TProfile2D(stsname, stsname, nBins, -rMax, rMax, nBins, -rMax, rMax);
-
-  for (int i = 0; i < nStations; ++i) {
-    TString hisname = "Radiation Thickness [%],";
-    hisname += " Station";
-    hisname += i + 1;
-    TString name = "Material Budget x/X_{0} [%],";
-    name += " Station ";
-    name += i + 1;
-    hStationRadLen[i] =
-      new TProfile2D(hisname, name, nBins, -rMax, rMax, nBins, -rMax, rMax);
-  }
-
-  // Auxiliary variables
-  TVector3 vecs, veco;
-  std::map<int, int> trackHitMap;
-
-
-  // Event loop
-  int firstEvent = 0;
-  for (Int_t event = firstEvent;
-       event < (firstEvent + nEvents) && event < tree->GetEntriesFast();
-       event++) {
-    tree->GetEntry(event);
-    if (0 == event % 10000) cout << "*** Processing event " << event << endl;
-
-    const int nTracks = 1;
-    std::vector<double> RadLengthOnTrack(
-      nTracks, 0.0);  //trackID, vector with points on track
-    std::vector<double> TrackLength(
-      nTracks, 0.0);  //trackID, vector with points on track
-
-    vector<double> RadThick(nStations, 0);
-    Double_t x = 0;
-    Double_t y = 0;
-
-    // For this implementation to be correct, there should be only one MCTrack per event.
-
-    // Point loop
-    for (Int_t iPoint = 0; iPoint < points->GetEntriesFast(); iPoint++) {
-      FairRadLenPoint* point = (FairRadLenPoint*) points->At(iPoint);
-
-      // Get track position at entry and exit of material
-      TVector3 posIn, posOut, posDif;
-      posIn  = point->GetPosition();
-      posOut = point->GetPositionOut();
-      posDif = posOut - posIn;
-
-      // Midpoint between in and out
-      const TVector3 middle = (posOut + posIn);
-      x                     = middle.X() / 2;
-      y                     = middle.Y() / 2;
-      const double z        = middle.Z() / 2;
-
-      // Material budget per unit length
-      const double radThick = posDif.Mag() / point->GetRadLength();
-      RadLengthOnTrack[point->GetTrackID()] += radThick;
-      TrackLength[point->GetTrackID()] += posDif.Mag();
-
-      // Determine station number
-      int iStation =
-        posIn.Z() / 10 - 3 + 0.5;  // suppose equidistant stations at 30-100 cm
-      int iStationOut = posOut.Z() / 10 - 3 + 0.5;
-      if (iStationOut != iStation) continue;
-      if (iStation >= nStations || iStation < 0) continue;
-      RadThick[iStation] += radThick;
-    }
-
-    StsRadThick = 0;
-    // Fill material budget map for each station
-    for (int i = 0; i < nStations; ++i) {
-      hStationRadLen[i]->Fill(x, y, RadThick[i] * 100);
-      StsRadThick += RadThick[i];
-    }
-
-    hStsRadLen->Fill(x, y, StsRadThick * 100);
-
-    for (int k = 0; k < RadLengthOnTrack.size(); k++)
-      if (RadLengthOnTrack[k] > 0) hisRadLen->Fill(RadLengthOnTrack[k]);
-
-  }  // event loop
-
-
-  // Plotting the results
-  //single  TCanvas* can1 = new TCanvas("c","c",800,800);
-  TCanvas* can1 = new TCanvas("c", "c", 1600, 800);
-  can1->Divide(nStations / 2, 2);
-  gStyle->SetPalette(1);
-  gStyle->SetOptStat(0);
-
-  // Open output file
-  TFile* output = new TFile(outFile, "RECREATE");
-  output->cd();
-
-  for (int iStation = 0; iStation < nStations; iStation++) {
-    can1->cd(iStation + 1);
-    //single    int iStation = 7;
-    hStationRadLen[iStation]->GetXaxis()->SetTitle("x [cm]");
-    hStationRadLen[iStation]->GetYaxis()->SetTitle("y [cm]");
-    //hStationRadLen[iStation]->GetZaxis()->SetTitle("x/X_{0} [%]");
-    //hStationRadLen[i]->GetZaxis()->SetTitle("radiation thickness [%]");
-    hStationRadLen[iStation]->SetAxisRange(0, zRange, "Z");
-    hStationRadLen[iStation]->Draw("colz");
-    hStationRadLen[iStation]->Write();
-  }
-
-  // Plot file
-  TString plotFile = "sts_" + stsVersion + "_matbudget.png";
-  can1->SaveAs(plotFile);
-
-  //================================================================
-
-  // Plotting the results
-  TCanvas* can2 = new TCanvas("c", "c", 800, 800);
-  gStyle->SetPalette(1);
-  gStyle->SetOptStat(0);
-
-  can2->cd();
-  hStsRadLen->GetXaxis()->SetTitle("x [cm]");
-  hStsRadLen->GetYaxis()->SetTitle("y [cm]");
-  hStsRadLen->SetAxisRange(0, 10, "Z");
-  hStsRadLen->Draw("colz");
-
-  // Plot file
-  plotFile = "sts_" + stsVersion + "_total_matbudget.png";
-  can2->SaveAs(plotFile);
-
-  //================================================================
-
-  TString thisStation(0);
-  can2->Clear();
-  for (int iStation = 0; iStation < nStations; iStation++) {
-    hStationRadLen[iStation]->Draw("colz");
-    // Plot file
-    thisStation.Form("%d", iStation + 1);
-    plotFile =
-      "sts_" + stsVersion + "_station_" + thisStation + "_matbudget.png";
-    can2->SaveAs(plotFile);
-  }
-
-  // Close files
-  input->Close();
-  output->Close();
-  cout << "Material budget maps written to " << outFile << endl;
-
-  return 0;
-}
+#if !defined(__CINT__) || defined(__MAKECINT__)
+#include "TCanvas.h"
+#include "TClonesArray.h"
+#include "TFile.h"
+#include "TH1.h"
+#include "TProfile2D.h"
+#include "TROOT.h"
+#include "TString.h"
+#include "TStyle.h"
+#include "TSystem.h"
+#include "TTree.h"
+#include "TVector3.h"
+
+#include "FairRadLenPoint.h"
+
+#include <iostream>
+#include <vector>
+using std::cout;
+using std::endl;
+using std::vector;
+#endif
+
+// need to set this root include path:
+// include path: -I/opt/cbm/fairsoft_jul15p1/installation/include/root -I/opt/cbm/fairroot_v-15.07-fairsoft_jul15p1/include -I/opt/cbm/fairsoft_jul15p1/installation/include
+//.include $SIMPATH/include
+//.include $FAIRROOTPATH/include
+
+//Int_t matbudget_ana(Int_t nEvents = 10      , const char* stsGeo = "v16v")
+//Int_t matbudget_ana(Int_t nEvents = 1000000 , const char* stsGeo = "v16v")
+Int_t matbudget_ana(Int_t nEvents = 10000000, const char* stsGeo = "v16v") {
+
+  // Input file (MC)
+  TString stsVersion(stsGeo);
+  TString inFile = "data/matbudget." + stsVersion + ".mc.root";
+  TFile* input   = new TFile(inFile);
+  if (!input) {
+    cout
+      << "*** matbudget_ana: Input file " << inFile << " not found!\n"
+      << "Be sure to run matbudget_mc.C before for the respective STS geometry!"
+      << endl;
+    exit(1);
+  }
+
+  // Output file (material maps)
+  TString outFile = "sts_matbudget_" + stsVersion + ".root";
+
+  // Input tree and branch
+  TTree* tree          = (TTree*) input->Get("cbmsim");
+  TClonesArray* points = new TClonesArray("FairRadLenPoint");
+  tree->SetBranchAddress("RadLen", &points);
+
+  // Create output histograms
+  TH1D* hisRadLen     = new TH1D("hisRadLen", "Radiation Length", 1000, 0, 100);
+  const int nStations = 8;     // number of STS stations
+  const int nBins     = 1000;  // number of bins in histograms (in both x and y)
+  const int rMax      = 55;  // maximal radius for histograms (for both x and y)
+  const double zRange = 1.4;
+  TProfile2D* hStationRadLen[nStations];
+  TProfile2D* hStsRadLen;
+  double StsRadThick = 0;
+
+  TString stsname = "Material Budget x/X_{0} [%], STS";
+  hStsRadLen =
+    new TProfile2D(stsname, stsname, nBins, -rMax, rMax, nBins, -rMax, rMax);
+
+  for (int i = 0; i < nStations; ++i) {
+    TString hisname = "Radiation Thickness [%],";
+    hisname += " Station";
+    hisname += i + 1;
+    TString name = "Material Budget x/X_{0} [%],";
+    name += " Station ";
+    name += i + 1;
+    hStationRadLen[i] =
+      new TProfile2D(hisname, name, nBins, -rMax, rMax, nBins, -rMax, rMax);
+  }
+
+  // Auxiliary variables
+  TVector3 vecs, veco;
+  std::map<int, int> trackHitMap;
+
+
+  // Event loop
+  int firstEvent = 0;
+  for (Int_t event = firstEvent;
+       event < (firstEvent + nEvents) && event < tree->GetEntriesFast();
+       event++) {
+    tree->GetEntry(event);
+    if (0 == event % 10000) cout << "*** Processing event " << event << endl;
+
+    const int nTracks = 1;
+    std::vector<double> RadLengthOnTrack(
+      nTracks, 0.0);  //trackID, vector with points on track
+    std::vector<double> TrackLength(
+      nTracks, 0.0);  //trackID, vector with points on track
+
+    vector<double> RadThick(nStations, 0);
+    Double_t x = 0;
+    Double_t y = 0;
+
+    // For this implementation to be correct, there should be only one MCTrack per event.
+
+    // Point loop
+    for (Int_t iPoint = 0; iPoint < points->GetEntriesFast(); iPoint++) {
+      FairRadLenPoint* point = (FairRadLenPoint*) points->At(iPoint);
+
+      // Get track position at entry and exit of material
+      TVector3 posIn, posOut, posDif;
+      posIn  = point->GetPosition();
+      posOut = point->GetPositionOut();
+      posDif = posOut - posIn;
+
+      // Midpoint between in and out
+      const TVector3 middle = (posOut + posIn);
+      x                     = middle.X() / 2;
+      y                     = middle.Y() / 2;
+      const double z        = middle.Z() / 2;
+
+      // Material budget per unit length
+      const double radThick = posDif.Mag() / point->GetRadLength();
+      RadLengthOnTrack[point->GetTrackID()] += radThick;
+      TrackLength[point->GetTrackID()] += posDif.Mag();
+
+      // Determine station number
+      int iStation =
+        posIn.Z() / 10 - 3 + 0.5;  // suppose equidistant stations at 30-100 cm
+      int iStationOut = posOut.Z() / 10 - 3 + 0.5;
+      if (iStationOut != iStation) continue;
+      if (iStation >= nStations || iStation < 0) continue;
+      RadThick[iStation] += radThick;
+    }
+
+    StsRadThick = 0;
+    // Fill material budget map for each station
+    for (int i = 0; i < nStations; ++i) {
+      hStationRadLen[i]->Fill(x, y, RadThick[i] * 100);
+      StsRadThick += RadThick[i];
+    }
+
+    hStsRadLen->Fill(x, y, StsRadThick * 100);
+
+    for (int k = 0; k < RadLengthOnTrack.size(); k++)
+      if (RadLengthOnTrack[k] > 0) hisRadLen->Fill(RadLengthOnTrack[k]);
+
+  }  // event loop
+
+
+  // Plotting the results
+  //single  TCanvas* can1 = new TCanvas("c","c",800,800);
+  TCanvas* can1 = new TCanvas("c", "c", 1600, 800);
+  can1->Divide(nStations / 2, 2);
+  gStyle->SetPalette(1);
+  gStyle->SetOptStat(0);
+
+  // Open output file
+  TFile* output = new TFile(outFile, "RECREATE");
+  output->cd();
+
+  for (int iStation = 0; iStation < nStations; iStation++) {
+    can1->cd(iStation + 1);
+    //single    int iStation = 7;
+    hStationRadLen[iStation]->GetXaxis()->SetTitle("x [cm]");
+    hStationRadLen[iStation]->GetYaxis()->SetTitle("y [cm]");
+    //hStationRadLen[iStation]->GetZaxis()->SetTitle("x/X_{0} [%]");
+    //hStationRadLen[i]->GetZaxis()->SetTitle("radiation thickness [%]");
+    hStationRadLen[iStation]->SetAxisRange(0, zRange, "Z");
+    hStationRadLen[iStation]->Draw("colz");
+    hStationRadLen[iStation]->Write();
+  }
+
+  // Plot file
+  TString plotFile = "sts_" + stsVersion + "_matbudget.png";
+  can1->SaveAs(plotFile);
+
+  //================================================================
+
+  // Plotting the results
+  TCanvas* can2 = new TCanvas("c", "c", 800, 800);
+  gStyle->SetPalette(1);
+  gStyle->SetOptStat(0);
+
+  can2->cd();
+  hStsRadLen->GetXaxis()->SetTitle("x [cm]");
+  hStsRadLen->GetYaxis()->SetTitle("y [cm]");
+  hStsRadLen->SetAxisRange(0, 10, "Z");
+  hStsRadLen->Draw("colz");
+
+  // Plot file
+  plotFile = "sts_" + stsVersion + "_total_matbudget.png";
+  can2->SaveAs(plotFile);
+
+  //================================================================
+
+  TString thisStation(0);
+  can2->Clear();
+  for (int iStation = 0; iStation < nStations; iStation++) {
+    hStationRadLen[iStation]->Draw("colz");
+    // Plot file
+    thisStation.Form("%d", iStation + 1);
+    plotFile =
+      "sts_" + stsVersion + "_station_" + thisStation + "_matbudget.png";
+    can2->SaveAs(plotFile);
+  }
+
+  // Close files
+  input->Close();
+  output->Close();
+  cout << "Material budget maps written to " << outFile << endl;
+
+  return 0;
+}
diff --git a/macro/sts/matbudget_ana_phi.C b/macro/sts/matbudget_ana_phi.C
index 114799f6bc..950aeea3f6 100644
--- a/macro/sts/matbudget_ana_phi.C
+++ b/macro/sts/matbudget_ana_phi.C
@@ -1,214 +1,214 @@
-#if !defined(__CINT__) || defined(__MAKECINT__)
-#include "TCanvas.h"
-#include "TClonesArray.h"
-#include "TFile.h"
-#include "TH1.h"
-#include "TProfile2D.h"
-#include "TROOT.h"
-#include "TString.h"
-#include "TStyle.h"
-#include "TSystem.h"
-#include "TTree.h"
-#include "TVector3.h"
-
-#include "FairRadLenPoint.h"
-
-#include <iostream>
-#include <vector>
-using std::cout;
-using std::endl;
-using std::vector;
-#endif
-
-// need to set this root include path:
-// include path: -I/opt/cbm/fairsoft_jul15p1/installation/include/root -I/opt/cbm/fairroot_v-15.07-fairsoft_jul15p1/include -I/opt/cbm/fairsoft_jul15p1/installation/include
-//.include $SIMPATH/include
-//.include $FAIRROOTPATH/include
-
-//Int_t matbudget_ana_phi(Int_t nEvents=100     , const char* stsGeo = "v15c")
-//Int_t matbudget_ana_phi(Int_t nEvents=1000000 , const char* stsGeo = "v15c")
-Int_t matbudget_ana_phi(Int_t nEvents = 10000000, const char* stsGeo = "v15c") {
-
-  // Input file (MC)
-  TString stsVersion(stsGeo);
-  TString inFile = "data/matbudget." + stsVersion + ".mc.root";
-  TFile* input   = new TFile(inFile);
-  if (!input) {
-    cout
-      << "*** matbudget_ana: Input file " << inFile << " not found!\n"
-      << "Be sure to run matbudget_mc.C before for the respective STS geometry!"
-      << endl;
-    exit;
-  }
-
-  // Output file (material maps)
-  TString outFile = "sts_matbudget_" + stsVersion + ".root";
-
-  // Input tree and branch
-  TTree* tree          = (TTree*) input->Get("cbmsim");
-  TClonesArray* points = new TClonesArray("FairRadLenPoint");
-  tree->SetBranchAddress("RadLen", &points);
-
-  // Create output histograms
-  TH1D* hisRadLen     = new TH1D("hisRadLen", "Radiation Length", 1000, 0, 100);
-  const int nStations = 8;     // number of STS stations
-  const int nBins     = 1000;  // number of bins in histograms (in both x and y)
-  //  const int rMax      = 55;     // maximal radius for histograms (for both x and y)
-  const int phiMax   = 180;  // maximal phi range for histograms
-  const int thetaMax = 50;   // maximal theta range for histograms
-  //  const int radiusMax = 75;       // maximal radius for histograms
-  double phiSta[nStations];
-  double thetaSta[nStations];
-
-
-  TProfile2D* hStaRadLen[nStations];
-  for (int i = 0; i < nStations; ++i) {
-    TString name = "Material Budget x/X_{0} [%],";
-    name += " Station ";
-    name += i + 1;
-    //    hStaRadLen[i] = new TProfile2D(name, name, nBins,-rMax, rMax, nBins,-rMax, rMax);
-    hStaRadLen[i] =
-      new TProfile2D(name, name, nBins, -phiMax, phiMax, nBins, 0, thetaMax);
-    //    hStaRadLen[i] = new TProfile2D(name, name, nBins, -phiMax, phiMax, nBins, 0, radiusMax);
-  }
-
-  // Auxiliary variables
-  TVector3 vecs, veco;
-  std::map<int, int> trackHitMap;
-
-
-  // Event loop
-  int firstEvent = 0;
-  for (Int_t event = firstEvent;
-       event < (firstEvent + nEvents) && event < tree->GetEntriesFast();
-       event++) {
-    tree->GetEntry(event);
-    if (0 == event % 10000) cout << "*** Processing event " << event << endl;
-
-    const int nTracks = 1;
-    std::vector<double> RadLengthOnTrack(
-      nTracks, 0.0);  //trackID, vector with points on track
-    std::vector<double> TrackLength(
-      nTracks, 0.0);  //trackID, vector with points on track
-
-    vector<double> RadThick(nStations, 0);
-    double x, y;
-    double theta, phi, radius;
-
-    // For this implementation to be correct, there should be only one MCTrack per event.
-
-    // Point loop
-    for (Int_t iPoint = 0; iPoint < points->GetEntriesFast(); iPoint++) {
-      FairRadLenPoint* point = (FairRadLenPoint*) points->At(iPoint);
-
-      // Get track position at entry and exit of material
-      TVector3 posIn, posOut, posDif;
-      posIn  = point->GetPosition();
-      posOut = point->GetPositionOut();
-      posDif = 0.5 * (posOut - posIn);
-
-      // Midpoint between in and out
-      const TVector3 middle = (posOut + posIn);
-      x                     = middle.X() / 2;
-      y                     = middle.Y() / 2;
-      const double z        = middle.Z() / 2;
-
-      if (x == 0) {
-        if (y >= 0)
-          phi = 90;
-        else
-          phi = -90;
-      } else
-        phi = atan(y / x) * 180 / acos(-1.);
-
-      if (x < 0) {
-        if (y >= 0)
-          phi += 180;
-        else
-          phi -= 180;
-      }
-
-      radius = sqrt(x * x + y * y);
-
-      if (z > 0) theta = atan(radius / z) * 180 / acos(-1.);
-      //        theta = atan( sqrt(x*x + y*y) / z ) * 180 / acos(-1.);
-
-      //      cout << "x: " << x << " y: " << y << " r: " << radius << " z: " << z << " - phi: " << phi << " theta: " << theta;
-
-      // Material budget per unit length
-      const double radThick = posDif.Mag() / point->GetRadLength();
-      RadLengthOnTrack[point->GetTrackID()] += radThick;
-      TrackLength[point->GetTrackID()] += posDif.Mag();
-
-      // Determine station number
-      int iStation =
-        posIn.Z() / 10 - 3 + 0.5;  // suppose equidistant stations at 30-100 cm
-      int iStationOut = posOut.Z() / 10 - 3 + 0.5;
-      if (iStationOut != iStation) continue;
-      if (iStation >= nStations || iStation < 0) continue;
-
-      RadThick[iStation] += radThick;
-      phiSta[iStation] = phi;
-      //      thetaSta[iStation] = theta;
-      thetaSta[iStation] =
-        atan(radius / (iStation * 10 + 30)) * 180 / acos(-1.);
-
-      //      cout << "i: " << iStation << " phi: " << phi << " z: " << z << " theta: " << theta
-      //           << " correct: " << atan (radius / (iStation *10 + 30)) * 180 / acos(-1.)
-      //	   << " RadThick: " << RadThick[iStation]*100 << endl;
-    }
-
-    // Fill material budget map for each station
-    for (int i = 0; i < nStations; ++i) {
-      //      hStaRadLen[i]->Fill( x, y, RadThick[i]*100 );
-      //      hStaRadLen[i]->Fill( phi, theta, RadThick[i]*100 );
-      hStaRadLen[i]->Fill(phiSta[i], thetaSta[i], RadThick[i] * 100);
-      //      hStaRadLen[i]->Fill( phi, radius, RadThick[i]*100 );
-
-      //      cout << "AA phi: " << phi << " theta: " << theta << endl;
-    }
-
-    for (int k = 0; k < RadLengthOnTrack.size(); k++)
-      if (RadLengthOnTrack[k] > 0) hisRadLen->Fill(RadLengthOnTrack[k]);
-
-  }  // event loop
-
-
-  // Plotting the results
-  //single  TCanvas* can1 = new TCanvas("c","c",800,800);
-  TCanvas* can1 = new TCanvas("c", "c", 1600, 800);
-  can1->Divide(nStations / 2, 2);
-  gStyle->SetPalette(1);
-  gStyle->SetOptStat(0);
-
-  // Open output file
-  TFile* output = new TFile(outFile, "RECREATE");
-  output->cd();
-
-  for (int iStation = 0; iStation < nStations; iStation++) {
-    can1->cd(iStation + 1);
-    //single    int iStation = 7;
-    //    hStaRadLen[iStation]->GetXaxis()->SetTitle("x [cm]");
-    //    hStaRadLen[iStation]->GetYaxis()->SetTitle("y [cm]");
-    hStaRadLen[iStation]->GetXaxis()->SetTitle("phi [deg]");
-    hStaRadLen[iStation]->GetYaxis()->SetTitle("theta [deg]");
-    //    hStaRadLen[iStation]->GetYaxis()->SetTitle("radius [cm]");
-    //hStaRadLen[iStation]->GetZaxis()->SetTitle("x/X_{0} [%]");
-    //hStaRadLen[i]->GetZaxis()->SetTitle("radiation thickness [%]");
-    hStaRadLen[iStation]->SetAxisRange(0, 1.2, "Z");
-    //    hStaRadLen[iStation]->SetAxisRange(0, 2, "Z");
-    hStaRadLen[iStation]->Draw("colz");
-    hStaRadLen[iStation]->Write();
-  }
-
-  // Plot file
-  TString plotFile = "sts_" + stsVersion + "_matbudget.png";
-  can1->SaveAs(plotFile);
-
-  // Close files
-  input->Close();
-  output->Close();
-  cout << "Material budget maps written to " << outFile << endl;
-
-  return 0;
-}
+#if !defined(__CINT__) || defined(__MAKECINT__)
+#include "TCanvas.h"
+#include "TClonesArray.h"
+#include "TFile.h"
+#include "TH1.h"
+#include "TProfile2D.h"
+#include "TROOT.h"
+#include "TString.h"
+#include "TStyle.h"
+#include "TSystem.h"
+#include "TTree.h"
+#include "TVector3.h"
+
+#include "FairRadLenPoint.h"
+
+#include <iostream>
+#include <vector>
+using std::cout;
+using std::endl;
+using std::vector;
+#endif
+
+// need to set this root include path:
+// include path: -I/opt/cbm/fairsoft_jul15p1/installation/include/root -I/opt/cbm/fairroot_v-15.07-fairsoft_jul15p1/include -I/opt/cbm/fairsoft_jul15p1/installation/include
+//.include $SIMPATH/include
+//.include $FAIRROOTPATH/include
+
+//Int_t matbudget_ana_phi(Int_t nEvents=100     , const char* stsGeo = "v15c")
+//Int_t matbudget_ana_phi(Int_t nEvents=1000000 , const char* stsGeo = "v15c")
+Int_t matbudget_ana_phi(Int_t nEvents = 10000000, const char* stsGeo = "v15c") {
+
+  // Input file (MC)
+  TString stsVersion(stsGeo);
+  TString inFile = "data/matbudget." + stsVersion + ".mc.root";
+  TFile* input   = new TFile(inFile);
+  if (!input) {
+    cout
+      << "*** matbudget_ana: Input file " << inFile << " not found!\n"
+      << "Be sure to run matbudget_mc.C before for the respective STS geometry!"
+      << endl;
+    exit;
+  }
+
+  // Output file (material maps)
+  TString outFile = "sts_matbudget_" + stsVersion + ".root";
+
+  // Input tree and branch
+  TTree* tree          = (TTree*) input->Get("cbmsim");
+  TClonesArray* points = new TClonesArray("FairRadLenPoint");
+  tree->SetBranchAddress("RadLen", &points);
+
+  // Create output histograms
+  TH1D* hisRadLen     = new TH1D("hisRadLen", "Radiation Length", 1000, 0, 100);
+  const int nStations = 8;     // number of STS stations
+  const int nBins     = 1000;  // number of bins in histograms (in both x and y)
+  //  const int rMax      = 55;     // maximal radius for histograms (for both x and y)
+  const int phiMax   = 180;  // maximal phi range for histograms
+  const int thetaMax = 50;   // maximal theta range for histograms
+  //  const int radiusMax = 75;       // maximal radius for histograms
+  double phiSta[nStations];
+  double thetaSta[nStations];
+
+
+  TProfile2D* hStaRadLen[nStations];
+  for (int i = 0; i < nStations; ++i) {
+    TString name = "Material Budget x/X_{0} [%],";
+    name += " Station ";
+    name += i + 1;
+    //    hStaRadLen[i] = new TProfile2D(name, name, nBins,-rMax, rMax, nBins,-rMax, rMax);
+    hStaRadLen[i] =
+      new TProfile2D(name, name, nBins, -phiMax, phiMax, nBins, 0, thetaMax);
+    //    hStaRadLen[i] = new TProfile2D(name, name, nBins, -phiMax, phiMax, nBins, 0, radiusMax);
+  }
+
+  // Auxiliary variables
+  TVector3 vecs, veco;
+  std::map<int, int> trackHitMap;
+
+
+  // Event loop
+  int firstEvent = 0;
+  for (Int_t event = firstEvent;
+       event < (firstEvent + nEvents) && event < tree->GetEntriesFast();
+       event++) {
+    tree->GetEntry(event);
+    if (0 == event % 10000) cout << "*** Processing event " << event << endl;
+
+    const int nTracks = 1;
+    std::vector<double> RadLengthOnTrack(
+      nTracks, 0.0);  //trackID, vector with points on track
+    std::vector<double> TrackLength(
+      nTracks, 0.0);  //trackID, vector with points on track
+
+    vector<double> RadThick(nStations, 0);
+    double x, y;
+    double theta, phi, radius;
+
+    // For this implementation to be correct, there should be only one MCTrack per event.
+
+    // Point loop
+    for (Int_t iPoint = 0; iPoint < points->GetEntriesFast(); iPoint++) {
+      FairRadLenPoint* point = (FairRadLenPoint*) points->At(iPoint);
+
+      // Get track position at entry and exit of material
+      TVector3 posIn, posOut, posDif;
+      posIn  = point->GetPosition();
+      posOut = point->GetPositionOut();
+      posDif = 0.5 * (posOut - posIn);
+
+      // Midpoint between in and out
+      const TVector3 middle = (posOut + posIn);
+      x                     = middle.X() / 2;
+      y                     = middle.Y() / 2;
+      const double z        = middle.Z() / 2;
+
+      if (x == 0) {
+        if (y >= 0)
+          phi = 90;
+        else
+          phi = -90;
+      } else
+        phi = atan(y / x) * 180 / acos(-1.);
+
+      if (x < 0) {
+        if (y >= 0)
+          phi += 180;
+        else
+          phi -= 180;
+      }
+
+      radius = sqrt(x * x + y * y);
+
+      if (z > 0) theta = atan(radius / z) * 180 / acos(-1.);
+      //        theta = atan( sqrt(x*x + y*y) / z ) * 180 / acos(-1.);
+
+      //      cout << "x: " << x << " y: " << y << " r: " << radius << " z: " << z << " - phi: " << phi << " theta: " << theta;
+
+      // Material budget per unit length
+      const double radThick = posDif.Mag() / point->GetRadLength();
+      RadLengthOnTrack[point->GetTrackID()] += radThick;
+      TrackLength[point->GetTrackID()] += posDif.Mag();
+
+      // Determine station number
+      int iStation =
+        posIn.Z() / 10 - 3 + 0.5;  // suppose equidistant stations at 30-100 cm
+      int iStationOut = posOut.Z() / 10 - 3 + 0.5;
+      if (iStationOut != iStation) continue;
+      if (iStation >= nStations || iStation < 0) continue;
+
+      RadThick[iStation] += radThick;
+      phiSta[iStation] = phi;
+      //      thetaSta[iStation] = theta;
+      thetaSta[iStation] =
+        atan(radius / (iStation * 10 + 30)) * 180 / acos(-1.);
+
+      //      cout << "i: " << iStation << " phi: " << phi << " z: " << z << " theta: " << theta
+      //           << " correct: " << atan (radius / (iStation *10 + 30)) * 180 / acos(-1.)
+      //	   << " RadThick: " << RadThick[iStation]*100 << endl;
+    }
+
+    // Fill material budget map for each station
+    for (int i = 0; i < nStations; ++i) {
+      //      hStaRadLen[i]->Fill( x, y, RadThick[i]*100 );
+      //      hStaRadLen[i]->Fill( phi, theta, RadThick[i]*100 );
+      hStaRadLen[i]->Fill(phiSta[i], thetaSta[i], RadThick[i] * 100);
+      //      hStaRadLen[i]->Fill( phi, radius, RadThick[i]*100 );
+
+      //      cout << "AA phi: " << phi << " theta: " << theta << endl;
+    }
+
+    for (int k = 0; k < RadLengthOnTrack.size(); k++)
+      if (RadLengthOnTrack[k] > 0) hisRadLen->Fill(RadLengthOnTrack[k]);
+
+  }  // event loop
+
+
+  // Plotting the results
+  //single  TCanvas* can1 = new TCanvas("c","c",800,800);
+  TCanvas* can1 = new TCanvas("c", "c", 1600, 800);
+  can1->Divide(nStations / 2, 2);
+  gStyle->SetPalette(1);
+  gStyle->SetOptStat(0);
+
+  // Open output file
+  TFile* output = new TFile(outFile, "RECREATE");
+  output->cd();
+
+  for (int iStation = 0; iStation < nStations; iStation++) {
+    can1->cd(iStation + 1);
+    //single    int iStation = 7;
+    //    hStaRadLen[iStation]->GetXaxis()->SetTitle("x [cm]");
+    //    hStaRadLen[iStation]->GetYaxis()->SetTitle("y [cm]");
+    hStaRadLen[iStation]->GetXaxis()->SetTitle("phi [deg]");
+    hStaRadLen[iStation]->GetYaxis()->SetTitle("theta [deg]");
+    //    hStaRadLen[iStation]->GetYaxis()->SetTitle("radius [cm]");
+    //hStaRadLen[iStation]->GetZaxis()->SetTitle("x/X_{0} [%]");
+    //hStaRadLen[i]->GetZaxis()->SetTitle("radiation thickness [%]");
+    hStaRadLen[iStation]->SetAxisRange(0, 1.2, "Z");
+    //    hStaRadLen[iStation]->SetAxisRange(0, 2, "Z");
+    hStaRadLen[iStation]->Draw("colz");
+    hStaRadLen[iStation]->Write();
+  }
+
+  // Plot file
+  TString plotFile = "sts_" + stsVersion + "_matbudget.png";
+  can1->SaveAs(plotFile);
+
+  // Close files
+  input->Close();
+  output->Close();
+  cout << "Material budget maps written to " << outFile << endl;
+
+  return 0;
+}
diff --git a/macro/tof/beamtime/feb15/parUnpack_basic.txt b/macro/tof/beamtime/feb15/parUnpack_basic.txt
index 398be237ff..f96ed59ec2 100644
--- a/macro/tof/beamtime/feb15/parUnpack_basic.txt
+++ b/macro/tof/beamtime/feb15/parUnpack_basic.txt
@@ -1,199 +1,199 @@
-##############################################################################
-# Class:   TMbsUnpackTofPar
-# Context: TestDefaultContext
-##############################################################################
-[TMbsUnpackTofPar]
-//----------------------------------------------------------------------------
-//******************************//
-//   Input selector             //
-//******************************//
-// GETEVT__FILE     1 <- LMD File
-// GETEVT__STREAM   2 <- Stream client
-// GETEVT__TRANS    3 <- Transport client
-// GETEVT__EVENT    4 <- Event client
-// GETEVT__REVSERV  5 <- Remote event client
-MbsSourceMode: Int_t 1
-// Switch ON/OFF the writing of data in the output root file of cbmroot analysis
-WriteDataInCbmOut: Int_t 0
-// Switch ON/OFF debug tests in VFTX unpacker
-VftxDebug: Int_t     0 
-// Number of possible VME boards in the MBS event
-MbsNbVmeBoards: Int_t 31
-// BoardTypes
-//      undef      =  0,  // unknown type, default value
-//      caenV1290  =  1,  // CAEN v1290A and CAEN v1290N VME boards based on HPTDC chips
-//      vftx       =  2,  // FPGA TDC of the VFTX family (E. Bayer dev.)
-//      triglog    = 10,  // VULOM TRIGLOG board
-//      scalormu   = 11,  // VULOM Scaler Or Multiplicity board 
-//      scalormubig= 12,  // VULOM Scaler Or Multiplicity board  32 channel version ? not used for now
-//      scaler2014 = 13,  // VULOM Scaler Or/And board used in the GSI April 2014 TOF beamtime
-//      caenv965   = 20,  // CAEN v965A and CAEN v965N VME QDC boards
-//      lecroy1182 = 21,  // LECROY 1182 VME QDC/ADC board 
-//      vulqfwread = 22   // VULOM QFW board (Charge to Frequency Converter Readout) 
-// BoardIndex Active    Address AddMod     TokenA     TokenB Type
-MbsVmeMapping: Int_t \
-   0,   0, 0x14000000, 0x09, 0x74726c6f, 0x6f6c7274, 10, \
-   1,   0, 0x0F000000, 0x09, 0x74646331, 0x31636474,  1, \
-   2,   0, 0x11000000, 0x09, 0x74646332, 0x32636474,  1, \
-   3,   0, 0x12000000, 0x09, 0x74646333, 0x33636474,  1, \
-   4,   0, 0x14000000, 0x09, 0x74646334, 0x34636474,  1, \
-   5,   0, 0x15000000, 0x09, 0x74646335, 0x35636474,  1, \
-   6,   0, 0x17000000, 0x09, 0x74646336, 0x36636474,  1, \
-   7,   0, 0x18000000, 0x09, 0x74646337, 0x37636474,  1, \
-   8,   0, 0x19000000, 0x09, 0x74646338, 0x38636474,  1, \
-   9,   0, 0x03000000, 0x09, 0x66706731, 0x31677066,  2, \
-  10,   0, 0x04000000, 0x09, 0x66706732, 0x32677066,  2, \
-  11,   0, 0x05000000, 0x09, 0x66706733, 0x33677066,  2, \
-  12,   0, 0x06000000, 0x09, 0x66706734, 0x34677066,  2, \
-  13,   0, 0x07000000, 0x09, 0x66706735, 0x35677066,  2, \
-  14,   0, 0x08000000, 0x09, 0x66706736, 0x36677066,  2, \
-  15,   0, 0x09000000, 0x09, 0x66706737, 0x37677066,  2, \
-  16,   0, 0x0A000000, 0x09, 0x66706738, 0x38677066,  2, \
-  17,   0, 0x0B000000, 0x09, 0x66706739, 0x39677066,  2, \
-  18,   0, 0x0C000000, 0x09, 0x6670673a, 0x3a677066,  2, \
-  19,   0, 0x0D000000, 0x09, 0x6670673b, 0x3b677066,  2, \
-  20,   0, 0x0A000000, 0x09, 0x71646332, 0x32636471, 20, \
-  21,   0, 0x0B000000, 0x09, 0x71646333, 0x33636471, 20, \
-  22,   0, 0x00600000, 0x39, 0x31313832, 0x32383131, 21, \
-  23,   0, 0x00700000, 0x39, 0x31313833, 0x33383131, 21, \
-  24,   0, 0x07000000, 0x09, 0x71667731, 0x31776671, 22, \
-  25,   0, 0x12000000, 0x09, 0x73636f6d, 0x6d6f6373, 11, \
-  26,   0, 0x13000000, 0x09, 0x736f6d62, 0x626d6f73, 11, \
-  27,   0, 0x06000000, 0x09, 0x73636131, 0x31616373, 13, \
-  28,   0, 0x08000000, 0x09, 0x73636132, 0x32616373, 13, \
-  29,   0, 0x10000000, 0x09, 0x73636133, 0x33616373, 13, \
-  30,   0, 0x12000000, 0x09, 0x73636134, 0x34616373, 13
-// Number of possible Non-VME boards in the MBS event
-NbNonVmeBoards: Int_t 45
-//==============================================================================
-// General structure
-// BoardIndex Active RocIndx AddMod TokenA TokenB Type
-//------------------------------------------------------------------------------
-// BoardTypes
-//      0:  unknown -- default
-//      4:  get4    -- GET4 chips
-//      30: trbseb  -- subevent builder on central TRB-FPGA
-//      31: trbtdc  -- TDC on peripheral TRB-FPGA or FEE-TDC
-//      32: trbhub  -- hub on peripheral TRB-FPGA
-//==============================================================================
-// TRB specific structure
-// BoardIndex UnpackTdc FpgaAddr [niu] SebAddr FpgaInData FpgaType
-//------------------------------------------------------------------------------
-// BoardIndex:  consecutively numbered index (0...NbNonVmeBoards-1)
-// FpgaInData:  FPGA TRBnet endpoint sends data (0x1)
-// FpgaAddr:    FPGA TRBnet endpoint address
-// [niu]:       field not in use
-// SebAddr:     subevent builder's TRBnet endpoint address
-// UnpackTdc:   unpack data from this TDC (0x1)
-// FpgaType:    see BoardTypes above
-//==============================================================================
-//
-NonVmeMapping: Int_t \
-   0,  0x1,  0xc000,  0x0,  0xc000,  0x0,  30, \
-   1,  0x1,  0xb001,  0x0,  0xc000,  0x0,  32, \
-   2,  0x1,  0xb002,  0x0,  0xc000,  0x0,  32, \
-   3,  0x1,  0xb003,  0x0,  0xc000,  0x0,  32, \
-   4,  0x1,  0xb004,  0x0,  0xc000,  0x0,  32, \
-   5,  0x1,  0x8002,  0x0,  0xc000,  0x0,  30, \
-   6,  0x1,  0xb021,  0x0,  0x8002,  0x1,  32, \
-   7,  0x1,  0xb022,  0x0,  0x8002,  0x1,  32, \
-   8,  0x1,  0xb023,  0x0,  0x8002,  0x1,  32, \
-   9,  0x1,  0xb024,  0x0,  0x8002,  0x1,  32, \
-  10,  0x1,  0x8003,  0x0,  0x8003,  0x0,  30, \
-  11,  0x1,  0xb031,  0x0,  0x8003,  0x1,  32, \
-  12,  0x1,  0xb032,  0x0,  0x8003,  0x1,  32, \
-  13,  0x1,  0xb033,  0x0,  0x8003,  0x1,  32, \
-  14,  0x1,  0xb034,  0x0,  0x8003,  0x1,  32, \
-  15,  0x1,  0x8004,  0x0,  0x8004,  0x0,  30, \
-  16,  0x1,  0xb041,  0x0,  0x8004,  0x1,  32, \
-  17,  0x1,  0xb042,  0x0,  0x8004,  0x1,  32, \
-  18,  0x1,  0xb043,  0x0,  0x8004,  0x1,  32, \
-  19,  0x1,  0xb044,  0x0,  0x8004,  0x1,  32, \
-  20,  0x1,  0x8005,  0x0,  0x8005,  0x0,  30, \
-  21,  0x1,  0xb051,  0x0,  0x8005,  0x1,  32, \
-  22,  0x1,  0xb052,  0x0,  0x8005,  0x1,  32, \
-  23,  0x1,  0xb053,  0x0,  0x8005,  0x1,  32, \
-  24,  0x1,  0xb054,  0x0,  0x8005,  0x1,  32, \
-  25,  0x1,  0x0f11,  0x0,  0xc000,  0x1,  31, \
-  26,  0x1,  0x0f12,  0x0,  0xc000,  0x1,  31, \
-  27,  0x1,  0x0f13,  0x0,  0xc000,  0x1,  31, \
-  28,  0x1,  0x0f14,  0x0,  0xc000,  0x1,  31, \
-  29,  0x1,  0x0f21,  0x0,  0x8002,  0x1,  31, \
-  30,  0x1,  0x0f22,  0x0,  0x8002,  0x1,  31, \
-  31,  0x1,  0x0f23,  0x0,  0x8002,  0x1,  31, \
-  32,  0x1,  0x0f24,  0x0,  0x8002,  0x1,  31, \
-  33,  0x1,  0x0f41,  0x0,  0x8003,  0x1,  31, \
-  34,  0x1,  0x0f42,  0x0,  0x8003,  0x1,  31, \
-  35,  0x1,  0x0f43,  0x0,  0x8003,  0x1,  31, \
-  36,  0x1,  0x0f44,  0x0,  0x8003,  0x1,  31, \
-  37,  0x1,  0x0f51,  0x0,  0x8004,  0x1,  31, \
-  38,  0x1,  0x0f52,  0x0,  0x8004,  0x1,  31, \
-  39,  0x1,  0x0f53,  0x0,  0x8004,  0x1,  31, \
-  40,  0x1,  0x0f54,  0x0,  0x8004,  0x1,  31, \
-  41,  0x1,  0x0f61,  0x0,  0x8005,  0x1,  31, \
-  42,  0x1,  0x0f62,  0x0,  0x8005,  0x1,  31, \
-  43,  0x1,  0x0f63,  0x0,  0x8005,  0x1,  31, \
-  44,  0x1,  0x0f64,  0x0,  0x8005,  0x1,  31
-//
-// Trigger from the Triglog board for which event are jump by Calib, mapping and conv
-// For now only jumping work for GET4 data!!
-//TriggerRejection: Int_t  15
-TriggerRejection: Int_t  -1
-//==============================================================================
-// TriggerChannel | TriggerType | TriggerUnpack
-//------------------------------------------------------------------------------
-// TriggerChannel (as defined in the CTS)
-//   max. range: 0 - 15
-//------------------------------------------------------------------------------
-// TriggerType (as defined in the CTS)
-//   max. range: 0x0 - 0xf
-//   types generating a reference time signal: 0x0 - 0x7 ("physics triggers")
-//   types without a reference time signal:    0x8 - 0xf
-//   calibration (ToT stretching offset):      0xd
-//
-//   In case of a trigger concidence, only a uniquely assigned trigger type
-//   allows to unambigously identify the trigger which actually triggered
-//   the event.
-//   All 8 possible trigger signal inputs should have assigned a different
-//   trigger type from 0x0 to 0x7. To all disabled trigger channels, please
-//   assign a higher trigger type (0x8 - 0xf exclusive 0xd).
-//------------------------------------------------------------------------------
-// TriggerUnpack
-//    0x1: only consider events in which this trigger channel was asserted
-//         (if this unpack bit is set for several trigger channels, all of
-//          them must have been asserted for the event to be unpacked)
-//    0x0: do not care whether this trigger channel was asserted or not
-//         (if this unpack bit is not set for all trigger channels, each
-//          incoming event is unpacked)
-//==============================================================================
-NbCtsTrigChs: Int_t 16
-CtsTriggerMap: Int_t \
-   0,  0x1,  0x0, \
-   1,  0x1,  0x0, \
-   2,  0x1,  0x0, \
-   3,  0x1,  0x0, \
-   4,  0x1,  0x0, \
-   5,  0x1,  0x0, \
-   6,  0x1,  0x0, \
-   7,  0x1,  0x0, \
-   8,  0x0,  0x0, \
-   9,  0x1,  0x0, \
-  10,  0x2,  0x0, \
-  11,  0x3,  0x0, \
-  12,  0x4,  0x0, \
-  13,  0x5,  0x0, \
-  14,  0x6,  0x0, \
-  15,  0x7,  0x0
-//
-//==============================================================================
-// The unpacking algorithms support both double edge measurement methods
-// implemented for the TRB-TDC.
-// - 128-bit mode: separate edge detection in different TDC channels
-//                 1 TDC TIME and 1 TDC EPOCH word for both edges
-// -  96-bit mode: joint edge detection in the same TDC channel
-//                 1 TDC TIME word per edge and 1 joint TDC EPOCH word
-// To enable 96-bit mode unpacking, set 'TrbTdcBitMode' to '1'. Setting any
-// other value will result in 128-bit mode unpacking.
-//==============================================================================
-TrbTdcBitMode: Int_t 1
-###########################
+##############################################################################
+# Class:   TMbsUnpackTofPar
+# Context: TestDefaultContext
+##############################################################################
+[TMbsUnpackTofPar]
+//----------------------------------------------------------------------------
+//******************************//
+//   Input selector             //
+//******************************//
+// GETEVT__FILE     1 <- LMD File
+// GETEVT__STREAM   2 <- Stream client
+// GETEVT__TRANS    3 <- Transport client
+// GETEVT__EVENT    4 <- Event client
+// GETEVT__REVSERV  5 <- Remote event client
+MbsSourceMode: Int_t 1
+// Switch ON/OFF the writing of data in the output root file of cbmroot analysis
+WriteDataInCbmOut: Int_t 0
+// Switch ON/OFF debug tests in VFTX unpacker
+VftxDebug: Int_t     0 
+// Number of possible VME boards in the MBS event
+MbsNbVmeBoards: Int_t 31
+// BoardTypes
+//      undef      =  0,  // unknown type, default value
+//      caenV1290  =  1,  // CAEN v1290A and CAEN v1290N VME boards based on HPTDC chips
+//      vftx       =  2,  // FPGA TDC of the VFTX family (E. Bayer dev.)
+//      triglog    = 10,  // VULOM TRIGLOG board
+//      scalormu   = 11,  // VULOM Scaler Or Multiplicity board 
+//      scalormubig= 12,  // VULOM Scaler Or Multiplicity board  32 channel version ? not used for now
+//      scaler2014 = 13,  // VULOM Scaler Or/And board used in the GSI April 2014 TOF beamtime
+//      caenv965   = 20,  // CAEN v965A and CAEN v965N VME QDC boards
+//      lecroy1182 = 21,  // LECROY 1182 VME QDC/ADC board 
+//      vulqfwread = 22   // VULOM QFW board (Charge to Frequency Converter Readout) 
+// BoardIndex Active    Address AddMod     TokenA     TokenB Type
+MbsVmeMapping: Int_t \
+   0,   0, 0x14000000, 0x09, 0x74726c6f, 0x6f6c7274, 10, \
+   1,   0, 0x0F000000, 0x09, 0x74646331, 0x31636474,  1, \
+   2,   0, 0x11000000, 0x09, 0x74646332, 0x32636474,  1, \
+   3,   0, 0x12000000, 0x09, 0x74646333, 0x33636474,  1, \
+   4,   0, 0x14000000, 0x09, 0x74646334, 0x34636474,  1, \
+   5,   0, 0x15000000, 0x09, 0x74646335, 0x35636474,  1, \
+   6,   0, 0x17000000, 0x09, 0x74646336, 0x36636474,  1, \
+   7,   0, 0x18000000, 0x09, 0x74646337, 0x37636474,  1, \
+   8,   0, 0x19000000, 0x09, 0x74646338, 0x38636474,  1, \
+   9,   0, 0x03000000, 0x09, 0x66706731, 0x31677066,  2, \
+  10,   0, 0x04000000, 0x09, 0x66706732, 0x32677066,  2, \
+  11,   0, 0x05000000, 0x09, 0x66706733, 0x33677066,  2, \
+  12,   0, 0x06000000, 0x09, 0x66706734, 0x34677066,  2, \
+  13,   0, 0x07000000, 0x09, 0x66706735, 0x35677066,  2, \
+  14,   0, 0x08000000, 0x09, 0x66706736, 0x36677066,  2, \
+  15,   0, 0x09000000, 0x09, 0x66706737, 0x37677066,  2, \
+  16,   0, 0x0A000000, 0x09, 0x66706738, 0x38677066,  2, \
+  17,   0, 0x0B000000, 0x09, 0x66706739, 0x39677066,  2, \
+  18,   0, 0x0C000000, 0x09, 0x6670673a, 0x3a677066,  2, \
+  19,   0, 0x0D000000, 0x09, 0x6670673b, 0x3b677066,  2, \
+  20,   0, 0x0A000000, 0x09, 0x71646332, 0x32636471, 20, \
+  21,   0, 0x0B000000, 0x09, 0x71646333, 0x33636471, 20, \
+  22,   0, 0x00600000, 0x39, 0x31313832, 0x32383131, 21, \
+  23,   0, 0x00700000, 0x39, 0x31313833, 0x33383131, 21, \
+  24,   0, 0x07000000, 0x09, 0x71667731, 0x31776671, 22, \
+  25,   0, 0x12000000, 0x09, 0x73636f6d, 0x6d6f6373, 11, \
+  26,   0, 0x13000000, 0x09, 0x736f6d62, 0x626d6f73, 11, \
+  27,   0, 0x06000000, 0x09, 0x73636131, 0x31616373, 13, \
+  28,   0, 0x08000000, 0x09, 0x73636132, 0x32616373, 13, \
+  29,   0, 0x10000000, 0x09, 0x73636133, 0x33616373, 13, \
+  30,   0, 0x12000000, 0x09, 0x73636134, 0x34616373, 13
+// Number of possible Non-VME boards in the MBS event
+NbNonVmeBoards: Int_t 45
+//==============================================================================
+// General structure
+// BoardIndex Active RocIndx AddMod TokenA TokenB Type
+//------------------------------------------------------------------------------
+// BoardTypes
+//      0:  unknown -- default
+//      4:  get4    -- GET4 chips
+//      30: trbseb  -- subevent builder on central TRB-FPGA
+//      31: trbtdc  -- TDC on peripheral TRB-FPGA or FEE-TDC
+//      32: trbhub  -- hub on peripheral TRB-FPGA
+//==============================================================================
+// TRB specific structure
+// BoardIndex UnpackTdc FpgaAddr [niu] SebAddr FpgaInData FpgaType
+//------------------------------------------------------------------------------
+// BoardIndex:  consecutively numbered index (0...NbNonVmeBoards-1)
+// FpgaInData:  FPGA TRBnet endpoint sends data (0x1)
+// FpgaAddr:    FPGA TRBnet endpoint address
+// [niu]:       field not in use
+// SebAddr:     subevent builder's TRBnet endpoint address
+// UnpackTdc:   unpack data from this TDC (0x1)
+// FpgaType:    see BoardTypes above
+//==============================================================================
+//
+NonVmeMapping: Int_t \
+   0,  0x1,  0xc000,  0x0,  0xc000,  0x0,  30, \
+   1,  0x1,  0xb001,  0x0,  0xc000,  0x0,  32, \
+   2,  0x1,  0xb002,  0x0,  0xc000,  0x0,  32, \
+   3,  0x1,  0xb003,  0x0,  0xc000,  0x0,  32, \
+   4,  0x1,  0xb004,  0x0,  0xc000,  0x0,  32, \
+   5,  0x1,  0x8002,  0x0,  0xc000,  0x0,  30, \
+   6,  0x1,  0xb021,  0x0,  0x8002,  0x1,  32, \
+   7,  0x1,  0xb022,  0x0,  0x8002,  0x1,  32, \
+   8,  0x1,  0xb023,  0x0,  0x8002,  0x1,  32, \
+   9,  0x1,  0xb024,  0x0,  0x8002,  0x1,  32, \
+  10,  0x1,  0x8003,  0x0,  0x8003,  0x0,  30, \
+  11,  0x1,  0xb031,  0x0,  0x8003,  0x1,  32, \
+  12,  0x1,  0xb032,  0x0,  0x8003,  0x1,  32, \
+  13,  0x1,  0xb033,  0x0,  0x8003,  0x1,  32, \
+  14,  0x1,  0xb034,  0x0,  0x8003,  0x1,  32, \
+  15,  0x1,  0x8004,  0x0,  0x8004,  0x0,  30, \
+  16,  0x1,  0xb041,  0x0,  0x8004,  0x1,  32, \
+  17,  0x1,  0xb042,  0x0,  0x8004,  0x1,  32, \
+  18,  0x1,  0xb043,  0x0,  0x8004,  0x1,  32, \
+  19,  0x1,  0xb044,  0x0,  0x8004,  0x1,  32, \
+  20,  0x1,  0x8005,  0x0,  0x8005,  0x0,  30, \
+  21,  0x1,  0xb051,  0x0,  0x8005,  0x1,  32, \
+  22,  0x1,  0xb052,  0x0,  0x8005,  0x1,  32, \
+  23,  0x1,  0xb053,  0x0,  0x8005,  0x1,  32, \
+  24,  0x1,  0xb054,  0x0,  0x8005,  0x1,  32, \
+  25,  0x1,  0x0f11,  0x0,  0xc000,  0x1,  31, \
+  26,  0x1,  0x0f12,  0x0,  0xc000,  0x1,  31, \
+  27,  0x1,  0x0f13,  0x0,  0xc000,  0x1,  31, \
+  28,  0x1,  0x0f14,  0x0,  0xc000,  0x1,  31, \
+  29,  0x1,  0x0f21,  0x0,  0x8002,  0x1,  31, \
+  30,  0x1,  0x0f22,  0x0,  0x8002,  0x1,  31, \
+  31,  0x1,  0x0f23,  0x0,  0x8002,  0x1,  31, \
+  32,  0x1,  0x0f24,  0x0,  0x8002,  0x1,  31, \
+  33,  0x1,  0x0f41,  0x0,  0x8003,  0x1,  31, \
+  34,  0x1,  0x0f42,  0x0,  0x8003,  0x1,  31, \
+  35,  0x1,  0x0f43,  0x0,  0x8003,  0x1,  31, \
+  36,  0x1,  0x0f44,  0x0,  0x8003,  0x1,  31, \
+  37,  0x1,  0x0f51,  0x0,  0x8004,  0x1,  31, \
+  38,  0x1,  0x0f52,  0x0,  0x8004,  0x1,  31, \
+  39,  0x1,  0x0f53,  0x0,  0x8004,  0x1,  31, \
+  40,  0x1,  0x0f54,  0x0,  0x8004,  0x1,  31, \
+  41,  0x1,  0x0f61,  0x0,  0x8005,  0x1,  31, \
+  42,  0x1,  0x0f62,  0x0,  0x8005,  0x1,  31, \
+  43,  0x1,  0x0f63,  0x0,  0x8005,  0x1,  31, \
+  44,  0x1,  0x0f64,  0x0,  0x8005,  0x1,  31
+//
+// Trigger from the Triglog board for which event are jump by Calib, mapping and conv
+// For now only jumping work for GET4 data!!
+//TriggerRejection: Int_t  15
+TriggerRejection: Int_t  -1
+//==============================================================================
+// TriggerChannel | TriggerType | TriggerUnpack
+//------------------------------------------------------------------------------
+// TriggerChannel (as defined in the CTS)
+//   max. range: 0 - 15
+//------------------------------------------------------------------------------
+// TriggerType (as defined in the CTS)
+//   max. range: 0x0 - 0xf
+//   types generating a reference time signal: 0x0 - 0x7 ("physics triggers")
+//   types without a reference time signal:    0x8 - 0xf
+//   calibration (ToT stretching offset):      0xd
+//
+//   In case of a trigger concidence, only a uniquely assigned trigger type
+//   allows to unambigously identify the trigger which actually triggered
+//   the event.
+//   All 8 possible trigger signal inputs should have assigned a different
+//   trigger type from 0x0 to 0x7. To all disabled trigger channels, please
+//   assign a higher trigger type (0x8 - 0xf exclusive 0xd).
+//------------------------------------------------------------------------------
+// TriggerUnpack
+//    0x1: only consider events in which this trigger channel was asserted
+//         (if this unpack bit is set for several trigger channels, all of
+//          them must have been asserted for the event to be unpacked)
+//    0x0: do not care whether this trigger channel was asserted or not
+//         (if this unpack bit is not set for all trigger channels, each
+//          incoming event is unpacked)
+//==============================================================================
+NbCtsTrigChs: Int_t 16
+CtsTriggerMap: Int_t \
+   0,  0x1,  0x0, \
+   1,  0x1,  0x0, \
+   2,  0x1,  0x0, \
+   3,  0x1,  0x0, \
+   4,  0x1,  0x0, \
+   5,  0x1,  0x0, \
+   6,  0x1,  0x0, \
+   7,  0x1,  0x0, \
+   8,  0x0,  0x0, \
+   9,  0x1,  0x0, \
+  10,  0x2,  0x0, \
+  11,  0x3,  0x0, \
+  12,  0x4,  0x0, \
+  13,  0x5,  0x0, \
+  14,  0x6,  0x0, \
+  15,  0x7,  0x0
+//
+//==============================================================================
+// The unpacking algorithms support both double edge measurement methods
+// implemented for the TRB-TDC.
+// - 128-bit mode: separate edge detection in different TDC channels
+//                 1 TDC TIME and 1 TDC EPOCH word for both edges
+// -  96-bit mode: joint edge detection in the same TDC channel
+//                 1 TDC TIME word per edge and 1 joint TDC EPOCH word
+// To enable 96-bit mode unpacking, set 'TrbTdcBitMode' to '1'. Setting any
+// other value will result in 128-bit mode unpacking.
+//==============================================================================
+TrbTdcBitMode: Int_t 1
+###########################
diff --git a/macro/tof/beamtime/feb15/parUnpack_rates.txt b/macro/tof/beamtime/feb15/parUnpack_rates.txt
index b66f27bedb..3beb99d491 100644
--- a/macro/tof/beamtime/feb15/parUnpack_rates.txt
+++ b/macro/tof/beamtime/feb15/parUnpack_rates.txt
@@ -1,203 +1,203 @@
-##############################################################################
-# Class:   TMbsUnpackTofPar
-# Context: TestDefaultContext
-##############################################################################
-[TMbsUnpackTofPar]
-//----------------------------------------------------------------------------
-//******************************//
-//   Input selector             //
-//******************************//
-// GETEVT__FILE     1 <- LMD File
-// GETEVT__STREAM   2 <- Stream client
-// GETEVT__TRANS    3 <- Transport client
-// GETEVT__EVENT    4 <- Event client
-// GETEVT__REVSERV  5 <- Remote event client
-MbsSourceMode: Int_t 2
-// Switch ON/OFF the writing of data in the output root file of cbmroot analysis
-WriteDataInCbmOut: Int_t 1
-// Switch ON/OFF debug tests in VFTX unpacker
-VftxDebug: Int_t     0 
-// Number of possible VME boards in the MBS event
-MbsNbVmeBoards: Int_t 34
-// BoardTypes
-//      undef      =  0,  // unknown type, default value
-//      caenV1290  =  1,  // CAEN v1290A and CAEN v1290N VME boards based on HPTDC chips
-//      vftx       =  2,  // FPGA TDC of the VFTX family (E. Bayer dev.)
-//      triglog    = 10,  // VULOM TRIGLOG board
-//      scalormu   = 11,  // VULOM Scaler Or Multiplicity board 
-//      scalormubig= 12,  // VULOM Scaler Or Multiplicity board  32 channel version ? not used for now
-//      scaler2014 = 13,  // VULOM Scaler Or/And board used in the GSI April 2014 TOF beamtime
-//      triglogscal= 14,  // VULOM TRIGLOG board used as additional scaler board
-//      caenv965   = 20,  // CAEN v965A and CAEN v965N VME QDC boards
-//      lecroy1182 = 21,  // LECROY 1182 VME QDC/ADC board 
-//      vulqfwread = 22   // VULOM QFW board (Charge to Frequency Converter Readout) 
-// BoardIndex Active    Address AddMod     TokenA     TokenB Type
-MbsVmeMapping: Int_t \
-   0,   1, 0x03000000, 0x09, 0x74726c6f, 0x6f6c7274, 10, \
-   1,   0, 0x0F000000, 0x09, 0x74646331, 0x31636474,  1, \
-   2,   0, 0x11000000, 0x09, 0x74646332, 0x32636474,  1, \
-   3,   0, 0x12000000, 0x09, 0x74646333, 0x33636474,  1, \
-   4,   0, 0x14000000, 0x09, 0x74646334, 0x34636474,  1, \
-   5,   0, 0x15000000, 0x09, 0x74646335, 0x35636474,  1, \
-   6,   0, 0x17000000, 0x09, 0x74646336, 0x36636474,  1, \
-   7,   0, 0x18000000, 0x09, 0x74646337, 0x37636474,  1, \
-   8,   0, 0x19000000, 0x09, 0x74646338, 0x38636474,  1, \
-   9,   0, 0x03000000, 0x09, 0x66706731, 0x31677066,  2, \
-  10,   0, 0x04000000, 0x09, 0x66706732, 0x32677066,  2, \
-  11,   0, 0x05000000, 0x09, 0x66706733, 0x33677066,  2, \
-  12,   0, 0x06000000, 0x09, 0x66706734, 0x34677066,  2, \
-  13,   0, 0x07000000, 0x09, 0x66706735, 0x35677066,  2, \
-  14,   0, 0x08000000, 0x09, 0x66706736, 0x36677066,  2, \
-  15,   0, 0x09000000, 0x09, 0x66706737, 0x37677066,  2, \
-  16,   0, 0x0A000000, 0x09, 0x66706738, 0x38677066,  2, \
-  17,   0, 0x0B000000, 0x09, 0x66706739, 0x39677066,  2, \
-  18,   0, 0x0C000000, 0x09, 0x6670673a, 0x3a677066,  2, \
-  19,   0, 0x0D000000, 0x09, 0x6670673b, 0x3b677066,  2, \
-  20,   0, 0x0A000000, 0x09, 0x71646332, 0x32636471, 20, \
-  21,   0, 0x0B000000, 0x09, 0x71646333, 0x33636471, 20, \
-  22,   0, 0x00600000, 0x39, 0x31313832, 0x32383131, 21, \
-  23,   0, 0x00700000, 0x39, 0x31313833, 0x33383131, 21, \
-  24,   0, 0x07000000, 0x09, 0x71667731, 0x31776671, 22, \
-  25,   0, 0x12000000, 0x09, 0x73636f6d, 0x6d6f6373, 11, \
-  26,   0, 0x13000000, 0x09, 0x736f6d62, 0x626d6f73, 11, \
-  27,   1, 0x05000000, 0x09, 0x73636131, 0x31616373, 13, \
-  28,   1, 0x06000000, 0x09, 0x73636132, 0x32616373, 13, \
-  29,   1, 0x07000000, 0x09, 0x73636133, 0x33616373, 13, \
-  30,   1, 0x08000000, 0x09, 0x73636134, 0x34616373, 13, \
-  31,   1, 0x09000000, 0x09, 0x73636135, 0x35616373, 13, \
-  32,   0, 0x0A000000, 0x09, 0x73636136, 0x36616373, 13, \
-  33,   1, 0x0A000000, 0x09, 0x504d5453, 0x53544d50, 14
-// Number of possible Non-VME boards in the MBS event
-NbNonVmeBoards: Int_t 45
-//==============================================================================
-// General structure
-// BoardIndex Active RocIndx AddMod TokenA TokenB Type
-//------------------------------------------------------------------------------
-// BoardTypes
-//      0:  unknown -- default
-//      4:  get4    -- GET4 chips
-//      30: trbseb  -- subevent builder on central TRB-FPGA
-//      31: trbtdc  -- TDC on peripheral TRB-FPGA or FEE-TDC
-//      32: trbhub  -- hub on peripheral TRB-FPGA
-//==============================================================================
-// TRB specific structure
-// BoardIndex UnpackTdc FpgaAddr [niu] SebAddr FpgaInData FpgaType
-//------------------------------------------------------------------------------
-// BoardIndex:  consecutively numbered index (0...NbNonVmeBoards-1)
-// FpgaInData:  FPGA TRBnet endpoint sends data (0x1)
-// FpgaAddr:    FPGA TRBnet endpoint address
-// [niu]:       field not in use
-// SebAddr:     subevent builder's TRBnet endpoint address
-// UnpackTdc:   unpack data from this TDC (0x1)
-// FpgaType:    see BoardTypes above
-//==============================================================================
-//
-NonVmeMapping: Int_t \
-   0,  0x0,  0xc000,  0x0,  0xc000,  0x1,  30, \
-   1,  0x0,  0xb001,  0x0,  0xc000,  0x1,  32, \
-   2,  0x0,  0xb002,  0x0,  0xc000,  0x1,  32, \
-   3,  0x0,  0xb003,  0x0,  0xc000,  0x1,  32, \
-   4,  0x0,  0xb004,  0x0,  0xc000,  0x1,  32, \
-   5,  0x0,  0x8002,  0x0,  0xc000,  0x1,  30, \
-   6,  0x0,  0xb021,  0x0,  0x8002,  0x1,  32, \
-   7,  0x0,  0xb022,  0x0,  0x8002,  0x1,  32, \
-   8,  0x0,  0xb023,  0x0,  0x8002,  0x1,  32, \
-   9,  0x0,  0xb024,  0x0,  0x8002,  0x1,  32, \
-  10,  0x0,  0x8003,  0x0,  0x8003,  0x1,  30, \
-  11,  0x0,  0xb031,  0x0,  0x8003,  0x1,  32, \
-  12,  0x0,  0xb032,  0x0,  0x8003,  0x1,  32, \
-  13,  0x0,  0xb033,  0x0,  0x8003,  0x1,  32, \
-  14,  0x0,  0xb034,  0x0,  0x8003,  0x1,  32, \
-  15,  0x0,  0x8004,  0x0,  0x8004,  0x1,  30, \
-  16,  0x0,  0xb041,  0x0,  0x8004,  0x1,  32, \
-  17,  0x0,  0xb042,  0x0,  0x8004,  0x1,  32, \
-  18,  0x0,  0xb043,  0x0,  0x8004,  0x1,  32, \
-  19,  0x0,  0xb044,  0x0,  0x8004,  0x1,  32, \
-  20,  0x0,  0x8005,  0x0,  0x8005,  0x1,  30, \
-  21,  0x0,  0xb051,  0x0,  0x8005,  0x1,  32, \
-  22,  0x0,  0xb052,  0x0,  0x8005,  0x1,  32, \
-  23,  0x0,  0xb053,  0x0,  0x8005,  0x1,  32, \
-  24,  0x0,  0xb054,  0x0,  0x8005,  0x1,  32, \
-  25,  0x0,  0x0f11,  0x0,  0xc000,  0x1,  31, \
-  26,  0x0,  0x0f12,  0x0,  0xc000,  0x1,  31, \
-  27,  0x0,  0x0f13,  0x0,  0xc000,  0x1,  31, \
-  28,  0x0,  0x0f14,  0x0,  0xc000,  0x1,  31, \
-  29,  0x0,  0x0f21,  0x0,  0x8002,  0x1,  31, \
-  30,  0x0,  0x0f22,  0x0,  0x8002,  0x1,  31, \
-  31,  0x0,  0x0f23,  0x0,  0x8002,  0x1,  31, \
-  32,  0x0,  0x0f24,  0x0,  0x8002,  0x1,  31, \
-  33,  0x0,  0x0f41,  0x0,  0x8003,  0x1,  31, \
-  34,  0x0,  0x0f42,  0x0,  0x8003,  0x1,  31, \
-  35,  0x0,  0x0f43,  0x0,  0x8003,  0x1,  31, \
-  36,  0x0,  0x0f44,  0x0,  0x8003,  0x1,  31, \
-  37,  0x0,  0x0f51,  0x0,  0x8004,  0x1,  31, \
-  38,  0x0,  0x0f52,  0x0,  0x8004,  0x1,  31, \
-  39,  0x0,  0x0f53,  0x0,  0x8004,  0x1,  31, \
-  40,  0x0,  0x0f54,  0x0,  0x8004,  0x1,  31, \
-  41,  0x0,  0x0f61,  0x0,  0x8005,  0x1,  31, \
-  42,  0x0,  0x0f62,  0x0,  0x8005,  0x1,  31, \
-  43,  0x0,  0x0f63,  0x0,  0x8005,  0x1,  31, \
-  44,  0x0,  0x0f64,  0x0,  0x8005,  0x1,  31
-//
-// Trigger from the Triglog board for which event are jump by Calib, mapping and conv
-// For now only jumping work for GET4 data!!
-//TriggerRejection: Int_t  15
-TriggerRejection: Int_t  -1
-//==============================================================================
-// TriggerChannel | TriggerType | TriggerUnpack
-//------------------------------------------------------------------------------
-// TriggerChannel (as defined in the CTS)
-//   max. range: 0 - 15
-//------------------------------------------------------------------------------
-// TriggerType (as defined in the CTS)
-//   max. range: 0x0 - 0xf
-//   types generating a reference time signal: 0x0 - 0x7 ("physics triggers")
-//   types without a reference time signal:    0x8 - 0xf
-//   calibration (ToT stretching offset):      0xd
-//
-//   In case of a trigger concidence, only a uniquely assigned trigger type
-//   allows to unambigously identify the trigger which actually triggered
-//   the event.
-//   All 8 possible trigger signal inputs should have assigned a different
-//   trigger type from 0x0 to 0x7. To all disabled trigger channels, please
-//   assign a higher trigger type (0x8 - 0xf exclusive 0xd).
-//------------------------------------------------------------------------------
-// TriggerUnpack
-//    0x1: only consider events in which this trigger channel was asserted
-//         (if this unpack bit is set for several trigger channels, all of
-//          them must have been asserted for the event to be unpacked)
-//    0x0: do not care whether this trigger channel was asserted or not
-//         (if this unpack bit is not set for all trigger channels, each
-//          incoming event is unpacked)
-//==============================================================================
-NbCtsTrigChs: Int_t 16
-CtsTriggerMap: Int_t \
-   0,  0x1,  0x0, \
-   1,  0x1,  0x0, \
-   2,  0x1,  0x0, \
-   3,  0x1,  0x0, \
-   4,  0x1,  0x0, \
-   5,  0x1,  0x0, \
-   6,  0x1,  0x0, \
-   7,  0x1,  0x0, \
-   8,  0x0,  0x0, \
-   9,  0x1,  0x0, \
-  10,  0x2,  0x0, \
-  11,  0x3,  0x0, \
-  12,  0x4,  0x0, \
-  13,  0x5,  0x0, \
-  14,  0x6,  0x0, \
-  15,  0x7,  0x0
-//
-//==============================================================================
-// The unpacking algorithms support both double edge measurement methods
-// implemented for the TRB-TDC.
-// - 128-bit mode: separate edge detection in different TDC channels
-//                 1 TDC TIME and 1 TDC EPOCH word for both edges
-// -  96-bit mode: joint edge detection in the same TDC channel
-//                 1 TDC TIME word per edge and 1 joint TDC EPOCH word
-// To enable 96-bit mode unpacking, set 'TrbTdcBitMode' to '1'. Setting any
-// other value will result in 128-bit mode unpacking.
-//==============================================================================
-TrbTdcBitMode: Int_t 1
-###########################
+##############################################################################
+# Class:   TMbsUnpackTofPar
+# Context: TestDefaultContext
+##############################################################################
+[TMbsUnpackTofPar]
+//----------------------------------------------------------------------------
+//******************************//
+//   Input selector             //
+//******************************//
+// GETEVT__FILE     1 <- LMD File
+// GETEVT__STREAM   2 <- Stream client
+// GETEVT__TRANS    3 <- Transport client
+// GETEVT__EVENT    4 <- Event client
+// GETEVT__REVSERV  5 <- Remote event client
+MbsSourceMode: Int_t 2
+// Switch ON/OFF the writing of data in the output root file of cbmroot analysis
+WriteDataInCbmOut: Int_t 1
+// Switch ON/OFF debug tests in VFTX unpacker
+VftxDebug: Int_t     0 
+// Number of possible VME boards in the MBS event
+MbsNbVmeBoards: Int_t 34
+// BoardTypes
+//      undef      =  0,  // unknown type, default value
+//      caenV1290  =  1,  // CAEN v1290A and CAEN v1290N VME boards based on HPTDC chips
+//      vftx       =  2,  // FPGA TDC of the VFTX family (E. Bayer dev.)
+//      triglog    = 10,  // VULOM TRIGLOG board
+//      scalormu   = 11,  // VULOM Scaler Or Multiplicity board 
+//      scalormubig= 12,  // VULOM Scaler Or Multiplicity board  32 channel version ? not used for now
+//      scaler2014 = 13,  // VULOM Scaler Or/And board used in the GSI April 2014 TOF beamtime
+//      triglogscal= 14,  // VULOM TRIGLOG board used as additional scaler board
+//      caenv965   = 20,  // CAEN v965A and CAEN v965N VME QDC boards
+//      lecroy1182 = 21,  // LECROY 1182 VME QDC/ADC board 
+//      vulqfwread = 22   // VULOM QFW board (Charge to Frequency Converter Readout) 
+// BoardIndex Active    Address AddMod     TokenA     TokenB Type
+MbsVmeMapping: Int_t \
+   0,   1, 0x03000000, 0x09, 0x74726c6f, 0x6f6c7274, 10, \
+   1,   0, 0x0F000000, 0x09, 0x74646331, 0x31636474,  1, \
+   2,   0, 0x11000000, 0x09, 0x74646332, 0x32636474,  1, \
+   3,   0, 0x12000000, 0x09, 0x74646333, 0x33636474,  1, \
+   4,   0, 0x14000000, 0x09, 0x74646334, 0x34636474,  1, \
+   5,   0, 0x15000000, 0x09, 0x74646335, 0x35636474,  1, \
+   6,   0, 0x17000000, 0x09, 0x74646336, 0x36636474,  1, \
+   7,   0, 0x18000000, 0x09, 0x74646337, 0x37636474,  1, \
+   8,   0, 0x19000000, 0x09, 0x74646338, 0x38636474,  1, \
+   9,   0, 0x03000000, 0x09, 0x66706731, 0x31677066,  2, \
+  10,   0, 0x04000000, 0x09, 0x66706732, 0x32677066,  2, \
+  11,   0, 0x05000000, 0x09, 0x66706733, 0x33677066,  2, \
+  12,   0, 0x06000000, 0x09, 0x66706734, 0x34677066,  2, \
+  13,   0, 0x07000000, 0x09, 0x66706735, 0x35677066,  2, \
+  14,   0, 0x08000000, 0x09, 0x66706736, 0x36677066,  2, \
+  15,   0, 0x09000000, 0x09, 0x66706737, 0x37677066,  2, \
+  16,   0, 0x0A000000, 0x09, 0x66706738, 0x38677066,  2, \
+  17,   0, 0x0B000000, 0x09, 0x66706739, 0x39677066,  2, \
+  18,   0, 0x0C000000, 0x09, 0x6670673a, 0x3a677066,  2, \
+  19,   0, 0x0D000000, 0x09, 0x6670673b, 0x3b677066,  2, \
+  20,   0, 0x0A000000, 0x09, 0x71646332, 0x32636471, 20, \
+  21,   0, 0x0B000000, 0x09, 0x71646333, 0x33636471, 20, \
+  22,   0, 0x00600000, 0x39, 0x31313832, 0x32383131, 21, \
+  23,   0, 0x00700000, 0x39, 0x31313833, 0x33383131, 21, \
+  24,   0, 0x07000000, 0x09, 0x71667731, 0x31776671, 22, \
+  25,   0, 0x12000000, 0x09, 0x73636f6d, 0x6d6f6373, 11, \
+  26,   0, 0x13000000, 0x09, 0x736f6d62, 0x626d6f73, 11, \
+  27,   1, 0x05000000, 0x09, 0x73636131, 0x31616373, 13, \
+  28,   1, 0x06000000, 0x09, 0x73636132, 0x32616373, 13, \
+  29,   1, 0x07000000, 0x09, 0x73636133, 0x33616373, 13, \
+  30,   1, 0x08000000, 0x09, 0x73636134, 0x34616373, 13, \
+  31,   1, 0x09000000, 0x09, 0x73636135, 0x35616373, 13, \
+  32,   0, 0x0A000000, 0x09, 0x73636136, 0x36616373, 13, \
+  33,   1, 0x0A000000, 0x09, 0x504d5453, 0x53544d50, 14
+// Number of possible Non-VME boards in the MBS event
+NbNonVmeBoards: Int_t 45
+//==============================================================================
+// General structure
+// BoardIndex Active RocIndx AddMod TokenA TokenB Type
+//------------------------------------------------------------------------------
+// BoardTypes
+//      0:  unknown -- default
+//      4:  get4    -- GET4 chips
+//      30: trbseb  -- subevent builder on central TRB-FPGA
+//      31: trbtdc  -- TDC on peripheral TRB-FPGA or FEE-TDC
+//      32: trbhub  -- hub on peripheral TRB-FPGA
+//==============================================================================
+// TRB specific structure
+// BoardIndex UnpackTdc FpgaAddr [niu] SebAddr FpgaInData FpgaType
+//------------------------------------------------------------------------------
+// BoardIndex:  consecutively numbered index (0...NbNonVmeBoards-1)
+// FpgaInData:  FPGA TRBnet endpoint sends data (0x1)
+// FpgaAddr:    FPGA TRBnet endpoint address
+// [niu]:       field not in use
+// SebAddr:     subevent builder's TRBnet endpoint address
+// UnpackTdc:   unpack data from this TDC (0x1)
+// FpgaType:    see BoardTypes above
+//==============================================================================
+//
+NonVmeMapping: Int_t \
+   0,  0x0,  0xc000,  0x0,  0xc000,  0x1,  30, \
+   1,  0x0,  0xb001,  0x0,  0xc000,  0x1,  32, \
+   2,  0x0,  0xb002,  0x0,  0xc000,  0x1,  32, \
+   3,  0x0,  0xb003,  0x0,  0xc000,  0x1,  32, \
+   4,  0x0,  0xb004,  0x0,  0xc000,  0x1,  32, \
+   5,  0x0,  0x8002,  0x0,  0xc000,  0x1,  30, \
+   6,  0x0,  0xb021,  0x0,  0x8002,  0x1,  32, \
+   7,  0x0,  0xb022,  0x0,  0x8002,  0x1,  32, \
+   8,  0x0,  0xb023,  0x0,  0x8002,  0x1,  32, \
+   9,  0x0,  0xb024,  0x0,  0x8002,  0x1,  32, \
+  10,  0x0,  0x8003,  0x0,  0x8003,  0x1,  30, \
+  11,  0x0,  0xb031,  0x0,  0x8003,  0x1,  32, \
+  12,  0x0,  0xb032,  0x0,  0x8003,  0x1,  32, \
+  13,  0x0,  0xb033,  0x0,  0x8003,  0x1,  32, \
+  14,  0x0,  0xb034,  0x0,  0x8003,  0x1,  32, \
+  15,  0x0,  0x8004,  0x0,  0x8004,  0x1,  30, \
+  16,  0x0,  0xb041,  0x0,  0x8004,  0x1,  32, \
+  17,  0x0,  0xb042,  0x0,  0x8004,  0x1,  32, \
+  18,  0x0,  0xb043,  0x0,  0x8004,  0x1,  32, \
+  19,  0x0,  0xb044,  0x0,  0x8004,  0x1,  32, \
+  20,  0x0,  0x8005,  0x0,  0x8005,  0x1,  30, \
+  21,  0x0,  0xb051,  0x0,  0x8005,  0x1,  32, \
+  22,  0x0,  0xb052,  0x0,  0x8005,  0x1,  32, \
+  23,  0x0,  0xb053,  0x0,  0x8005,  0x1,  32, \
+  24,  0x0,  0xb054,  0x0,  0x8005,  0x1,  32, \
+  25,  0x0,  0x0f11,  0x0,  0xc000,  0x1,  31, \
+  26,  0x0,  0x0f12,  0x0,  0xc000,  0x1,  31, \
+  27,  0x0,  0x0f13,  0x0,  0xc000,  0x1,  31, \
+  28,  0x0,  0x0f14,  0x0,  0xc000,  0x1,  31, \
+  29,  0x0,  0x0f21,  0x0,  0x8002,  0x1,  31, \
+  30,  0x0,  0x0f22,  0x0,  0x8002,  0x1,  31, \
+  31,  0x0,  0x0f23,  0x0,  0x8002,  0x1,  31, \
+  32,  0x0,  0x0f24,  0x0,  0x8002,  0x1,  31, \
+  33,  0x0,  0x0f41,  0x0,  0x8003,  0x1,  31, \
+  34,  0x0,  0x0f42,  0x0,  0x8003,  0x1,  31, \
+  35,  0x0,  0x0f43,  0x0,  0x8003,  0x1,  31, \
+  36,  0x0,  0x0f44,  0x0,  0x8003,  0x1,  31, \
+  37,  0x0,  0x0f51,  0x0,  0x8004,  0x1,  31, \
+  38,  0x0,  0x0f52,  0x0,  0x8004,  0x1,  31, \
+  39,  0x0,  0x0f53,  0x0,  0x8004,  0x1,  31, \
+  40,  0x0,  0x0f54,  0x0,  0x8004,  0x1,  31, \
+  41,  0x0,  0x0f61,  0x0,  0x8005,  0x1,  31, \
+  42,  0x0,  0x0f62,  0x0,  0x8005,  0x1,  31, \
+  43,  0x0,  0x0f63,  0x0,  0x8005,  0x1,  31, \
+  44,  0x0,  0x0f64,  0x0,  0x8005,  0x1,  31
+//
+// Trigger from the Triglog board for which event are jump by Calib, mapping and conv
+// For now only jumping work for GET4 data!!
+//TriggerRejection: Int_t  15
+TriggerRejection: Int_t  -1
+//==============================================================================
+// TriggerChannel | TriggerType | TriggerUnpack
+//------------------------------------------------------------------------------
+// TriggerChannel (as defined in the CTS)
+//   max. range: 0 - 15
+//------------------------------------------------------------------------------
+// TriggerType (as defined in the CTS)
+//   max. range: 0x0 - 0xf
+//   types generating a reference time signal: 0x0 - 0x7 ("physics triggers")
+//   types without a reference time signal:    0x8 - 0xf
+//   calibration (ToT stretching offset):      0xd
+//
+//   In case of a trigger concidence, only a uniquely assigned trigger type
+//   allows to unambigously identify the trigger which actually triggered
+//   the event.
+//   All 8 possible trigger signal inputs should have assigned a different
+//   trigger type from 0x0 to 0x7. To all disabled trigger channels, please
+//   assign a higher trigger type (0x8 - 0xf exclusive 0xd).
+//------------------------------------------------------------------------------
+// TriggerUnpack
+//    0x1: only consider events in which this trigger channel was asserted
+//         (if this unpack bit is set for several trigger channels, all of
+//          them must have been asserted for the event to be unpacked)
+//    0x0: do not care whether this trigger channel was asserted or not
+//         (if this unpack bit is not set for all trigger channels, each
+//          incoming event is unpacked)
+//==============================================================================
+NbCtsTrigChs: Int_t 16
+CtsTriggerMap: Int_t \
+   0,  0x1,  0x0, \
+   1,  0x1,  0x0, \
+   2,  0x1,  0x0, \
+   3,  0x1,  0x0, \
+   4,  0x1,  0x0, \
+   5,  0x1,  0x0, \
+   6,  0x1,  0x0, \
+   7,  0x1,  0x0, \
+   8,  0x0,  0x0, \
+   9,  0x1,  0x0, \
+  10,  0x2,  0x0, \
+  11,  0x3,  0x0, \
+  12,  0x4,  0x0, \
+  13,  0x5,  0x0, \
+  14,  0x6,  0x0, \
+  15,  0x7,  0x0
+//
+//==============================================================================
+// The unpacking algorithms support both double edge measurement methods
+// implemented for the TRB-TDC.
+// - 128-bit mode: separate edge detection in different TDC channels
+//                 1 TDC TIME and 1 TDC EPOCH word for both edges
+// -  96-bit mode: joint edge detection in the same TDC channel
+//                 1 TDC TIME word per edge and 1 joint TDC EPOCH word
+// To enable 96-bit mode unpacking, set 'TrbTdcBitMode' to '1'. Setting any
+// other value will result in 128-bit mode unpacking.
+//==============================================================================
+TrbTdcBitMode: Int_t 1
+###########################
diff --git a/macro/tof/beamtime/lab16/parUnpCernNov2015.txt b/macro/tof/beamtime/lab16/parUnpCernNov2015.txt
index ab9edd5d4d..7415908970 100644
--- a/macro/tof/beamtime/lab16/parUnpCernNov2015.txt
+++ b/macro/tof/beamtime/lab16/parUnpCernNov2015.txt
@@ -1,217 +1,217 @@
-##############################################################################
-# Class:   TMbsUnpackTofPar
-# Context: TestDefaultContext
-##############################################################################
-[TMbsUnpackTofPar]
-//----------------------------------------------------------------------------
-//******************************//
-//   Input selector             //
-//******************************//
-// GETEVT__FILE     1 <- LMD File
-// GETEVT__STREAM   2 <- Stream client
-// GETEVT__TRANS    3 <- Transport client
-// GETEVT__EVENT    4 <- Event client
-// GETEVT__REVSERV  5 <- Remote event client
-MbsSourceMode: Int_t 2
-// Switch ON/OFF the writing of data in the output root file of cbmroot analysis
-WriteDataInCbmOut: Int_t 0
-// Switch ON/OFF debug tests in VFTX unpacker
-VftxDebug: Int_t     0 
-// Number of possible VME boards in the MBS event
-MbsNbVmeBoards: Int_t 31
-// BoardTypes
-//      undef      =  0,  // unknown type, default value
-//      caenV1290  =  1,  // CAEN v1290A and CAEN v1290N VME boards based on HPTDC chips
-//      vftx       =  2,  // FPGA TDC of the VFTX family (E. Bayer dev.)
-//      triglog    = 10,  // VULOM TRIGLOG board
-//      scalormu   = 11,  // VULOM Scaler Or Multiplicity board 
-//      scalormubig= 12,  // VULOM Scaler Or Multiplicity board  32 channel version ? not used for now
-//      scaler2014 = 13,  // VULOM Scaler Or/And board used in the GSI April 2014 TOF beamtime
-//      caenv965   = 20,  // CAEN v965A and CAEN v965N VME QDC boards
-//      lecroy1182 = 21,  // LECROY 1182 VME QDC/ADC board 
-//      vulqfwread = 22   // VULOM QFW board (Charge to Frequency Converter Readout) 
-// BoardIndex Active    Address AddMod     TokenA     TokenB Type
-MbsVmeMapping: Int_t \
-   0,   0, 0x14000000, 0x09, 0x74726c6f, 0x6f6c7274, 10, \
-   1,   0, 0x0F000000, 0x09, 0x74646331, 0x31636474,  1, \
-   2,   0, 0x11000000, 0x09, 0x74646332, 0x32636474,  1, \
-   3,   0, 0x12000000, 0x09, 0x74646333, 0x33636474,  1, \
-   4,   0, 0x14000000, 0x09, 0x74646334, 0x34636474,  1, \
-   5,   0, 0x15000000, 0x09, 0x74646335, 0x35636474,  1, \
-   6,   0, 0x17000000, 0x09, 0x74646336, 0x36636474,  1, \
-   7,   0, 0x18000000, 0x09, 0x74646337, 0x37636474,  1, \
-   8,   0, 0x19000000, 0x09, 0x74646338, 0x38636474,  1, \
-   9,   0, 0x03000000, 0x09, 0x66706731, 0x31677066,  2, \
-  10,   0, 0x04000000, 0x09, 0x66706732, 0x32677066,  2, \
-  11,   0, 0x05000000, 0x09, 0x66706733, 0x33677066,  2, \
-  12,   0, 0x06000000, 0x09, 0x66706734, 0x34677066,  2, \
-  13,   0, 0x07000000, 0x09, 0x66706735, 0x35677066,  2, \
-  14,   0, 0x08000000, 0x09, 0x66706736, 0x36677066,  2, \
-  15,   0, 0x09000000, 0x09, 0x66706737, 0x37677066,  2, \
-  16,   0, 0x0A000000, 0x09, 0x66706738, 0x38677066,  2, \
-  17,   0, 0x0B000000, 0x09, 0x66706739, 0x39677066,  2, \
-  18,   0, 0x0C000000, 0x09, 0x6670673a, 0x3a677066,  2, \
-  19,   0, 0x0D000000, 0x09, 0x6670673b, 0x3b677066,  2, \
-  20,   0, 0x0A000000, 0x09, 0x71646332, 0x32636471, 20, \
-  21,   0, 0x0B000000, 0x09, 0x71646333, 0x33636471, 20, \
-  22,   0, 0x00600000, 0x39, 0x31313832, 0x32383131, 21, \
-  23,   0, 0x00700000, 0x39, 0x31313833, 0x33383131, 21, \
-  24,   0, 0x07000000, 0x09, 0x71667731, 0x31776671, 22, \
-  25,   0, 0x12000000, 0x09, 0x73636f6d, 0x6d6f6373, 11, \
-  26,   0, 0x13000000, 0x09, 0x736f6d62, 0x626d6f73, 11, \
-  27,   0, 0x06000000, 0x09, 0x73636131, 0x31616373, 13, \
-  28,   0, 0x08000000, 0x09, 0x73636132, 0x32616373, 13, \
-  29,   0, 0x10000000, 0x09, 0x73636133, 0x33616373, 13, \
-  30,   0, 0x12000000, 0x09, 0x73636134, 0x34616373, 13
-// Number of possible Non-VME boards in the MBS event
-NbNonVmeBoards: Int_t 63
-//==============================================================================
-// General structure
-// BoardIndex Active RocIndx AddMod TokenA TokenB Type
-//------------------------------------------------------------------------------
-// BoardTypes
-//      0:  unknown -- default
-//      4:  get4    -- GET4 chips
-//      30: trbseb  -- subevent builder on central TRB-FPGA
-//      31: trbtdc  -- TDC on peripheral TRB-FPGA or FEE-TDC
-//      32: trbhub  -- hub on peripheral TRB-FPGA
-//==============================================================================
-// TRB specific structure
-// BoardIndex UnpackTdc FpgaAddr [niu] SebAddr FpgaInData FpgaType
-//------------------------------------------------------------------------------
-// BoardIndex:  consecutively numbered index (0...NbNonVmeBoards-1)
-// FpgaInData:  FPGA TRBnet endpoint sends data (0x1)
-// FpgaAddr:    FPGA TRBnet endpoint address
-// [niu]:       field not in use
-// SebAddr:     subevent builder's TRBnet endpoint address
-// UnpackTdc:   unpack data from this TDC (0x1)
-// FpgaType:    see BoardTypes above
-//==============================================================================
-//
-NonVmeMapping: Int_t \
-   0,  0x1,  0xc000,  0x0,  0xc000,  0x0,  30, \
-   1,  0x1,  0xb001,  0x0,  0xc000,  0x0,  32, \
-   2,  0x1,  0xb002,  0x0,  0xc000,  0x0,  32, \
-   3,  0x1,  0xb003,  0x0,  0xc000,  0x0,  32, \
-   4,  0x1,  0xb004,  0x0,  0xc000,  0x0,  32, \
-   5,  0x1,  0x8001,  0x0,  0x8001,  0x0,  30, \
-   6,  0x1,  0xb011,  0x0,  0x8001,  0x1,  32, \
-   7,  0x1,  0xb012,  0x0,  0x8001,  0x1,  32, \
-   8,  0x1,  0xb013,  0x0,  0x8001,  0x1,  32, \
-   9,  0x1,  0xb014,  0x0,  0x8001,  0x1,  32, \
-  10,  0x1,  0x8002,  0x0,  0x8002,  0x0,  30, \
-  11,  0x1,  0xb021,  0x0,  0x8002,  0x1,  32, \
-  12,  0x1,  0xb022,  0x0,  0x8002,  0x1,  32, \
-  13,  0x1,  0xb023,  0x0,  0x8002,  0x1,  32, \
-  14,  0x1,  0xb024,  0x0,  0x8002,  0x1,  32, \
-  15,  0x1,  0x8003,  0x0,  0x8003,  0x0,  30, \
-  16,  0x1,  0xb031,  0x0,  0x8003,  0x1,  32, \
-  17,  0x1,  0xb032,  0x0,  0x8003,  0x1,  32, \
-  18,  0x1,  0xb033,  0x0,  0x8003,  0x1,  32, \
-  19,  0x1,  0xb034,  0x0,  0x8003,  0x1,  32, \
-  20,  0x1,  0x8004,  0x0,  0x8004,  0x0,  30, \
-  21,  0x1,  0xb041,  0x0,  0x8004,  0x1,  32, \
-  22,  0x1,  0xb042,  0x0,  0x8004,  0x1,  32, \
-  23,  0x1,  0xb043,  0x0,  0x8004,  0x1,  32, \
-  24,  0x1,  0xb044,  0x0,  0x8004,  0x1,  32, \
-  25,  0x1,  0x0129,  0x0,  0x8002,  0x1,  31, \
-  26,  0x1,  0x0130,  0x0,  0x8002,  0x1,  31, \
-  27,  0x1,  0x0139,  0x0,  0xc000,  0x1,  31, \
-  28,  0x1,  0x0140,  0x0,  0xc000,  0x1,  31, \
-  29,  0x1,  0x0217,  0x0,  0x8004,  0x1,  31, \
-  30,  0x1,  0x0318,  0x0,  0x8004,  0x1,  31, \
-  31,  0x1,  0x0319,  0x0,  0x8004,  0x1,  31, \
-  32,  0x1,  0x0420,  0x0,  0x8004,  0x1,  31, \
-  33,  0x1,  0x0541,  0x0,  0xc000,  0x1,  31, \
-  34,  0x1,  0x0542,  0x0,  0x8003,  0x1,  31, \
-  35,  0x1,  0x0543,  0x0,  0x8003,  0x1,  31, \
-  36,  0x1,  0x0544,  0x0,  0x8003,  0x1,  31, \
-  37,  0x1,  0x0621,  0x0,  0x8001,  0x1,  31, \
-  38,  0x1,  0x0622,  0x0,  0x8001,  0x1,  31, \
-  39,  0x1,  0x0623,  0x0,  0x8001,  0x1,  31, \
-  40,  0x1,  0x0624,  0x0,  0x8001,  0x1,  31, \
-  41,  0x1,  0x0731,  0x0,  0xc000,  0x1,  31, \
-  42,  0x1,  0x0732,  0x0,  0xc000,  0x1,  31, \
-  43,  0x1,  0x0733,  0x0,  0xc000,  0x1,  31, \
-  44,  0x1,  0x0734,  0x0,  0xc000,  0x1,  31, \
-  45,  0x1,  0x0735,  0x0,  0xc000,  0x1,  31, \
-  46,  0x1,  0x0736,  0x0,  0xc000,  0x1,  31, \
-  47,  0x1,  0x0737,  0x0,  0xc000,  0x1,  31, \
-  48,  0x1,  0x0738,  0x0,  0xc000,  0x1,  31, \
-  49,  0x1,  0x0826,  0x0,  0x8001,  0x1,  31, \
-  50,  0x1,  0x0828,  0x0,  0x8001,  0x1,  31, \
-  51,  0x1,  0x0901,  0x0,  0x8002,  0x1,  31, \
-  52,  0x1,  0x0902,  0x0,  0x8002,  0x1,  31, \
-  53,  0x1,  0x0903,  0x0,  0x8002,  0x1,  31, \
-  54,  0x1,  0x0904,  0x0,  0x8002,  0x1,  31, \
-  55,  0x1,  0x0905,  0x0,  0x8003,  0x1,  31, \
-  56,  0x1,  0x0906,  0x0,  0x8003,  0x1,  31, \
-  57,  0x1,  0x0907,  0x0,  0x8003,  0x1,  31, \
-  58,  0x1,  0x0908,  0x0,  0x8003,  0x1,  31, \
-  59,  0x1,  0x0909,  0x0,  0x8004,  0x1,  31, \
-  60,  0x1,  0x0910,  0x0,  0x8004,  0x1,  31, \
-  61,  0x1,  0x0911,  0x0,  0x8004,  0x1,  31, \
-  62,  0x1,  0x0912,  0x0,  0x8004,  0x1,  31
-//
-// Trigger from the Triglog board for which event are jump by Calib, mapping and conv
-// For now only jumping work for GET4 data!!
-//TriggerRejection: Int_t  15
-TriggerRejection: Int_t  -1
-//==============================================================================
-// TriggerChannel | TriggerType | TriggerUnpack
-//------------------------------------------------------------------------------
-// TriggerChannel (as defined in the CTS)
-//   max. range: 0 - 15
-//------------------------------------------------------------------------------
-// TriggerType (as defined in the CTS)
-//   max. range: 0x0 - 0xf
-//   types generating a reference time signal: 0x0 - 0x7 ("physics triggers")
-//   types without a reference time signal:    0x8 - 0xf
-//   calibration (ToT stretching offset):      0xd
-//
-//   In case of a trigger concidence, only a uniquely assigned trigger type
-//   allows to unambigously identify the trigger which actually triggered
-//   the event.
-//   All 8 possible trigger signal inputs should have assigned a different
-//   trigger type from 0x0 to 0x7. To all disabled trigger channels, please
-//   assign a higher trigger type (0x8 - 0xf exclusive 0xd).
-//------------------------------------------------------------------------------
-// TriggerUnpack
-//    0x1: only consider events in which this trigger channel was asserted
-//         (if this unpack bit is set for several trigger channels, all of
-//          them must have been asserted for the event to be unpacked)
-//    0x0: do not care whether this trigger channel was asserted or not
-//         (if this unpack bit is not set for all trigger channels, each
-//          incoming event is unpacked)
-//==============================================================================
-NbCtsTrigChs: Int_t 16
-CtsTriggerMap: Int_t \
-   0,  0x1,  0x0, \
-   1,  0x1,  0x0, \
-   2,  0x1,  0x0, \
-   3,  0x1,  0x0, \
-   4,  0x0,  0x1, \
-   5,  0x1,  0x0, \
-   6,  0x2,  0x0, \
-   7,  0x3,  0x0, \
-   8,  0x4,  0x0, \
-   9,  0x5,  0x0, \
-  10,  0x6,  0x0, \
-  11,  0x7,  0x0, \
-  12,  0x1,  0x0, \
-  13,  0x1,  0x0, \
-  14,  0x1,  0x0, \
-  15,  0x1,  0x0
-//
-//==============================================================================
-// The unpacking algorithms support both double edge measurement methods
-// implemented for the TRB-TDC.
-// - 128-bit mode: separate edge detection in different TDC channels
-//                 1 TDC TIME and 1 TDC EPOCH word for both edges
-// -  96-bit mode: joint edge detection in the same TDC channel
-//                 1 TDC TIME word per edge and 1 joint TDC EPOCH word
-// To enable 96-bit mode unpacking, set 'TrbTdcBitMode' to '1'. Setting any
-// other value will result in 128-bit mode unpacking.
-//==============================================================================
-TrbTdcBitMode: Int_t 0
-###########################
+##############################################################################
+# Class:   TMbsUnpackTofPar
+# Context: TestDefaultContext
+##############################################################################
+[TMbsUnpackTofPar]
+//----------------------------------------------------------------------------
+//******************************//
+//   Input selector             //
+//******************************//
+// GETEVT__FILE     1 <- LMD File
+// GETEVT__STREAM   2 <- Stream client
+// GETEVT__TRANS    3 <- Transport client
+// GETEVT__EVENT    4 <- Event client
+// GETEVT__REVSERV  5 <- Remote event client
+MbsSourceMode: Int_t 2
+// Switch ON/OFF the writing of data in the output root file of cbmroot analysis
+WriteDataInCbmOut: Int_t 0
+// Switch ON/OFF debug tests in VFTX unpacker
+VftxDebug: Int_t     0 
+// Number of possible VME boards in the MBS event
+MbsNbVmeBoards: Int_t 31
+// BoardTypes
+//      undef      =  0,  // unknown type, default value
+//      caenV1290  =  1,  // CAEN v1290A and CAEN v1290N VME boards based on HPTDC chips
+//      vftx       =  2,  // FPGA TDC of the VFTX family (E. Bayer dev.)
+//      triglog    = 10,  // VULOM TRIGLOG board
+//      scalormu   = 11,  // VULOM Scaler Or Multiplicity board 
+//      scalormubig= 12,  // VULOM Scaler Or Multiplicity board  32 channel version ? not used for now
+//      scaler2014 = 13,  // VULOM Scaler Or/And board used in the GSI April 2014 TOF beamtime
+//      caenv965   = 20,  // CAEN v965A and CAEN v965N VME QDC boards
+//      lecroy1182 = 21,  // LECROY 1182 VME QDC/ADC board 
+//      vulqfwread = 22   // VULOM QFW board (Charge to Frequency Converter Readout) 
+// BoardIndex Active    Address AddMod     TokenA     TokenB Type
+MbsVmeMapping: Int_t \
+   0,   0, 0x14000000, 0x09, 0x74726c6f, 0x6f6c7274, 10, \
+   1,   0, 0x0F000000, 0x09, 0x74646331, 0x31636474,  1, \
+   2,   0, 0x11000000, 0x09, 0x74646332, 0x32636474,  1, \
+   3,   0, 0x12000000, 0x09, 0x74646333, 0x33636474,  1, \
+   4,   0, 0x14000000, 0x09, 0x74646334, 0x34636474,  1, \
+   5,   0, 0x15000000, 0x09, 0x74646335, 0x35636474,  1, \
+   6,   0, 0x17000000, 0x09, 0x74646336, 0x36636474,  1, \
+   7,   0, 0x18000000, 0x09, 0x74646337, 0x37636474,  1, \
+   8,   0, 0x19000000, 0x09, 0x74646338, 0x38636474,  1, \
+   9,   0, 0x03000000, 0x09, 0x66706731, 0x31677066,  2, \
+  10,   0, 0x04000000, 0x09, 0x66706732, 0x32677066,  2, \
+  11,   0, 0x05000000, 0x09, 0x66706733, 0x33677066,  2, \
+  12,   0, 0x06000000, 0x09, 0x66706734, 0x34677066,  2, \
+  13,   0, 0x07000000, 0x09, 0x66706735, 0x35677066,  2, \
+  14,   0, 0x08000000, 0x09, 0x66706736, 0x36677066,  2, \
+  15,   0, 0x09000000, 0x09, 0x66706737, 0x37677066,  2, \
+  16,   0, 0x0A000000, 0x09, 0x66706738, 0x38677066,  2, \
+  17,   0, 0x0B000000, 0x09, 0x66706739, 0x39677066,  2, \
+  18,   0, 0x0C000000, 0x09, 0x6670673a, 0x3a677066,  2, \
+  19,   0, 0x0D000000, 0x09, 0x6670673b, 0x3b677066,  2, \
+  20,   0, 0x0A000000, 0x09, 0x71646332, 0x32636471, 20, \
+  21,   0, 0x0B000000, 0x09, 0x71646333, 0x33636471, 20, \
+  22,   0, 0x00600000, 0x39, 0x31313832, 0x32383131, 21, \
+  23,   0, 0x00700000, 0x39, 0x31313833, 0x33383131, 21, \
+  24,   0, 0x07000000, 0x09, 0x71667731, 0x31776671, 22, \
+  25,   0, 0x12000000, 0x09, 0x73636f6d, 0x6d6f6373, 11, \
+  26,   0, 0x13000000, 0x09, 0x736f6d62, 0x626d6f73, 11, \
+  27,   0, 0x06000000, 0x09, 0x73636131, 0x31616373, 13, \
+  28,   0, 0x08000000, 0x09, 0x73636132, 0x32616373, 13, \
+  29,   0, 0x10000000, 0x09, 0x73636133, 0x33616373, 13, \
+  30,   0, 0x12000000, 0x09, 0x73636134, 0x34616373, 13
+// Number of possible Non-VME boards in the MBS event
+NbNonVmeBoards: Int_t 63
+//==============================================================================
+// General structure
+// BoardIndex Active RocIndx AddMod TokenA TokenB Type
+//------------------------------------------------------------------------------
+// BoardTypes
+//      0:  unknown -- default
+//      4:  get4    -- GET4 chips
+//      30: trbseb  -- subevent builder on central TRB-FPGA
+//      31: trbtdc  -- TDC on peripheral TRB-FPGA or FEE-TDC
+//      32: trbhub  -- hub on peripheral TRB-FPGA
+//==============================================================================
+// TRB specific structure
+// BoardIndex UnpackTdc FpgaAddr [niu] SebAddr FpgaInData FpgaType
+//------------------------------------------------------------------------------
+// BoardIndex:  consecutively numbered index (0...NbNonVmeBoards-1)
+// FpgaInData:  FPGA TRBnet endpoint sends data (0x1)
+// FpgaAddr:    FPGA TRBnet endpoint address
+// [niu]:       field not in use
+// SebAddr:     subevent builder's TRBnet endpoint address
+// UnpackTdc:   unpack data from this TDC (0x1)
+// FpgaType:    see BoardTypes above
+//==============================================================================
+//
+NonVmeMapping: Int_t \
+   0,  0x1,  0xc000,  0x0,  0xc000,  0x0,  30, \
+   1,  0x1,  0xb001,  0x0,  0xc000,  0x0,  32, \
+   2,  0x1,  0xb002,  0x0,  0xc000,  0x0,  32, \
+   3,  0x1,  0xb003,  0x0,  0xc000,  0x0,  32, \
+   4,  0x1,  0xb004,  0x0,  0xc000,  0x0,  32, \
+   5,  0x1,  0x8001,  0x0,  0x8001,  0x0,  30, \
+   6,  0x1,  0xb011,  0x0,  0x8001,  0x1,  32, \
+   7,  0x1,  0xb012,  0x0,  0x8001,  0x1,  32, \
+   8,  0x1,  0xb013,  0x0,  0x8001,  0x1,  32, \
+   9,  0x1,  0xb014,  0x0,  0x8001,  0x1,  32, \
+  10,  0x1,  0x8002,  0x0,  0x8002,  0x0,  30, \
+  11,  0x1,  0xb021,  0x0,  0x8002,  0x1,  32, \
+  12,  0x1,  0xb022,  0x0,  0x8002,  0x1,  32, \
+  13,  0x1,  0xb023,  0x0,  0x8002,  0x1,  32, \
+  14,  0x1,  0xb024,  0x0,  0x8002,  0x1,  32, \
+  15,  0x1,  0x8003,  0x0,  0x8003,  0x0,  30, \
+  16,  0x1,  0xb031,  0x0,  0x8003,  0x1,  32, \
+  17,  0x1,  0xb032,  0x0,  0x8003,  0x1,  32, \
+  18,  0x1,  0xb033,  0x0,  0x8003,  0x1,  32, \
+  19,  0x1,  0xb034,  0x0,  0x8003,  0x1,  32, \
+  20,  0x1,  0x8004,  0x0,  0x8004,  0x0,  30, \
+  21,  0x1,  0xb041,  0x0,  0x8004,  0x1,  32, \
+  22,  0x1,  0xb042,  0x0,  0x8004,  0x1,  32, \
+  23,  0x1,  0xb043,  0x0,  0x8004,  0x1,  32, \
+  24,  0x1,  0xb044,  0x0,  0x8004,  0x1,  32, \
+  25,  0x1,  0x0129,  0x0,  0x8002,  0x1,  31, \
+  26,  0x1,  0x0130,  0x0,  0x8002,  0x1,  31, \
+  27,  0x1,  0x0139,  0x0,  0xc000,  0x1,  31, \
+  28,  0x1,  0x0140,  0x0,  0xc000,  0x1,  31, \
+  29,  0x1,  0x0217,  0x0,  0x8004,  0x1,  31, \
+  30,  0x1,  0x0318,  0x0,  0x8004,  0x1,  31, \
+  31,  0x1,  0x0319,  0x0,  0x8004,  0x1,  31, \
+  32,  0x1,  0x0420,  0x0,  0x8004,  0x1,  31, \
+  33,  0x1,  0x0541,  0x0,  0xc000,  0x1,  31, \
+  34,  0x1,  0x0542,  0x0,  0x8003,  0x1,  31, \
+  35,  0x1,  0x0543,  0x0,  0x8003,  0x1,  31, \
+  36,  0x1,  0x0544,  0x0,  0x8003,  0x1,  31, \
+  37,  0x1,  0x0621,  0x0,  0x8001,  0x1,  31, \
+  38,  0x1,  0x0622,  0x0,  0x8001,  0x1,  31, \
+  39,  0x1,  0x0623,  0x0,  0x8001,  0x1,  31, \
+  40,  0x1,  0x0624,  0x0,  0x8001,  0x1,  31, \
+  41,  0x1,  0x0731,  0x0,  0xc000,  0x1,  31, \
+  42,  0x1,  0x0732,  0x0,  0xc000,  0x1,  31, \
+  43,  0x1,  0x0733,  0x0,  0xc000,  0x1,  31, \
+  44,  0x1,  0x0734,  0x0,  0xc000,  0x1,  31, \
+  45,  0x1,  0x0735,  0x0,  0xc000,  0x1,  31, \
+  46,  0x1,  0x0736,  0x0,  0xc000,  0x1,  31, \
+  47,  0x1,  0x0737,  0x0,  0xc000,  0x1,  31, \
+  48,  0x1,  0x0738,  0x0,  0xc000,  0x1,  31, \
+  49,  0x1,  0x0826,  0x0,  0x8001,  0x1,  31, \
+  50,  0x1,  0x0828,  0x0,  0x8001,  0x1,  31, \
+  51,  0x1,  0x0901,  0x0,  0x8002,  0x1,  31, \
+  52,  0x1,  0x0902,  0x0,  0x8002,  0x1,  31, \
+  53,  0x1,  0x0903,  0x0,  0x8002,  0x1,  31, \
+  54,  0x1,  0x0904,  0x0,  0x8002,  0x1,  31, \
+  55,  0x1,  0x0905,  0x0,  0x8003,  0x1,  31, \
+  56,  0x1,  0x0906,  0x0,  0x8003,  0x1,  31, \
+  57,  0x1,  0x0907,  0x0,  0x8003,  0x1,  31, \
+  58,  0x1,  0x0908,  0x0,  0x8003,  0x1,  31, \
+  59,  0x1,  0x0909,  0x0,  0x8004,  0x1,  31, \
+  60,  0x1,  0x0910,  0x0,  0x8004,  0x1,  31, \
+  61,  0x1,  0x0911,  0x0,  0x8004,  0x1,  31, \
+  62,  0x1,  0x0912,  0x0,  0x8004,  0x1,  31
+//
+// Trigger from the Triglog board for which event are jump by Calib, mapping and conv
+// For now only jumping work for GET4 data!!
+//TriggerRejection: Int_t  15
+TriggerRejection: Int_t  -1
+//==============================================================================
+// TriggerChannel | TriggerType | TriggerUnpack
+//------------------------------------------------------------------------------
+// TriggerChannel (as defined in the CTS)
+//   max. range: 0 - 15
+//------------------------------------------------------------------------------
+// TriggerType (as defined in the CTS)
+//   max. range: 0x0 - 0xf
+//   types generating a reference time signal: 0x0 - 0x7 ("physics triggers")
+//   types without a reference time signal:    0x8 - 0xf
+//   calibration (ToT stretching offset):      0xd
+//
+//   In case of a trigger concidence, only a uniquely assigned trigger type
+//   allows to unambigously identify the trigger which actually triggered
+//   the event.
+//   All 8 possible trigger signal inputs should have assigned a different
+//   trigger type from 0x0 to 0x7. To all disabled trigger channels, please
+//   assign a higher trigger type (0x8 - 0xf exclusive 0xd).
+//------------------------------------------------------------------------------
+// TriggerUnpack
+//    0x1: only consider events in which this trigger channel was asserted
+//         (if this unpack bit is set for several trigger channels, all of
+//          them must have been asserted for the event to be unpacked)
+//    0x0: do not care whether this trigger channel was asserted or not
+//         (if this unpack bit is not set for all trigger channels, each
+//          incoming event is unpacked)
+//==============================================================================
+NbCtsTrigChs: Int_t 16
+CtsTriggerMap: Int_t \
+   0,  0x1,  0x0, \
+   1,  0x1,  0x0, \
+   2,  0x1,  0x0, \
+   3,  0x1,  0x0, \
+   4,  0x0,  0x1, \
+   5,  0x1,  0x0, \
+   6,  0x2,  0x0, \
+   7,  0x3,  0x0, \
+   8,  0x4,  0x0, \
+   9,  0x5,  0x0, \
+  10,  0x6,  0x0, \
+  11,  0x7,  0x0, \
+  12,  0x1,  0x0, \
+  13,  0x1,  0x0, \
+  14,  0x1,  0x0, \
+  15,  0x1,  0x0
+//
+//==============================================================================
+// The unpacking algorithms support both double edge measurement methods
+// implemented for the TRB-TDC.
+// - 128-bit mode: separate edge detection in different TDC channels
+//                 1 TDC TIME and 1 TDC EPOCH word for both edges
+// -  96-bit mode: joint edge detection in the same TDC channel
+//                 1 TDC TIME word per edge and 1 joint TDC EPOCH word
+// To enable 96-bit mode unpacking, set 'TrbTdcBitMode' to '1'. Setting any
+// other value will result in 128-bit mode unpacking.
+//==============================================================================
+TrbTdcBitMode: Int_t 0
+###########################
diff --git a/macro/tof/beamtime/lab16/parUnpack_basic.txt b/macro/tof/beamtime/lab16/parUnpack_basic.txt
index 5f1409909c..385783a240 100644
--- a/macro/tof/beamtime/lab16/parUnpack_basic.txt
+++ b/macro/tof/beamtime/lab16/parUnpack_basic.txt
@@ -1,177 +1,177 @@
-##############################################################################
-# Class:   TMbsUnpackTofPar
-# Context: TestDefaultContext
-##############################################################################
-[TMbsUnpackTofPar]
-//----------------------------------------------------------------------------
-//******************************//
-//   Input selector             //
-//******************************//
-// GETEVT__FILE     1 <- LMD File
-// GETEVT__STREAM   2 <- Stream client
-// GETEVT__TRANS    3 <- Transport client
-// GETEVT__EVENT    4 <- Event client
-// GETEVT__REVSERV  5 <- Remote event client
-MbsSourceMode: Int_t 1
-// Switch ON/OFF the writing of data in the output root file of cbmroot analysis
-WriteDataInCbmOut: Int_t 1
-// Switch ON/OFF debug tests in VFTX unpacker
-VftxDebug: Int_t     0 
-// Number of possible VME boards in the MBS event
-MbsNbVmeBoards: Int_t 31
-// BoardTypes
-//      undef      =  0,  // unknown type, default value
-//      caenV1290  =  1,  // CAEN v1290A and CAEN v1290N VME boards based on HPTDC chips
-//      vftx       =  2,  // FPGA TDC of the VFTX family (E. Bayer dev.)
-//      triglog    = 10,  // VULOM TRIGLOG board
-//      scalormu   = 11,  // VULOM Scaler Or Multiplicity board 
-//      scalormubig= 12,  // VULOM Scaler Or Multiplicity board  32 channel version ? not used for now
-//      scaler2014 = 13,  // VULOM Scaler Or/And board used in the GSI April 2014 TOF beamtime
-//      caenv965   = 20,  // CAEN v965A and CAEN v965N VME QDC boards
-//      lecroy1182 = 21,  // LECROY 1182 VME QDC/ADC board 
-//      vulqfwread = 22   // VULOM QFW board (Charge to Frequency Converter Readout) 
-// BoardIndex Active    Address AddMod     TokenA     TokenB Type
-MbsVmeMapping: Int_t \
-   0,   0, 0x14000000, 0x09, 0x74726c6f, 0x6f6c7274, 10, \
-   1,   0, 0x0F000000, 0x09, 0x74646331, 0x31636474,  1, \
-   2,   0, 0x11000000, 0x09, 0x74646332, 0x32636474,  1, \
-   3,   0, 0x12000000, 0x09, 0x74646333, 0x33636474,  1, \
-   4,   0, 0x14000000, 0x09, 0x74646334, 0x34636474,  1, \
-   5,   0, 0x15000000, 0x09, 0x74646335, 0x35636474,  1, \
-   6,   0, 0x17000000, 0x09, 0x74646336, 0x36636474,  1, \
-   7,   0, 0x18000000, 0x09, 0x74646337, 0x37636474,  1, \
-   8,   0, 0x19000000, 0x09, 0x74646338, 0x38636474,  1, \
-   9,   0, 0x03000000, 0x09, 0x66706731, 0x31677066,  2, \
-  10,   0, 0x04000000, 0x09, 0x66706732, 0x32677066,  2, \
-  11,   0, 0x05000000, 0x09, 0x66706733, 0x33677066,  2, \
-  12,   0, 0x06000000, 0x09, 0x66706734, 0x34677066,  2, \
-  13,   0, 0x07000000, 0x09, 0x66706735, 0x35677066,  2, \
-  14,   0, 0x08000000, 0x09, 0x66706736, 0x36677066,  2, \
-  15,   0, 0x09000000, 0x09, 0x66706737, 0x37677066,  2, \
-  16,   0, 0x0A000000, 0x09, 0x66706738, 0x38677066,  2, \
-  17,   0, 0x0B000000, 0x09, 0x66706739, 0x39677066,  2, \
-  18,   0, 0x0C000000, 0x09, 0x6670673a, 0x3a677066,  2, \
-  19,   0, 0x0D000000, 0x09, 0x6670673b, 0x3b677066,  2, \
-  20,   0, 0x0A000000, 0x09, 0x71646332, 0x32636471, 20, \
-  21,   0, 0x0B000000, 0x09, 0x71646333, 0x33636471, 20, \
-  22,   0, 0x00600000, 0x39, 0x31313832, 0x32383131, 21, \
-  23,   0, 0x00700000, 0x39, 0x31313833, 0x33383131, 21, \
-  24,   0, 0x07000000, 0x09, 0x71667731, 0x31776671, 22, \
-  25,   0, 0x12000000, 0x09, 0x73636f6d, 0x6d6f6373, 11, \
-  26,   0, 0x13000000, 0x09, 0x736f6d62, 0x626d6f73, 11, \
-  27,   0, 0x06000000, 0x09, 0x73636131, 0x31616373, 13, \
-  28,   0, 0x08000000, 0x09, 0x73636132, 0x32616373, 13, \
-  29,   0, 0x10000000, 0x09, 0x73636133, 0x33616373, 13, \
-  30,   0, 0x12000000, 0x09, 0x73636134, 0x34616373, 13
-// Number of possible Non-VME boards in the MBS event
-NbNonVmeBoards: Int_t 24
-//==============================================================================
-// General structure
-// BoardIndex Active RocIndx AddMod TokenA TokenB Type
-//------------------------------------------------------------------------------
-// BoardTypes
-//      0:  unknown -- default
-//      4:  get4    -- GET4 chips
-//      30: trbseb  -- subevent builder on central TRB-FPGA
-//      31: trbtdc  -- TDC on peripheral TRB-FPGA or FEE-TDC
-//      32: trbhub  -- hub on peripheral TRB-FPGA
-//==============================================================================
-// TRB specific structure
-// BoardIndex UnpackTdc FpgaAddr [niu] SebAddr FpgaInData FpgaType
-//------------------------------------------------------------------------------
-// BoardIndex:  consecutively numbered index (0...NbNonVmeBoards-1)
-// FpgaInData:  FPGA TRBnet endpoint sends data (0x1)
-// FpgaAddr:    FPGA TRBnet endpoint address
-// [niu]:       field not in use
-// SebAddr:     subevent builder's TRBnet endpoint address
-// UnpackTdc:   unpack data from this TDC (0x1)
-// FpgaType:    see BoardTypes above
-//==============================================================================
-//
-NonVmeMapping: Int_t \
-   0,  0x1,  0xc000,  0x0,  0xc000,  0x0,  30, \
-   1,  0x1,  0xb001,  0x0,  0xc000,  0x0,  32, \
-   2,  0x1,  0xb002,  0x0,  0xc000,  0x0,  32, \
-   3,  0x1,  0xb003,  0x0,  0xc000,  0x0,  32, \
-   4,  0x1,  0xb004,  0x0,  0xc000,  0x0,  32, \
-   5,  0x1,  0x0318,  0x0,  0xc000,  0x1,  31, \
-   6,  0x1,  0x0319,  0x0,  0xc000,  0x1,  31, \
-   7,  0x1,  0x0217,  0x0,  0xc000,  0x1,  31, \
-   8,  0x1,  0x0901,  0x0,  0xc000,  0x1,  31, \
-   9,  0x1,  0x0902,  0x0,  0xc000,  0x1,  31, \
-  10,  0x1,  0x0903,  0x0,  0xc000,  0x1,  31, \
-  11,  0x1,  0x0904,  0x0,  0xc000,  0x1,  31, \
-  12,  0x1,  0x0905,  0x0,  0xc000,  0x1,  31, \
-  13,  0x1,  0x0906,  0x0,  0xc000,  0x1,  31, \
-  14,  0x1,  0x0907,  0x0,  0xc000,  0x1,  31, \
-  15,  0x1,  0x0908,  0x0,  0xc000,  0x1,  31, \
-  16,  0x1,  0x0909,  0x0,  0xc000,  0x1,  31, \
-  17,  0x1,  0x0910,  0x0,  0xc000,  0x1,  31, \
-  18,  0x1,  0x0911,  0x0,  0xc000,  0x1,  31, \
-  19,  0x1,  0x0912,  0x0,  0xc000,  0x1,  31, \
-  20,  0x1,  0x0731,  0x0,  0xc000,  0x1,  31, \
-  21,  0x1,  0x0732,  0x0,  0xc000,  0x1,  31, \
-  22,  0x1,  0x0733,  0x0,  0xc000,  0x1,  31, \
-  23,  0x1,  0x0734,  0x0,  0xc000,  0x1,  31
-// Trigger from the Triglog board for which event are jump by Calib, mapping and conv
-// For now only jumping work for GET4 data!!
-//TriggerRejection: Int_t  15
-TriggerRejection: Int_t  -1
-//==============================================================================
-// TriggerChannel | TriggerType | TriggerUnpack
-//------------------------------------------------------------------------------
-// TriggerChannel (as defined in the CTS)
-//   max. range: 0 - 15
-//------------------------------------------------------------------------------
-// TriggerType (as defined in the CTS)
-//   max. range: 0x0 - 0xf
-//   types generating a reference time signal: 0x0 - 0x7 ("physics triggers")
-//   types without a reference time signal:    0x8 - 0xf
-//   calibration (ToT stretching offset):      0xd
-//
-//   In case of a trigger concidence, only a uniquely assigned trigger type
-//   allows to unambigously identify the trigger which actually triggered
-//   the event.
-//   All 8 possible trigger signal inputs should have assigned a different
-//   trigger type from 0x0 to 0x7. To all disabled trigger channels, please
-//   assign a higher trigger type (0x8 - 0xf exclusive 0xd).
-//------------------------------------------------------------------------------
-// TriggerUnpack
-//    0x1: only consider events in which this trigger channel was asserted
-//         (if this unpack bit is set for several trigger channels, all of
-//          them must have been asserted for the event to be unpacked)
-//    0x0: do not care whether this trigger channel was asserted or not
-//         (if this unpack bit is not set for all trigger channels, each
-//          incoming event is unpacked)
-//==============================================================================
-NbCtsTrigChs: Int_t 16
-CtsTriggerMap: Int_t \
-   0,  0x1,  0x0, \
-   1,  0x1,  0x0, \
-   2,  0x1,  0x0, \
-   3,  0x1,  0x0, \
-   4,  0x1,  0x0, \
-   5,  0x1,  0x0, \
-   6,  0x1,  0x0, \
-   7,  0x1,  0x0, \
-   8,  0x1,  0x0, \
-   9,  0x1,  0x0, \
-  10,  0x1,  0x0, \
-  11,  0x1,  0x0, \
-  12,  0x1,  0x0, \
-  13,  0x1,  0x0, \
-  14,  0x1,  0x0, \
-  15,  0x1,  0x0
-//
-//==============================================================================
-// The unpacking algorithms support both double edge measurement methods
-// implemented for the TRB-TDC.
-// - 128-bit mode: separate edge detection in different TDC channels
-//                 1 TDC TIME and 1 TDC EPOCH word for both edges
-// -  96-bit mode: joint edge detection in the same TDC channel
-//                 1 TDC TIME word per edge and 1 joint TDC EPOCH word
-// To enable 96-bit mode unpacking, set 'TrbTdcBitMode' to '1'. Setting any
-// other value will result in 128-bit mode unpacking.
-//==============================================================================
-TrbTdcBitMode: Int_t 0
-###########################
+##############################################################################
+# Class:   TMbsUnpackTofPar
+# Context: TestDefaultContext
+##############################################################################
+[TMbsUnpackTofPar]
+//----------------------------------------------------------------------------
+//******************************//
+//   Input selector             //
+//******************************//
+// GETEVT__FILE     1 <- LMD File
+// GETEVT__STREAM   2 <- Stream client
+// GETEVT__TRANS    3 <- Transport client
+// GETEVT__EVENT    4 <- Event client
+// GETEVT__REVSERV  5 <- Remote event client
+MbsSourceMode: Int_t 1
+// Switch ON/OFF the writing of data in the output root file of cbmroot analysis
+WriteDataInCbmOut: Int_t 1
+// Switch ON/OFF debug tests in VFTX unpacker
+VftxDebug: Int_t     0 
+// Number of possible VME boards in the MBS event
+MbsNbVmeBoards: Int_t 31
+// BoardTypes
+//      undef      =  0,  // unknown type, default value
+//      caenV1290  =  1,  // CAEN v1290A and CAEN v1290N VME boards based on HPTDC chips
+//      vftx       =  2,  // FPGA TDC of the VFTX family (E. Bayer dev.)
+//      triglog    = 10,  // VULOM TRIGLOG board
+//      scalormu   = 11,  // VULOM Scaler Or Multiplicity board 
+//      scalormubig= 12,  // VULOM Scaler Or Multiplicity board  32 channel version ? not used for now
+//      scaler2014 = 13,  // VULOM Scaler Or/And board used in the GSI April 2014 TOF beamtime
+//      caenv965   = 20,  // CAEN v965A and CAEN v965N VME QDC boards
+//      lecroy1182 = 21,  // LECROY 1182 VME QDC/ADC board 
+//      vulqfwread = 22   // VULOM QFW board (Charge to Frequency Converter Readout) 
+// BoardIndex Active    Address AddMod     TokenA     TokenB Type
+MbsVmeMapping: Int_t \
+   0,   0, 0x14000000, 0x09, 0x74726c6f, 0x6f6c7274, 10, \
+   1,   0, 0x0F000000, 0x09, 0x74646331, 0x31636474,  1, \
+   2,   0, 0x11000000, 0x09, 0x74646332, 0x32636474,  1, \
+   3,   0, 0x12000000, 0x09, 0x74646333, 0x33636474,  1, \
+   4,   0, 0x14000000, 0x09, 0x74646334, 0x34636474,  1, \
+   5,   0, 0x15000000, 0x09, 0x74646335, 0x35636474,  1, \
+   6,   0, 0x17000000, 0x09, 0x74646336, 0x36636474,  1, \
+   7,   0, 0x18000000, 0x09, 0x74646337, 0x37636474,  1, \
+   8,   0, 0x19000000, 0x09, 0x74646338, 0x38636474,  1, \
+   9,   0, 0x03000000, 0x09, 0x66706731, 0x31677066,  2, \
+  10,   0, 0x04000000, 0x09, 0x66706732, 0x32677066,  2, \
+  11,   0, 0x05000000, 0x09, 0x66706733, 0x33677066,  2, \
+  12,   0, 0x06000000, 0x09, 0x66706734, 0x34677066,  2, \
+  13,   0, 0x07000000, 0x09, 0x66706735, 0x35677066,  2, \
+  14,   0, 0x08000000, 0x09, 0x66706736, 0x36677066,  2, \
+  15,   0, 0x09000000, 0x09, 0x66706737, 0x37677066,  2, \
+  16,   0, 0x0A000000, 0x09, 0x66706738, 0x38677066,  2, \
+  17,   0, 0x0B000000, 0x09, 0x66706739, 0x39677066,  2, \
+  18,   0, 0x0C000000, 0x09, 0x6670673a, 0x3a677066,  2, \
+  19,   0, 0x0D000000, 0x09, 0x6670673b, 0x3b677066,  2, \
+  20,   0, 0x0A000000, 0x09, 0x71646332, 0x32636471, 20, \
+  21,   0, 0x0B000000, 0x09, 0x71646333, 0x33636471, 20, \
+  22,   0, 0x00600000, 0x39, 0x31313832, 0x32383131, 21, \
+  23,   0, 0x00700000, 0x39, 0x31313833, 0x33383131, 21, \
+  24,   0, 0x07000000, 0x09, 0x71667731, 0x31776671, 22, \
+  25,   0, 0x12000000, 0x09, 0x73636f6d, 0x6d6f6373, 11, \
+  26,   0, 0x13000000, 0x09, 0x736f6d62, 0x626d6f73, 11, \
+  27,   0, 0x06000000, 0x09, 0x73636131, 0x31616373, 13, \
+  28,   0, 0x08000000, 0x09, 0x73636132, 0x32616373, 13, \
+  29,   0, 0x10000000, 0x09, 0x73636133, 0x33616373, 13, \
+  30,   0, 0x12000000, 0x09, 0x73636134, 0x34616373, 13
+// Number of possible Non-VME boards in the MBS event
+NbNonVmeBoards: Int_t 24
+//==============================================================================
+// General structure
+// BoardIndex Active RocIndx AddMod TokenA TokenB Type
+//------------------------------------------------------------------------------
+// BoardTypes
+//      0:  unknown -- default
+//      4:  get4    -- GET4 chips
+//      30: trbseb  -- subevent builder on central TRB-FPGA
+//      31: trbtdc  -- TDC on peripheral TRB-FPGA or FEE-TDC
+//      32: trbhub  -- hub on peripheral TRB-FPGA
+//==============================================================================
+// TRB specific structure
+// BoardIndex UnpackTdc FpgaAddr [niu] SebAddr FpgaInData FpgaType
+//------------------------------------------------------------------------------
+// BoardIndex:  consecutively numbered index (0...NbNonVmeBoards-1)
+// FpgaInData:  FPGA TRBnet endpoint sends data (0x1)
+// FpgaAddr:    FPGA TRBnet endpoint address
+// [niu]:       field not in use
+// SebAddr:     subevent builder's TRBnet endpoint address
+// UnpackTdc:   unpack data from this TDC (0x1)
+// FpgaType:    see BoardTypes above
+//==============================================================================
+//
+NonVmeMapping: Int_t \
+   0,  0x1,  0xc000,  0x0,  0xc000,  0x0,  30, \
+   1,  0x1,  0xb001,  0x0,  0xc000,  0x0,  32, \
+   2,  0x1,  0xb002,  0x0,  0xc000,  0x0,  32, \
+   3,  0x1,  0xb003,  0x0,  0xc000,  0x0,  32, \
+   4,  0x1,  0xb004,  0x0,  0xc000,  0x0,  32, \
+   5,  0x1,  0x0318,  0x0,  0xc000,  0x1,  31, \
+   6,  0x1,  0x0319,  0x0,  0xc000,  0x1,  31, \
+   7,  0x1,  0x0217,  0x0,  0xc000,  0x1,  31, \
+   8,  0x1,  0x0901,  0x0,  0xc000,  0x1,  31, \
+   9,  0x1,  0x0902,  0x0,  0xc000,  0x1,  31, \
+  10,  0x1,  0x0903,  0x0,  0xc000,  0x1,  31, \
+  11,  0x1,  0x0904,  0x0,  0xc000,  0x1,  31, \
+  12,  0x1,  0x0905,  0x0,  0xc000,  0x1,  31, \
+  13,  0x1,  0x0906,  0x0,  0xc000,  0x1,  31, \
+  14,  0x1,  0x0907,  0x0,  0xc000,  0x1,  31, \
+  15,  0x1,  0x0908,  0x0,  0xc000,  0x1,  31, \
+  16,  0x1,  0x0909,  0x0,  0xc000,  0x1,  31, \
+  17,  0x1,  0x0910,  0x0,  0xc000,  0x1,  31, \
+  18,  0x1,  0x0911,  0x0,  0xc000,  0x1,  31, \
+  19,  0x1,  0x0912,  0x0,  0xc000,  0x1,  31, \
+  20,  0x1,  0x0731,  0x0,  0xc000,  0x1,  31, \
+  21,  0x1,  0x0732,  0x0,  0xc000,  0x1,  31, \
+  22,  0x1,  0x0733,  0x0,  0xc000,  0x1,  31, \
+  23,  0x1,  0x0734,  0x0,  0xc000,  0x1,  31
+// Trigger from the Triglog board for which event are jump by Calib, mapping and conv
+// For now only jumping work for GET4 data!!
+//TriggerRejection: Int_t  15
+TriggerRejection: Int_t  -1
+//==============================================================================
+// TriggerChannel | TriggerType | TriggerUnpack
+//------------------------------------------------------------------------------
+// TriggerChannel (as defined in the CTS)
+//   max. range: 0 - 15
+//------------------------------------------------------------------------------
+// TriggerType (as defined in the CTS)
+//   max. range: 0x0 - 0xf
+//   types generating a reference time signal: 0x0 - 0x7 ("physics triggers")
+//   types without a reference time signal:    0x8 - 0xf
+//   calibration (ToT stretching offset):      0xd
+//
+//   In case of a trigger concidence, only a uniquely assigned trigger type
+//   allows to unambigously identify the trigger which actually triggered
+//   the event.
+//   All 8 possible trigger signal inputs should have assigned a different
+//   trigger type from 0x0 to 0x7. To all disabled trigger channels, please
+//   assign a higher trigger type (0x8 - 0xf exclusive 0xd).
+//------------------------------------------------------------------------------
+// TriggerUnpack
+//    0x1: only consider events in which this trigger channel was asserted
+//         (if this unpack bit is set for several trigger channels, all of
+//          them must have been asserted for the event to be unpacked)
+//    0x0: do not care whether this trigger channel was asserted or not
+//         (if this unpack bit is not set for all trigger channels, each
+//          incoming event is unpacked)
+//==============================================================================
+NbCtsTrigChs: Int_t 16
+CtsTriggerMap: Int_t \
+   0,  0x1,  0x0, \
+   1,  0x1,  0x0, \
+   2,  0x1,  0x0, \
+   3,  0x1,  0x0, \
+   4,  0x1,  0x0, \
+   5,  0x1,  0x0, \
+   6,  0x1,  0x0, \
+   7,  0x1,  0x0, \
+   8,  0x1,  0x0, \
+   9,  0x1,  0x0, \
+  10,  0x1,  0x0, \
+  11,  0x1,  0x0, \
+  12,  0x1,  0x0, \
+  13,  0x1,  0x0, \
+  14,  0x1,  0x0, \
+  15,  0x1,  0x0
+//
+//==============================================================================
+// The unpacking algorithms support both double edge measurement methods
+// implemented for the TRB-TDC.
+// - 128-bit mode: separate edge detection in different TDC channels
+//                 1 TDC TIME and 1 TDC EPOCH word for both edges
+// -  96-bit mode: joint edge detection in the same TDC channel
+//                 1 TDC TIME word per edge and 1 joint TDC EPOCH word
+// To enable 96-bit mode unpacking, set 'TrbTdcBitMode' to '1'. Setting any
+// other value will result in 128-bit mode unpacking.
+//==============================================================================
+TrbTdcBitMode: Int_t 0
+###########################
diff --git a/macro/tof/beamtime/lab16/parUnpack_rates.txt b/macro/tof/beamtime/lab16/parUnpack_rates.txt
index 5054050b8a..ad0b2f770c 100644
--- a/macro/tof/beamtime/lab16/parUnpack_rates.txt
+++ b/macro/tof/beamtime/lab16/parUnpack_rates.txt
@@ -1,178 +1,178 @@
-##############################################################################
-# Class:   TMbsUnpackTofPar
-# Context: TestDefaultContext
-##############################################################################
-[TMbsUnpackTofPar]
-//----------------------------------------------------------------------------
-//******************************//
-//   Input selector             //
-//******************************//
-// GETEVT__FILE     1 <- LMD File
-// GETEVT__STREAM   2 <- Stream client
-// GETEVT__TRANS    3 <- Transport client
-// GETEVT__EVENT    4 <- Event client
-// GETEVT__REVSERV  5 <- Remote event client
-MbsSourceMode: Int_t 2
-// Switch ON/OFF the writing of data in the output root file of cbmroot analysis
-WriteDataInCbmOut: Int_t 1
-// Switch ON/OFF debug tests in VFTX unpacker
-VftxDebug: Int_t     0 
-// Number of possible VME boards in the MBS event
-MbsNbVmeBoards: Int_t 8
-// BoardTypes
-//      undef      =  0,  // unknown type, default value
-//      caenV1290  =  1,  // CAEN v1290A and CAEN v1290N VME boards based on HPTDC chips
-//      vftx       =  2,  // FPGA TDC of the VFTX family (E. Bayer dev.)
-//      triglog    = 10,  // VULOM TRIGLOG board
-//      scalormu   = 11,  // VULOM Scaler Or Multiplicity board 
-//      scalormubig= 12,  // VULOM Scaler Or Multiplicity board  32 channel version ? not used for now
-//      scaler2014 = 13,  // VULOM Scaler Or/And board used in the GSI April 2014 TOF beamtime
-//      triglogscal= 14,  // VULOM TRIGLOG board used as additional scaler board
-//      orgen      = 15,  // VULOM Or Generation board (nov 2015) with more scalers than scaler2014
-//      caenv965   = 20,  // CAEN v965A and CAEN v965N VME QDC boards
-//      lecroy1182 = 21,  // LECROY 1182 VME QDC/ADC board 
-//      vulqfwread = 22   // VULOM QFW board (Charge to Frequency Converter Readout) 
-// BoardIndex Active    Address AddMod     TokenA     TokenB Type
-MbsVmeMapping: Int_t \
-   0,   1, 0x03000000, 0x09, 0x74726c6f, 0x6f6c7274, 10, \
-   1,   1, 0x04000000, 0x09, 0x504d5453, 0x53544d50, 14, \
-   2,   1, 0x05000000, 0x09, 0x73636131, 0x31616373, 15, \
-   3,   1, 0x06000000, 0x09, 0x73636132, 0x32616373, 15, \
-   4,   1, 0x07000000, 0x09, 0x73636133, 0x33616373, 15, \
-   5,   1, 0x08000000, 0x09, 0x73636134, 0x34616373, 15, \
-   6,   1, 0x09000000, 0x09, 0x73636135, 0x35616373, 15, \
-   7,   1, 0x0A000000, 0x09, 0x73636136, 0x36616373, 15
-// Number of possible Non-VME boards in the MBS event
-NbNonVmeBoards: Int_t 45
-//==============================================================================
-// General structure
-// BoardIndex Active RocIndx AddMod TokenA TokenB Type
-//------------------------------------------------------------------------------
-// BoardTypes
-//      0:  unknown -- default
-//      4:  get4    -- GET4 chips
-//      30: trbseb  -- subevent builder on central TRB-FPGA
-//      31: trbtdc  -- TDC on peripheral TRB-FPGA or FEE-TDC
-//      32: trbhub  -- hub on peripheral TRB-FPGA
-//==============================================================================
-// TRB specific structure
-// BoardIndex UnpackTdc FpgaAddr [niu] SebAddr FpgaInData FpgaType
-//------------------------------------------------------------------------------
-// BoardIndex:  consecutively numbered index (0...NbNonVmeBoards-1)
-// FpgaInData:  FPGA TRBnet endpoint sends data (0x1)
-// FpgaAddr:    FPGA TRBnet endpoint address
-// [niu]:       field not in use
-// SebAddr:     subevent builder's TRBnet endpoint address
-// UnpackTdc:   unpack data from this TDC (0x1)
-// FpgaType:    see BoardTypes above
-//==============================================================================
-//
-NonVmeMapping: Int_t \
-   0,  0x0,  0xc000,  0x0,  0xc000,  0x1,  30, \
-   1,  0x0,  0xb001,  0x0,  0xc000,  0x1,  32, \
-   2,  0x0,  0xb002,  0x0,  0xc000,  0x1,  32, \
-   3,  0x0,  0xb003,  0x0,  0xc000,  0x1,  32, \
-   4,  0x0,  0xb004,  0x0,  0xc000,  0x1,  32, \
-   5,  0x0,  0x8002,  0x0,  0xc000,  0x1,  30, \
-   6,  0x0,  0xb021,  0x0,  0x8002,  0x1,  32, \
-   7,  0x0,  0xb022,  0x0,  0x8002,  0x1,  32, \
-   8,  0x0,  0xb023,  0x0,  0x8002,  0x1,  32, \
-   9,  0x0,  0xb024,  0x0,  0x8002,  0x1,  32, \
-  10,  0x0,  0x8003,  0x0,  0x8003,  0x1,  30, \
-  11,  0x0,  0xb031,  0x0,  0x8003,  0x1,  32, \
-  12,  0x0,  0xb032,  0x0,  0x8003,  0x1,  32, \
-  13,  0x0,  0xb033,  0x0,  0x8003,  0x1,  32, \
-  14,  0x0,  0xb034,  0x0,  0x8003,  0x1,  32, \
-  15,  0x0,  0x8004,  0x0,  0x8004,  0x1,  30, \
-  16,  0x0,  0xb041,  0x0,  0x8004,  0x1,  32, \
-  17,  0x0,  0xb042,  0x0,  0x8004,  0x1,  32, \
-  18,  0x0,  0xb043,  0x0,  0x8004,  0x1,  32, \
-  19,  0x0,  0xb044,  0x0,  0x8004,  0x1,  32, \
-  20,  0x0,  0x8005,  0x0,  0x8005,  0x1,  30, \
-  21,  0x0,  0xb051,  0x0,  0x8005,  0x1,  32, \
-  22,  0x0,  0xb052,  0x0,  0x8005,  0x1,  32, \
-  23,  0x0,  0xb053,  0x0,  0x8005,  0x1,  32, \
-  24,  0x0,  0xb054,  0x0,  0x8005,  0x1,  32, \
-  25,  0x0,  0x0f11,  0x0,  0xc000,  0x1,  31, \
-  26,  0x0,  0x0f12,  0x0,  0xc000,  0x1,  31, \
-  27,  0x0,  0x0f13,  0x0,  0xc000,  0x1,  31, \
-  28,  0x0,  0x0f14,  0x0,  0xc000,  0x1,  31, \
-  29,  0x0,  0x0f21,  0x0,  0x8002,  0x1,  31, \
-  30,  0x0,  0x0f22,  0x0,  0x8002,  0x1,  31, \
-  31,  0x0,  0x0f23,  0x0,  0x8002,  0x1,  31, \
-  32,  0x0,  0x0f24,  0x0,  0x8002,  0x1,  31, \
-  33,  0x0,  0x0f41,  0x0,  0x8003,  0x1,  31, \
-  34,  0x0,  0x0f42,  0x0,  0x8003,  0x1,  31, \
-  35,  0x0,  0x0f43,  0x0,  0x8003,  0x1,  31, \
-  36,  0x0,  0x0f44,  0x0,  0x8003,  0x1,  31, \
-  37,  0x0,  0x0f51,  0x0,  0x8004,  0x1,  31, \
-  38,  0x0,  0x0f52,  0x0,  0x8004,  0x1,  31, \
-  39,  0x0,  0x0f53,  0x0,  0x8004,  0x1,  31, \
-  40,  0x0,  0x0f54,  0x0,  0x8004,  0x1,  31, \
-  41,  0x0,  0x0f61,  0x0,  0x8005,  0x1,  31, \
-  42,  0x0,  0x0f62,  0x0,  0x8005,  0x1,  31, \
-  43,  0x0,  0x0f63,  0x0,  0x8005,  0x1,  31, \
-  44,  0x0,  0x0f64,  0x0,  0x8005,  0x1,  31
-//
-// Trigger from the Triglog board for which event are jump by Calib, mapping and conv
-// For now only jumping work for GET4 data!!
-//TriggerRejection: Int_t  15
-TriggerRejection: Int_t  -1
-//==============================================================================
-// TriggerChannel | TriggerType | TriggerUnpack
-//------------------------------------------------------------------------------
-// TriggerChannel (as defined in the CTS)
-//   max. range: 0 - 15
-//------------------------------------------------------------------------------
-// TriggerType (as defined in the CTS)
-//   max. range: 0x0 - 0xf
-//   types generating a reference time signal: 0x0 - 0x7 ("physics triggers")
-//   types without a reference time signal:    0x8 - 0xf
-//   calibration (ToT stretching offset):      0xd
-//
-//   In case of a trigger concidence, only a uniquely assigned trigger type
-//   allows to unambigously identify the trigger which actually triggered
-//   the event.
-//   All 8 possible trigger signal inputs should have assigned a different
-//   trigger type from 0x0 to 0x7. To all disabled trigger channels, please
-//   assign a higher trigger type (0x8 - 0xf exclusive 0xd).
-//------------------------------------------------------------------------------
-// TriggerUnpack
-//    0x1: only consider events in which this trigger channel was asserted
-//         (if this unpack bit is set for several trigger channels, all of
-//          them must have been asserted for the event to be unpacked)
-//    0x0: do not care whether this trigger channel was asserted or not
-//         (if this unpack bit is not set for all trigger channels, each
-//          incoming event is unpacked)
-//==============================================================================
-NbCtsTrigChs: Int_t 16
-CtsTriggerMap: Int_t \
-   0,  0x1,  0x0, \
-   1,  0x1,  0x0, \
-   2,  0x1,  0x0, \
-   3,  0x1,  0x0, \
-   4,  0x1,  0x0, \
-   5,  0x1,  0x0, \
-   6,  0x1,  0x0, \
-   7,  0x1,  0x0, \
-   8,  0x0,  0x0, \
-   9,  0x1,  0x0, \
-  10,  0x2,  0x0, \
-  11,  0x3,  0x0, \
-  12,  0x4,  0x0, \
-  13,  0x5,  0x0, \
-  14,  0x6,  0x0, \
-  15,  0x7,  0x0
-//
-//==============================================================================
-// The unpacking algorithms support both double edge measurement methods
-// implemented for the TRB-TDC.
-// - 128-bit mode: separate edge detection in different TDC channels
-//                 1 TDC TIME and 1 TDC EPOCH word for both edges
-// -  96-bit mode: joint edge detection in the same TDC channel
-//                 1 TDC TIME word per edge and 1 joint TDC EPOCH word
-// To enable 96-bit mode unpacking, set 'TrbTdcBitMode' to '1'. Setting any
-// other value will result in 128-bit mode unpacking.
-//==============================================================================
-TrbTdcBitMode: Int_t 1
-###########################
+##############################################################################
+# Class:   TMbsUnpackTofPar
+# Context: TestDefaultContext
+##############################################################################
+[TMbsUnpackTofPar]
+//----------------------------------------------------------------------------
+//******************************//
+//   Input selector             //
+//******************************//
+// GETEVT__FILE     1 <- LMD File
+// GETEVT__STREAM   2 <- Stream client
+// GETEVT__TRANS    3 <- Transport client
+// GETEVT__EVENT    4 <- Event client
+// GETEVT__REVSERV  5 <- Remote event client
+MbsSourceMode: Int_t 2
+// Switch ON/OFF the writing of data in the output root file of cbmroot analysis
+WriteDataInCbmOut: Int_t 1
+// Switch ON/OFF debug tests in VFTX unpacker
+VftxDebug: Int_t     0 
+// Number of possible VME boards in the MBS event
+MbsNbVmeBoards: Int_t 8
+// BoardTypes
+//      undef      =  0,  // unknown type, default value
+//      caenV1290  =  1,  // CAEN v1290A and CAEN v1290N VME boards based on HPTDC chips
+//      vftx       =  2,  // FPGA TDC of the VFTX family (E. Bayer dev.)
+//      triglog    = 10,  // VULOM TRIGLOG board
+//      scalormu   = 11,  // VULOM Scaler Or Multiplicity board 
+//      scalormubig= 12,  // VULOM Scaler Or Multiplicity board  32 channel version ? not used for now
+//      scaler2014 = 13,  // VULOM Scaler Or/And board used in the GSI April 2014 TOF beamtime
+//      triglogscal= 14,  // VULOM TRIGLOG board used as additional scaler board
+//      orgen      = 15,  // VULOM Or Generation board (nov 2015) with more scalers than scaler2014
+//      caenv965   = 20,  // CAEN v965A and CAEN v965N VME QDC boards
+//      lecroy1182 = 21,  // LECROY 1182 VME QDC/ADC board 
+//      vulqfwread = 22   // VULOM QFW board (Charge to Frequency Converter Readout) 
+// BoardIndex Active    Address AddMod     TokenA     TokenB Type
+MbsVmeMapping: Int_t \
+   0,   1, 0x03000000, 0x09, 0x74726c6f, 0x6f6c7274, 10, \
+   1,   1, 0x04000000, 0x09, 0x504d5453, 0x53544d50, 14, \
+   2,   1, 0x05000000, 0x09, 0x73636131, 0x31616373, 15, \
+   3,   1, 0x06000000, 0x09, 0x73636132, 0x32616373, 15, \
+   4,   1, 0x07000000, 0x09, 0x73636133, 0x33616373, 15, \
+   5,   1, 0x08000000, 0x09, 0x73636134, 0x34616373, 15, \
+   6,   1, 0x09000000, 0x09, 0x73636135, 0x35616373, 15, \
+   7,   1, 0x0A000000, 0x09, 0x73636136, 0x36616373, 15
+// Number of possible Non-VME boards in the MBS event
+NbNonVmeBoards: Int_t 45
+//==============================================================================
+// General structure
+// BoardIndex Active RocIndx AddMod TokenA TokenB Type
+//------------------------------------------------------------------------------
+// BoardTypes
+//      0:  unknown -- default
+//      4:  get4    -- GET4 chips
+//      30: trbseb  -- subevent builder on central TRB-FPGA
+//      31: trbtdc  -- TDC on peripheral TRB-FPGA or FEE-TDC
+//      32: trbhub  -- hub on peripheral TRB-FPGA
+//==============================================================================
+// TRB specific structure
+// BoardIndex UnpackTdc FpgaAddr [niu] SebAddr FpgaInData FpgaType
+//------------------------------------------------------------------------------
+// BoardIndex:  consecutively numbered index (0...NbNonVmeBoards-1)
+// FpgaInData:  FPGA TRBnet endpoint sends data (0x1)
+// FpgaAddr:    FPGA TRBnet endpoint address
+// [niu]:       field not in use
+// SebAddr:     subevent builder's TRBnet endpoint address
+// UnpackTdc:   unpack data from this TDC (0x1)
+// FpgaType:    see BoardTypes above
+//==============================================================================
+//
+NonVmeMapping: Int_t \
+   0,  0x0,  0xc000,  0x0,  0xc000,  0x1,  30, \
+   1,  0x0,  0xb001,  0x0,  0xc000,  0x1,  32, \
+   2,  0x0,  0xb002,  0x0,  0xc000,  0x1,  32, \
+   3,  0x0,  0xb003,  0x0,  0xc000,  0x1,  32, \
+   4,  0x0,  0xb004,  0x0,  0xc000,  0x1,  32, \
+   5,  0x0,  0x8002,  0x0,  0xc000,  0x1,  30, \
+   6,  0x0,  0xb021,  0x0,  0x8002,  0x1,  32, \
+   7,  0x0,  0xb022,  0x0,  0x8002,  0x1,  32, \
+   8,  0x0,  0xb023,  0x0,  0x8002,  0x1,  32, \
+   9,  0x0,  0xb024,  0x0,  0x8002,  0x1,  32, \
+  10,  0x0,  0x8003,  0x0,  0x8003,  0x1,  30, \
+  11,  0x0,  0xb031,  0x0,  0x8003,  0x1,  32, \
+  12,  0x0,  0xb032,  0x0,  0x8003,  0x1,  32, \
+  13,  0x0,  0xb033,  0x0,  0x8003,  0x1,  32, \
+  14,  0x0,  0xb034,  0x0,  0x8003,  0x1,  32, \
+  15,  0x0,  0x8004,  0x0,  0x8004,  0x1,  30, \
+  16,  0x0,  0xb041,  0x0,  0x8004,  0x1,  32, \
+  17,  0x0,  0xb042,  0x0,  0x8004,  0x1,  32, \
+  18,  0x0,  0xb043,  0x0,  0x8004,  0x1,  32, \
+  19,  0x0,  0xb044,  0x0,  0x8004,  0x1,  32, \
+  20,  0x0,  0x8005,  0x0,  0x8005,  0x1,  30, \
+  21,  0x0,  0xb051,  0x0,  0x8005,  0x1,  32, \
+  22,  0x0,  0xb052,  0x0,  0x8005,  0x1,  32, \
+  23,  0x0,  0xb053,  0x0,  0x8005,  0x1,  32, \
+  24,  0x0,  0xb054,  0x0,  0x8005,  0x1,  32, \
+  25,  0x0,  0x0f11,  0x0,  0xc000,  0x1,  31, \
+  26,  0x0,  0x0f12,  0x0,  0xc000,  0x1,  31, \
+  27,  0x0,  0x0f13,  0x0,  0xc000,  0x1,  31, \
+  28,  0x0,  0x0f14,  0x0,  0xc000,  0x1,  31, \
+  29,  0x0,  0x0f21,  0x0,  0x8002,  0x1,  31, \
+  30,  0x0,  0x0f22,  0x0,  0x8002,  0x1,  31, \
+  31,  0x0,  0x0f23,  0x0,  0x8002,  0x1,  31, \
+  32,  0x0,  0x0f24,  0x0,  0x8002,  0x1,  31, \
+  33,  0x0,  0x0f41,  0x0,  0x8003,  0x1,  31, \
+  34,  0x0,  0x0f42,  0x0,  0x8003,  0x1,  31, \
+  35,  0x0,  0x0f43,  0x0,  0x8003,  0x1,  31, \
+  36,  0x0,  0x0f44,  0x0,  0x8003,  0x1,  31, \
+  37,  0x0,  0x0f51,  0x0,  0x8004,  0x1,  31, \
+  38,  0x0,  0x0f52,  0x0,  0x8004,  0x1,  31, \
+  39,  0x0,  0x0f53,  0x0,  0x8004,  0x1,  31, \
+  40,  0x0,  0x0f54,  0x0,  0x8004,  0x1,  31, \
+  41,  0x0,  0x0f61,  0x0,  0x8005,  0x1,  31, \
+  42,  0x0,  0x0f62,  0x0,  0x8005,  0x1,  31, \
+  43,  0x0,  0x0f63,  0x0,  0x8005,  0x1,  31, \
+  44,  0x0,  0x0f64,  0x0,  0x8005,  0x1,  31
+//
+// Trigger from the Triglog board for which event are jump by Calib, mapping and conv
+// For now only jumping work for GET4 data!!
+//TriggerRejection: Int_t  15
+TriggerRejection: Int_t  -1
+//==============================================================================
+// TriggerChannel | TriggerType | TriggerUnpack
+//------------------------------------------------------------------------------
+// TriggerChannel (as defined in the CTS)
+//   max. range: 0 - 15
+//------------------------------------------------------------------------------
+// TriggerType (as defined in the CTS)
+//   max. range: 0x0 - 0xf
+//   types generating a reference time signal: 0x0 - 0x7 ("physics triggers")
+//   types without a reference time signal:    0x8 - 0xf
+//   calibration (ToT stretching offset):      0xd
+//
+//   In case of a trigger concidence, only a uniquely assigned trigger type
+//   allows to unambigously identify the trigger which actually triggered
+//   the event.
+//   All 8 possible trigger signal inputs should have assigned a different
+//   trigger type from 0x0 to 0x7. To all disabled trigger channels, please
+//   assign a higher trigger type (0x8 - 0xf exclusive 0xd).
+//------------------------------------------------------------------------------
+// TriggerUnpack
+//    0x1: only consider events in which this trigger channel was asserted
+//         (if this unpack bit is set for several trigger channels, all of
+//          them must have been asserted for the event to be unpacked)
+//    0x0: do not care whether this trigger channel was asserted or not
+//         (if this unpack bit is not set for all trigger channels, each
+//          incoming event is unpacked)
+//==============================================================================
+NbCtsTrigChs: Int_t 16
+CtsTriggerMap: Int_t \
+   0,  0x1,  0x0, \
+   1,  0x1,  0x0, \
+   2,  0x1,  0x0, \
+   3,  0x1,  0x0, \
+   4,  0x1,  0x0, \
+   5,  0x1,  0x0, \
+   6,  0x1,  0x0, \
+   7,  0x1,  0x0, \
+   8,  0x0,  0x0, \
+   9,  0x1,  0x0, \
+  10,  0x2,  0x0, \
+  11,  0x3,  0x0, \
+  12,  0x4,  0x0, \
+  13,  0x5,  0x0, \
+  14,  0x6,  0x0, \
+  15,  0x7,  0x0
+//
+//==============================================================================
+// The unpacking algorithms support both double edge measurement methods
+// implemented for the TRB-TDC.
+// - 128-bit mode: separate edge detection in different TDC channels
+//                 1 TDC TIME and 1 TDC EPOCH word for both edges
+// -  96-bit mode: joint edge detection in the same TDC channel
+//                 1 TDC TIME word per edge and 1 joint TDC EPOCH word
+// To enable 96-bit mode unpacking, set 'TrbTdcBitMode' to '1'. Setting any
+// other value will result in 128-bit mode unpacking.
+//==============================================================================
+TrbTdcBitMode: Int_t 1
+###########################
diff --git a/macro/tof/beamtime/nov15/parUnpCernNov2015.txt b/macro/tof/beamtime/nov15/parUnpCernNov2015.txt
index 2e9b2bf05d..9d8d58ff8a 100644
--- a/macro/tof/beamtime/nov15/parUnpCernNov2015.txt
+++ b/macro/tof/beamtime/nov15/parUnpCernNov2015.txt
@@ -1,217 +1,217 @@
-##############################################################################
-# Class:   TMbsUnpackTofPar
-# Context: TestDefaultContext
-##############################################################################
-[TMbsUnpackTofPar]
-//----------------------------------------------------------------------------
-//******************************//
-//   Input selector             //
-//******************************//
-// GETEVT__FILE     1 <- LMD File
-// GETEVT__STREAM   2 <- Stream client
-// GETEVT__TRANS    3 <- Transport client
-// GETEVT__EVENT    4 <- Event client
-// GETEVT__REVSERV  5 <- Remote event client
-MbsSourceMode: Int_t 2
-// Switch ON/OFF the writing of data in the output root file of cbmroot analysis
-WriteDataInCbmOut: Int_t 0
-// Switch ON/OFF debug tests in VFTX unpacker
-VftxDebug: Int_t     0 
-// Number of possible VME boards in the MBS event
-MbsNbVmeBoards: Int_t 31
-// BoardTypes
-//      undef      =  0,  // unknown type, default value
-//      caenV1290  =  1,  // CAEN v1290A and CAEN v1290N VME boards based on HPTDC chips
-//      vftx       =  2,  // FPGA TDC of the VFTX family (E. Bayer dev.)
-//      triglog    = 10,  // VULOM TRIGLOG board
-//      scalormu   = 11,  // VULOM Scaler Or Multiplicity board 
-//      scalormubig= 12,  // VULOM Scaler Or Multiplicity board  32 channel version ? not used for now
-//      scaler2014 = 13,  // VULOM Scaler Or/And board used in the GSI April 2014 TOF beamtime
-//      caenv965   = 20,  // CAEN v965A and CAEN v965N VME QDC boards
-//      lecroy1182 = 21,  // LECROY 1182 VME QDC/ADC board 
-//      vulqfwread = 22   // VULOM QFW board (Charge to Frequency Converter Readout) 
-// BoardIndex Active    Address AddMod     TokenA     TokenB Type
-MbsVmeMapping: Int_t \
-   0,   0, 0x14000000, 0x09, 0x74726c6f, 0x6f6c7274, 10, \
-   1,   0, 0x0F000000, 0x09, 0x74646331, 0x31636474,  1, \
-   2,   0, 0x11000000, 0x09, 0x74646332, 0x32636474,  1, \
-   3,   0, 0x12000000, 0x09, 0x74646333, 0x33636474,  1, \
-   4,   0, 0x14000000, 0x09, 0x74646334, 0x34636474,  1, \
-   5,   0, 0x15000000, 0x09, 0x74646335, 0x35636474,  1, \
-   6,   0, 0x17000000, 0x09, 0x74646336, 0x36636474,  1, \
-   7,   0, 0x18000000, 0x09, 0x74646337, 0x37636474,  1, \
-   8,   0, 0x19000000, 0x09, 0x74646338, 0x38636474,  1, \
-   9,   0, 0x03000000, 0x09, 0x66706731, 0x31677066,  2, \
-  10,   0, 0x04000000, 0x09, 0x66706732, 0x32677066,  2, \
-  11,   0, 0x05000000, 0x09, 0x66706733, 0x33677066,  2, \
-  12,   0, 0x06000000, 0x09, 0x66706734, 0x34677066,  2, \
-  13,   0, 0x07000000, 0x09, 0x66706735, 0x35677066,  2, \
-  14,   0, 0x08000000, 0x09, 0x66706736, 0x36677066,  2, \
-  15,   0, 0x09000000, 0x09, 0x66706737, 0x37677066,  2, \
-  16,   0, 0x0A000000, 0x09, 0x66706738, 0x38677066,  2, \
-  17,   0, 0x0B000000, 0x09, 0x66706739, 0x39677066,  2, \
-  18,   0, 0x0C000000, 0x09, 0x6670673a, 0x3a677066,  2, \
-  19,   0, 0x0D000000, 0x09, 0x6670673b, 0x3b677066,  2, \
-  20,   0, 0x0A000000, 0x09, 0x71646332, 0x32636471, 20, \
-  21,   0, 0x0B000000, 0x09, 0x71646333, 0x33636471, 20, \
-  22,   0, 0x00600000, 0x39, 0x31313832, 0x32383131, 21, \
-  23,   0, 0x00700000, 0x39, 0x31313833, 0x33383131, 21, \
-  24,   0, 0x07000000, 0x09, 0x71667731, 0x31776671, 22, \
-  25,   0, 0x12000000, 0x09, 0x73636f6d, 0x6d6f6373, 11, \
-  26,   0, 0x13000000, 0x09, 0x736f6d62, 0x626d6f73, 11, \
-  27,   0, 0x06000000, 0x09, 0x73636131, 0x31616373, 13, \
-  28,   0, 0x08000000, 0x09, 0x73636132, 0x32616373, 13, \
-  29,   0, 0x10000000, 0x09, 0x73636133, 0x33616373, 13, \
-  30,   0, 0x12000000, 0x09, 0x73636134, 0x34616373, 13
-// Number of possible Non-VME boards in the MBS event
-NbNonVmeBoards: Int_t 63
-//==============================================================================
-// General structure
-// BoardIndex Active RocIndx AddMod TokenA TokenB Type
-//------------------------------------------------------------------------------
-// BoardTypes
-//      0:  unknown -- default
-//      4:  get4    -- GET4 chips
-//      30: trbseb  -- subevent builder on central TRB-FPGA
-//      31: trbtdc  -- TDC on peripheral TRB-FPGA or FEE-TDC
-//      32: trbhub  -- hub on peripheral TRB-FPGA
-//==============================================================================
-// TRB specific structure
-// BoardIndex UnpackTdc FpgaAddr [niu] SebAddr FpgaInData FpgaType
-//------------------------------------------------------------------------------
-// BoardIndex:  consecutively numbered index (0...NbNonVmeBoards-1)
-// FpgaInData:  FPGA TRBnet endpoint sends data (0x1)
-// FpgaAddr:    FPGA TRBnet endpoint address
-// [niu]:       field not in use
-// SebAddr:     subevent builder's TRBnet endpoint address
-// UnpackTdc:   unpack data from this TDC (0x1)
-// FpgaType:    see BoardTypes above
-//==============================================================================
-//
-NonVmeMapping: Int_t \
-   0,  0x1,  0xc000,  0x0,  0xc000,  0x0,  30, \
-   1,  0x1,  0xb001,  0x0,  0xc000,  0x0,  32, \
-   2,  0x1,  0xb002,  0x0,  0xc000,  0x0,  32, \
-   3,  0x1,  0xb003,  0x0,  0xc000,  0x0,  32, \
-   4,  0x1,  0xb004,  0x0,  0xc000,  0x0,  32, \
-   5,  0x1,  0x8001,  0x0,  0x8001,  0x0,  30, \
-   6,  0x1,  0xb011,  0x0,  0x8001,  0x1,  32, \
-   7,  0x1,  0xb012,  0x0,  0x8001,  0x1,  32, \
-   8,  0x1,  0xb013,  0x0,  0x8001,  0x1,  32, \
-   9,  0x1,  0xb014,  0x0,  0x8001,  0x1,  32, \
-  10,  0x1,  0x8002,  0x0,  0x8002,  0x0,  30, \
-  11,  0x1,  0xb021,  0x0,  0x8002,  0x1,  32, \
-  12,  0x1,  0xb022,  0x0,  0x8002,  0x1,  32, \
-  13,  0x1,  0xb023,  0x0,  0x8002,  0x1,  32, \
-  14,  0x1,  0xb024,  0x0,  0x8002,  0x1,  32, \
-  15,  0x1,  0x8003,  0x0,  0x8003,  0x0,  30, \
-  16,  0x1,  0xb031,  0x0,  0x8003,  0x1,  32, \
-  17,  0x1,  0xb032,  0x0,  0x8003,  0x1,  32, \
-  18,  0x1,  0xb033,  0x0,  0x8003,  0x1,  32, \
-  19,  0x1,  0xb034,  0x0,  0x8003,  0x1,  32, \
-  20,  0x1,  0x8004,  0x0,  0x8004,  0x0,  30, \
-  21,  0x1,  0xb041,  0x0,  0x8004,  0x1,  32, \
-  22,  0x1,  0xb042,  0x0,  0x8004,  0x1,  32, \
-  23,  0x1,  0xb043,  0x0,  0x8004,  0x1,  32, \
-  24,  0x1,  0xb044,  0x0,  0x8004,  0x1,  32, \
-  25,  0x1,  0x0129,  0x0,  0x8002,  0x1,  31, \
-  26,  0x1,  0x0130,  0x0,  0x8002,  0x1,  31, \
-  27,  0x1,  0x0139,  0x0,  0xc000,  0x1,  31, \
-  28,  0x1,  0x0140,  0x0,  0xc000,  0x1,  31, \
-  29,  0x1,  0x0217,  0x0,  0x8004,  0x1,  31, \
-  30,  0x1,  0x0318,  0x0,  0x8004,  0x1,  31, \
-  31,  0x1,  0x0319,  0x0,  0x8004,  0x1,  31, \
-  32,  0x1,  0x0420,  0x0,  0x8004,  0x1,  31, \
-  33,  0x1,  0x0541,  0x0,  0xc000,  0x1,  31, \
-  34,  0x1,  0x0542,  0x0,  0x8003,  0x1,  31, \
-  35,  0x1,  0x0543,  0x0,  0x8003,  0x1,  31, \
-  36,  0x1,  0x0544,  0x0,  0x8003,  0x1,  31, \
-  37,  0x1,  0x0621,  0x0,  0x8001,  0x1,  31, \
-  38,  0x1,  0x0622,  0x0,  0x8001,  0x1,  31, \
-  39,  0x1,  0x0623,  0x0,  0x8001,  0x1,  31, \
-  40,  0x1,  0x0624,  0x0,  0x8001,  0x1,  31, \
-  41,  0x1,  0x0731,  0x0,  0xc000,  0x1,  31, \
-  42,  0x1,  0x0732,  0x0,  0xc000,  0x1,  31, \
-  43,  0x1,  0x0733,  0x0,  0xc000,  0x1,  31, \
-  44,  0x1,  0x0734,  0x0,  0xc000,  0x1,  31, \
-  45,  0x1,  0x0735,  0x0,  0xc000,  0x1,  31, \
-  46,  0x1,  0x0736,  0x0,  0xc000,  0x1,  31, \
-  47,  0x1,  0x0737,  0x0,  0xc000,  0x1,  31, \
-  48,  0x1,  0x0738,  0x0,  0xc000,  0x1,  31, \
-  49,  0x1,  0x0826,  0x0,  0x8001,  0x1,  31, \
-  50,  0x1,  0x0828,  0x0,  0x8001,  0x1,  31, \
-  51,  0x1,  0x0901,  0x0,  0x8002,  0x1,  31, \
-  52,  0x1,  0x0902,  0x0,  0x8002,  0x1,  31, \
-  53,  0x1,  0x0903,  0x0,  0x8002,  0x1,  31, \
-  54,  0x1,  0x0904,  0x0,  0x8002,  0x1,  31, \
-  55,  0x1,  0x0905,  0x0,  0x8003,  0x1,  31, \
-  56,  0x1,  0x0906,  0x0,  0x8003,  0x1,  31, \
-  57,  0x1,  0x0907,  0x0,  0x8003,  0x1,  31, \
-  58,  0x1,  0x0908,  0x0,  0x8003,  0x1,  31, \
-  59,  0x1,  0x0909,  0x0,  0x8004,  0x1,  31, \
-  60,  0x1,  0x0910,  0x0,  0x8004,  0x1,  31, \
-  61,  0x1,  0x0911,  0x0,  0x8004,  0x1,  31, \
-  62,  0x1,  0x0912,  0x0,  0x8004,  0x1,  31
-//
-// Trigger from the Triglog board for which event are jump by Calib, mapping and conv
-// For now only jumping work for GET4 data!!
-//TriggerRejection: Int_t  15
-TriggerRejection: Int_t  -1
-//==============================================================================
-// TriggerChannel | TriggerType | TriggerUnpack
-//------------------------------------------------------------------------------
-// TriggerChannel (as defined in the CTS)
-//   max. range: 0 - 15
-//------------------------------------------------------------------------------
-// TriggerType (as defined in the CTS)
-//   max. range: 0x0 - 0xf
-//   types generating a reference time signal: 0x0 - 0x7 ("physics triggers")
-//   types without a reference time signal:    0x8 - 0xf
-//   calibration (ToT stretching offset):      0xd
-//
-//   In case of a trigger concidence, only a uniquely assigned trigger type
-//   allows to unambigously identify the trigger which actually triggered
-//   the event.
-//   All 8 possible trigger signal inputs should have assigned a different
-//   trigger type from 0x0 to 0x7. To all disabled trigger channels, please
-//   assign a higher trigger type (0x8 - 0xf exclusive 0xd).
-//------------------------------------------------------------------------------
-// TriggerUnpack
-//    0x1: only consider events in which this trigger channel was asserted
-//         (if this unpack bit is set for several trigger channels, all of
-//          them must have been asserted for the event to be unpacked)
-//    0x0: do not care whether this trigger channel was asserted or not
-//         (if this unpack bit is not set for all trigger channels, each
-//          incoming event is unpacked)
-//==============================================================================
-NbCtsTrigChs: Int_t 16
-CtsTriggerMap: Int_t \
-   0,  0x1,  0x0, \
-   1,  0x1,  0x0, \
-   2,  0x1,  0x0, \
-   3,  0x1,  0x0, \
-   4,  0x0,  0x0, \
-   5,  0x1,  0x0, \
-   6,  0x2,  0x0, \
-   7,  0x3,  0x0, \
-   8,  0x4,  0x0, \
-   9,  0x5,  0x0, \
-  10,  0x6,  0x0, \
-  11,  0x7,  0x0, \
-  12,  0x1,  0x0, \
-  13,  0x1,  0x0, \
-  14,  0x1,  0x0, \
-  15,  0x1,  0x0
-//
-//==============================================================================
-// The unpacking algorithms support both double edge measurement methods
-// implemented for the TRB-TDC.
-// - 128-bit mode: separate edge detection in different TDC channels
-//                 1 TDC TIME and 1 TDC EPOCH word for both edges
-// -  96-bit mode: joint edge detection in the same TDC channel
-//                 1 TDC TIME word per edge and 1 joint TDC EPOCH word
-// To enable 96-bit mode unpacking, set 'TrbTdcBitMode' to '1'. Setting any
-// other value will result in 128-bit mode unpacking.
-//==============================================================================
-TrbTdcBitMode: Int_t 0
-###########################
+##############################################################################
+# Class:   TMbsUnpackTofPar
+# Context: TestDefaultContext
+##############################################################################
+[TMbsUnpackTofPar]
+//----------------------------------------------------------------------------
+//******************************//
+//   Input selector             //
+//******************************//
+// GETEVT__FILE     1 <- LMD File
+// GETEVT__STREAM   2 <- Stream client
+// GETEVT__TRANS    3 <- Transport client
+// GETEVT__EVENT    4 <- Event client
+// GETEVT__REVSERV  5 <- Remote event client
+MbsSourceMode: Int_t 2
+// Switch ON/OFF the writing of data in the output root file of cbmroot analysis
+WriteDataInCbmOut: Int_t 0
+// Switch ON/OFF debug tests in VFTX unpacker
+VftxDebug: Int_t     0 
+// Number of possible VME boards in the MBS event
+MbsNbVmeBoards: Int_t 31
+// BoardTypes
+//      undef      =  0,  // unknown type, default value
+//      caenV1290  =  1,  // CAEN v1290A and CAEN v1290N VME boards based on HPTDC chips
+//      vftx       =  2,  // FPGA TDC of the VFTX family (E. Bayer dev.)
+//      triglog    = 10,  // VULOM TRIGLOG board
+//      scalormu   = 11,  // VULOM Scaler Or Multiplicity board 
+//      scalormubig= 12,  // VULOM Scaler Or Multiplicity board  32 channel version ? not used for now
+//      scaler2014 = 13,  // VULOM Scaler Or/And board used in the GSI April 2014 TOF beamtime
+//      caenv965   = 20,  // CAEN v965A and CAEN v965N VME QDC boards
+//      lecroy1182 = 21,  // LECROY 1182 VME QDC/ADC board 
+//      vulqfwread = 22   // VULOM QFW board (Charge to Frequency Converter Readout) 
+// BoardIndex Active    Address AddMod     TokenA     TokenB Type
+MbsVmeMapping: Int_t \
+   0,   0, 0x14000000, 0x09, 0x74726c6f, 0x6f6c7274, 10, \
+   1,   0, 0x0F000000, 0x09, 0x74646331, 0x31636474,  1, \
+   2,   0, 0x11000000, 0x09, 0x74646332, 0x32636474,  1, \
+   3,   0, 0x12000000, 0x09, 0x74646333, 0x33636474,  1, \
+   4,   0, 0x14000000, 0x09, 0x74646334, 0x34636474,  1, \
+   5,   0, 0x15000000, 0x09, 0x74646335, 0x35636474,  1, \
+   6,   0, 0x17000000, 0x09, 0x74646336, 0x36636474,  1, \
+   7,   0, 0x18000000, 0x09, 0x74646337, 0x37636474,  1, \
+   8,   0, 0x19000000, 0x09, 0x74646338, 0x38636474,  1, \
+   9,   0, 0x03000000, 0x09, 0x66706731, 0x31677066,  2, \
+  10,   0, 0x04000000, 0x09, 0x66706732, 0x32677066,  2, \
+  11,   0, 0x05000000, 0x09, 0x66706733, 0x33677066,  2, \
+  12,   0, 0x06000000, 0x09, 0x66706734, 0x34677066,  2, \
+  13,   0, 0x07000000, 0x09, 0x66706735, 0x35677066,  2, \
+  14,   0, 0x08000000, 0x09, 0x66706736, 0x36677066,  2, \
+  15,   0, 0x09000000, 0x09, 0x66706737, 0x37677066,  2, \
+  16,   0, 0x0A000000, 0x09, 0x66706738, 0x38677066,  2, \
+  17,   0, 0x0B000000, 0x09, 0x66706739, 0x39677066,  2, \
+  18,   0, 0x0C000000, 0x09, 0x6670673a, 0x3a677066,  2, \
+  19,   0, 0x0D000000, 0x09, 0x6670673b, 0x3b677066,  2, \
+  20,   0, 0x0A000000, 0x09, 0x71646332, 0x32636471, 20, \
+  21,   0, 0x0B000000, 0x09, 0x71646333, 0x33636471, 20, \
+  22,   0, 0x00600000, 0x39, 0x31313832, 0x32383131, 21, \
+  23,   0, 0x00700000, 0x39, 0x31313833, 0x33383131, 21, \
+  24,   0, 0x07000000, 0x09, 0x71667731, 0x31776671, 22, \
+  25,   0, 0x12000000, 0x09, 0x73636f6d, 0x6d6f6373, 11, \
+  26,   0, 0x13000000, 0x09, 0x736f6d62, 0x626d6f73, 11, \
+  27,   0, 0x06000000, 0x09, 0x73636131, 0x31616373, 13, \
+  28,   0, 0x08000000, 0x09, 0x73636132, 0x32616373, 13, \
+  29,   0, 0x10000000, 0x09, 0x73636133, 0x33616373, 13, \
+  30,   0, 0x12000000, 0x09, 0x73636134, 0x34616373, 13
+// Number of possible Non-VME boards in the MBS event
+NbNonVmeBoards: Int_t 63
+//==============================================================================
+// General structure
+// BoardIndex Active RocIndx AddMod TokenA TokenB Type
+//------------------------------------------------------------------------------
+// BoardTypes
+//      0:  unknown -- default
+//      4:  get4    -- GET4 chips
+//      30: trbseb  -- subevent builder on central TRB-FPGA
+//      31: trbtdc  -- TDC on peripheral TRB-FPGA or FEE-TDC
+//      32: trbhub  -- hub on peripheral TRB-FPGA
+//==============================================================================
+// TRB specific structure
+// BoardIndex UnpackTdc FpgaAddr [niu] SebAddr FpgaInData FpgaType
+//------------------------------------------------------------------------------
+// BoardIndex:  consecutively numbered index (0...NbNonVmeBoards-1)
+// FpgaInData:  FPGA TRBnet endpoint sends data (0x1)
+// FpgaAddr:    FPGA TRBnet endpoint address
+// [niu]:       field not in use
+// SebAddr:     subevent builder's TRBnet endpoint address
+// UnpackTdc:   unpack data from this TDC (0x1)
+// FpgaType:    see BoardTypes above
+//==============================================================================
+//
+NonVmeMapping: Int_t \
+   0,  0x1,  0xc000,  0x0,  0xc000,  0x0,  30, \
+   1,  0x1,  0xb001,  0x0,  0xc000,  0x0,  32, \
+   2,  0x1,  0xb002,  0x0,  0xc000,  0x0,  32, \
+   3,  0x1,  0xb003,  0x0,  0xc000,  0x0,  32, \
+   4,  0x1,  0xb004,  0x0,  0xc000,  0x0,  32, \
+   5,  0x1,  0x8001,  0x0,  0x8001,  0x0,  30, \
+   6,  0x1,  0xb011,  0x0,  0x8001,  0x1,  32, \
+   7,  0x1,  0xb012,  0x0,  0x8001,  0x1,  32, \
+   8,  0x1,  0xb013,  0x0,  0x8001,  0x1,  32, \
+   9,  0x1,  0xb014,  0x0,  0x8001,  0x1,  32, \
+  10,  0x1,  0x8002,  0x0,  0x8002,  0x0,  30, \
+  11,  0x1,  0xb021,  0x0,  0x8002,  0x1,  32, \
+  12,  0x1,  0xb022,  0x0,  0x8002,  0x1,  32, \
+  13,  0x1,  0xb023,  0x0,  0x8002,  0x1,  32, \
+  14,  0x1,  0xb024,  0x0,  0x8002,  0x1,  32, \
+  15,  0x1,  0x8003,  0x0,  0x8003,  0x0,  30, \
+  16,  0x1,  0xb031,  0x0,  0x8003,  0x1,  32, \
+  17,  0x1,  0xb032,  0x0,  0x8003,  0x1,  32, \
+  18,  0x1,  0xb033,  0x0,  0x8003,  0x1,  32, \
+  19,  0x1,  0xb034,  0x0,  0x8003,  0x1,  32, \
+  20,  0x1,  0x8004,  0x0,  0x8004,  0x0,  30, \
+  21,  0x1,  0xb041,  0x0,  0x8004,  0x1,  32, \
+  22,  0x1,  0xb042,  0x0,  0x8004,  0x1,  32, \
+  23,  0x1,  0xb043,  0x0,  0x8004,  0x1,  32, \
+  24,  0x1,  0xb044,  0x0,  0x8004,  0x1,  32, \
+  25,  0x1,  0x0129,  0x0,  0x8002,  0x1,  31, \
+  26,  0x1,  0x0130,  0x0,  0x8002,  0x1,  31, \
+  27,  0x1,  0x0139,  0x0,  0xc000,  0x1,  31, \
+  28,  0x1,  0x0140,  0x0,  0xc000,  0x1,  31, \
+  29,  0x1,  0x0217,  0x0,  0x8004,  0x1,  31, \
+  30,  0x1,  0x0318,  0x0,  0x8004,  0x1,  31, \
+  31,  0x1,  0x0319,  0x0,  0x8004,  0x1,  31, \
+  32,  0x1,  0x0420,  0x0,  0x8004,  0x1,  31, \
+  33,  0x1,  0x0541,  0x0,  0xc000,  0x1,  31, \
+  34,  0x1,  0x0542,  0x0,  0x8003,  0x1,  31, \
+  35,  0x1,  0x0543,  0x0,  0x8003,  0x1,  31, \
+  36,  0x1,  0x0544,  0x0,  0x8003,  0x1,  31, \
+  37,  0x1,  0x0621,  0x0,  0x8001,  0x1,  31, \
+  38,  0x1,  0x0622,  0x0,  0x8001,  0x1,  31, \
+  39,  0x1,  0x0623,  0x0,  0x8001,  0x1,  31, \
+  40,  0x1,  0x0624,  0x0,  0x8001,  0x1,  31, \
+  41,  0x1,  0x0731,  0x0,  0xc000,  0x1,  31, \
+  42,  0x1,  0x0732,  0x0,  0xc000,  0x1,  31, \
+  43,  0x1,  0x0733,  0x0,  0xc000,  0x1,  31, \
+  44,  0x1,  0x0734,  0x0,  0xc000,  0x1,  31, \
+  45,  0x1,  0x0735,  0x0,  0xc000,  0x1,  31, \
+  46,  0x1,  0x0736,  0x0,  0xc000,  0x1,  31, \
+  47,  0x1,  0x0737,  0x0,  0xc000,  0x1,  31, \
+  48,  0x1,  0x0738,  0x0,  0xc000,  0x1,  31, \
+  49,  0x1,  0x0826,  0x0,  0x8001,  0x1,  31, \
+  50,  0x1,  0x0828,  0x0,  0x8001,  0x1,  31, \
+  51,  0x1,  0x0901,  0x0,  0x8002,  0x1,  31, \
+  52,  0x1,  0x0902,  0x0,  0x8002,  0x1,  31, \
+  53,  0x1,  0x0903,  0x0,  0x8002,  0x1,  31, \
+  54,  0x1,  0x0904,  0x0,  0x8002,  0x1,  31, \
+  55,  0x1,  0x0905,  0x0,  0x8003,  0x1,  31, \
+  56,  0x1,  0x0906,  0x0,  0x8003,  0x1,  31, \
+  57,  0x1,  0x0907,  0x0,  0x8003,  0x1,  31, \
+  58,  0x1,  0x0908,  0x0,  0x8003,  0x1,  31, \
+  59,  0x1,  0x0909,  0x0,  0x8004,  0x1,  31, \
+  60,  0x1,  0x0910,  0x0,  0x8004,  0x1,  31, \
+  61,  0x1,  0x0911,  0x0,  0x8004,  0x1,  31, \
+  62,  0x1,  0x0912,  0x0,  0x8004,  0x1,  31
+//
+// Trigger from the Triglog board for which event are jump by Calib, mapping and conv
+// For now only jumping work for GET4 data!!
+//TriggerRejection: Int_t  15
+TriggerRejection: Int_t  -1
+//==============================================================================
+// TriggerChannel | TriggerType | TriggerUnpack
+//------------------------------------------------------------------------------
+// TriggerChannel (as defined in the CTS)
+//   max. range: 0 - 15
+//------------------------------------------------------------------------------
+// TriggerType (as defined in the CTS)
+//   max. range: 0x0 - 0xf
+//   types generating a reference time signal: 0x0 - 0x7 ("physics triggers")
+//   types without a reference time signal:    0x8 - 0xf
+//   calibration (ToT stretching offset):      0xd
+//
+//   In case of a trigger concidence, only a uniquely assigned trigger type
+//   allows to unambigously identify the trigger which actually triggered
+//   the event.
+//   All 8 possible trigger signal inputs should have assigned a different
+//   trigger type from 0x0 to 0x7. To all disabled trigger channels, please
+//   assign a higher trigger type (0x8 - 0xf exclusive 0xd).
+//------------------------------------------------------------------------------
+// TriggerUnpack
+//    0x1: only consider events in which this trigger channel was asserted
+//         (if this unpack bit is set for several trigger channels, all of
+//          them must have been asserted for the event to be unpacked)
+//    0x0: do not care whether this trigger channel was asserted or not
+//         (if this unpack bit is not set for all trigger channels, each
+//          incoming event is unpacked)
+//==============================================================================
+NbCtsTrigChs: Int_t 16
+CtsTriggerMap: Int_t \
+   0,  0x1,  0x0, \
+   1,  0x1,  0x0, \
+   2,  0x1,  0x0, \
+   3,  0x1,  0x0, \
+   4,  0x0,  0x0, \
+   5,  0x1,  0x0, \
+   6,  0x2,  0x0, \
+   7,  0x3,  0x0, \
+   8,  0x4,  0x0, \
+   9,  0x5,  0x0, \
+  10,  0x6,  0x0, \
+  11,  0x7,  0x0, \
+  12,  0x1,  0x0, \
+  13,  0x1,  0x0, \
+  14,  0x1,  0x0, \
+  15,  0x1,  0x0
+//
+//==============================================================================
+// The unpacking algorithms support both double edge measurement methods
+// implemented for the TRB-TDC.
+// - 128-bit mode: separate edge detection in different TDC channels
+//                 1 TDC TIME and 1 TDC EPOCH word for both edges
+// -  96-bit mode: joint edge detection in the same TDC channel
+//                 1 TDC TIME word per edge and 1 joint TDC EPOCH word
+// To enable 96-bit mode unpacking, set 'TrbTdcBitMode' to '1'. Setting any
+// other value will result in 128-bit mode unpacking.
+//==============================================================================
+TrbTdcBitMode: Int_t 0
+###########################
diff --git a/macro/tof/beamtime/nov15/parUnpack_basic.txt b/macro/tof/beamtime/nov15/parUnpack_basic.txt
index 4268461eac..fdcf231256 100644
--- a/macro/tof/beamtime/nov15/parUnpack_basic.txt
+++ b/macro/tof/beamtime/nov15/parUnpack_basic.txt
@@ -1,172 +1,172 @@
-##############################################################################
-# Class:   TMbsUnpackTofPar
-# Context: TestDefaultContext
-##############################################################################
-[TMbsUnpackTofPar]
-//----------------------------------------------------------------------------
-//******************************//
-//   Input selector             //
-//******************************//
-// GETEVT__FILE     1 <- LMD File
-// GETEVT__STREAM   2 <- Stream client
-// GETEVT__TRANS    3 <- Transport client
-// GETEVT__EVENT    4 <- Event client
-// GETEVT__REVSERV  5 <- Remote event client
-MbsSourceMode: Int_t 2
-// Switch ON/OFF the writing of data in the output root file of cbmroot analysis
-WriteDataInCbmOut: Int_t 1
-// Switch ON/OFF debug tests in VFTX unpacker
-VftxDebug: Int_t     0 
-// Number of possible VME boards in the MBS event
-MbsNbVmeBoards: Int_t 31
-// BoardTypes
-//      undef      =  0,  // unknown type, default value
-//      caenV1290  =  1,  // CAEN v1290A and CAEN v1290N VME boards based on HPTDC chips
-//      vftx       =  2,  // FPGA TDC of the VFTX family (E. Bayer dev.)
-//      triglog    = 10,  // VULOM TRIGLOG board
-//      scalormu   = 11,  // VULOM Scaler Or Multiplicity board 
-//      scalormubig= 12,  // VULOM Scaler Or Multiplicity board  32 channel version ? not used for now
-//      scaler2014 = 13,  // VULOM Scaler Or/And board used in the GSI April 2014 TOF beamtime
-//      caenv965   = 20,  // CAEN v965A and CAEN v965N VME QDC boards
-//      lecroy1182 = 21,  // LECROY 1182 VME QDC/ADC board 
-//      vulqfwread = 22   // VULOM QFW board (Charge to Frequency Converter Readout) 
-// BoardIndex Active    Address AddMod     TokenA     TokenB Type
-MbsVmeMapping: Int_t \
-   0,   0, 0x14000000, 0x09, 0x74726c6f, 0x6f6c7274, 10, \
-   1,   0, 0x0F000000, 0x09, 0x74646331, 0x31636474,  1, \
-   2,   0, 0x11000000, 0x09, 0x74646332, 0x32636474,  1, \
-   3,   0, 0x12000000, 0x09, 0x74646333, 0x33636474,  1, \
-   4,   0, 0x14000000, 0x09, 0x74646334, 0x34636474,  1, \
-   5,   0, 0x15000000, 0x09, 0x74646335, 0x35636474,  1, \
-   6,   0, 0x17000000, 0x09, 0x74646336, 0x36636474,  1, \
-   7,   0, 0x18000000, 0x09, 0x74646337, 0x37636474,  1, \
-   8,   0, 0x19000000, 0x09, 0x74646338, 0x38636474,  1, \
-   9,   0, 0x03000000, 0x09, 0x66706731, 0x31677066,  2, \
-  10,   0, 0x04000000, 0x09, 0x66706732, 0x32677066,  2, \
-  11,   0, 0x05000000, 0x09, 0x66706733, 0x33677066,  2, \
-  12,   0, 0x06000000, 0x09, 0x66706734, 0x34677066,  2, \
-  13,   0, 0x07000000, 0x09, 0x66706735, 0x35677066,  2, \
-  14,   0, 0x08000000, 0x09, 0x66706736, 0x36677066,  2, \
-  15,   0, 0x09000000, 0x09, 0x66706737, 0x37677066,  2, \
-  16,   0, 0x0A000000, 0x09, 0x66706738, 0x38677066,  2, \
-  17,   0, 0x0B000000, 0x09, 0x66706739, 0x39677066,  2, \
-  18,   0, 0x0C000000, 0x09, 0x6670673a, 0x3a677066,  2, \
-  19,   0, 0x0D000000, 0x09, 0x6670673b, 0x3b677066,  2, \
-  20,   0, 0x0A000000, 0x09, 0x71646332, 0x32636471, 20, \
-  21,   0, 0x0B000000, 0x09, 0x71646333, 0x33636471, 20, \
-  22,   0, 0x00600000, 0x39, 0x31313832, 0x32383131, 21, \
-  23,   0, 0x00700000, 0x39, 0x31313833, 0x33383131, 21, \
-  24,   0, 0x07000000, 0x09, 0x71667731, 0x31776671, 22, \
-  25,   0, 0x12000000, 0x09, 0x73636f6d, 0x6d6f6373, 11, \
-  26,   0, 0x13000000, 0x09, 0x736f6d62, 0x626d6f73, 11, \
-  27,   0, 0x06000000, 0x09, 0x73636131, 0x31616373, 13, \
-  28,   0, 0x08000000, 0x09, 0x73636132, 0x32616373, 13, \
-  29,   0, 0x10000000, 0x09, 0x73636133, 0x33616373, 13, \
-  30,   0, 0x12000000, 0x09, 0x73636134, 0x34616373, 13
-// Number of possible Non-VME boards in the MBS event
-NbNonVmeBoards: Int_t 18
-//==============================================================================
-// General structure
-// BoardIndex Active RocIndx AddMod TokenA TokenB Type
-//------------------------------------------------------------------------------
-// BoardTypes
-//      0:  unknown -- default
-//      4:  get4    -- GET4 chips
-//      30: trbseb  -- subevent builder on central TRB-FPGA
-//      31: trbtdc  -- TDC on peripheral TRB-FPGA or FEE-TDC
-//      32: trbhub  -- hub on peripheral TRB-FPGA
-//==============================================================================
-// TRB specific structure
-// BoardIndex UnpackTdc FpgaAddr [niu] SebAddr FpgaInData FpgaType
-//------------------------------------------------------------------------------
-// BoardIndex:  consecutively numbered index (0...NbNonVmeBoards-1)
-// FpgaInData:  FPGA TRBnet endpoint sends data (0x1)
-// FpgaAddr:    FPGA TRBnet endpoint address
-// [niu]:       field not in use
-// SebAddr:     subevent builder's TRBnet endpoint address
-// UnpackTdc:   unpack data from this TDC (0x1)
-// FpgaType:    see BoardTypes above
-//==============================================================================
-//
-NonVmeMapping: Int_t \
-   0,  0x1,  0xc000,  0x0,  0xc000,  0x0,  30, \
-   1,  0x1,  0xb001,  0x0,  0xc000,  0x0,  32, \
-   2,  0x1,  0xb002,  0x0,  0xc000,  0x0,  32, \
-   3,  0x1,  0xb003,  0x0,  0xc000,  0x0,  32, \
-   4,  0x1,  0xb004,  0x0,  0xc000,  0x0,  32, \
-   5,  0x1,  0x8001,  0x0,  0x8001,  0x0,  30, \
-   6,  0x1,  0xb011,  0x0,  0x8001,  0x1,  32, \
-   7,  0x1,  0xb012,  0x0,  0x8001,  0x1,  32, \
-   8,  0x1,  0xb013,  0x0,  0x8001,  0x1,  32, \
-   9,  0x1,  0xb014,  0x0,  0x8001,  0x1,  32, \
-  10,  0x1,  0x09c1,  0x0,  0x8001,  0x1,  31, \
-  11,  0x1,  0x0942,  0x0,  0x8001,  0x1,  31, \
-  12,  0x1,  0x0903,  0x0,  0x8001,  0x1,  31, \
-  13,  0x1,  0x0984,  0x0,  0x8001,  0x1,  31, \
-  14,  0x1,  0x0ac5,  0x0,  0xc000,  0x1,  31, \
-  15,  0x1,  0x0a46,  0x0,  0xc000,  0x1,  31, \
-  16,  0x1,  0x0a07,  0x0,  0xc000,  0x1,  31, \
-  17,  0x1,  0x0a88,  0x0,  0xc000,  0x1,  31
-//
-// Trigger from the Triglog board for which event are jump by Calib, mapping and conv
-// For now only jumping work for GET4 data!!
-//TriggerRejection: Int_t  15
-TriggerRejection: Int_t  -1
-//==============================================================================
-// TriggerChannel | TriggerType | TriggerUnpack
-//------------------------------------------------------------------------------
-// TriggerChannel (as defined in the CTS)
-//   max. range: 0 - 15
-//------------------------------------------------------------------------------
-// TriggerType (as defined in the CTS)
-//   max. range: 0x0 - 0xf
-//   types generating a reference time signal: 0x0 - 0x7 ("physics triggers")
-//   types without a reference time signal:    0x8 - 0xf
-//   calibration (ToT stretching offset):      0xd
-//
-//   In case of a trigger concidence, only a uniquely assigned trigger type
-//   allows to unambigously identify the trigger which actually triggered
-//   the event.
-//   All 8 possible trigger signal inputs should have assigned a different
-//   trigger type from 0x0 to 0x7. To all disabled trigger channels, please
-//   assign a higher trigger type (0x8 - 0xf exclusive 0xd).
-//------------------------------------------------------------------------------
-// TriggerUnpack
-//    0x1: only consider events in which this trigger channel was asserted
-//         (if this unpack bit is set for several trigger channels, all of
-//          them must have been asserted for the event to be unpacked)
-//    0x0: do not care whether this trigger channel was asserted or not
-//         (if this unpack bit is not set for all trigger channels, each
-//          incoming event is unpacked)
-//==============================================================================
-NbCtsTrigChs: Int_t 16
-CtsTriggerMap: Int_t \
-   0,  0x1,  0x0, \
-   1,  0x1,  0x0, \
-   2,  0x1,  0x0, \
-   3,  0x1,  0x0, \
-   4,  0x1,  0x0, \
-   5,  0x1,  0x0, \
-   6,  0x1,  0x0, \
-   7,  0x1,  0x0, \
-   8,  0x1,  0x0, \
-   9,  0x1,  0x0, \
-  10,  0x1,  0x0, \
-  11,  0x1,  0x0, \
-  12,  0x1,  0x0, \
-  13,  0x1,  0x0, \
-  14,  0x1,  0x0, \
-  15,  0x1,  0x0
-//
-//==============================================================================
-// The unpacking algorithms support both double edge measurement methods
-// implemented for the TRB-TDC.
-// - 128-bit mode: separate edge detection in different TDC channels
-//                 1 TDC TIME and 1 TDC EPOCH word for both edges
-// -  96-bit mode: joint edge detection in the same TDC channel
-//                 1 TDC TIME word per edge and 1 joint TDC EPOCH word
-// To enable 96-bit mode unpacking, set 'TrbTdcBitMode' to '1'. Setting any
-// other value will result in 128-bit mode unpacking.
-//==============================================================================
-TrbTdcBitMode: Int_t 0
-###########################
+##############################################################################
+# Class:   TMbsUnpackTofPar
+# Context: TestDefaultContext
+##############################################################################
+[TMbsUnpackTofPar]
+//----------------------------------------------------------------------------
+//******************************//
+//   Input selector             //
+//******************************//
+// GETEVT__FILE     1 <- LMD File
+// GETEVT__STREAM   2 <- Stream client
+// GETEVT__TRANS    3 <- Transport client
+// GETEVT__EVENT    4 <- Event client
+// GETEVT__REVSERV  5 <- Remote event client
+MbsSourceMode: Int_t 2
+// Switch ON/OFF the writing of data in the output root file of cbmroot analysis
+WriteDataInCbmOut: Int_t 1
+// Switch ON/OFF debug tests in VFTX unpacker
+VftxDebug: Int_t     0 
+// Number of possible VME boards in the MBS event
+MbsNbVmeBoards: Int_t 31
+// BoardTypes
+//      undef      =  0,  // unknown type, default value
+//      caenV1290  =  1,  // CAEN v1290A and CAEN v1290N VME boards based on HPTDC chips
+//      vftx       =  2,  // FPGA TDC of the VFTX family (E. Bayer dev.)
+//      triglog    = 10,  // VULOM TRIGLOG board
+//      scalormu   = 11,  // VULOM Scaler Or Multiplicity board 
+//      scalormubig= 12,  // VULOM Scaler Or Multiplicity board  32 channel version ? not used for now
+//      scaler2014 = 13,  // VULOM Scaler Or/And board used in the GSI April 2014 TOF beamtime
+//      caenv965   = 20,  // CAEN v965A and CAEN v965N VME QDC boards
+//      lecroy1182 = 21,  // LECROY 1182 VME QDC/ADC board 
+//      vulqfwread = 22   // VULOM QFW board (Charge to Frequency Converter Readout) 
+// BoardIndex Active    Address AddMod     TokenA     TokenB Type
+MbsVmeMapping: Int_t \
+   0,   0, 0x14000000, 0x09, 0x74726c6f, 0x6f6c7274, 10, \
+   1,   0, 0x0F000000, 0x09, 0x74646331, 0x31636474,  1, \
+   2,   0, 0x11000000, 0x09, 0x74646332, 0x32636474,  1, \
+   3,   0, 0x12000000, 0x09, 0x74646333, 0x33636474,  1, \
+   4,   0, 0x14000000, 0x09, 0x74646334, 0x34636474,  1, \
+   5,   0, 0x15000000, 0x09, 0x74646335, 0x35636474,  1, \
+   6,   0, 0x17000000, 0x09, 0x74646336, 0x36636474,  1, \
+   7,   0, 0x18000000, 0x09, 0x74646337, 0x37636474,  1, \
+   8,   0, 0x19000000, 0x09, 0x74646338, 0x38636474,  1, \
+   9,   0, 0x03000000, 0x09, 0x66706731, 0x31677066,  2, \
+  10,   0, 0x04000000, 0x09, 0x66706732, 0x32677066,  2, \
+  11,   0, 0x05000000, 0x09, 0x66706733, 0x33677066,  2, \
+  12,   0, 0x06000000, 0x09, 0x66706734, 0x34677066,  2, \
+  13,   0, 0x07000000, 0x09, 0x66706735, 0x35677066,  2, \
+  14,   0, 0x08000000, 0x09, 0x66706736, 0x36677066,  2, \
+  15,   0, 0x09000000, 0x09, 0x66706737, 0x37677066,  2, \
+  16,   0, 0x0A000000, 0x09, 0x66706738, 0x38677066,  2, \
+  17,   0, 0x0B000000, 0x09, 0x66706739, 0x39677066,  2, \
+  18,   0, 0x0C000000, 0x09, 0x6670673a, 0x3a677066,  2, \
+  19,   0, 0x0D000000, 0x09, 0x6670673b, 0x3b677066,  2, \
+  20,   0, 0x0A000000, 0x09, 0x71646332, 0x32636471, 20, \
+  21,   0, 0x0B000000, 0x09, 0x71646333, 0x33636471, 20, \
+  22,   0, 0x00600000, 0x39, 0x31313832, 0x32383131, 21, \
+  23,   0, 0x00700000, 0x39, 0x31313833, 0x33383131, 21, \
+  24,   0, 0x07000000, 0x09, 0x71667731, 0x31776671, 22, \
+  25,   0, 0x12000000, 0x09, 0x73636f6d, 0x6d6f6373, 11, \
+  26,   0, 0x13000000, 0x09, 0x736f6d62, 0x626d6f73, 11, \
+  27,   0, 0x06000000, 0x09, 0x73636131, 0x31616373, 13, \
+  28,   0, 0x08000000, 0x09, 0x73636132, 0x32616373, 13, \
+  29,   0, 0x10000000, 0x09, 0x73636133, 0x33616373, 13, \
+  30,   0, 0x12000000, 0x09, 0x73636134, 0x34616373, 13
+// Number of possible Non-VME boards in the MBS event
+NbNonVmeBoards: Int_t 18
+//==============================================================================
+// General structure
+// BoardIndex Active RocIndx AddMod TokenA TokenB Type
+//------------------------------------------------------------------------------
+// BoardTypes
+//      0:  unknown -- default
+//      4:  get4    -- GET4 chips
+//      30: trbseb  -- subevent builder on central TRB-FPGA
+//      31: trbtdc  -- TDC on peripheral TRB-FPGA or FEE-TDC
+//      32: trbhub  -- hub on peripheral TRB-FPGA
+//==============================================================================
+// TRB specific structure
+// BoardIndex UnpackTdc FpgaAddr [niu] SebAddr FpgaInData FpgaType
+//------------------------------------------------------------------------------
+// BoardIndex:  consecutively numbered index (0...NbNonVmeBoards-1)
+// FpgaInData:  FPGA TRBnet endpoint sends data (0x1)
+// FpgaAddr:    FPGA TRBnet endpoint address
+// [niu]:       field not in use
+// SebAddr:     subevent builder's TRBnet endpoint address
+// UnpackTdc:   unpack data from this TDC (0x1)
+// FpgaType:    see BoardTypes above
+//==============================================================================
+//
+NonVmeMapping: Int_t \
+   0,  0x1,  0xc000,  0x0,  0xc000,  0x0,  30, \
+   1,  0x1,  0xb001,  0x0,  0xc000,  0x0,  32, \
+   2,  0x1,  0xb002,  0x0,  0xc000,  0x0,  32, \
+   3,  0x1,  0xb003,  0x0,  0xc000,  0x0,  32, \
+   4,  0x1,  0xb004,  0x0,  0xc000,  0x0,  32, \
+   5,  0x1,  0x8001,  0x0,  0x8001,  0x0,  30, \
+   6,  0x1,  0xb011,  0x0,  0x8001,  0x1,  32, \
+   7,  0x1,  0xb012,  0x0,  0x8001,  0x1,  32, \
+   8,  0x1,  0xb013,  0x0,  0x8001,  0x1,  32, \
+   9,  0x1,  0xb014,  0x0,  0x8001,  0x1,  32, \
+  10,  0x1,  0x09c1,  0x0,  0x8001,  0x1,  31, \
+  11,  0x1,  0x0942,  0x0,  0x8001,  0x1,  31, \
+  12,  0x1,  0x0903,  0x0,  0x8001,  0x1,  31, \
+  13,  0x1,  0x0984,  0x0,  0x8001,  0x1,  31, \
+  14,  0x1,  0x0ac5,  0x0,  0xc000,  0x1,  31, \
+  15,  0x1,  0x0a46,  0x0,  0xc000,  0x1,  31, \
+  16,  0x1,  0x0a07,  0x0,  0xc000,  0x1,  31, \
+  17,  0x1,  0x0a88,  0x0,  0xc000,  0x1,  31
+//
+// Trigger from the Triglog board for which event are jump by Calib, mapping and conv
+// For now only jumping work for GET4 data!!
+//TriggerRejection: Int_t  15
+TriggerRejection: Int_t  -1
+//==============================================================================
+// TriggerChannel | TriggerType | TriggerUnpack
+//------------------------------------------------------------------------------
+// TriggerChannel (as defined in the CTS)
+//   max. range: 0 - 15
+//------------------------------------------------------------------------------
+// TriggerType (as defined in the CTS)
+//   max. range: 0x0 - 0xf
+//   types generating a reference time signal: 0x0 - 0x7 ("physics triggers")
+//   types without a reference time signal:    0x8 - 0xf
+//   calibration (ToT stretching offset):      0xd
+//
+//   In case of a trigger concidence, only a uniquely assigned trigger type
+//   allows to unambigously identify the trigger which actually triggered
+//   the event.
+//   All 8 possible trigger signal inputs should have assigned a different
+//   trigger type from 0x0 to 0x7. To all disabled trigger channels, please
+//   assign a higher trigger type (0x8 - 0xf exclusive 0xd).
+//------------------------------------------------------------------------------
+// TriggerUnpack
+//    0x1: only consider events in which this trigger channel was asserted
+//         (if this unpack bit is set for several trigger channels, all of
+//          them must have been asserted for the event to be unpacked)
+//    0x0: do not care whether this trigger channel was asserted or not
+//         (if this unpack bit is not set for all trigger channels, each
+//          incoming event is unpacked)
+//==============================================================================
+NbCtsTrigChs: Int_t 16
+CtsTriggerMap: Int_t \
+   0,  0x1,  0x0, \
+   1,  0x1,  0x0, \
+   2,  0x1,  0x0, \
+   3,  0x1,  0x0, \
+   4,  0x1,  0x0, \
+   5,  0x1,  0x0, \
+   6,  0x1,  0x0, \
+   7,  0x1,  0x0, \
+   8,  0x1,  0x0, \
+   9,  0x1,  0x0, \
+  10,  0x1,  0x0, \
+  11,  0x1,  0x0, \
+  12,  0x1,  0x0, \
+  13,  0x1,  0x0, \
+  14,  0x1,  0x0, \
+  15,  0x1,  0x0
+//
+//==============================================================================
+// The unpacking algorithms support both double edge measurement methods
+// implemented for the TRB-TDC.
+// - 128-bit mode: separate edge detection in different TDC channels
+//                 1 TDC TIME and 1 TDC EPOCH word for both edges
+// -  96-bit mode: joint edge detection in the same TDC channel
+//                 1 TDC TIME word per edge and 1 joint TDC EPOCH word
+// To enable 96-bit mode unpacking, set 'TrbTdcBitMode' to '1'. Setting any
+// other value will result in 128-bit mode unpacking.
+//==============================================================================
+TrbTdcBitMode: Int_t 0
+###########################
diff --git a/macro/tof/beamtime/nov15/parUnpack_rates.txt b/macro/tof/beamtime/nov15/parUnpack_rates.txt
index 5054050b8a..ad0b2f770c 100644
--- a/macro/tof/beamtime/nov15/parUnpack_rates.txt
+++ b/macro/tof/beamtime/nov15/parUnpack_rates.txt
@@ -1,178 +1,178 @@
-##############################################################################
-# Class:   TMbsUnpackTofPar
-# Context: TestDefaultContext
-##############################################################################
-[TMbsUnpackTofPar]
-//----------------------------------------------------------------------------
-//******************************//
-//   Input selector             //
-//******************************//
-// GETEVT__FILE     1 <- LMD File
-// GETEVT__STREAM   2 <- Stream client
-// GETEVT__TRANS    3 <- Transport client
-// GETEVT__EVENT    4 <- Event client
-// GETEVT__REVSERV  5 <- Remote event client
-MbsSourceMode: Int_t 2
-// Switch ON/OFF the writing of data in the output root file of cbmroot analysis
-WriteDataInCbmOut: Int_t 1
-// Switch ON/OFF debug tests in VFTX unpacker
-VftxDebug: Int_t     0 
-// Number of possible VME boards in the MBS event
-MbsNbVmeBoards: Int_t 8
-// BoardTypes
-//      undef      =  0,  // unknown type, default value
-//      caenV1290  =  1,  // CAEN v1290A and CAEN v1290N VME boards based on HPTDC chips
-//      vftx       =  2,  // FPGA TDC of the VFTX family (E. Bayer dev.)
-//      triglog    = 10,  // VULOM TRIGLOG board
-//      scalormu   = 11,  // VULOM Scaler Or Multiplicity board 
-//      scalormubig= 12,  // VULOM Scaler Or Multiplicity board  32 channel version ? not used for now
-//      scaler2014 = 13,  // VULOM Scaler Or/And board used in the GSI April 2014 TOF beamtime
-//      triglogscal= 14,  // VULOM TRIGLOG board used as additional scaler board
-//      orgen      = 15,  // VULOM Or Generation board (nov 2015) with more scalers than scaler2014
-//      caenv965   = 20,  // CAEN v965A and CAEN v965N VME QDC boards
-//      lecroy1182 = 21,  // LECROY 1182 VME QDC/ADC board 
-//      vulqfwread = 22   // VULOM QFW board (Charge to Frequency Converter Readout) 
-// BoardIndex Active    Address AddMod     TokenA     TokenB Type
-MbsVmeMapping: Int_t \
-   0,   1, 0x03000000, 0x09, 0x74726c6f, 0x6f6c7274, 10, \
-   1,   1, 0x04000000, 0x09, 0x504d5453, 0x53544d50, 14, \
-   2,   1, 0x05000000, 0x09, 0x73636131, 0x31616373, 15, \
-   3,   1, 0x06000000, 0x09, 0x73636132, 0x32616373, 15, \
-   4,   1, 0x07000000, 0x09, 0x73636133, 0x33616373, 15, \
-   5,   1, 0x08000000, 0x09, 0x73636134, 0x34616373, 15, \
-   6,   1, 0x09000000, 0x09, 0x73636135, 0x35616373, 15, \
-   7,   1, 0x0A000000, 0x09, 0x73636136, 0x36616373, 15
-// Number of possible Non-VME boards in the MBS event
-NbNonVmeBoards: Int_t 45
-//==============================================================================
-// General structure
-// BoardIndex Active RocIndx AddMod TokenA TokenB Type
-//------------------------------------------------------------------------------
-// BoardTypes
-//      0:  unknown -- default
-//      4:  get4    -- GET4 chips
-//      30: trbseb  -- subevent builder on central TRB-FPGA
-//      31: trbtdc  -- TDC on peripheral TRB-FPGA or FEE-TDC
-//      32: trbhub  -- hub on peripheral TRB-FPGA
-//==============================================================================
-// TRB specific structure
-// BoardIndex UnpackTdc FpgaAddr [niu] SebAddr FpgaInData FpgaType
-//------------------------------------------------------------------------------
-// BoardIndex:  consecutively numbered index (0...NbNonVmeBoards-1)
-// FpgaInData:  FPGA TRBnet endpoint sends data (0x1)
-// FpgaAddr:    FPGA TRBnet endpoint address
-// [niu]:       field not in use
-// SebAddr:     subevent builder's TRBnet endpoint address
-// UnpackTdc:   unpack data from this TDC (0x1)
-// FpgaType:    see BoardTypes above
-//==============================================================================
-//
-NonVmeMapping: Int_t \
-   0,  0x0,  0xc000,  0x0,  0xc000,  0x1,  30, \
-   1,  0x0,  0xb001,  0x0,  0xc000,  0x1,  32, \
-   2,  0x0,  0xb002,  0x0,  0xc000,  0x1,  32, \
-   3,  0x0,  0xb003,  0x0,  0xc000,  0x1,  32, \
-   4,  0x0,  0xb004,  0x0,  0xc000,  0x1,  32, \
-   5,  0x0,  0x8002,  0x0,  0xc000,  0x1,  30, \
-   6,  0x0,  0xb021,  0x0,  0x8002,  0x1,  32, \
-   7,  0x0,  0xb022,  0x0,  0x8002,  0x1,  32, \
-   8,  0x0,  0xb023,  0x0,  0x8002,  0x1,  32, \
-   9,  0x0,  0xb024,  0x0,  0x8002,  0x1,  32, \
-  10,  0x0,  0x8003,  0x0,  0x8003,  0x1,  30, \
-  11,  0x0,  0xb031,  0x0,  0x8003,  0x1,  32, \
-  12,  0x0,  0xb032,  0x0,  0x8003,  0x1,  32, \
-  13,  0x0,  0xb033,  0x0,  0x8003,  0x1,  32, \
-  14,  0x0,  0xb034,  0x0,  0x8003,  0x1,  32, \
-  15,  0x0,  0x8004,  0x0,  0x8004,  0x1,  30, \
-  16,  0x0,  0xb041,  0x0,  0x8004,  0x1,  32, \
-  17,  0x0,  0xb042,  0x0,  0x8004,  0x1,  32, \
-  18,  0x0,  0xb043,  0x0,  0x8004,  0x1,  32, \
-  19,  0x0,  0xb044,  0x0,  0x8004,  0x1,  32, \
-  20,  0x0,  0x8005,  0x0,  0x8005,  0x1,  30, \
-  21,  0x0,  0xb051,  0x0,  0x8005,  0x1,  32, \
-  22,  0x0,  0xb052,  0x0,  0x8005,  0x1,  32, \
-  23,  0x0,  0xb053,  0x0,  0x8005,  0x1,  32, \
-  24,  0x0,  0xb054,  0x0,  0x8005,  0x1,  32, \
-  25,  0x0,  0x0f11,  0x0,  0xc000,  0x1,  31, \
-  26,  0x0,  0x0f12,  0x0,  0xc000,  0x1,  31, \
-  27,  0x0,  0x0f13,  0x0,  0xc000,  0x1,  31, \
-  28,  0x0,  0x0f14,  0x0,  0xc000,  0x1,  31, \
-  29,  0x0,  0x0f21,  0x0,  0x8002,  0x1,  31, \
-  30,  0x0,  0x0f22,  0x0,  0x8002,  0x1,  31, \
-  31,  0x0,  0x0f23,  0x0,  0x8002,  0x1,  31, \
-  32,  0x0,  0x0f24,  0x0,  0x8002,  0x1,  31, \
-  33,  0x0,  0x0f41,  0x0,  0x8003,  0x1,  31, \
-  34,  0x0,  0x0f42,  0x0,  0x8003,  0x1,  31, \
-  35,  0x0,  0x0f43,  0x0,  0x8003,  0x1,  31, \
-  36,  0x0,  0x0f44,  0x0,  0x8003,  0x1,  31, \
-  37,  0x0,  0x0f51,  0x0,  0x8004,  0x1,  31, \
-  38,  0x0,  0x0f52,  0x0,  0x8004,  0x1,  31, \
-  39,  0x0,  0x0f53,  0x0,  0x8004,  0x1,  31, \
-  40,  0x0,  0x0f54,  0x0,  0x8004,  0x1,  31, \
-  41,  0x0,  0x0f61,  0x0,  0x8005,  0x1,  31, \
-  42,  0x0,  0x0f62,  0x0,  0x8005,  0x1,  31, \
-  43,  0x0,  0x0f63,  0x0,  0x8005,  0x1,  31, \
-  44,  0x0,  0x0f64,  0x0,  0x8005,  0x1,  31
-//
-// Trigger from the Triglog board for which event are jump by Calib, mapping and conv
-// For now only jumping work for GET4 data!!
-//TriggerRejection: Int_t  15
-TriggerRejection: Int_t  -1
-//==============================================================================
-// TriggerChannel | TriggerType | TriggerUnpack
-//------------------------------------------------------------------------------
-// TriggerChannel (as defined in the CTS)
-//   max. range: 0 - 15
-//------------------------------------------------------------------------------
-// TriggerType (as defined in the CTS)
-//   max. range: 0x0 - 0xf
-//   types generating a reference time signal: 0x0 - 0x7 ("physics triggers")
-//   types without a reference time signal:    0x8 - 0xf
-//   calibration (ToT stretching offset):      0xd
-//
-//   In case of a trigger concidence, only a uniquely assigned trigger type
-//   allows to unambigously identify the trigger which actually triggered
-//   the event.
-//   All 8 possible trigger signal inputs should have assigned a different
-//   trigger type from 0x0 to 0x7. To all disabled trigger channels, please
-//   assign a higher trigger type (0x8 - 0xf exclusive 0xd).
-//------------------------------------------------------------------------------
-// TriggerUnpack
-//    0x1: only consider events in which this trigger channel was asserted
-//         (if this unpack bit is set for several trigger channels, all of
-//          them must have been asserted for the event to be unpacked)
-//    0x0: do not care whether this trigger channel was asserted or not
-//         (if this unpack bit is not set for all trigger channels, each
-//          incoming event is unpacked)
-//==============================================================================
-NbCtsTrigChs: Int_t 16
-CtsTriggerMap: Int_t \
-   0,  0x1,  0x0, \
-   1,  0x1,  0x0, \
-   2,  0x1,  0x0, \
-   3,  0x1,  0x0, \
-   4,  0x1,  0x0, \
-   5,  0x1,  0x0, \
-   6,  0x1,  0x0, \
-   7,  0x1,  0x0, \
-   8,  0x0,  0x0, \
-   9,  0x1,  0x0, \
-  10,  0x2,  0x0, \
-  11,  0x3,  0x0, \
-  12,  0x4,  0x0, \
-  13,  0x5,  0x0, \
-  14,  0x6,  0x0, \
-  15,  0x7,  0x0
-//
-//==============================================================================
-// The unpacking algorithms support both double edge measurement methods
-// implemented for the TRB-TDC.
-// - 128-bit mode: separate edge detection in different TDC channels
-//                 1 TDC TIME and 1 TDC EPOCH word for both edges
-// -  96-bit mode: joint edge detection in the same TDC channel
-//                 1 TDC TIME word per edge and 1 joint TDC EPOCH word
-// To enable 96-bit mode unpacking, set 'TrbTdcBitMode' to '1'. Setting any
-// other value will result in 128-bit mode unpacking.
-//==============================================================================
-TrbTdcBitMode: Int_t 1
-###########################
+##############################################################################
+# Class:   TMbsUnpackTofPar
+# Context: TestDefaultContext
+##############################################################################
+[TMbsUnpackTofPar]
+//----------------------------------------------------------------------------
+//******************************//
+//   Input selector             //
+//******************************//
+// GETEVT__FILE     1 <- LMD File
+// GETEVT__STREAM   2 <- Stream client
+// GETEVT__TRANS    3 <- Transport client
+// GETEVT__EVENT    4 <- Event client
+// GETEVT__REVSERV  5 <- Remote event client
+MbsSourceMode: Int_t 2
+// Switch ON/OFF the writing of data in the output root file of cbmroot analysis
+WriteDataInCbmOut: Int_t 1
+// Switch ON/OFF debug tests in VFTX unpacker
+VftxDebug: Int_t     0 
+// Number of possible VME boards in the MBS event
+MbsNbVmeBoards: Int_t 8
+// BoardTypes
+//      undef      =  0,  // unknown type, default value
+//      caenV1290  =  1,  // CAEN v1290A and CAEN v1290N VME boards based on HPTDC chips
+//      vftx       =  2,  // FPGA TDC of the VFTX family (E. Bayer dev.)
+//      triglog    = 10,  // VULOM TRIGLOG board
+//      scalormu   = 11,  // VULOM Scaler Or Multiplicity board 
+//      scalormubig= 12,  // VULOM Scaler Or Multiplicity board  32 channel version ? not used for now
+//      scaler2014 = 13,  // VULOM Scaler Or/And board used in the GSI April 2014 TOF beamtime
+//      triglogscal= 14,  // VULOM TRIGLOG board used as additional scaler board
+//      orgen      = 15,  // VULOM Or Generation board (nov 2015) with more scalers than scaler2014
+//      caenv965   = 20,  // CAEN v965A and CAEN v965N VME QDC boards
+//      lecroy1182 = 21,  // LECROY 1182 VME QDC/ADC board 
+//      vulqfwread = 22   // VULOM QFW board (Charge to Frequency Converter Readout) 
+// BoardIndex Active    Address AddMod     TokenA     TokenB Type
+MbsVmeMapping: Int_t \
+   0,   1, 0x03000000, 0x09, 0x74726c6f, 0x6f6c7274, 10, \
+   1,   1, 0x04000000, 0x09, 0x504d5453, 0x53544d50, 14, \
+   2,   1, 0x05000000, 0x09, 0x73636131, 0x31616373, 15, \
+   3,   1, 0x06000000, 0x09, 0x73636132, 0x32616373, 15, \
+   4,   1, 0x07000000, 0x09, 0x73636133, 0x33616373, 15, \
+   5,   1, 0x08000000, 0x09, 0x73636134, 0x34616373, 15, \
+   6,   1, 0x09000000, 0x09, 0x73636135, 0x35616373, 15, \
+   7,   1, 0x0A000000, 0x09, 0x73636136, 0x36616373, 15
+// Number of possible Non-VME boards in the MBS event
+NbNonVmeBoards: Int_t 45
+//==============================================================================
+// General structure
+// BoardIndex Active RocIndx AddMod TokenA TokenB Type
+//------------------------------------------------------------------------------
+// BoardTypes
+//      0:  unknown -- default
+//      4:  get4    -- GET4 chips
+//      30: trbseb  -- subevent builder on central TRB-FPGA
+//      31: trbtdc  -- TDC on peripheral TRB-FPGA or FEE-TDC
+//      32: trbhub  -- hub on peripheral TRB-FPGA
+//==============================================================================
+// TRB specific structure
+// BoardIndex UnpackTdc FpgaAddr [niu] SebAddr FpgaInData FpgaType
+//------------------------------------------------------------------------------
+// BoardIndex:  consecutively numbered index (0...NbNonVmeBoards-1)
+// FpgaInData:  FPGA TRBnet endpoint sends data (0x1)
+// FpgaAddr:    FPGA TRBnet endpoint address
+// [niu]:       field not in use
+// SebAddr:     subevent builder's TRBnet endpoint address
+// UnpackTdc:   unpack data from this TDC (0x1)
+// FpgaType:    see BoardTypes above
+//==============================================================================
+//
+NonVmeMapping: Int_t \
+   0,  0x0,  0xc000,  0x0,  0xc000,  0x1,  30, \
+   1,  0x0,  0xb001,  0x0,  0xc000,  0x1,  32, \
+   2,  0x0,  0xb002,  0x0,  0xc000,  0x1,  32, \
+   3,  0x0,  0xb003,  0x0,  0xc000,  0x1,  32, \
+   4,  0x0,  0xb004,  0x0,  0xc000,  0x1,  32, \
+   5,  0x0,  0x8002,  0x0,  0xc000,  0x1,  30, \
+   6,  0x0,  0xb021,  0x0,  0x8002,  0x1,  32, \
+   7,  0x0,  0xb022,  0x0,  0x8002,  0x1,  32, \
+   8,  0x0,  0xb023,  0x0,  0x8002,  0x1,  32, \
+   9,  0x0,  0xb024,  0x0,  0x8002,  0x1,  32, \
+  10,  0x0,  0x8003,  0x0,  0x8003,  0x1,  30, \
+  11,  0x0,  0xb031,  0x0,  0x8003,  0x1,  32, \
+  12,  0x0,  0xb032,  0x0,  0x8003,  0x1,  32, \
+  13,  0x0,  0xb033,  0x0,  0x8003,  0x1,  32, \
+  14,  0x0,  0xb034,  0x0,  0x8003,  0x1,  32, \
+  15,  0x0,  0x8004,  0x0,  0x8004,  0x1,  30, \
+  16,  0x0,  0xb041,  0x0,  0x8004,  0x1,  32, \
+  17,  0x0,  0xb042,  0x0,  0x8004,  0x1,  32, \
+  18,  0x0,  0xb043,  0x0,  0x8004,  0x1,  32, \
+  19,  0x0,  0xb044,  0x0,  0x8004,  0x1,  32, \
+  20,  0x0,  0x8005,  0x0,  0x8005,  0x1,  30, \
+  21,  0x0,  0xb051,  0x0,  0x8005,  0x1,  32, \
+  22,  0x0,  0xb052,  0x0,  0x8005,  0x1,  32, \
+  23,  0x0,  0xb053,  0x0,  0x8005,  0x1,  32, \
+  24,  0x0,  0xb054,  0x0,  0x8005,  0x1,  32, \
+  25,  0x0,  0x0f11,  0x0,  0xc000,  0x1,  31, \
+  26,  0x0,  0x0f12,  0x0,  0xc000,  0x1,  31, \
+  27,  0x0,  0x0f13,  0x0,  0xc000,  0x1,  31, \
+  28,  0x0,  0x0f14,  0x0,  0xc000,  0x1,  31, \
+  29,  0x0,  0x0f21,  0x0,  0x8002,  0x1,  31, \
+  30,  0x0,  0x0f22,  0x0,  0x8002,  0x1,  31, \
+  31,  0x0,  0x0f23,  0x0,  0x8002,  0x1,  31, \
+  32,  0x0,  0x0f24,  0x0,  0x8002,  0x1,  31, \
+  33,  0x0,  0x0f41,  0x0,  0x8003,  0x1,  31, \
+  34,  0x0,  0x0f42,  0x0,  0x8003,  0x1,  31, \
+  35,  0x0,  0x0f43,  0x0,  0x8003,  0x1,  31, \
+  36,  0x0,  0x0f44,  0x0,  0x8003,  0x1,  31, \
+  37,  0x0,  0x0f51,  0x0,  0x8004,  0x1,  31, \
+  38,  0x0,  0x0f52,  0x0,  0x8004,  0x1,  31, \
+  39,  0x0,  0x0f53,  0x0,  0x8004,  0x1,  31, \
+  40,  0x0,  0x0f54,  0x0,  0x8004,  0x1,  31, \
+  41,  0x0,  0x0f61,  0x0,  0x8005,  0x1,  31, \
+  42,  0x0,  0x0f62,  0x0,  0x8005,  0x1,  31, \
+  43,  0x0,  0x0f63,  0x0,  0x8005,  0x1,  31, \
+  44,  0x0,  0x0f64,  0x0,  0x8005,  0x1,  31
+//
+// Trigger from the Triglog board for which event are jump by Calib, mapping and conv
+// For now only jumping work for GET4 data!!
+//TriggerRejection: Int_t  15
+TriggerRejection: Int_t  -1
+//==============================================================================
+// TriggerChannel | TriggerType | TriggerUnpack
+//------------------------------------------------------------------------------
+// TriggerChannel (as defined in the CTS)
+//   max. range: 0 - 15
+//------------------------------------------------------------------------------
+// TriggerType (as defined in the CTS)
+//   max. range: 0x0 - 0xf
+//   types generating a reference time signal: 0x0 - 0x7 ("physics triggers")
+//   types without a reference time signal:    0x8 - 0xf
+//   calibration (ToT stretching offset):      0xd
+//
+//   In case of a trigger concidence, only a uniquely assigned trigger type
+//   allows to unambigously identify the trigger which actually triggered
+//   the event.
+//   All 8 possible trigger signal inputs should have assigned a different
+//   trigger type from 0x0 to 0x7. To all disabled trigger channels, please
+//   assign a higher trigger type (0x8 - 0xf exclusive 0xd).
+//------------------------------------------------------------------------------
+// TriggerUnpack
+//    0x1: only consider events in which this trigger channel was asserted
+//         (if this unpack bit is set for several trigger channels, all of
+//          them must have been asserted for the event to be unpacked)
+//    0x0: do not care whether this trigger channel was asserted or not
+//         (if this unpack bit is not set for all trigger channels, each
+//          incoming event is unpacked)
+//==============================================================================
+NbCtsTrigChs: Int_t 16
+CtsTriggerMap: Int_t \
+   0,  0x1,  0x0, \
+   1,  0x1,  0x0, \
+   2,  0x1,  0x0, \
+   3,  0x1,  0x0, \
+   4,  0x1,  0x0, \
+   5,  0x1,  0x0, \
+   6,  0x1,  0x0, \
+   7,  0x1,  0x0, \
+   8,  0x0,  0x0, \
+   9,  0x1,  0x0, \
+  10,  0x2,  0x0, \
+  11,  0x3,  0x0, \
+  12,  0x4,  0x0, \
+  13,  0x5,  0x0, \
+  14,  0x6,  0x0, \
+  15,  0x7,  0x0
+//
+//==============================================================================
+// The unpacking algorithms support both double edge measurement methods
+// implemented for the TRB-TDC.
+// - 128-bit mode: separate edge detection in different TDC channels
+//                 1 TDC TIME and 1 TDC EPOCH word for both edges
+// -  96-bit mode: joint edge detection in the same TDC channel
+//                 1 TDC TIME word per edge and 1 joint TDC EPOCH word
+// To enable 96-bit mode unpacking, set 'TrbTdcBitMode' to '1'. Setting any
+// other value will result in 128-bit mode unpacking.
+//==============================================================================
+TrbTdcBitMode: Int_t 1
+###########################
diff --git a/macro/tof/beamtime/thuqa/parUnpack_basic.txt b/macro/tof/beamtime/thuqa/parUnpack_basic.txt
index 9e44b8de28..e2109dc1e6 100644
--- a/macro/tof/beamtime/thuqa/parUnpack_basic.txt
+++ b/macro/tof/beamtime/thuqa/parUnpack_basic.txt
@@ -1,159 +1,159 @@
-##############################################################################
-# Class:   TMbsUnpackTofPar
-# Context: TestDefaultContext
-##############################################################################
-[TMbsUnpackTofPar]
-//----------------------------------------------------------------------------
-//******************************//
-//   Input selector             //
-//******************************//
-// GETEVT__FILE     1 <- LMD File
-// GETEVT__STREAM   2 <- Stream client
-// GETEVT__TRANS    3 <- Transport client
-// GETEVT__EVENT    4 <- Event client
-// GETEVT__REVSERV  5 <- Remote event client
-MbsSourceMode: Int_t 2
-// Switch ON/OFF the writing of data in the output root file of cbmroot analysis
-WriteDataInCbmOut: Int_t 1
-// Switch ON/OFF debug tests in VFTX unpacker
-VftxDebug: Int_t     0 
-// Number of possible VME boards in the MBS event
-MbsNbVmeBoards: Int_t 31
-// BoardTypes
-//      undef      =  0,  // unknown type, default value
-//      caenV1290  =  1,  // CAEN v1290A and CAEN v1290N VME boards based on HPTDC chips
-//      vftx       =  2,  // FPGA TDC of the VFTX family (E. Bayer dev.)
-//      triglog    = 10,  // VULOM TRIGLOG board
-//      scalormu   = 11,  // VULOM Scaler Or Multiplicity board 
-//      scalormubig= 12,  // VULOM Scaler Or Multiplicity board  32 channel version ? not used for now
-//      scaler2014 = 13,  // VULOM Scaler Or/And board used in the GSI April 2014 TOF beamtime
-//      caenv965   = 20,  // CAEN v965A and CAEN v965N VME QDC boards
-//      lecroy1182 = 21,  // LECROY 1182 VME QDC/ADC board 
-//      vulqfwread = 22   // VULOM QFW board (Charge to Frequency Converter Readout) 
-// BoardIndex Active    Address AddMod     TokenA     TokenB Type
-MbsVmeMapping: Int_t \
-   0,   0, 0x14000000, 0x09, 0x74726c6f, 0x6f6c7274, 10, \
-   1,   0, 0x0F000000, 0x09, 0x74646331, 0x31636474,  1, \
-   2,   0, 0x11000000, 0x09, 0x74646332, 0x32636474,  1, \
-   3,   0, 0x12000000, 0x09, 0x74646333, 0x33636474,  1, \
-   4,   0, 0x14000000, 0x09, 0x74646334, 0x34636474,  1, \
-   5,   0, 0x15000000, 0x09, 0x74646335, 0x35636474,  1, \
-   6,   0, 0x17000000, 0x09, 0x74646336, 0x36636474,  1, \
-   7,   0, 0x18000000, 0x09, 0x74646337, 0x37636474,  1, \
-   8,   0, 0x19000000, 0x09, 0x74646338, 0x38636474,  1, \
-   9,   0, 0x03000000, 0x09, 0x66706731, 0x31677066,  2, \
-  10,   0, 0x04000000, 0x09, 0x66706732, 0x32677066,  2, \
-  11,   0, 0x05000000, 0x09, 0x66706733, 0x33677066,  2, \
-  12,   0, 0x06000000, 0x09, 0x66706734, 0x34677066,  2, \
-  13,   0, 0x07000000, 0x09, 0x66706735, 0x35677066,  2, \
-  14,   0, 0x08000000, 0x09, 0x66706736, 0x36677066,  2, \
-  15,   0, 0x09000000, 0x09, 0x66706737, 0x37677066,  2, \
-  16,   0, 0x0A000000, 0x09, 0x66706738, 0x38677066,  2, \
-  17,   0, 0x0B000000, 0x09, 0x66706739, 0x39677066,  2, \
-  18,   0, 0x0C000000, 0x09, 0x6670673a, 0x3a677066,  2, \
-  19,   0, 0x0D000000, 0x09, 0x6670673b, 0x3b677066,  2, \
-  20,   0, 0x0A000000, 0x09, 0x71646332, 0x32636471, 20, \
-  21,   0, 0x0B000000, 0x09, 0x71646333, 0x33636471, 20, \
-  22,   0, 0x00600000, 0x39, 0x31313832, 0x32383131, 21, \
-  23,   0, 0x00700000, 0x39, 0x31313833, 0x33383131, 21, \
-  24,   0, 0x07000000, 0x09, 0x71667731, 0x31776671, 22, \
-  25,   0, 0x12000000, 0x09, 0x73636f6d, 0x6d6f6373, 11, \
-  26,   0, 0x13000000, 0x09, 0x736f6d62, 0x626d6f73, 11, \
-  27,   0, 0x06000000, 0x09, 0x73636131, 0x31616373, 13, \
-  28,   0, 0x08000000, 0x09, 0x73636132, 0x32616373, 13, \
-  29,   0, 0x10000000, 0x09, 0x73636133, 0x33616373, 13, \
-  30,   0, 0x12000000, 0x09, 0x73636134, 0x34616373, 13
-// Number of possible Non-VME boards in the MBS event
-NbNonVmeBoards: Int_t 5
-//==============================================================================
-// General structure
-// BoardIndex Active RocIndx AddMod TokenA TokenB Type
-//------------------------------------------------------------------------------
-// BoardTypes
-//      0:  unknown -- default
-//      4:  get4    -- GET4 chips
-//      30: trbseb  -- subevent builder on central TRB-FPGA
-//      31: trbtdc  -- TDC on peripheral TRB-FPGA or FEE-TDC
-//      32: trbhub  -- hub on peripheral TRB-FPGA
-//==============================================================================
-// TRB specific structure
-// BoardIndex UnpackTdc FpgaAddr [niu] SebAddr FpgaInData FpgaType
-//------------------------------------------------------------------------------
-// BoardIndex:  consecutively numbered index (0...NbNonVmeBoards-1)
-// FpgaInData:  FPGA TRBnet endpoint sends data (0x1)
-// FpgaAddr:    FPGA TRBnet endpoint address
-// [niu]:       field not in use
-// SebAddr:     subevent builder's TRBnet endpoint address
-// UnpackTdc:   unpack data from this TDC (0x1)
-// FpgaType:    see BoardTypes above
-//==============================================================================
-//
-NonVmeMapping: Int_t \
-   0,  0x1,  0xc000,  0x0,  0xc000,  0x0,  30, \
-   1,  0x1,  0x0001,  0x0,  0xc000,  0x1,  31, \
-   2,  0x1,  0x0002,  0x0,  0xc000,  0x1,  31, \
-   3,  0x1,  0x0003,  0x0,  0xc000,  0x1,  31, \
-   4,  0x1,  0x0004,  0x0,  0xc000,  0x1,  31
-//
-// Trigger from the Triglog board for which event are jump by Calib, mapping and conv
-// For now only jumping work for GET4 data!!
-//TriggerRejection: Int_t  15
-TriggerRejection: Int_t  -1
-//==============================================================================
-// TriggerChannel | TriggerType | TriggerUnpack
-//------------------------------------------------------------------------------
-// TriggerChannel (as defined in the CTS)
-//   max. range: 0 - 15
-//------------------------------------------------------------------------------
-// TriggerType (as defined in the CTS)
-//   max. range: 0x0 - 0xf
-//   types generating a reference time signal: 0x0 - 0x7 ("physics triggers")
-//   types without a reference time signal:    0x8 - 0xf
-//   calibration (ToT stretching offset):      0xd
-//
-//   In case of a trigger concidence, only a uniquely assigned trigger type
-//   allows to unambigously identify the trigger which actually triggered
-//   the event.
-//   All 8 possible trigger signal inputs should have assigned a different
-//   trigger type from 0x0 to 0x7. To all disabled trigger channels, please
-//   assign a higher trigger type (0x8 - 0xf exclusive 0xd).
-//------------------------------------------------------------------------------
-// TriggerUnpack
-//    0x1: only consider events in which this trigger channel was asserted
-//         (if this unpack bit is set for several trigger channels, all of
-//          them must have been asserted for the event to be unpacked)
-//    0x0: do not care whether this trigger channel was asserted or not
-//         (if this unpack bit is not set for all trigger channels, each
-//          incoming event is unpacked)
-//==============================================================================
-NbCtsTrigChs: Int_t 16
-CtsTriggerMap: Int_t \
-   0,  0x1,  0x0, \
-   1,  0x1,  0x0, \
-   2,  0x1,  0x0, \
-   3,  0x1,  0x0, \
-   4,  0x1,  0x0, \
-   5,  0x1,  0x0, \
-   6,  0x1,  0x0, \
-   7,  0x1,  0x0, \
-   8,  0x1,  0x0, \
-   9,  0x1,  0x0, \
-  10,  0x1,  0x0, \
-  11,  0x1,  0x0, \
-  12,  0x1,  0x0, \
-  13,  0x1,  0x0, \
-  14,  0x1,  0x0, \
-  15,  0x1,  0x0
-//
-//==============================================================================
-// The unpacking algorithms support both double edge measurement methods
-// implemented for the TRB-TDC.
-// - 128-bit mode: separate edge detection in different TDC channels
-//                 1 TDC TIME and 1 TDC EPOCH word for both edges
-// -  96-bit mode: joint edge detection in the same TDC channel
-//                 1 TDC TIME word per edge and 1 joint TDC EPOCH word
-// To enable 96-bit mode unpacking, set 'TrbTdcBitMode' to '1'. Setting any
-// other value will result in 128-bit mode unpacking.
-//==============================================================================
-TrbTdcBitMode: Int_t 0
-###########################
+##############################################################################
+# Class:   TMbsUnpackTofPar
+# Context: TestDefaultContext
+##############################################################################
+[TMbsUnpackTofPar]
+//----------------------------------------------------------------------------
+//******************************//
+//   Input selector             //
+//******************************//
+// GETEVT__FILE     1 <- LMD File
+// GETEVT__STREAM   2 <- Stream client
+// GETEVT__TRANS    3 <- Transport client
+// GETEVT__EVENT    4 <- Event client
+// GETEVT__REVSERV  5 <- Remote event client
+MbsSourceMode: Int_t 2
+// Switch ON/OFF the writing of data in the output root file of cbmroot analysis
+WriteDataInCbmOut: Int_t 1
+// Switch ON/OFF debug tests in VFTX unpacker
+VftxDebug: Int_t     0 
+// Number of possible VME boards in the MBS event
+MbsNbVmeBoards: Int_t 31
+// BoardTypes
+//      undef      =  0,  // unknown type, default value
+//      caenV1290  =  1,  // CAEN v1290A and CAEN v1290N VME boards based on HPTDC chips
+//      vftx       =  2,  // FPGA TDC of the VFTX family (E. Bayer dev.)
+//      triglog    = 10,  // VULOM TRIGLOG board
+//      scalormu   = 11,  // VULOM Scaler Or Multiplicity board 
+//      scalormubig= 12,  // VULOM Scaler Or Multiplicity board  32 channel version ? not used for now
+//      scaler2014 = 13,  // VULOM Scaler Or/And board used in the GSI April 2014 TOF beamtime
+//      caenv965   = 20,  // CAEN v965A and CAEN v965N VME QDC boards
+//      lecroy1182 = 21,  // LECROY 1182 VME QDC/ADC board 
+//      vulqfwread = 22   // VULOM QFW board (Charge to Frequency Converter Readout) 
+// BoardIndex Active    Address AddMod     TokenA     TokenB Type
+MbsVmeMapping: Int_t \
+   0,   0, 0x14000000, 0x09, 0x74726c6f, 0x6f6c7274, 10, \
+   1,   0, 0x0F000000, 0x09, 0x74646331, 0x31636474,  1, \
+   2,   0, 0x11000000, 0x09, 0x74646332, 0x32636474,  1, \
+   3,   0, 0x12000000, 0x09, 0x74646333, 0x33636474,  1, \
+   4,   0, 0x14000000, 0x09, 0x74646334, 0x34636474,  1, \
+   5,   0, 0x15000000, 0x09, 0x74646335, 0x35636474,  1, \
+   6,   0, 0x17000000, 0x09, 0x74646336, 0x36636474,  1, \
+   7,   0, 0x18000000, 0x09, 0x74646337, 0x37636474,  1, \
+   8,   0, 0x19000000, 0x09, 0x74646338, 0x38636474,  1, \
+   9,   0, 0x03000000, 0x09, 0x66706731, 0x31677066,  2, \
+  10,   0, 0x04000000, 0x09, 0x66706732, 0x32677066,  2, \
+  11,   0, 0x05000000, 0x09, 0x66706733, 0x33677066,  2, \
+  12,   0, 0x06000000, 0x09, 0x66706734, 0x34677066,  2, \
+  13,   0, 0x07000000, 0x09, 0x66706735, 0x35677066,  2, \
+  14,   0, 0x08000000, 0x09, 0x66706736, 0x36677066,  2, \
+  15,   0, 0x09000000, 0x09, 0x66706737, 0x37677066,  2, \
+  16,   0, 0x0A000000, 0x09, 0x66706738, 0x38677066,  2, \
+  17,   0, 0x0B000000, 0x09, 0x66706739, 0x39677066,  2, \
+  18,   0, 0x0C000000, 0x09, 0x6670673a, 0x3a677066,  2, \
+  19,   0, 0x0D000000, 0x09, 0x6670673b, 0x3b677066,  2, \
+  20,   0, 0x0A000000, 0x09, 0x71646332, 0x32636471, 20, \
+  21,   0, 0x0B000000, 0x09, 0x71646333, 0x33636471, 20, \
+  22,   0, 0x00600000, 0x39, 0x31313832, 0x32383131, 21, \
+  23,   0, 0x00700000, 0x39, 0x31313833, 0x33383131, 21, \
+  24,   0, 0x07000000, 0x09, 0x71667731, 0x31776671, 22, \
+  25,   0, 0x12000000, 0x09, 0x73636f6d, 0x6d6f6373, 11, \
+  26,   0, 0x13000000, 0x09, 0x736f6d62, 0x626d6f73, 11, \
+  27,   0, 0x06000000, 0x09, 0x73636131, 0x31616373, 13, \
+  28,   0, 0x08000000, 0x09, 0x73636132, 0x32616373, 13, \
+  29,   0, 0x10000000, 0x09, 0x73636133, 0x33616373, 13, \
+  30,   0, 0x12000000, 0x09, 0x73636134, 0x34616373, 13
+// Number of possible Non-VME boards in the MBS event
+NbNonVmeBoards: Int_t 5
+//==============================================================================
+// General structure
+// BoardIndex Active RocIndx AddMod TokenA TokenB Type
+//------------------------------------------------------------------------------
+// BoardTypes
+//      0:  unknown -- default
+//      4:  get4    -- GET4 chips
+//      30: trbseb  -- subevent builder on central TRB-FPGA
+//      31: trbtdc  -- TDC on peripheral TRB-FPGA or FEE-TDC
+//      32: trbhub  -- hub on peripheral TRB-FPGA
+//==============================================================================
+// TRB specific structure
+// BoardIndex UnpackTdc FpgaAddr [niu] SebAddr FpgaInData FpgaType
+//------------------------------------------------------------------------------
+// BoardIndex:  consecutively numbered index (0...NbNonVmeBoards-1)
+// FpgaInData:  FPGA TRBnet endpoint sends data (0x1)
+// FpgaAddr:    FPGA TRBnet endpoint address
+// [niu]:       field not in use
+// SebAddr:     subevent builder's TRBnet endpoint address
+// UnpackTdc:   unpack data from this TDC (0x1)
+// FpgaType:    see BoardTypes above
+//==============================================================================
+//
+NonVmeMapping: Int_t \
+   0,  0x1,  0xc000,  0x0,  0xc000,  0x0,  30, \
+   1,  0x1,  0x0001,  0x0,  0xc000,  0x1,  31, \
+   2,  0x1,  0x0002,  0x0,  0xc000,  0x1,  31, \
+   3,  0x1,  0x0003,  0x0,  0xc000,  0x1,  31, \
+   4,  0x1,  0x0004,  0x0,  0xc000,  0x1,  31
+//
+// Trigger from the Triglog board for which event are jump by Calib, mapping and conv
+// For now only jumping work for GET4 data!!
+//TriggerRejection: Int_t  15
+TriggerRejection: Int_t  -1
+//==============================================================================
+// TriggerChannel | TriggerType | TriggerUnpack
+//------------------------------------------------------------------------------
+// TriggerChannel (as defined in the CTS)
+//   max. range: 0 - 15
+//------------------------------------------------------------------------------
+// TriggerType (as defined in the CTS)
+//   max. range: 0x0 - 0xf
+//   types generating a reference time signal: 0x0 - 0x7 ("physics triggers")
+//   types without a reference time signal:    0x8 - 0xf
+//   calibration (ToT stretching offset):      0xd
+//
+//   In case of a trigger concidence, only a uniquely assigned trigger type
+//   allows to unambigously identify the trigger which actually triggered
+//   the event.
+//   All 8 possible trigger signal inputs should have assigned a different
+//   trigger type from 0x0 to 0x7. To all disabled trigger channels, please
+//   assign a higher trigger type (0x8 - 0xf exclusive 0xd).
+//------------------------------------------------------------------------------
+// TriggerUnpack
+//    0x1: only consider events in which this trigger channel was asserted
+//         (if this unpack bit is set for several trigger channels, all of
+//          them must have been asserted for the event to be unpacked)
+//    0x0: do not care whether this trigger channel was asserted or not
+//         (if this unpack bit is not set for all trigger channels, each
+//          incoming event is unpacked)
+//==============================================================================
+NbCtsTrigChs: Int_t 16
+CtsTriggerMap: Int_t \
+   0,  0x1,  0x0, \
+   1,  0x1,  0x0, \
+   2,  0x1,  0x0, \
+   3,  0x1,  0x0, \
+   4,  0x1,  0x0, \
+   5,  0x1,  0x0, \
+   6,  0x1,  0x0, \
+   7,  0x1,  0x0, \
+   8,  0x1,  0x0, \
+   9,  0x1,  0x0, \
+  10,  0x1,  0x0, \
+  11,  0x1,  0x0, \
+  12,  0x1,  0x0, \
+  13,  0x1,  0x0, \
+  14,  0x1,  0x0, \
+  15,  0x1,  0x0
+//
+//==============================================================================
+// The unpacking algorithms support both double edge measurement methods
+// implemented for the TRB-TDC.
+// - 128-bit mode: separate edge detection in different TDC channels
+//                 1 TDC TIME and 1 TDC EPOCH word for both edges
+// -  96-bit mode: joint edge detection in the same TDC channel
+//                 1 TDC TIME word per edge and 1 joint TDC EPOCH word
+// To enable 96-bit mode unpacking, set 'TrbTdcBitMode' to '1'. Setting any
+// other value will result in 128-bit mode unpacking.
+//==============================================================================
+TrbTdcBitMode: Int_t 0
+###########################
diff --git a/macro/tof/geometry/TOF_10M.dat b/macro/tof/geometry/TOF_10M.dat
index 88a4755b84..69b496f961 100644
--- a/macro/tof/geometry/TOF_10M.dat
+++ b/macro/tof/geometry/TOF_10M.dat
@@ -1,219 +1,219 @@
-#	X	Y	Z	mod	pos
-1	-5399	4005	9034	b	l
-2	-5399	3453	8899	b	l
-3	-5399	2999	9034	b	l
-4	-5399	2461	8899	b	l
-5	-5399	1993	9034	b	l
-6	-5399	1470	8899	b	l
-7	-5399	988	9034	b	l
-8	-5399	500	9169	b	l
-9	-5399	0	9304	b	l
-10	-5399	-500	9169	b	l
-11	-5399	-988	9034	b	l
-12	-5399	-1470	8899	b	l
-13	-5399	-1993	9034	b	l
-14	-5399	-2461	8899	b	l
-15	-5399	-2999	9034	b	l
-16	-5399	-3453	8899	b	l
-17	-5399	-4005	9034	b	l
-18	-4079	4128	9304	b	l
-19	-4079	3573	9169	b	l
-20	-4079	3120	9304	b	l
-21	-4079	2578	9169	b	l
-22	-4079	2110	9304	b	l
-23	-4079	1585	9169	b	l
-24	-4079	1105	9304	b	l
-25	-4082	750	9447	s	l
-26	-4232	510	9577	s	l
-27	-4082	250	9447	s	l
-28	-4232	0	9577	s	l
-29	-4082	-250	9447	s	l
-30	-4232	-510	9577	s	l
-31	-4082	-750	9447	s	l
-32	-4079	-1105	9304	b	l
-33	-4079	-1585	9169	b	l
-34	-4079	-2110	9304	b	l
-35	-4079	-2578	9169	b	l
-36	-4079	-3120	9304	b	l
-37	-4079	-3573	9169	b	l
-38	-4079	-4128	9304	b	l
-39	-2767	4195	9447	s	l
-40	-2867	4002	9577	s	l
-41	-2767	3695	9447	s	l
-42	-2867	3492	9577	s	l
-43	-2767	3195	9447	s	l
-44	-2867	2982	9577	s	l
-45	-2767	2695	9447	s	l
-46	-2867	2477	9577	s	l
-47	-2767	2195	9447	s	l
-48	-2867	1972	9577	s	l
-49	-2767	1659	9447	s	l
-50	-2867	1467	9577	s	l
-51	-2767	1250	9712	s	l
-52	-2867	1020	9842	s	l
-53	-2767	750	9712	s	l
-54	-2867	510	9842	s	l
-55	-2767	250	9712	s	l
-56	-2867	0	9842	s	l
-57	-2767	-250	9712	s	l
-58	-2867	-510	9842	s	l
-59	-2767	-750	9712	s	l
-60	-2867	-1020	9842	s	l
-61	-2767	-1250	9712	s	l
-62	-2867	-1467	9577	s	l
-63	-2767	-1659	9447	s	l
-64	-2867	-1972	9577	s	l
-65	-2767	-2195	9447	s	l
-66	-2867	-2477	9577	s	l
-67	-2767	-2695	9447	s	l
-68	-2867	-2982	9577	s	l
-69	-2767	-3195	9447	s	l
-70	-2867	-3492	9577	s	l
-71	-2767	-3695	9447	s	l
-72	-2867	-4002	9577	s	l
-73	-2767	-4195	9447	s	l
-74	-1417	4250	9712	s	l
-75	-1467	4058	9842	s	l
-76	-1417	3750	9712	s	l
-77	-1467	3548	9842	s	l
-78	-1417	3250	9712	s	l
-79	-1467	3038	9842	s	l
-80	-1417	2750	9712	s	l
-81	-1467	2533	9842	s	l
-82	-1417	2250	9712	s	l
-83	-1467	2028	9842	s	l
-84	-1417	1750	9712	s	l
-85	-1467	1523	9842	s	l
-86	-1467	-1523	9842	s	l
-87	-1417	-1750	9712	s	l
-88	-1467	-2028	9842	s	l
-89	-1417	-2250	9712	s	l
-90	-1467	-2533	9842	s	l
-91	-1417	-2750	9712	s	l
-92	-1467	-3038	9842	s	l
-93	-1417	-3250	9712	s	l
-94	-1467	-3548	9842	s	l
-95	-1417	-3750	9712	s	l
-96	-1467	-4058	9842	s	l
-97	-1417	-4250	9712	s	l
-98	0	4255	10000	s	m
-99	0	4053	10130	s	m
-100	0	3755	10000	s	m
-101	0	3547	10130	s	m
-102	0	3255	10000	s	m
-103	0	3041	10130	s	m
-104	0	2755	10000	s	m
-105	0	2535	10130	s	m
-106	0	2255	10000	s	m
-107	0	2029	10130	s	m
-108	0	1755	10000	s	m
-109	0	1523	10130	s	m
-110	0	-1523	10130	s	m
-111	0	-1755	10000	s	m
-112	0	-2029	10130	s	m
-113	0	-2255	10000	s	m
-114	0	-2535	10130	s	m
-115	0	-2755	10000	s	m
-116	0	-3041	10130	s	m
-117	0	-3255	10000	s	m
-118	0	-3547	10130	s	m
-119	0	-3755	10000	s	m
-120	0	-4053	10130	s	m
-121	0	-4255	10000	s	m
-122	1417	4250	9712	s	r
-123	1467	4058	9842	s	r
-124	1417	3750	9712	s	r
-125	1467	3548	9842	s	r
-126	1417	3250	9712	s	r
-127	1467	3038	9842	s	r
-128	1417	2750	9712	s	r
-129	1467	2533	9842	s	r
-130	1417	2250	9712	s	r
-131	1467	2028	9842	s	r
-132	1417	1750	9712	s	r
-133	1467	1523	9842	s	r
-134	1467	-1523	9842	s	r
-135	1417	-1750	9712	s	r
-136	1467	-2028	9842	s	r
-137	1417	-2250	9712	s	r
-138	1467	-2533	9842	s	r
-139	1417	-2750	9712	s	r
-140	1467	-3038	9842	s	r
-141	1417	-3250	9712	s	r
-142	1467	-3548	9842	s	r
-143	1417	-3750	9712	s	r
-144	1467	-4058	9842	s	r
-145	1417	-4250	9712	s	r
-146	2767	4195	9447	s	r
-147	2867	4002	9577	s	r
-148	2767	3695	9447	s	r
-149	2867	3492	9577	s	r
-150	2767	3195	9447	s	r
-151	2867	2982	9577	s	r
-152	2767	2695	9447	s	r
-153	2867	2477	9577	s	r
-154	2767	2195	9447	s	r
-155	2867	1972	9577	s	r
-156	2767	1659	9447	s	r
-157	2867	1467	9577	s	r
-158	2767	1250	9712	s	r
-159	2867	1020	9842	s	r
-160	2767	750	9712	s	r
-161	2867	510	9842	s	r
-162	2767	250	9712	s	r
-163	2867	0	9842	s	r
-164	2767	-250	9712	s	r
-165	2867	-510	9842	s	r
-166	2767	-750	9712	s	r
-167	2867	-1020	9842	s	r
-168	2767	-1250	9712	s	r
-169	2867	-1467	9577	s	r
-170	2767	-1659	9447	s	r
-171	2867	-1972	9577	s	r
-172	2767	-2195	9447	s	r
-173	2867	-2477	9577	s	r
-174	2767	-2695	9447	s	r
-175	2867	-2982	9577	s	r
-176	2767	-3195	9447	s	r
-177	2867	-3492	9577	s	r
-178	2767	-3695	9447	s	r
-179	2867	-4002	9577	s	r
-180	2767	-4195	9447	s	r
-181	4079	4128	9304	b	r
-182	4079	3573	9169	b	r
-183	4079	3120	9304	b	r
-184	4079	2578	9169	b	r
-185	4079	2110	9304	b	r
-186	4079	1585	9169	b	r
-187	4079	1105	9304	b	r
-188	4082	750	9447	s	r
-189	4232	510	9577	s	r
-190	4082	250	9447	s	r
-191	4232	0	9577	s	r
-192	4082	-250	9447	s	r
-193	4232	-510	9577	s	r
-194	4082	-750	9447	s	r
-195	4079	-1105	9304	b	r
-196	4079	-1585	9169	b	r
-197	4079	-2110	9304	b	r
-198	4079	-2578	9169	b	r
-199	4079	-3120	9304	b	r
-200	4079	-3573	9169	b	r
-201	4079	-4128	9304	b	r
-202	5399	4005	9034	b	r
-203	5399	3453	8899	b	r
-204	5399	2999	9034	b	r
-205	5399	2461	8899	b	r
-206	5399	1993	9034	b	r
-207	5399	1470	8899	b	r
-208	5399	988	9034	b	r
-209	5399	500	9169	b	r
-210	5399	0	9304	b	r
-211	5399	-500	9169	b	r
-212	5399	-988	9034	b	r
-213	5399	-1470	8899	b	r
-214	5399	-1993	9034	b	r
-215	5399	-2461	8899	b	r
-216	5399	-2999	9034	b	r
-217	5399	-3453	8899	b	r
-218	5399	-4005	9034	b	r
+#	X	Y	Z	mod	pos
+1	-5399	4005	9034	b	l
+2	-5399	3453	8899	b	l
+3	-5399	2999	9034	b	l
+4	-5399	2461	8899	b	l
+5	-5399	1993	9034	b	l
+6	-5399	1470	8899	b	l
+7	-5399	988	9034	b	l
+8	-5399	500	9169	b	l
+9	-5399	0	9304	b	l
+10	-5399	-500	9169	b	l
+11	-5399	-988	9034	b	l
+12	-5399	-1470	8899	b	l
+13	-5399	-1993	9034	b	l
+14	-5399	-2461	8899	b	l
+15	-5399	-2999	9034	b	l
+16	-5399	-3453	8899	b	l
+17	-5399	-4005	9034	b	l
+18	-4079	4128	9304	b	l
+19	-4079	3573	9169	b	l
+20	-4079	3120	9304	b	l
+21	-4079	2578	9169	b	l
+22	-4079	2110	9304	b	l
+23	-4079	1585	9169	b	l
+24	-4079	1105	9304	b	l
+25	-4082	750	9447	s	l
+26	-4232	510	9577	s	l
+27	-4082	250	9447	s	l
+28	-4232	0	9577	s	l
+29	-4082	-250	9447	s	l
+30	-4232	-510	9577	s	l
+31	-4082	-750	9447	s	l
+32	-4079	-1105	9304	b	l
+33	-4079	-1585	9169	b	l
+34	-4079	-2110	9304	b	l
+35	-4079	-2578	9169	b	l
+36	-4079	-3120	9304	b	l
+37	-4079	-3573	9169	b	l
+38	-4079	-4128	9304	b	l
+39	-2767	4195	9447	s	l
+40	-2867	4002	9577	s	l
+41	-2767	3695	9447	s	l
+42	-2867	3492	9577	s	l
+43	-2767	3195	9447	s	l
+44	-2867	2982	9577	s	l
+45	-2767	2695	9447	s	l
+46	-2867	2477	9577	s	l
+47	-2767	2195	9447	s	l
+48	-2867	1972	9577	s	l
+49	-2767	1659	9447	s	l
+50	-2867	1467	9577	s	l
+51	-2767	1250	9712	s	l
+52	-2867	1020	9842	s	l
+53	-2767	750	9712	s	l
+54	-2867	510	9842	s	l
+55	-2767	250	9712	s	l
+56	-2867	0	9842	s	l
+57	-2767	-250	9712	s	l
+58	-2867	-510	9842	s	l
+59	-2767	-750	9712	s	l
+60	-2867	-1020	9842	s	l
+61	-2767	-1250	9712	s	l
+62	-2867	-1467	9577	s	l
+63	-2767	-1659	9447	s	l
+64	-2867	-1972	9577	s	l
+65	-2767	-2195	9447	s	l
+66	-2867	-2477	9577	s	l
+67	-2767	-2695	9447	s	l
+68	-2867	-2982	9577	s	l
+69	-2767	-3195	9447	s	l
+70	-2867	-3492	9577	s	l
+71	-2767	-3695	9447	s	l
+72	-2867	-4002	9577	s	l
+73	-2767	-4195	9447	s	l
+74	-1417	4250	9712	s	l
+75	-1467	4058	9842	s	l
+76	-1417	3750	9712	s	l
+77	-1467	3548	9842	s	l
+78	-1417	3250	9712	s	l
+79	-1467	3038	9842	s	l
+80	-1417	2750	9712	s	l
+81	-1467	2533	9842	s	l
+82	-1417	2250	9712	s	l
+83	-1467	2028	9842	s	l
+84	-1417	1750	9712	s	l
+85	-1467	1523	9842	s	l
+86	-1467	-1523	9842	s	l
+87	-1417	-1750	9712	s	l
+88	-1467	-2028	9842	s	l
+89	-1417	-2250	9712	s	l
+90	-1467	-2533	9842	s	l
+91	-1417	-2750	9712	s	l
+92	-1467	-3038	9842	s	l
+93	-1417	-3250	9712	s	l
+94	-1467	-3548	9842	s	l
+95	-1417	-3750	9712	s	l
+96	-1467	-4058	9842	s	l
+97	-1417	-4250	9712	s	l
+98	0	4255	10000	s	m
+99	0	4053	10130	s	m
+100	0	3755	10000	s	m
+101	0	3547	10130	s	m
+102	0	3255	10000	s	m
+103	0	3041	10130	s	m
+104	0	2755	10000	s	m
+105	0	2535	10130	s	m
+106	0	2255	10000	s	m
+107	0	2029	10130	s	m
+108	0	1755	10000	s	m
+109	0	1523	10130	s	m
+110	0	-1523	10130	s	m
+111	0	-1755	10000	s	m
+112	0	-2029	10130	s	m
+113	0	-2255	10000	s	m
+114	0	-2535	10130	s	m
+115	0	-2755	10000	s	m
+116	0	-3041	10130	s	m
+117	0	-3255	10000	s	m
+118	0	-3547	10130	s	m
+119	0	-3755	10000	s	m
+120	0	-4053	10130	s	m
+121	0	-4255	10000	s	m
+122	1417	4250	9712	s	r
+123	1467	4058	9842	s	r
+124	1417	3750	9712	s	r
+125	1467	3548	9842	s	r
+126	1417	3250	9712	s	r
+127	1467	3038	9842	s	r
+128	1417	2750	9712	s	r
+129	1467	2533	9842	s	r
+130	1417	2250	9712	s	r
+131	1467	2028	9842	s	r
+132	1417	1750	9712	s	r
+133	1467	1523	9842	s	r
+134	1467	-1523	9842	s	r
+135	1417	-1750	9712	s	r
+136	1467	-2028	9842	s	r
+137	1417	-2250	9712	s	r
+138	1467	-2533	9842	s	r
+139	1417	-2750	9712	s	r
+140	1467	-3038	9842	s	r
+141	1417	-3250	9712	s	r
+142	1467	-3548	9842	s	r
+143	1417	-3750	9712	s	r
+144	1467	-4058	9842	s	r
+145	1417	-4250	9712	s	r
+146	2767	4195	9447	s	r
+147	2867	4002	9577	s	r
+148	2767	3695	9447	s	r
+149	2867	3492	9577	s	r
+150	2767	3195	9447	s	r
+151	2867	2982	9577	s	r
+152	2767	2695	9447	s	r
+153	2867	2477	9577	s	r
+154	2767	2195	9447	s	r
+155	2867	1972	9577	s	r
+156	2767	1659	9447	s	r
+157	2867	1467	9577	s	r
+158	2767	1250	9712	s	r
+159	2867	1020	9842	s	r
+160	2767	750	9712	s	r
+161	2867	510	9842	s	r
+162	2767	250	9712	s	r
+163	2867	0	9842	s	r
+164	2767	-250	9712	s	r
+165	2867	-510	9842	s	r
+166	2767	-750	9712	s	r
+167	2867	-1020	9842	s	r
+168	2767	-1250	9712	s	r
+169	2867	-1467	9577	s	r
+170	2767	-1659	9447	s	r
+171	2867	-1972	9577	s	r
+172	2767	-2195	9447	s	r
+173	2867	-2477	9577	s	r
+174	2767	-2695	9447	s	r
+175	2867	-2982	9577	s	r
+176	2767	-3195	9447	s	r
+177	2867	-3492	9577	s	r
+178	2767	-3695	9447	s	r
+179	2867	-4002	9577	s	r
+180	2767	-4195	9447	s	r
+181	4079	4128	9304	b	r
+182	4079	3573	9169	b	r
+183	4079	3120	9304	b	r
+184	4079	2578	9169	b	r
+185	4079	2110	9304	b	r
+186	4079	1585	9169	b	r
+187	4079	1105	9304	b	r
+188	4082	750	9447	s	r
+189	4232	510	9577	s	r
+190	4082	250	9447	s	r
+191	4232	0	9577	s	r
+192	4082	-250	9447	s	r
+193	4232	-510	9577	s	r
+194	4082	-750	9447	s	r
+195	4079	-1105	9304	b	r
+196	4079	-1585	9169	b	r
+197	4079	-2110	9304	b	r
+198	4079	-2578	9169	b	r
+199	4079	-3120	9304	b	r
+200	4079	-3573	9169	b	r
+201	4079	-4128	9304	b	r
+202	5399	4005	9034	b	r
+203	5399	3453	8899	b	r
+204	5399	2999	9034	b	r
+205	5399	2461	8899	b	r
+206	5399	1993	9034	b	r
+207	5399	1470	8899	b	r
+208	5399	988	9034	b	r
+209	5399	500	9169	b	r
+210	5399	0	9304	b	r
+211	5399	-500	9169	b	r
+212	5399	-988	9034	b	r
+213	5399	-1470	8899	b	r
+214	5399	-1993	9034	b	r
+215	5399	-2461	8899	b	r
+216	5399	-2999	9034	b	r
+217	5399	-3453	8899	b	r
+218	5399	-4005	9034	b	r
diff --git a/macro/tools/skimming_reco.C b/macro/tools/skimming_reco.C
index 9343c9b8ff..ba2754950e 100644
--- a/macro/tools/skimming_reco.C
+++ b/macro/tools/skimming_reco.C
@@ -1,97 +1,97 @@
-#include "Riostream.h"
-#include "TError.h"
-#include "TFile.h"
-#include "TFolder.h"
-#include "TGrid.h"
-#include "TLeaf.h"
-#include "TSystem.h"
-#include "TTree.h"
-
-#include "TCollection.h"
-#include "TList.h"
-#include "TObjArray.h"
-#include "TObjString.h"
-
-
-void DisableBranches(TTree* tree);
-
-void skimming_reco(TString inFile) {
-
-  // I/O files
-  TString outFile = inFile;
-  outFile.ReplaceAll(".root", "skim.root");
-
-  TTree::SetMaxTreeSize(90000000000);
-
-  /// set root ignore level to supress:
-  // Could not find the real data member 'PrimaryVertex' when constructing the branch 'PrimaryVertex'
-
-  ///  gErrorIgnoreLevel = kPrint, kInfo, kWarning, kError, kBreak, kSysError, kFatal;
-  gErrorIgnoreLevel = kFatal;
-
-
-  //Get old file, old tree and set top branch address
-  TFile* oldfile = new TFile(inFile.Data());
-  TTree* oldtree = (TTree*) oldfile->Get("cbmsim");
-
-  // disable all branches not needed
-  DisableBranches(oldtree);
-
-  //Create a new file (a skimmed clone of old tree)
-  TFile* newfile = new TFile(outFile.Data(), "recreate");
-
-  // get the tree and clone
-  TTree* newtree = oldtree->CloneTree(-1, "fast");
-  newtree->AutoSave();
-
-  // get basic branch lists (needed by the FairFileSource)
-  TList* list    = dynamic_cast<TList*>(oldfile->Get("BranchList"));
-  TFolder* added = dynamic_cast<TFolder*>(oldfile->Get("cbmout"));
-  newfile->cd();
-  if (list) list->Write("BranchList", TObject::kSingleKey);
-  if (added) added->Write();
-
-  // close the file
-  newfile->Close();
-  delete newfile;
-
-  delete oldfile;
-}
-
-void DisableBranches(TTree* tree) {
-  TObjArray* list = tree->GetListOfLeaves();
-  TIter next((TCollection*) list);
-  TLeaf* leaf;
-
-  // list of branches not needed/wanted
-  TObjArray branchesToDelete;
-  branchesToDelete.SetOwner(kTRUE);
-  // branchesToDelete.Add(new TObjString("Mvd"));
-  branchesToDelete.Add(new TObjString("Digi"));
-  branchesToDelete.Add(new TObjString("Cluster"));
-
-  TIter nit(&branchesToDelete);
-
-  // default is to keep all bracnhes
-  tree->SetBranchStatus("*", 1);
-
-  Bool_t on(kFALSE);
-
-  while ((leaf = static_cast<TLeaf*>(next()))) {
-    TString name(leaf->GetName());
-    if ((name.EndsWith("_") || name.EndsWith("."))) {
-      //	  Printf("check: %s",leaf->GetName());
-      TObjString* str;
-      nit.Reset();
-      on = kTRUE;
-      while ((str = static_cast<TObjString*>(nit()))) {
-        if (name.Contains(str->String()) && name.EndsWith("_")) { on = kFALSE; }
-      }
-    }
-    // switch of branch copy
-    if (!on) {
-      //	  Printf("remove: %s",leaf->GetName());
-      leaf->GetBranch()->SetStatus(0);
-    }
-  }
-}
+#include "Riostream.h"
+#include "TError.h"
+#include "TFile.h"
+#include "TFolder.h"
+#include "TGrid.h"
+#include "TLeaf.h"
+#include "TSystem.h"
+#include "TTree.h"
+
+#include "TCollection.h"
+#include "TList.h"
+#include "TObjArray.h"
+#include "TObjString.h"
+
+
+void DisableBranches(TTree* tree);
+
+void skimming_reco(TString inFile) {
+
+  // I/O files
+  TString outFile = inFile;
+  outFile.ReplaceAll(".root", "skim.root");
+
+  TTree::SetMaxTreeSize(90000000000);
+
+  /// set root ignore level to supress:
+  // Could not find the real data member 'PrimaryVertex' when constructing the branch 'PrimaryVertex'
+
+  ///  gErrorIgnoreLevel = kPrint, kInfo, kWarning, kError, kBreak, kSysError, kFatal;
+  gErrorIgnoreLevel = kFatal;
+
+
+  //Get old file, old tree and set top branch address
+  TFile* oldfile = new TFile(inFile.Data());
+  TTree* oldtree = (TTree*) oldfile->Get("cbmsim");
+
+  // disable all branches not needed
+  DisableBranches(oldtree);
+
+  //Create a new file (a skimmed clone of old tree)
+  TFile* newfile = new TFile(outFile.Data(), "recreate");
+
+  // get the tree and clone
+  TTree* newtree = oldtree->CloneTree(-1, "fast");
+  newtree->AutoSave();
+
+  // get basic branch lists (needed by the FairFileSource)
+  TList* list    = dynamic_cast<TList*>(oldfile->Get("BranchList"));
+  TFolder* added = dynamic_cast<TFolder*>(oldfile->Get("cbmout"));
+  newfile->cd();
+  if (list) list->Write("BranchList", TObject::kSingleKey);
+  if (added) added->Write();
+
+  // close the file
+  newfile->Close();
+  delete newfile;
+
+  delete oldfile;
+}
+
+void DisableBranches(TTree* tree) {
+  TObjArray* list = tree->GetListOfLeaves();
+  TIter next((TCollection*) list);
+  TLeaf* leaf;
+
+  // list of branches not needed/wanted
+  TObjArray branchesToDelete;
+  branchesToDelete.SetOwner(kTRUE);
+  // branchesToDelete.Add(new TObjString("Mvd"));
+  branchesToDelete.Add(new TObjString("Digi"));
+  branchesToDelete.Add(new TObjString("Cluster"));
+
+  TIter nit(&branchesToDelete);
+
+  // default is to keep all bracnhes
+  tree->SetBranchStatus("*", 1);
+
+  Bool_t on(kFALSE);
+
+  while ((leaf = static_cast<TLeaf*>(next()))) {
+    TString name(leaf->GetName());
+    if ((name.EndsWith("_") || name.EndsWith("."))) {
+      //	  Printf("check: %s",leaf->GetName());
+      TObjString* str;
+      nit.Reset();
+      on = kTRUE;
+      while ((str = static_cast<TObjString*>(nit()))) {
+        if (name.Contains(str->String()) && name.EndsWith("_")) { on = kFALSE; }
+      }
+    }
+    // switch of branch copy
+    if (!on) {
+      //	  Printf("remove: %s",leaf->GetName());
+      leaf->GetBranch()->SetStatus(0);
+    }
+  }
+}
diff --git a/macro/tracking/lx/run_reco.C b/macro/tracking/lx/run_reco.C
index 50af0fdb2f..e60ef9e3f7 100644
--- a/macro/tracking/lx/run_reco.C
+++ b/macro/tracking/lx/run_reco.C
@@ -1,401 +1,401 @@
-void run_reco(int index = -1) {
-  Int_t nEvents         = 1000;
-  const char* setupName = "sis100_muon_jpsi";
-  //const char* setupName = "sis100_electron";
-  TString system  = "auau";
-  TString beam    = "8gev";
-  TString trigger = "mbias";
-  TString part    = "omega";
-  TString channel = "mpmm";
-  //TString channel = "epem";
-
-  bool useSig   = true;
-  bool useBg    = false;
-  bool sigAscii = false;
-  bool useIdeal = false;
-  bool isEvByEv = true;
-  bool isML     = true;
-
-  if (!useSig && !useBg) {
-    cout << "At least one of the signal or background must be set!" << endl;
-    return;
-  }
-
-  TString partDir = "charm";
-
-  if (part != "jpsi") partDir = "cktA";
-
-  char str[5];
-  sprintf(str, "%05d", index);
-
-  char str2[4];
-  sprintf(str2, "%04d", index);
-
-  TString suffix = "";
-
-  if (useBg) suffix += "." + trigger;
-
-  if (useSig) {
-    if (sigAscii)
-      suffix += ".ascii";
-    else
-      suffix += "." + part;
-  }
-
-  TString inOutDir;
-
-  if (index >= 0)
-    inOutDir =
-      "/lustre/nyx/cbm/users/tablyaz/Lx/runs/data" + TString(str) + "/";
-  else
-    inOutDir = "/data.local/cbmrootdata/";
-
-  TString inFile =
-    inOutDir + setupName + ".mc." + system + "." + beam + suffix + ".root";
-  TString globalParFile =
-    inOutDir + setupName + ".param." + system + "." + beam + suffix + ".root";
-  TString outFile =
-    inOutDir + setupName + ".reco." + system + "." + beam + suffix + ".root";
-
-  TString myName = "run_reco_lx";  // this macro's name for screen output
-  TString srcDir = gSystem->Getenv("VMCWORKDIR");
-
-  Int_t iVerbose = 1;
-  TStopwatch timer;
-  timer.Start();
-
-  gROOT->LoadMacro("$VMCWORKDIR/macro/littrack/loadlibs.C");
-  loadlibs();
-  gSystem->Load("libLxTrack.so");
-  gSystem->Load("libLittrack.so");
-
-  FairRunAna* run = new FairRunAna;
-  run->SetUseFairLinks(1);
-  run->SetInputFile(inFile);
-  run->SetOutputFile(outFile);
-  run->SetGenerateRunInfo(kTRUE);
-
-  CbmMCDataManager* mcManager = new CbmMCDataManager;
-  mcManager->AddFile(inFile);
-  run->AddTask(mcManager);
-
-  // -----   Load the geometry setup   -------------------------------------
-  std::cout << std::endl;
-  TString setupFile  = srcDir + "/geometry/setup/setup_" + setupName + ".C";
-  TString setupFunct = "setup_";
-  setupFunct         = setupFunct + setupName + "()";
-  std::cout << "-I- : Loading macro " << setupFile << std::endl;
-  gROOT->LoadMacro(setupFile);
-  gROOT->ProcessLine(setupFunct);
-  CbmSetup* setup = CbmSetup::Instance();
-  // ------------------------------------------------------------------------
-
-  //if (nofNoiseE > 0)
-  //{
-  //LxGenNoiseElectrons* elGenerator = new LxGenNoiseElectrons;
-  //elGenerator->SetNofNoiseE(nofNoiseE);
-  //run->AddTask(elGenerator);
-  //}
-
-  TList* parFileList = new TList();
-
-  if (useIdeal) {
-    TString muchDigiFileName =
-      srcDir + "/parameters/much/much_v15c_digi_sector.root";
-    CbmMuchHitProducerIdeal* muchHPIdeal =
-      new CbmMuchHitProducerIdeal(muchDigiFileName.Data());
-    run->AddTask(muchHPIdeal);
-
-    CbmTrdHitProducerIdeal* trdHPIdeal = new CbmTrdHitProducerIdeal;
-    run->AddTask(trdHPIdeal);
-  } else {
-    TString geoTag;
-
-    if (setup->GetGeoTag(kTrd, geoTag)) {
-      TObjString* trdFile =
-        new TObjString(srcDir + "/parameters/trd/trd_" + geoTag + ".digi.par");
-      parFileList->Add(trdFile);
-      std::cout << "-I- : Using parameter file " << trdFile->GetString()
-                << std::endl;
-    }
-
-    // - TOF digitisation parameters
-    if (setup->GetGeoTag(kTof, geoTag)) {
-      TObjString* tofFile =
-        new TObjString(srcDir + "/parameters/tof/tof_" + geoTag + ".digi.par");
-      parFileList->Add(tofFile);
-      std::cout << "-I- " << myName << ": Using parameter file "
-                << tofFile->GetString() << std::endl;
-      TObjString* tofBdfFile = new TObjString(srcDir + "/parameters/tof/tof_"
-                                              + geoTag + ".digibdf.par");
-      parFileList->Add(tofBdfFile);
-      std::cout << "-I- " << myName << ": Using parameter file "
-                << tofBdfFile->GetString() << std::endl;
-    }
-    // ------------------------------------------------------------------------
-
-    // -----   MVD Digitiser   -------------------------------------------------
-    if (setup->IsActive(kMvd)) {
-      FairTask* mvdDigi = new CbmMvdDigitizer("MVD Digitiser", 0);
-      run->AddTask(mvdDigi);
-      std::cout << "-I- digitize: Added task " << mvdDigi->GetName()
-                << std::endl;
-    }
-    // -------------------------------------------------------------------------
-
-
-    // -----   STS Digitiser   -------------------------------------------------
-    if (setup->IsActive(kSts)) {
-
-      Double_t dynRange       = 40960.;  // Dynamic range [e]
-      Double_t threshold      = 4000.;   // Digitisation threshold [e]
-      Int_t nAdc              = 4096;    // Number of ADC channels (12 bit)
-      Double_t timeResolution = 5.;      // time resolution [ns]
-      Double_t deadTime =
-        9999999.;            // infinite dead time (integrate entire event)
-      Double_t noise  = 0.;  // ENC [e]
-      Int_t digiModel = 1;   // User sensor type DSSD
-
-      // The following settings correspond to a validated implementation.
-      // Changing them is on your own risk.
-      Int_t eLossModel       = 1;       // Energy loss model: uniform
-      Bool_t useLorentzShift = kFALSE;  // Deactivate Lorentz shift
-      Bool_t useDiffusion    = kFALSE;  // Deactivate diffusion
-      Bool_t useCrossTalk    = kFALSE;  // Deactivate cross talk
-
-      CbmStsDigitize* stsDigi = new CbmStsDigitize(digiModel);
-      stsDigi->SetProcesses(
-        eLossModel, useLorentzShift, useDiffusion, useCrossTalk);
-      stsDigi->SetParameters(
-        dynRange, threshold, nAdc, timeResolution, deadTime, noise);
-      run->AddTask(stsDigi);
-    }
-    // -------------------------------------------------------------------------
-
-    // -----   MUCH Digitiser   ------------------------------------------------
-    if (setup->IsActive(kMuch)) {
-
-      // --- Parameter file name
-      TString geoTag;
-      setup->GetGeoTag(kMuch, geoTag);
-      std::cout << geoTag(0, 4) << std::endl;
-      TString parFile = gSystem->Getenv("VMCWORKDIR");
-      parFile =
-        parFile + "/parameters/much/much_" + geoTag(0, 4) + "_digi_sector.root";
-      std::cout << "Using parameter file " << parFile << std::endl;
-
-      // --- Digitiser for GEM
-      FairTask* gemDigi = new CbmMuchDigitizeGem(parFile.Data());
-      run->AddTask(gemDigi);
-      std::cout << "-I- digitize: Added task " << gemDigi->GetName()
-                << std::endl;
-
-      // --- Digitiser for Straws
-      FairTask* strawDigi = new CbmMuchDigitizeStraws(parFile.Data());
-      run->AddTask(strawDigi);
-      std::cout << "-I- digitize: Added task " << strawDigi->GetName()
-                << std::endl;
-    }
-    // -------------------------------------------------------------------------
-
-
-    // -----   TRD Digitiser   -------------------------------------------------
-    if (setup->IsActive(kTrd)) {
-      CbmTrdRadiator* radiator = new CbmTrdRadiator(kTRUE, "K++");
-      FairTask* trdDigi        = new CbmTrdDigitizerPRF(radiator);
-      run->AddTask(trdDigi);
-      std::cout << "-I- digitize: Added task " << trdDigi->GetName()
-                << std::endl;
-    }
-    // -------------------------------------------------------------------------
-
-    // -----   TOF Digitiser   -------------------------------------------------
-    if (setup->IsActive(kTof)) {
-      Int_t iVerbose = 0;
-      CbmTofDigitizerBDF* tofDigi =
-        new CbmTofDigitizerBDF("TOF Digitizer BDF", iVerbose);
-      tofDigi->SetOutputBranchPersistent("TofDigi", kFALSE);
-      tofDigi->SetOutputBranchPersistent("TofDigiMatchPoints", kFALSE);
-      TString paramDir = gSystem->Getenv("VMCWORKDIR");
-      tofDigi->SetInputFileName(
-        paramDir
-        + "/parameters/tof/test_bdf_input.root");  // Required as input file name not read anymore by param class
-      run->AddTask(tofDigi);
-
-      std::cout << "-I- digitize: Added task " << tofDigi->GetName()
-                << std::endl;
-    }
-    // -------------------------------------------------------------------------
-
-    // -----   Local reconstruction in MVD   ----------------------------------
-    if (setup->IsActive(kMvd)) {
-
-      CbmMvdClusterfinder* mvdCluster =
-        new CbmMvdClusterfinder("MVD Cluster Finder", 0, 0);
-      run->AddTask(mvdCluster);
-      std::cout << "-I- : Added task " << mvdCluster->GetName() << std::endl;
-
-      CbmMvdHitfinder* mvdHit = new CbmMvdHitfinder("MVD Hit Finder", 0, 0);
-      mvdHit->UseClusterfinder(kTRUE);
-      run->AddTask(mvdHit);
-      std::cout << "-I- : Added task " << mvdHit->GetName() << std::endl;
-    }
-    // ------------------------------------------------------------------------
-
-
-    // -----   Local reconstruction in STS   ----------------------------------
-    if (setup->IsActive(kSts)) {
-
-      FairTask* stsCluster = new CbmStsFindClusters();
-      run->AddTask(stsCluster);
-      std::cout << "-I- : Added task " << stsCluster->GetName() << std::endl;
-
-      FairTask* stsHit = new CbmStsFindHits();
-      run->AddTask(stsHit);
-      std::cout << "-I- : Added task " << stsHit->GetName() << std::endl;
-    }
-    // ------------------------------------------------------------------------
-
-    // -----   Local reconstruction in MUCH   ---------------------------------
-    if (setup->IsActive(kMuch)) {
-
-      // --- Parameter file name
-      TString geoTag;
-      setup->GetGeoTag(kMuch, geoTag);
-      std::cout << geoTag(0, 4) << std::endl;
-      TString parFile = gSystem->Getenv("VMCWORKDIR");
-      parFile =
-        parFile + "/parameters/much/much_" + geoTag(0, 4) + "_digi_sector.root";
-      std::cout << "Using parameter file " << parFile << std::endl;
-
-      // --- Hit finder for GEMs
-      FairTask* muchHitGem = new CbmMuchFindHitsGem(parFile.Data());
-      run->AddTask(muchHitGem);
-
-      // --- Hit finder for Straws
-      CbmMuchFindHitsStraws* strawFindHits =
-        new CbmMuchFindHitsStraws(parFile.Data());
-      run->AddTask(strawFindHits);
-    }
-
-    // -----   Local reconstruction in TRD   ----------------------------------
-    if (setup->IsActive(kTrd)) {
-
-      Double_t triggerThreshold = 0.5e-6;  // SIS100
-      Bool_t triangularPads = false;  // Bucharest triangular pad-plane layout
-      CbmTrdClusterFinderFast* trdCluster = new CbmTrdClusterFinderFast();
-      trdCluster->SetNeighbourTrigger(true);
-      trdCluster->SetTriggerThreshold(triggerThreshold);
-      trdCluster->SetNeighbourRowTrigger(false);
-      trdCluster->SetPrimaryClusterRowMerger(true);
-      trdCluster->SetTriangularPads(triangularPads);
-      run->AddTask(trdCluster);
-      std::cout << "-I- : Added task " << trdCluster->GetName() << std::endl;
-
-      CbmTrdHitProducerCluster* trdHit = new CbmTrdHitProducerCluster();
-      trdHit->SetTriangularPads(triangularPads);
-      run->AddTask(trdHit);
-      std::cout << "-I- : Added task " << trdHit->GetName() << std::endl;
-    }
-    // ------------------------------------------------------------------------
-
-    // -----   Local reconstruction in TOF   ----------------------------------
-    if (setup->IsActive(kTof)) {
-      CbmTofSimpClusterizer* tofCluster =
-        new CbmTofSimpClusterizer("TOF Simple Clusterizer", 0);
-      tofCluster->SetOutputBranchPersistent("TofHit", kTRUE);
-      tofCluster->SetOutputBranchPersistent("TofDigiMatch", kTRUE);
-      run->AddTask(tofCluster);
-      std::cout << "-I- : Added task " << tofCluster->GetName() << std::endl;
-    }
-    // -------------------------------------------------------------------------
-  }
-
-  // -----   Track finding in (MVD+) STS    -----------------------------------------
-  CbmKF* kalman = new CbmKF();
-  run->AddTask(kalman);
-  CbmL1* l1 = new CbmL1();
-  // --- Material budget file names
-  if (setup->IsActive(kMvd)) {
-    TString geoTag;
-    setup->GetGeoTag(kMvd, geoTag);
-    TString parFile = gSystem->Getenv("VMCWORKDIR");
-    parFile = parFile + "/parameters/mvd/mvd_matbudget_" + geoTag + ".root";
-    std::cout << "Using material budget file " << parFile << std::endl;
-    l1->SetMvdMaterialBudgetFileName(parFile.Data());
-  }
-  if (setup->IsActive(kSts)) {
-    TString geoTag;
-    setup->GetGeoTag(kSts, geoTag);
-    TString parFile = gSystem->Getenv("VMCWORKDIR");
-    parFile = parFile + "/parameters/sts/sts_matbudget_" + geoTag + ".root";
-    std::cout << "Using material budget file " << parFile << std::endl;
-    l1->SetStsMaterialBudgetFileName(parFile.Data());
-  }
-  run->AddTask(l1);
-  std::cout << "-I- : Added task " << l1->GetName() << std::endl;
-
-  CbmStsTrackFinder* stsTrackFinder = new CbmL1StsTrackFinder();
-  FairTask* stsFindTracks =
-    new CbmStsFindTracks(0, stsTrackFinder, setup->IsActive(kMvd));
-  run->AddTask(stsFindTracks);
-  std::cout << "-I- : Added task " << stsFindTracks->GetName() << std::endl;
-  // -------------------------------------------------------------------------
-
-  TString setupString(setupName);
-
-  if (setupString.Contains("electron")) {
-    LxTBTrdFinder* lxTbFinder = new LxTBTrdFinder;
-    run->AddTask(lxTbFinder);
-  } else {
-    if (isML) {
-      LxTBMLFinder* lxTbFinder = new LxTBMLFinder;
-      lxTbFinder->SetEvByEv(isEvByEv);
-      run->AddTask(lxTbFinder);
-    } else {
-      LxTBFinder* lxTbFinder = new LxTBFinder;
-      lxTbFinder->SetEvByEv(isEvByEv);
-      lxTbFinder->SetSignalParticle(part.Data());
-      lxTbFinder->SetUseIdeal(useIdeal);
-      lxTbFinder->SetUseAsciiSig(sigAscii);
-      lxTbFinder->SetNEvents(nEvents);
-      run->AddTask(lxTbFinder);
-    }
-  }
-
-
-  // -----  Parameter database   --------------------------------------------
-  FairRuntimeDb* rtdb       = run->GetRuntimeDb();
-  FairParRootFileIo* parIo1 = new FairParRootFileIo();
-  parIo1->open(globalParFile.Data());
-  rtdb->setFirstInput(parIo1);
-  rtdb->setOutput(parIo1);
-
-  if (!useIdeal) {
-    FairParAsciiFileIo* parIo2 = new FairParAsciiFileIo();
-    parIo2->open(parFileList, "in");
-    rtdb->setSecondInput(parIo2);
-  }
-
-  rtdb->saveOutput();
-  // ------------------------------------------------------------------------
-
-  // -----   Initialize and run   --------------------------------------------
-  run->Init();
-  //run->Run(900, 1000);
-  run->Run(0, nEvents);
-  // ------------------------------------------------------------------------
-
-  // -----   Finish   -------------------------------------------------------
-  timer.Stop();
-  cout << "Macro finished successfully." << endl;
-  cout << "Output file is " << inFile << endl;
-  cout << "Parameter file is " << globalParFile << endl;
-  cout << "Real time " << timer.RealTime() << " s, CPU time " << timer.CpuTime()
-       << " s" << endl;
-  cout << endl;
-  // ------------------------------------------------------------------------
-
-  cout << " Test passed" << endl;
-  cout << " All ok " << endl;
-}
+void run_reco(int index = -1) {
+  Int_t nEvents         = 1000;
+  const char* setupName = "sis100_muon_jpsi";
+  //const char* setupName = "sis100_electron";
+  TString system  = "auau";
+  TString beam    = "8gev";
+  TString trigger = "mbias";
+  TString part    = "omega";
+  TString channel = "mpmm";
+  //TString channel = "epem";
+
+  bool useSig   = true;
+  bool useBg    = false;
+  bool sigAscii = false;
+  bool useIdeal = false;
+  bool isEvByEv = true;
+  bool isML     = true;
+
+  if (!useSig && !useBg) {
+    cout << "At least one of the signal or background must be set!" << endl;
+    return;
+  }
+
+  TString partDir = "charm";
+
+  if (part != "jpsi") partDir = "cktA";
+
+  char str[5];
+  sprintf(str, "%05d", index);
+
+  char str2[4];
+  sprintf(str2, "%04d", index);
+
+  TString suffix = "";
+
+  if (useBg) suffix += "." + trigger;
+
+  if (useSig) {
+    if (sigAscii)
+      suffix += ".ascii";
+    else
+      suffix += "." + part;
+  }
+
+  TString inOutDir;
+
+  if (index >= 0)
+    inOutDir =
+      "/lustre/nyx/cbm/users/tablyaz/Lx/runs/data" + TString(str) + "/";
+  else
+    inOutDir = "/data.local/cbmrootdata/";
+
+  TString inFile =
+    inOutDir + setupName + ".mc." + system + "." + beam + suffix + ".root";
+  TString globalParFile =
+    inOutDir + setupName + ".param." + system + "." + beam + suffix + ".root";
+  TString outFile =
+    inOutDir + setupName + ".reco." + system + "." + beam + suffix + ".root";
+
+  TString myName = "run_reco_lx";  // this macro's name for screen output
+  TString srcDir = gSystem->Getenv("VMCWORKDIR");
+
+  Int_t iVerbose = 1;
+  TStopwatch timer;
+  timer.Start();
+
+  gROOT->LoadMacro("$VMCWORKDIR/macro/littrack/loadlibs.C");
+  loadlibs();
+  gSystem->Load("libLxTrack.so");
+  gSystem->Load("libLittrack.so");
+
+  FairRunAna* run = new FairRunAna;
+  run->SetUseFairLinks(1);
+  run->SetInputFile(inFile);
+  run->SetOutputFile(outFile);
+  run->SetGenerateRunInfo(kTRUE);
+
+  CbmMCDataManager* mcManager = new CbmMCDataManager;
+  mcManager->AddFile(inFile);
+  run->AddTask(mcManager);
+
+  // -----   Load the geometry setup   -------------------------------------
+  std::cout << std::endl;
+  TString setupFile  = srcDir + "/geometry/setup/setup_" + setupName + ".C";
+  TString setupFunct = "setup_";
+  setupFunct         = setupFunct + setupName + "()";
+  std::cout << "-I- : Loading macro " << setupFile << std::endl;
+  gROOT->LoadMacro(setupFile);
+  gROOT->ProcessLine(setupFunct);
+  CbmSetup* setup = CbmSetup::Instance();
+  // ------------------------------------------------------------------------
+
+  //if (nofNoiseE > 0)
+  //{
+  //LxGenNoiseElectrons* elGenerator = new LxGenNoiseElectrons;
+  //elGenerator->SetNofNoiseE(nofNoiseE);
+  //run->AddTask(elGenerator);
+  //}
+
+  TList* parFileList = new TList();
+
+  if (useIdeal) {
+    TString muchDigiFileName =
+      srcDir + "/parameters/much/much_v15c_digi_sector.root";
+    CbmMuchHitProducerIdeal* muchHPIdeal =
+      new CbmMuchHitProducerIdeal(muchDigiFileName.Data());
+    run->AddTask(muchHPIdeal);
+
+    CbmTrdHitProducerIdeal* trdHPIdeal = new CbmTrdHitProducerIdeal;
+    run->AddTask(trdHPIdeal);
+  } else {
+    TString geoTag;
+
+    if (setup->GetGeoTag(kTrd, geoTag)) {
+      TObjString* trdFile =
+        new TObjString(srcDir + "/parameters/trd/trd_" + geoTag + ".digi.par");
+      parFileList->Add(trdFile);
+      std::cout << "-I- : Using parameter file " << trdFile->GetString()
+                << std::endl;
+    }
+
+    // - TOF digitisation parameters
+    if (setup->GetGeoTag(kTof, geoTag)) {
+      TObjString* tofFile =
+        new TObjString(srcDir + "/parameters/tof/tof_" + geoTag + ".digi.par");
+      parFileList->Add(tofFile);
+      std::cout << "-I- " << myName << ": Using parameter file "
+                << tofFile->GetString() << std::endl;
+      TObjString* tofBdfFile = new TObjString(srcDir + "/parameters/tof/tof_"
+                                              + geoTag + ".digibdf.par");
+      parFileList->Add(tofBdfFile);
+      std::cout << "-I- " << myName << ": Using parameter file "
+                << tofBdfFile->GetString() << std::endl;
+    }
+    // ------------------------------------------------------------------------
+
+    // -----   MVD Digitiser   -------------------------------------------------
+    if (setup->IsActive(kMvd)) {
+      FairTask* mvdDigi = new CbmMvdDigitizer("MVD Digitiser", 0);
+      run->AddTask(mvdDigi);
+      std::cout << "-I- digitize: Added task " << mvdDigi->GetName()
+                << std::endl;
+    }
+    // -------------------------------------------------------------------------
+
+
+    // -----   STS Digitiser   -------------------------------------------------
+    if (setup->IsActive(kSts)) {
+
+      Double_t dynRange       = 40960.;  // Dynamic range [e]
+      Double_t threshold      = 4000.;   // Digitisation threshold [e]
+      Int_t nAdc              = 4096;    // Number of ADC channels (12 bit)
+      Double_t timeResolution = 5.;      // time resolution [ns]
+      Double_t deadTime =
+        9999999.;            // infinite dead time (integrate entire event)
+      Double_t noise  = 0.;  // ENC [e]
+      Int_t digiModel = 1;   // User sensor type DSSD
+
+      // The following settings correspond to a validated implementation.
+      // Changing them is on your own risk.
+      Int_t eLossModel       = 1;       // Energy loss model: uniform
+      Bool_t useLorentzShift = kFALSE;  // Deactivate Lorentz shift
+      Bool_t useDiffusion    = kFALSE;  // Deactivate diffusion
+      Bool_t useCrossTalk    = kFALSE;  // Deactivate cross talk
+
+      CbmStsDigitize* stsDigi = new CbmStsDigitize(digiModel);
+      stsDigi->SetProcesses(
+        eLossModel, useLorentzShift, useDiffusion, useCrossTalk);
+      stsDigi->SetParameters(
+        dynRange, threshold, nAdc, timeResolution, deadTime, noise);
+      run->AddTask(stsDigi);
+    }
+    // -------------------------------------------------------------------------
+
+    // -----   MUCH Digitiser   ------------------------------------------------
+    if (setup->IsActive(kMuch)) {
+
+      // --- Parameter file name
+      TString geoTag;
+      setup->GetGeoTag(kMuch, geoTag);
+      std::cout << geoTag(0, 4) << std::endl;
+      TString parFile = gSystem->Getenv("VMCWORKDIR");
+      parFile =
+        parFile + "/parameters/much/much_" + geoTag(0, 4) + "_digi_sector.root";
+      std::cout << "Using parameter file " << parFile << std::endl;
+
+      // --- Digitiser for GEM
+      FairTask* gemDigi = new CbmMuchDigitizeGem(parFile.Data());
+      run->AddTask(gemDigi);
+      std::cout << "-I- digitize: Added task " << gemDigi->GetName()
+                << std::endl;
+
+      // --- Digitiser for Straws
+      FairTask* strawDigi = new CbmMuchDigitizeStraws(parFile.Data());
+      run->AddTask(strawDigi);
+      std::cout << "-I- digitize: Added task " << strawDigi->GetName()
+                << std::endl;
+    }
+    // -------------------------------------------------------------------------
+
+
+    // -----   TRD Digitiser   -------------------------------------------------
+    if (setup->IsActive(kTrd)) {
+      CbmTrdRadiator* radiator = new CbmTrdRadiator(kTRUE, "K++");
+      FairTask* trdDigi        = new CbmTrdDigitizerPRF(radiator);
+      run->AddTask(trdDigi);
+      std::cout << "-I- digitize: Added task " << trdDigi->GetName()
+                << std::endl;
+    }
+    // -------------------------------------------------------------------------
+
+    // -----   TOF Digitiser   -------------------------------------------------
+    if (setup->IsActive(kTof)) {
+      Int_t iVerbose = 0;
+      CbmTofDigitizerBDF* tofDigi =
+        new CbmTofDigitizerBDF("TOF Digitizer BDF", iVerbose);
+      tofDigi->SetOutputBranchPersistent("TofDigi", kFALSE);
+      tofDigi->SetOutputBranchPersistent("TofDigiMatchPoints", kFALSE);
+      TString paramDir = gSystem->Getenv("VMCWORKDIR");
+      tofDigi->SetInputFileName(
+        paramDir
+        + "/parameters/tof/test_bdf_input.root");  // Required as input file name not read anymore by param class
+      run->AddTask(tofDigi);
+
+      std::cout << "-I- digitize: Added task " << tofDigi->GetName()
+                << std::endl;
+    }
+    // -------------------------------------------------------------------------
+
+    // -----   Local reconstruction in MVD   ----------------------------------
+    if (setup->IsActive(kMvd)) {
+
+      CbmMvdClusterfinder* mvdCluster =
+        new CbmMvdClusterfinder("MVD Cluster Finder", 0, 0);
+      run->AddTask(mvdCluster);
+      std::cout << "-I- : Added task " << mvdCluster->GetName() << std::endl;
+
+      CbmMvdHitfinder* mvdHit = new CbmMvdHitfinder("MVD Hit Finder", 0, 0);
+      mvdHit->UseClusterfinder(kTRUE);
+      run->AddTask(mvdHit);
+      std::cout << "-I- : Added task " << mvdHit->GetName() << std::endl;
+    }
+    // ------------------------------------------------------------------------
+
+
+    // -----   Local reconstruction in STS   ----------------------------------
+    if (setup->IsActive(kSts)) {
+
+      FairTask* stsCluster = new CbmStsFindClusters();
+      run->AddTask(stsCluster);
+      std::cout << "-I- : Added task " << stsCluster->GetName() << std::endl;
+
+      FairTask* stsHit = new CbmStsFindHits();
+      run->AddTask(stsHit);
+      std::cout << "-I- : Added task " << stsHit->GetName() << std::endl;
+    }
+    // ------------------------------------------------------------------------
+
+    // -----   Local reconstruction in MUCH   ---------------------------------
+    if (setup->IsActive(kMuch)) {
+
+      // --- Parameter file name
+      TString geoTag;
+      setup->GetGeoTag(kMuch, geoTag);
+      std::cout << geoTag(0, 4) << std::endl;
+      TString parFile = gSystem->Getenv("VMCWORKDIR");
+      parFile =
+        parFile + "/parameters/much/much_" + geoTag(0, 4) + "_digi_sector.root";
+      std::cout << "Using parameter file " << parFile << std::endl;
+
+      // --- Hit finder for GEMs
+      FairTask* muchHitGem = new CbmMuchFindHitsGem(parFile.Data());
+      run->AddTask(muchHitGem);
+
+      // --- Hit finder for Straws
+      CbmMuchFindHitsStraws* strawFindHits =
+        new CbmMuchFindHitsStraws(parFile.Data());
+      run->AddTask(strawFindHits);
+    }
+
+    // -----   Local reconstruction in TRD   ----------------------------------
+    if (setup->IsActive(kTrd)) {
+
+      Double_t triggerThreshold = 0.5e-6;  // SIS100
+      Bool_t triangularPads = false;  // Bucharest triangular pad-plane layout
+      CbmTrdClusterFinderFast* trdCluster = new CbmTrdClusterFinderFast();
+      trdCluster->SetNeighbourTrigger(true);
+      trdCluster->SetTriggerThreshold(triggerThreshold);
+      trdCluster->SetNeighbourRowTrigger(false);
+      trdCluster->SetPrimaryClusterRowMerger(true);
+      trdCluster->SetTriangularPads(triangularPads);
+      run->AddTask(trdCluster);
+      std::cout << "-I- : Added task " << trdCluster->GetName() << std::endl;
+
+      CbmTrdHitProducerCluster* trdHit = new CbmTrdHitProducerCluster();
+      trdHit->SetTriangularPads(triangularPads);
+      run->AddTask(trdHit);
+      std::cout << "-I- : Added task " << trdHit->GetName() << std::endl;
+    }
+    // ------------------------------------------------------------------------
+
+    // -----   Local reconstruction in TOF   ----------------------------------
+    if (setup->IsActive(kTof)) {
+      CbmTofSimpClusterizer* tofCluster =
+        new CbmTofSimpClusterizer("TOF Simple Clusterizer", 0);
+      tofCluster->SetOutputBranchPersistent("TofHit", kTRUE);
+      tofCluster->SetOutputBranchPersistent("TofDigiMatch", kTRUE);
+      run->AddTask(tofCluster);
+      std::cout << "-I- : Added task " << tofCluster->GetName() << std::endl;
+    }
+    // -------------------------------------------------------------------------
+  }
+
+  // -----   Track finding in (MVD+) STS    -----------------------------------------
+  CbmKF* kalman = new CbmKF();
+  run->AddTask(kalman);
+  CbmL1* l1 = new CbmL1();
+  // --- Material budget file names
+  if (setup->IsActive(kMvd)) {
+    TString geoTag;
+    setup->GetGeoTag(kMvd, geoTag);
+    TString parFile = gSystem->Getenv("VMCWORKDIR");
+    parFile = parFile + "/parameters/mvd/mvd_matbudget_" + geoTag + ".root";
+    std::cout << "Using material budget file " << parFile << std::endl;
+    l1->SetMvdMaterialBudgetFileName(parFile.Data());
+  }
+  if (setup->IsActive(kSts)) {
+    TString geoTag;
+    setup->GetGeoTag(kSts, geoTag);
+    TString parFile = gSystem->Getenv("VMCWORKDIR");
+    parFile = parFile + "/parameters/sts/sts_matbudget_" + geoTag + ".root";
+    std::cout << "Using material budget file " << parFile << std::endl;
+    l1->SetStsMaterialBudgetFileName(parFile.Data());
+  }
+  run->AddTask(l1);
+  std::cout << "-I- : Added task " << l1->GetName() << std::endl;
+
+  CbmStsTrackFinder* stsTrackFinder = new CbmL1StsTrackFinder();
+  FairTask* stsFindTracks =
+    new CbmStsFindTracks(0, stsTrackFinder, setup->IsActive(kMvd));
+  run->AddTask(stsFindTracks);
+  std::cout << "-I- : Added task " << stsFindTracks->GetName() << std::endl;
+  // -------------------------------------------------------------------------
+
+  TString setupString(setupName);
+
+  if (setupString.Contains("electron")) {
+    LxTBTrdFinder* lxTbFinder = new LxTBTrdFinder;
+    run->AddTask(lxTbFinder);
+  } else {
+    if (isML) {
+      LxTBMLFinder* lxTbFinder = new LxTBMLFinder;
+      lxTbFinder->SetEvByEv(isEvByEv);
+      run->AddTask(lxTbFinder);
+    } else {
+      LxTBFinder* lxTbFinder = new LxTBFinder;
+      lxTbFinder->SetEvByEv(isEvByEv);
+      lxTbFinder->SetSignalParticle(part.Data());
+      lxTbFinder->SetUseIdeal(useIdeal);
+      lxTbFinder->SetUseAsciiSig(sigAscii);
+      lxTbFinder->SetNEvents(nEvents);
+      run->AddTask(lxTbFinder);
+    }
+  }
+
+
+  // -----  Parameter database   --------------------------------------------
+  FairRuntimeDb* rtdb       = run->GetRuntimeDb();
+  FairParRootFileIo* parIo1 = new FairParRootFileIo();
+  parIo1->open(globalParFile.Data());
+  rtdb->setFirstInput(parIo1);
+  rtdb->setOutput(parIo1);
+
+  if (!useIdeal) {
+    FairParAsciiFileIo* parIo2 = new FairParAsciiFileIo();
+    parIo2->open(parFileList, "in");
+    rtdb->setSecondInput(parIo2);
+  }
+
+  rtdb->saveOutput();
+  // ------------------------------------------------------------------------
+
+  // -----   Initialize and run   --------------------------------------------
+  run->Init();
+  //run->Run(900, 1000);
+  run->Run(0, nEvents);
+  // ------------------------------------------------------------------------
+
+  // -----   Finish   -------------------------------------------------------
+  timer.Stop();
+  cout << "Macro finished successfully." << endl;
+  cout << "Output file is " << inFile << endl;
+  cout << "Parameter file is " << globalParFile << endl;
+  cout << "Real time " << timer.RealTime() << " s, CPU time " << timer.CpuTime()
+       << " s" << endl;
+  cout << endl;
+  // ------------------------------------------------------------------------
+
+  cout << " Test passed" << endl;
+  cout << " All ok " << endl;
+}
diff --git a/macro/tracking/lx/run_stat.C b/macro/tracking/lx/run_stat.C
index 266f6aa03e..32cfb0117d 100644
--- a/macro/tracking/lx/run_stat.C
+++ b/macro/tracking/lx/run_stat.C
@@ -1,214 +1,214 @@
-void run_stat(int index = -1) {
-  Int_t nEvents         = 1000;
-  const char* setupName = "sis100_electron";
-  //const char* setupName = "sis100_muon_jpsi";
-  TString system  = "auau";
-  TString beam    = "10gev";
-  TString trigger = "mbias";  //"centr";
-  TString part    = "jpsi";
-  TString channel = "epem";
-  //TString channel = "mpmm";
-
-  bool useSig   = true;
-  bool useBg    = false;
-  bool sigAscii = false;
-
-  if (!useSig && !useBg) {
-    cout << "At least one of the signal or background must be set!" << endl;
-    return;
-  }
-
-  TString partDir = "charm";
-
-  if (part != "jpsi") partDir = "cktA";
-
-  char str[5];
-  sprintf(str, "%05d", index);
-
-  char str2[4];
-  sprintf(str2, "%04d", index);
-
-  TString suffix = "";
-
-  if (useBg) suffix += "." + trigger;
-
-  if (useSig) {
-    if (sigAscii)
-      suffix += ".ascii";
-    else
-      suffix += "." + part;
-  }
-
-  TString inOutDir;
-
-  if (index >= 0)
-    inOutDir =
-      "/lustre/nyx/cbm/users/tablyaz/Lx/runs/data" + TString(str) + "/";
-  else
-    inOutDir = "/data.local/cbmrootdata/";
-
-  TString inFile =
-    inOutDir + setupName + ".mc." + system + "." + beam + suffix + ".root";
-  TString globalParFile =
-    inOutDir + setupName + ".param." + system + "." + beam + suffix + ".root";
-  TString outFile =
-    inOutDir + setupName + ".reco." + system + "." + beam + suffix + ".root";
-
-  TString srcDir = gSystem->Getenv("VMCWORKDIR");
-
-  Int_t iVerbose = 1;
-  TStopwatch timer;
-  timer.Start();
-
-  gROOT->LoadMacro("$VMCWORKDIR/macro/littrack/loadlibs.C");
-  loadlibs();
-  gSystem->Load("libLxTrack.so");
-
-  FairRunAna* run = new FairRunAna;
-  run->SetUseFairLinks(1);
-  run->SetInputFile(inFile);
-  run->SetOutputFile(outFile);
-
-  CbmMCDataManager* mcManager = new CbmMCDataManager;
-  mcManager->AddFile(inFile);
-  run->AddTask(mcManager);
-
-  // -----   Load the geometry setup   -------------------------------------
-  std::cout << std::endl;
-  TString setupFile  = srcDir + "/geometry/setup/setup_" + setupName + ".C";
-  TString setupFunct = "setup_";
-  setupFunct         = setupFunct + setupName + "()";
-  std::cout << "-I- : Loading macro " << setupFile << std::endl;
-  gROOT->LoadMacro(setupFile);
-  gROOT->ProcessLine(setupFunct);
-  CbmSetup* setup = CbmSetup::Instance();
-  // ------------------------------------------------------------------------
-
-  TList* parFileList = new TList();
-  /*TString geoTag;
-
-   if (setup->GetGeoTag(kTrd, geoTag))
-   {
-      TObjString* trdFile = new TObjString(srcDir + "/parameters/trd/trd_" + geoTag + ".digi.par");
-      parFileList->Add(trdFile);
-      std::cout << "-I- : Using parameter file " << trdFile->GetString() << std::endl;
-   }
-
-   // -----   MUCH Digitiser   ------------------------------------------------
-   if (setup->IsActive(kMuch))
-   {
-      // --- Parameter file name
-      TString geoTag;
-      setup->GetGeoTag(kMuch, geoTag);
-      std::cout << geoTag(0, 4) << std::endl;
-      TString parFile = gSystem->Getenv("VMCWORKDIR");
-      parFile = parFile + "/parameters/much/much_" + geoTag(0, 4)
-         + "_digi_sector.root";
-      std::cout << "Using parameter file " << parFile << std::endl;
-
-      // --- Digitiser for GEM
-      FairTask* gemDigi = new CbmMuchDigitizeGem(parFile.Data());
-      run->AddTask(gemDigi);
-      std::cout << "-I- digitize: Added task " << gemDigi->GetName()
-         << std::endl;
-
-      // --- Digitiser for Straws
-      FairTask* strawDigi = new CbmMuchDigitizeStraws(parFile.Data());
-      run->AddTask(strawDigi);
-      std::cout << "-I- digitize: Added task " << strawDigi->GetName()
-         << std::endl;
-   }
-   // -------------------------------------------------------------------------
-
-
-   // -----   TRD Digitiser   -------------------------------------------------
-   if (setup->IsActive(kTrd))
-   {
-      CbmTrdRadiator *radiator = new CbmTrdRadiator(kTRUE, "K++");
-      FairTask* trdDigi = new CbmTrdDigitizerPRF(radiator);
-      run->AddTask(trdDigi);
-      std::cout << "-I- digitize: Added task " << trdDigi->GetName()
-         << std::endl;
-   }
-   // -------------------------------------------------------------------------
-
-   // -----   Local reconstruction in MUCH   ---------------------------------
-   if (setup->IsActive(kMuch))
-   {
-      // --- Parameter file name
-      TString geoTag;
-      setup->GetGeoTag(kMuch, geoTag);
-      std::cout << geoTag(0, 4) << std::endl;
-      TString parFile = gSystem->Getenv("VMCWORKDIR");
-      parFile = parFile + "/parameters/much/much_" + geoTag(0, 4)
-         + "_digi_sector.root";
-      std::cout << "Using parameter file " << parFile << std::endl;
-
-      // --- Hit finder for GEMs
-      FairTask* muchHitGem = new CbmMuchFindHitsGem(parFile.Data());
-      run->AddTask(muchHitGem);
-
-      // --- Hit finder for Straws
-      CbmMuchFindHitsStraws* strawFindHits =
-         new CbmMuchFindHitsStraws(parFile.Data());
-      run->AddTask(strawFindHits);
-
-   }
-
-
-
-   // -----   Local reconstruction in TRD   ----------------------------------
-   if (setup->IsActive(kTrd))
-   {
-
-      Double_t triggerThreshold = 0.5e-6; // SIS100
-      Bool_t triangularPads = false; // Bucharest triangular pad-plane layout
-      CbmTrdClusterFinderFast* trdCluster = new CbmTrdClusterFinderFast();
-      trdCluster->SetNeighbourTrigger(true);
-      trdCluster->SetTriggerThreshold(triggerThreshold);
-      trdCluster->SetNeighbourRowTrigger(false);
-      trdCluster->SetPrimaryClusterRowMerger(true);
-      trdCluster->SetTriangularPads(triangularPads);
-      run->AddTask(trdCluster);
-      std::cout << "-I- : Added task " << trdCluster->GetName() << std::endl;
-
-      CbmTrdHitProducerCluster* trdHit = new CbmTrdHitProducerCluster();
-      trdHit->SetTriangularPads(triangularPads);
-      run->AddTask(trdHit);
-      std::cout << "-I- : Added task " << trdHit->GetName() << std::endl;
-
-   }
-   // ------------------------------------------------------------------------
-   */
-
-  LxCalcStats* calcStats = new LxCalcStats;
-  run->AddTask(calcStats);
-
-
-  // -----  Parameter database   --------------------------------------------
-  FairRuntimeDb* rtdb       = run->GetRuntimeDb();
-  FairParRootFileIo* parIo1 = new FairParRootFileIo();
-  parIo1->open(globalParFile.Data());
-  rtdb->setFirstInput(parIo1);
-  rtdb->setOutput(parIo1);
-  rtdb->saveOutput();
-  // ------------------------------------------------------------------------
-
-  // -----   Initialize and run   --------------------------------------------
-  run->Init();
-  //run->Run(900, 1000);
-  run->Run(0, nEvents);
-  // ------------------------------------------------------------------------
-
-  // -----   Finish   -------------------------------------------------------
-  timer.Stop();
-  cout << "Macro finished successfully." << endl;
-  cout << "Output file is " << inFile << endl;
-  cout << "Real time " << timer.RealTime() << " s, CPU time " << timer.CpuTime()
-       << " s" << endl;
-  cout << endl;
-  // ------------------------------------------------------------------------
-
-  cout << " Test passed" << endl;
-  cout << " All ok " << endl;
-}
+void run_stat(int index = -1) {
+  Int_t nEvents         = 1000;
+  const char* setupName = "sis100_electron";
+  //const char* setupName = "sis100_muon_jpsi";
+  TString system  = "auau";
+  TString beam    = "10gev";
+  TString trigger = "mbias";  //"centr";
+  TString part    = "jpsi";
+  TString channel = "epem";
+  //TString channel = "mpmm";
+
+  bool useSig   = true;
+  bool useBg    = false;
+  bool sigAscii = false;
+
+  if (!useSig && !useBg) {
+    cout << "At least one of the signal or background must be set!" << endl;
+    return;
+  }
+
+  TString partDir = "charm";
+
+  if (part != "jpsi") partDir = "cktA";
+
+  char str[5];
+  sprintf(str, "%05d", index);
+
+  char str2[4];
+  sprintf(str2, "%04d", index);
+
+  TString suffix = "";
+
+  if (useBg) suffix += "." + trigger;
+
+  if (useSig) {
+    if (sigAscii)
+      suffix += ".ascii";
+    else
+      suffix += "." + part;
+  }
+
+  TString inOutDir;
+
+  if (index >= 0)
+    inOutDir =
+      "/lustre/nyx/cbm/users/tablyaz/Lx/runs/data" + TString(str) + "/";
+  else
+    inOutDir = "/data.local/cbmrootdata/";
+
+  TString inFile =
+    inOutDir + setupName + ".mc." + system + "." + beam + suffix + ".root";
+  TString globalParFile =
+    inOutDir + setupName + ".param." + system + "." + beam + suffix + ".root";
+  TString outFile =
+    inOutDir + setupName + ".reco." + system + "." + beam + suffix + ".root";
+
+  TString srcDir = gSystem->Getenv("VMCWORKDIR");
+
+  Int_t iVerbose = 1;
+  TStopwatch timer;
+  timer.Start();
+
+  gROOT->LoadMacro("$VMCWORKDIR/macro/littrack/loadlibs.C");
+  loadlibs();
+  gSystem->Load("libLxTrack.so");
+
+  FairRunAna* run = new FairRunAna;
+  run->SetUseFairLinks(1);
+  run->SetInputFile(inFile);
+  run->SetOutputFile(outFile);
+
+  CbmMCDataManager* mcManager = new CbmMCDataManager;
+  mcManager->AddFile(inFile);
+  run->AddTask(mcManager);
+
+  // -----   Load the geometry setup   -------------------------------------
+  std::cout << std::endl;
+  TString setupFile  = srcDir + "/geometry/setup/setup_" + setupName + ".C";
+  TString setupFunct = "setup_";
+  setupFunct         = setupFunct + setupName + "()";
+  std::cout << "-I- : Loading macro " << setupFile << std::endl;
+  gROOT->LoadMacro(setupFile);
+  gROOT->ProcessLine(setupFunct);
+  CbmSetup* setup = CbmSetup::Instance();
+  // ------------------------------------------------------------------------
+
+  TList* parFileList = new TList();
+  /*TString geoTag;
+
+   if (setup->GetGeoTag(kTrd, geoTag))
+   {
+      TObjString* trdFile = new TObjString(srcDir + "/parameters/trd/trd_" + geoTag + ".digi.par");
+      parFileList->Add(trdFile);
+      std::cout << "-I- : Using parameter file " << trdFile->GetString() << std::endl;
+   }
+
+   // -----   MUCH Digitiser   ------------------------------------------------
+   if (setup->IsActive(kMuch))
+   {
+      // --- Parameter file name
+      TString geoTag;
+      setup->GetGeoTag(kMuch, geoTag);
+      std::cout << geoTag(0, 4) << std::endl;
+      TString parFile = gSystem->Getenv("VMCWORKDIR");
+      parFile = parFile + "/parameters/much/much_" + geoTag(0, 4)
+         + "_digi_sector.root";
+      std::cout << "Using parameter file " << parFile << std::endl;
+
+      // --- Digitiser for GEM
+      FairTask* gemDigi = new CbmMuchDigitizeGem(parFile.Data());
+      run->AddTask(gemDigi);
+      std::cout << "-I- digitize: Added task " << gemDigi->GetName()
+         << std::endl;
+
+      // --- Digitiser for Straws
+      FairTask* strawDigi = new CbmMuchDigitizeStraws(parFile.Data());
+      run->AddTask(strawDigi);
+      std::cout << "-I- digitize: Added task " << strawDigi->GetName()
+         << std::endl;
+   }
+   // -------------------------------------------------------------------------
+
+
+   // -----   TRD Digitiser   -------------------------------------------------
+   if (setup->IsActive(kTrd))
+   {
+      CbmTrdRadiator *radiator = new CbmTrdRadiator(kTRUE, "K++");
+      FairTask* trdDigi = new CbmTrdDigitizerPRF(radiator);
+      run->AddTask(trdDigi);
+      std::cout << "-I- digitize: Added task " << trdDigi->GetName()
+         << std::endl;
+   }
+   // -------------------------------------------------------------------------
+
+   // -----   Local reconstruction in MUCH   ---------------------------------
+   if (setup->IsActive(kMuch))
+   {
+      // --- Parameter file name
+      TString geoTag;
+      setup->GetGeoTag(kMuch, geoTag);
+      std::cout << geoTag(0, 4) << std::endl;
+      TString parFile = gSystem->Getenv("VMCWORKDIR");
+      parFile = parFile + "/parameters/much/much_" + geoTag(0, 4)
+         + "_digi_sector.root";
+      std::cout << "Using parameter file " << parFile << std::endl;
+
+      // --- Hit finder for GEMs
+      FairTask* muchHitGem = new CbmMuchFindHitsGem(parFile.Data());
+      run->AddTask(muchHitGem);
+
+      // --- Hit finder for Straws
+      CbmMuchFindHitsStraws* strawFindHits =
+         new CbmMuchFindHitsStraws(parFile.Data());
+      run->AddTask(strawFindHits);
+
+   }
+
+
+
+   // -----   Local reconstruction in TRD   ----------------------------------
+   if (setup->IsActive(kTrd))
+   {
+
+      Double_t triggerThreshold = 0.5e-6; // SIS100
+      Bool_t triangularPads = false; // Bucharest triangular pad-plane layout
+      CbmTrdClusterFinderFast* trdCluster = new CbmTrdClusterFinderFast();
+      trdCluster->SetNeighbourTrigger(true);
+      trdCluster->SetTriggerThreshold(triggerThreshold);
+      trdCluster->SetNeighbourRowTrigger(false);
+      trdCluster->SetPrimaryClusterRowMerger(true);
+      trdCluster->SetTriangularPads(triangularPads);
+      run->AddTask(trdCluster);
+      std::cout << "-I- : Added task " << trdCluster->GetName() << std::endl;
+
+      CbmTrdHitProducerCluster* trdHit = new CbmTrdHitProducerCluster();
+      trdHit->SetTriangularPads(triangularPads);
+      run->AddTask(trdHit);
+      std::cout << "-I- : Added task " << trdHit->GetName() << std::endl;
+
+   }
+   // ------------------------------------------------------------------------
+   */
+
+  LxCalcStats* calcStats = new LxCalcStats;
+  run->AddTask(calcStats);
+
+
+  // -----  Parameter database   --------------------------------------------
+  FairRuntimeDb* rtdb       = run->GetRuntimeDb();
+  FairParRootFileIo* parIo1 = new FairParRootFileIo();
+  parIo1->open(globalParFile.Data());
+  rtdb->setFirstInput(parIo1);
+  rtdb->setOutput(parIo1);
+  rtdb->saveOutput();
+  // ------------------------------------------------------------------------
+
+  // -----   Initialize and run   --------------------------------------------
+  run->Init();
+  //run->Run(900, 1000);
+  run->Run(0, nEvents);
+  // ------------------------------------------------------------------------
+
+  // -----   Finish   -------------------------------------------------------
+  timer.Stop();
+  cout << "Macro finished successfully." << endl;
+  cout << "Output file is " << inFile << endl;
+  cout << "Real time " << timer.RealTime() << " s, CPU time " << timer.CpuTime()
+       << " s" << endl;
+  cout << endl;
+  // ------------------------------------------------------------------------
+
+  cout << " Test passed" << endl;
+  cout << " All ok " << endl;
+}
diff --git a/macro/trd/elid/q-p1.5.dat b/macro/trd/elid/q-p1.5.dat
index 16701c76f4..2c1c7a48b7 100644
--- a/macro/trd/elid/q-p1.5.dat
+++ b/macro/trd/elid/q-p1.5.dat
@@ -1,100 +1,100 @@
-  0.280000  0.055758  0.001324  0.004404  0.001221
-  0.840000  0.315158  0.003147  0.034556  0.003422
-  1.400000  0.387040  0.003488  0.102989  0.005907
-  1.960000  0.296959  0.003055  0.126027  0.006534
-  2.520000  0.207192  0.002552  0.111798  0.006154
-  3.080000  0.136033  0.002068  0.089099  0.005494
-  3.640000  0.087975  0.001663  0.081646  0.005259
-  4.200000  0.060787  0.001382  0.060642  0.004533
-  4.760000  0.042557  0.001157  0.057932  0.004430
-  5.320000  0.030991  0.000987  0.049123  0.004079
-  5.880000  0.023416  0.000858  0.047768  0.004023
-  6.440000  0.018418  0.000761  0.055560  0.004339
-  7.000000  0.014741  0.000681  0.055899  0.004352
-  7.559999  0.013767  0.000658  0.053866  0.004272
-  8.120000  0.010341  0.000570  0.046413  0.003965
-  8.680000  0.009492  0.000546  0.052511  0.004218
-  9.240001  0.007166  0.000475  0.054544  0.004299
-  9.800001  0.006569  0.000454  0.046074  0.003951
- 10.360002  0.005689  0.000423  0.039637  0.003664
- 10.920002  0.004212  0.000364  0.042348  0.003788
- 11.480002  0.004589  0.000380  0.043364  0.003833
- 12.040003  0.003992  0.000354  0.042348  0.003788
- 12.600003  0.003426  0.000328  0.036588  0.003521
- 13.160004  0.002923  0.000303  0.032184  0.003302
- 13.720004  0.002357  0.000272  0.033539  0.003371
- 14.280005  0.002232  0.000265  0.027780  0.003068
- 14.840005  0.002200  0.000263  0.029813  0.003178
- 15.400005  0.001980  0.000249  0.024392  0.002875
- 15.960006  0.001540  0.000220  0.015584  0.002298
- 16.520006  0.001414  0.000211  0.022021  0.002731
- 17.080006  0.001509  0.000218  0.018972  0.002535
- 17.640005  0.001414  0.000211  0.016939  0.002396
- 18.200005  0.001414  0.000211  0.016939  0.002396
- 18.760004  0.000849  0.000163  0.021343  0.002689
- 19.320004  0.001037  0.000181  0.015245  0.002273
- 19.880003  0.000817  0.000160  0.016939  0.002396
- 20.440002  0.000817  0.000160  0.010163  0.001856
- 21.000002  0.000911  0.000169  0.010163  0.001856
- 21.560001  0.001006  0.000178  0.010502  0.001886
- 22.120001  0.000849  0.000163  0.007453  0.001589
- 22.680000  0.000880  0.000166  0.007792  0.001625
- 23.240000  0.000503  0.000126  0.011857  0.002004
- 23.799999  0.000880  0.000166  0.005759  0.001397
- 24.359999  0.000471  0.000122  0.009486  0.001793
- 24.919998  0.000817  0.000160  0.005759  0.001397
- 25.479998  0.000471  0.000122  0.006776  0.001515
- 26.039997  0.000440  0.000118  0.004404  0.001221
- 26.599997  0.000566  0.000133  0.005759  0.001397
- 27.159996  0.000597  0.000137  0.004065  0.001174
- 27.719995  0.000251  0.000089  0.004065  0.001174
- 28.279995  0.000377  0.000109  0.005082  0.001312
- 28.839994  0.000346  0.000104  0.004065  0.001174
- 29.399994  0.000220  0.000083  0.003049  0.001016
- 29.959993  0.000251  0.000089  0.002371  0.000896
- 30.519993  0.000440  0.000118  0.003049  0.001016
- 31.079992  0.000189  0.000077  0.004404  0.001221
- 31.639992  0.000314  0.000099  0.002033  0.000830
- 32.199993  0.000220  0.000083  0.002371  0.000896
- 32.759995  0.000283  0.000094  0.003388  0.001071
- 33.319996  0.000346  0.000104  0.002710  0.000958
- 33.879997  0.000189  0.000077  0.001355  0.000678
- 34.439999  0.000189  0.000077  0.001016  0.000587
- 35.000000  0.000314  0.000099  0.000339  0.000339
- 35.560001  0.000220  0.000083  0.000339  0.000339
- 36.120003  0.000220  0.000083  0.001355  0.000678
- 36.680004  0.000189  0.000077  0.001355  0.000678
- 37.240005  0.000126  0.000063  0.001016  0.000587
- 37.800007  0.000283  0.000094  0.001694  0.000758
- 38.360008  0.000220  0.000083  0.000678  0.000479
- 38.920010  0.000220  0.000083  0.001016  0.000587
- 39.480011  0.000063  0.000044  0.000339  0.000339
- 40.040012  0.000189  0.000077  0.002371  0.000896
- 40.600014  0.000126  0.000063  0.001016  0.000587
- 41.160015  0.000126  0.000063  0.000000  0.000000
- 41.720016  0.000094  0.000054  0.000000  0.000000
- 42.280018  0.000189  0.000077  0.000339  0.000339
- 42.840019  0.000126  0.000063  0.001016  0.000587
- 43.400021  0.000157  0.000070  0.000339  0.000339
- 43.960022  0.000094  0.000054  0.000339  0.000339
- 44.520023  0.000126  0.000063  0.000678  0.000479
- 45.080025  0.000251  0.000089  0.001016  0.000587
- 45.640026  0.000126  0.000063  0.001016  0.000587
- 46.200027  0.000157  0.000070  0.000000  0.000000
- 46.760029  0.000094  0.000054  0.000000  0.000000
- 47.320030  0.000094  0.000054  0.000339  0.000339
- 47.880032  0.000189  0.000077  0.000000  0.000000
- 48.440033  0.000094  0.000054  0.000339  0.000339
- 49.000034  0.000000  0.000000  0.000339  0.000339
- 49.560036  0.000126  0.000063  0.000339  0.000339
- 50.120037  0.000031  0.000031  0.000339  0.000339
- 50.680038  0.000157  0.000070  0.000339  0.000339
- 51.240040  0.000126  0.000063  0.000339  0.000339
- 51.800041  0.000000  0.000000  0.000339  0.000339
- 52.360043  0.000031  0.000031  0.000000  0.000000
- 52.920044  0.000157  0.000070  0.000000  0.000000
- 53.480045  0.000063  0.000044  0.000339  0.000339
- 54.040047  0.000000  0.000000  0.000339  0.000339
- 54.600048  0.000063  0.000044  0.000000  0.000000
- 55.160049  0.000063  0.000044  0.000339  0.000339
+  0.280000  0.055758  0.001324  0.004404  0.001221
+  0.840000  0.315158  0.003147  0.034556  0.003422
+  1.400000  0.387040  0.003488  0.102989  0.005907
+  1.960000  0.296959  0.003055  0.126027  0.006534
+  2.520000  0.207192  0.002552  0.111798  0.006154
+  3.080000  0.136033  0.002068  0.089099  0.005494
+  3.640000  0.087975  0.001663  0.081646  0.005259
+  4.200000  0.060787  0.001382  0.060642  0.004533
+  4.760000  0.042557  0.001157  0.057932  0.004430
+  5.320000  0.030991  0.000987  0.049123  0.004079
+  5.880000  0.023416  0.000858  0.047768  0.004023
+  6.440000  0.018418  0.000761  0.055560  0.004339
+  7.000000  0.014741  0.000681  0.055899  0.004352
+  7.559999  0.013767  0.000658  0.053866  0.004272
+  8.120000  0.010341  0.000570  0.046413  0.003965
+  8.680000  0.009492  0.000546  0.052511  0.004218
+  9.240001  0.007166  0.000475  0.054544  0.004299
+  9.800001  0.006569  0.000454  0.046074  0.003951
+ 10.360002  0.005689  0.000423  0.039637  0.003664
+ 10.920002  0.004212  0.000364  0.042348  0.003788
+ 11.480002  0.004589  0.000380  0.043364  0.003833
+ 12.040003  0.003992  0.000354  0.042348  0.003788
+ 12.600003  0.003426  0.000328  0.036588  0.003521
+ 13.160004  0.002923  0.000303  0.032184  0.003302
+ 13.720004  0.002357  0.000272  0.033539  0.003371
+ 14.280005  0.002232  0.000265  0.027780  0.003068
+ 14.840005  0.002200  0.000263  0.029813  0.003178
+ 15.400005  0.001980  0.000249  0.024392  0.002875
+ 15.960006  0.001540  0.000220  0.015584  0.002298
+ 16.520006  0.001414  0.000211  0.022021  0.002731
+ 17.080006  0.001509  0.000218  0.018972  0.002535
+ 17.640005  0.001414  0.000211  0.016939  0.002396
+ 18.200005  0.001414  0.000211  0.016939  0.002396
+ 18.760004  0.000849  0.000163  0.021343  0.002689
+ 19.320004  0.001037  0.000181  0.015245  0.002273
+ 19.880003  0.000817  0.000160  0.016939  0.002396
+ 20.440002  0.000817  0.000160  0.010163  0.001856
+ 21.000002  0.000911  0.000169  0.010163  0.001856
+ 21.560001  0.001006  0.000178  0.010502  0.001886
+ 22.120001  0.000849  0.000163  0.007453  0.001589
+ 22.680000  0.000880  0.000166  0.007792  0.001625
+ 23.240000  0.000503  0.000126  0.011857  0.002004
+ 23.799999  0.000880  0.000166  0.005759  0.001397
+ 24.359999  0.000471  0.000122  0.009486  0.001793
+ 24.919998  0.000817  0.000160  0.005759  0.001397
+ 25.479998  0.000471  0.000122  0.006776  0.001515
+ 26.039997  0.000440  0.000118  0.004404  0.001221
+ 26.599997  0.000566  0.000133  0.005759  0.001397
+ 27.159996  0.000597  0.000137  0.004065  0.001174
+ 27.719995  0.000251  0.000089  0.004065  0.001174
+ 28.279995  0.000377  0.000109  0.005082  0.001312
+ 28.839994  0.000346  0.000104  0.004065  0.001174
+ 29.399994  0.000220  0.000083  0.003049  0.001016
+ 29.959993  0.000251  0.000089  0.002371  0.000896
+ 30.519993  0.000440  0.000118  0.003049  0.001016
+ 31.079992  0.000189  0.000077  0.004404  0.001221
+ 31.639992  0.000314  0.000099  0.002033  0.000830
+ 32.199993  0.000220  0.000083  0.002371  0.000896
+ 32.759995  0.000283  0.000094  0.003388  0.001071
+ 33.319996  0.000346  0.000104  0.002710  0.000958
+ 33.879997  0.000189  0.000077  0.001355  0.000678
+ 34.439999  0.000189  0.000077  0.001016  0.000587
+ 35.000000  0.000314  0.000099  0.000339  0.000339
+ 35.560001  0.000220  0.000083  0.000339  0.000339
+ 36.120003  0.000220  0.000083  0.001355  0.000678
+ 36.680004  0.000189  0.000077  0.001355  0.000678
+ 37.240005  0.000126  0.000063  0.001016  0.000587
+ 37.800007  0.000283  0.000094  0.001694  0.000758
+ 38.360008  0.000220  0.000083  0.000678  0.000479
+ 38.920010  0.000220  0.000083  0.001016  0.000587
+ 39.480011  0.000063  0.000044  0.000339  0.000339
+ 40.040012  0.000189  0.000077  0.002371  0.000896
+ 40.600014  0.000126  0.000063  0.001016  0.000587
+ 41.160015  0.000126  0.000063  0.000000  0.000000
+ 41.720016  0.000094  0.000054  0.000000  0.000000
+ 42.280018  0.000189  0.000077  0.000339  0.000339
+ 42.840019  0.000126  0.000063  0.001016  0.000587
+ 43.400021  0.000157  0.000070  0.000339  0.000339
+ 43.960022  0.000094  0.000054  0.000339  0.000339
+ 44.520023  0.000126  0.000063  0.000678  0.000479
+ 45.080025  0.000251  0.000089  0.001016  0.000587
+ 45.640026  0.000126  0.000063  0.001016  0.000587
+ 46.200027  0.000157  0.000070  0.000000  0.000000
+ 46.760029  0.000094  0.000054  0.000000  0.000000
+ 47.320030  0.000094  0.000054  0.000339  0.000339
+ 47.880032  0.000189  0.000077  0.000000  0.000000
+ 48.440033  0.000094  0.000054  0.000339  0.000339
+ 49.000034  0.000000  0.000000  0.000339  0.000339
+ 49.560036  0.000126  0.000063  0.000339  0.000339
+ 50.120037  0.000031  0.000031  0.000339  0.000339
+ 50.680038  0.000157  0.000070  0.000339  0.000339
+ 51.240040  0.000126  0.000063  0.000339  0.000339
+ 51.800041  0.000000  0.000000  0.000339  0.000339
+ 52.360043  0.000031  0.000031  0.000000  0.000000
+ 52.920044  0.000157  0.000070  0.000000  0.000000
+ 53.480045  0.000063  0.000044  0.000339  0.000339
+ 54.040047  0.000000  0.000000  0.000339  0.000339
+ 54.600048  0.000063  0.000044  0.000000  0.000000
+ 55.160049  0.000063  0.000044  0.000339  0.000339
  55.720001  0.000031  0.000031  0.000000  0.000000
\ No newline at end of file
-- 
GitLab