diff --git a/Configuration/Geometry/README.md b/Configuration/Geometry/README.md
index 2924b6b58d792..7d9520a89afde 100644
--- a/Configuration/Geometry/README.md
+++ b/Configuration/Geometry/README.md
@@ -35,6 +35,7 @@ Fast Timing system:
* I10: Same as I9 w/ material adjustments
* I11: Same as I10, xml reorganized, comparison base for new ETL and DD4hep migration
* I12: Starting from I11, new ETL layout from MTD TDR
+* I13: Starting from I12, new ETL layout implementing half-disks instead of quarters
The script also handles the common and forward elements of the geometry:
* O2: detailed cavern description
@@ -64,5 +65,8 @@ Several detector combinations have been generated:
* D56 = T20+C9+M4+I10+O4+F2
* D57 = T17+C11+M6+I11+O5+F4
* D58 = T17+C12+M6+I11+O5+F5
+* D59 = T17+C12+M6+I12+O5+F5
+* D60 = T17+C12+M6+I13+O5+F5
+
D35 is the MTD TDR baseline, D41 is the L1T TDR baseline, and D49 is the HLT TDR baseline.
diff --git a/Configuration/Geometry/python/GeometryExtended2026D59Reco_cff.py b/Configuration/Geometry/python/GeometryExtended2026D59Reco_cff.py
new file mode 100644
index 0000000000000..ac6efaf7991db
--- /dev/null
+++ b/Configuration/Geometry/python/GeometryExtended2026D59Reco_cff.py
@@ -0,0 +1,63 @@
+import FWCore.ParameterSet.Config as cms
+
+# This config was generated automatically using generate2026Geometry.py
+# If you notice a mistake, please update the generating script, not just this config
+
+from Configuration.Geometry.GeometryExtended2026D59_cff import *
+
+# tracker
+from Geometry.CommonTopologies.globalTrackingGeometry_cfi import *
+from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import *
+from Geometry.TrackerGeometryBuilder.trackerParameters_cfi import *
+from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import *
+from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import *
+trackerGeometry.applyAlignment = cms.bool(False)
+
+# calo
+from Geometry.CaloEventSetup.HGCalV9Topology_cfi import *
+from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import *
+from Geometry.CaloEventSetup.HFNoseTopology_cfi import *
+from Geometry.ForwardGeometry.HFNoseGeometryESProducer_cfi import *
+from Geometry.CaloEventSetup.CaloTopology_cfi import *
+from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import *
+CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder",
+ SelectedCalos = cms.vstring("HCAL",
+ "ZDC",
+ "EcalBarrel",
+ "TOWER",
+ "HGCalEESensitive",
+ "HGCalHESiliconSensitive",
+ "HGCalHEScintillatorSensitive",
+ "HGCalHFNoseSensitive",
+ )
+)
+from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import *
+from Geometry.HcalEventSetup.HcalGeometry_cfi import *
+from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import *
+from Geometry.HcalEventSetup.CaloTowerTopology_cfi import *
+from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import *
+from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import *
+from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import *
+from Geometry.EcalMapping.EcalMapping_cfi import *
+from Geometry.EcalMapping.EcalMappingRecord_cfi import *
+
+# muon
+from Geometry.MuonNumbering.muonNumberingInitialization_cfi import *
+from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import *
+from Geometry.GEMGeometryBuilder.gemGeometry_cfi import *
+from Geometry.GEMGeometryBuilder.me0Geometry_cfi import *
+from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import *
+from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import *
+
+# forward
+from Geometry.ForwardGeometry.ForwardGeometry_cfi import *
+
+# timing
+from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import *
+from Geometry.MTDGeometryBuilder.mtdParameters_cff import *
+from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import *
+from Geometry.MTDNumberingBuilder.mtdTopology_cfi import *
+from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import *
+from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import *
+mtdGeometry.applyAlignment = cms.bool(False)
+
diff --git a/Configuration/Geometry/python/GeometryExtended2026D59_cff.py b/Configuration/Geometry/python/GeometryExtended2026D59_cff.py
new file mode 100644
index 0000000000000..0f11280ef9e90
--- /dev/null
+++ b/Configuration/Geometry/python/GeometryExtended2026D59_cff.py
@@ -0,0 +1,17 @@
+import FWCore.ParameterSet.Config as cms
+
+# This config was generated automatically using generate2026Geometry.py
+# If you notice a mistake, please update the generating script, not just this config
+
+from Geometry.CMSCommonData.cmsExtendedGeometry2026D59XML_cfi import *
+from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import *
+from SLHCUpgradeSimulations.Geometry.fakeConditions_phase2TkT14_cff import *
+from Geometry.EcalCommonData.ecalSimulationParameters_cff import *
+from Geometry.HcalCommonData.hcalDDDSimConstants_cff import *
+from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import *
+from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import *
+from Geometry.ForwardCommonData.hfnoseParametersInitialization_cfi import *
+from Geometry.ForwardCommonData.hfnoseNumberingInitialization_cfi import *
+from Geometry.MuonNumbering.muonGeometryConstants_cff import *
+
+from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import *
diff --git a/Configuration/Geometry/python/GeometryExtended2026D60Reco_cff.py b/Configuration/Geometry/python/GeometryExtended2026D60Reco_cff.py
new file mode 100644
index 0000000000000..46fa3c1d498e7
--- /dev/null
+++ b/Configuration/Geometry/python/GeometryExtended2026D60Reco_cff.py
@@ -0,0 +1,63 @@
+import FWCore.ParameterSet.Config as cms
+
+# This config was generated automatically using generate2026Geometry.py
+# If you notice a mistake, please update the generating script, not just this config
+
+from Configuration.Geometry.GeometryExtended2026D60_cff import *
+
+# tracker
+from Geometry.CommonTopologies.globalTrackingGeometry_cfi import *
+from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import *
+from Geometry.TrackerGeometryBuilder.trackerParameters_cfi import *
+from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import *
+from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import *
+trackerGeometry.applyAlignment = cms.bool(False)
+
+# calo
+from Geometry.CaloEventSetup.HGCalV9Topology_cfi import *
+from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import *
+from Geometry.CaloEventSetup.HFNoseTopology_cfi import *
+from Geometry.ForwardGeometry.HFNoseGeometryESProducer_cfi import *
+from Geometry.CaloEventSetup.CaloTopology_cfi import *
+from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import *
+CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder",
+ SelectedCalos = cms.vstring("HCAL",
+ "ZDC",
+ "EcalBarrel",
+ "TOWER",
+ "HGCalEESensitive",
+ "HGCalHESiliconSensitive",
+ "HGCalHEScintillatorSensitive",
+ "HGCalHFNoseSensitive",
+ )
+)
+from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import *
+from Geometry.HcalEventSetup.HcalGeometry_cfi import *
+from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import *
+from Geometry.HcalEventSetup.CaloTowerTopology_cfi import *
+from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import *
+from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import *
+from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import *
+from Geometry.EcalMapping.EcalMapping_cfi import *
+from Geometry.EcalMapping.EcalMappingRecord_cfi import *
+
+# muon
+from Geometry.MuonNumbering.muonNumberingInitialization_cfi import *
+from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import *
+from Geometry.GEMGeometryBuilder.gemGeometry_cfi import *
+from Geometry.GEMGeometryBuilder.me0Geometry_cfi import *
+from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import *
+from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import *
+
+# forward
+from Geometry.ForwardGeometry.ForwardGeometry_cfi import *
+
+# timing
+from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import *
+from Geometry.MTDGeometryBuilder.mtdParameters_cff import *
+from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import *
+from Geometry.MTDNumberingBuilder.mtdTopology_cfi import *
+from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import *
+from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import *
+mtdGeometry.applyAlignment = cms.bool(False)
+
diff --git a/Configuration/Geometry/python/GeometryExtended2026D60_cff.py b/Configuration/Geometry/python/GeometryExtended2026D60_cff.py
new file mode 100644
index 0000000000000..bd4b616f9e2b3
--- /dev/null
+++ b/Configuration/Geometry/python/GeometryExtended2026D60_cff.py
@@ -0,0 +1,17 @@
+import FWCore.ParameterSet.Config as cms
+
+# This config was generated automatically using generate2026Geometry.py
+# If you notice a mistake, please update the generating script, not just this config
+
+from Geometry.CMSCommonData.cmsExtendedGeometry2026D60XML_cfi import *
+from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import *
+from SLHCUpgradeSimulations.Geometry.fakeConditions_phase2TkT14_cff import *
+from Geometry.EcalCommonData.ecalSimulationParameters_cff import *
+from Geometry.HcalCommonData.hcalDDDSimConstants_cff import *
+from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import *
+from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import *
+from Geometry.ForwardCommonData.hfnoseParametersInitialization_cfi import *
+from Geometry.ForwardCommonData.hfnoseNumberingInitialization_cfi import *
+from Geometry.MuonNumbering.muonGeometryConstants_cff import *
+
+from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import *
diff --git a/Configuration/Geometry/python/dict2026Geometry.py b/Configuration/Geometry/python/dict2026Geometry.py
index 9c5b97e99d8c7..85b65ab9ac6fe 100644
--- a/Configuration/Geometry/python/dict2026Geometry.py
+++ b/Configuration/Geometry/python/dict2026Geometry.py
@@ -1479,6 +1479,34 @@
],
"era" : "phase2_timing, phase2_timing_layer",
},
+ "I13" : {
+ 1 : [
+ 'Geometry/MTDCommonData/data/mtdMaterial/v2/mtdMaterial.xml',
+ 'Geometry/MTDCommonData/data/btl/v1/btl.xml',
+ 'Geometry/MTDCommonData/data/etl/v5/etl.xml',
+ 'Geometry/MTDCommonData/data/mtdParameters/v3/mtdStructureTopology.xml',
+ 'Geometry/MTDCommonData/data/mtdParameters/v2/mtdParameters.xml',
+ ],
+ 3 : [
+ 'Geometry/MTDSimData/data/v2/mtdsens.xml'
+ ],
+ 4 : [
+ 'Geometry/MTDSimData/data/v2/mtdProdCuts.xml'
+ ],
+ "sim" : [
+ 'from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import *',
+ ],
+ "reco" :[
+ 'from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import *',
+ 'from Geometry.MTDGeometryBuilder.mtdParameters_cff import *',
+ 'from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import *',
+ 'from Geometry.MTDNumberingBuilder.mtdTopology_cfi import *',
+ 'from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import *',
+ 'from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import *',
+ 'mtdGeometry.applyAlignment = cms.bool(False)'
+ ],
+ "era" : "phase2_timing, phase2_timing_layer",
+ },
}
allDicts = [ commonDict, trackerDict, caloDict, muonDict, forwardDict, timingDict ]
@@ -1501,6 +1529,8 @@
("O4","T20","C9","M4","F2","I10") : "D56",
("O5","T17","C11","M6","F4","I11") : "D57",
("O5","T17","C12","M6","F5","I11") : "D58",
+ ("O5","T17","C12","M6","F5","I12") : "D59",
+ ("O5","T17","C12","M6","F5","I13") : "D60",
}
deprecatedDets = set([ "D1", "D2", "D3", "D5", "D6" , "D7", "D4", "D8" , "D9", "D12", "D13", "D15", "D10", "D11", "D14", "D16", "D17", "D18", "D19", "D20", "D21", "D22", "D23", "D24", "D25", "D26", "D27", "D28", "D29", "D30", "D31", "D32", "D33", "D34", "D36", "D37", "D38", "D39", "D40", "D42", "D52" ])
diff --git a/Configuration/StandardSequences/python/GeometryConf.py b/Configuration/StandardSequences/python/GeometryConf.py
index 2b71f09561588..e13606b13b3a5 100644
--- a/Configuration/StandardSequences/python/GeometryConf.py
+++ b/Configuration/StandardSequences/python/GeometryConf.py
@@ -46,4 +46,6 @@
'Extended2026D56' : 'Extended2026D56,Extended2026D56Reco',
'Extended2026D57' : 'Extended2026D57,Extended2026D57Reco',
'Extended2026D58' : 'Extended2026D58,Extended2026D58Reco',
+ 'Extended2026D59' : 'Extended2026D59,Extended2026D59Reco',
+ 'Extended2026D60' : 'Extended2026D60,Extended2026D60Reco',
}
diff --git a/DataFormats/ForwardDetId/interface/ETLDetId.h b/DataFormats/ForwardDetId/interface/ETLDetId.h
index a2c946d2627e1..9537794ff57d5 100644
--- a/DataFormats/ForwardDetId/interface/ETLDetId.h
+++ b/DataFormats/ForwardDetId/interface/ETLDetId.h
@@ -14,10 +14,10 @@
class ETLDetId : public MTDDetId {
public:
- static const uint32_t kETLmoduleOffset = 7;
- static const uint32_t kETLmoduleMask = 0x1FF;
- static const uint32_t kETLmodTypeOffset = 5;
- static const uint32_t kETLmodTypeMask = 0x3;
+ static const uint32_t kETLmoduleOffset = 5; //7
+ static const uint32_t kETLmoduleMask = 0x7FF; //0x1FF
+ static const uint32_t kETLmodTypeOffset = 3; //5
+ static const uint32_t kETLmodTypeMask = 0x3; //0x3
static constexpr int kETLv1maxRing = 11;
static constexpr int kETLv1maxModule = 176;
@@ -31,7 +31,7 @@ class ETLDetId : public MTDDetId {
static const uint32_t kETLsectorMask = 0x3;
static constexpr int kETLv4maxRing = 16;
- static constexpr int kETLv4maxModule = 248;
+ static constexpr int kETLv4maxModule = 517; //248
static constexpr int kETLv4nDisc = 2;
static constexpr uint32_t kSoff = 4;
@@ -95,6 +95,8 @@ class ETLDetId : public MTDDetId {
inline int nDisc() const {
return (((((id_ >> kRodRingOffset) & kRodRingMask) - 1) >> kETLnDiscOffset) & kETLnDiscMask) + 1;
}
+
+ uint32_t newForm(const uint32_t& rawid);
};
std::ostream& operator<<(std::ostream&, const ETLDetId&);
diff --git a/DataFormats/ForwardDetId/src/ETLDetId.cc b/DataFormats/ForwardDetId/src/ETLDetId.cc
index 18030360a8b73..ea9720e1b16f9 100644
--- a/DataFormats/ForwardDetId/src/ETLDetId.cc
+++ b/DataFormats/ForwardDetId/src/ETLDetId.cc
@@ -11,3 +11,13 @@ std::ostream& operator<<(std::ostream& os, const ETLDetId& id) {
<< " Module type : " << id.modType() << std::endl;
return os;
}
+
+uint32_t ETLDetId::newForm(const uint32_t& rawid) {
+ uint32_t rawid_new = 0;
+ rawid_new |= (MTDType::ETL & ETLDetId::kMTDsubdMask) << ETLDetId::kMTDsubdOffset |
+ (mtdSide() & ETLDetId::kZsideMask) << ETLDetId::kZsideOffset |
+ (mtdRR() & ETLDetId::kRodRingMask) << ETLDetId::kRodRingOffset |
+ (module() & ETLDetId::kETLmoduleMask) << (ETLDetId::kETLmoduleOffset - 2) |
+ (modType() & ETLDetId::kETLmodTypeMask) << (kETLmodTypeOffset - 2);
+ return rawid_new;
+}
diff --git a/DataFormats/ForwardDetId/src/classes_def.xml b/DataFormats/ForwardDetId/src/classes_def.xml
index 483a7264a7838..89325a41f21f4 100644
--- a/DataFormats/ForwardDetId/src/classes_def.xml
+++ b/DataFormats/ForwardDetId/src/classes_def.xml
@@ -30,8 +30,15 @@
-
+
+
+
+ newForm(newObj->rawId()));
+ *newObj=tmp;
+ ]]>
+
diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D59.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D59.xml
new file mode 100644
index 0000000000000..2374b07df9e83
--- /dev/null
+++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D59.xml
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D60.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D60.xml
new file mode 100644
index 0000000000000..850b5ddc13f6f
--- /dev/null
+++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D60.xml
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D59XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D59XML_cfi.py
new file mode 100644
index 0000000000000..58b8c9377c77d
--- /dev/null
+++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D59XML_cfi.py
@@ -0,0 +1,136 @@
+import FWCore.ParameterSet.Config as cms
+
+# This config was generated automatically using generate2026Geometry.py
+# If you notice a mistake, please update the generating script, not just this config
+
+XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource",
+ geomXMLFiles = cms.vstring(
+ 'Geometry/CMSCommonData/data/materials/2021/v1/materials.xml',
+ 'Geometry/CMSCommonData/data/rotations.xml',
+ 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml',
+ 'Geometry/CMSCommonData/data/cmsMother.xml',
+ 'Geometry/CMSCommonData/data/eta3/etaMax.xml',
+ 'Geometry/CMSCommonData/data/cmsTracker.xml',
+ 'Geometry/CMSCommonData/data/cmsCalo.xml',
+ 'Geometry/CMSCommonData/data/cmsMuon.xml',
+ 'Geometry/CMSCommonData/data/mgnt.xml',
+ 'Geometry/CMSCommonData/data/beampipe/2026/v2/beampipe.xml',
+ 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml',
+ 'Geometry/CMSCommonData/data/muonMB.xml',
+ 'Geometry/CMSCommonData/data/muonMagnet.xml',
+ 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml',
+ 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml',
+ 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml',
+ 'Geometry/CMSCommonData/data/cms/2026/v4/cms.xml',
+ 'Geometry/CMSCommonData/data/caloBase/2026/v3/caloBase.xml',
+ 'Geometry/CMSCommonData/data/muonBase/2026/v4/muonBase.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/trackerParameters.xml',
+ 'Geometry/TrackerCommonData/data/pixfwdCommon.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker613_MB_2019_04/pixfwd.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker613_MB_2019_04/pixbar.xml',
+ 'Geometry/TrackerCommonData/data/trackermaterial.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/otst.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker613_MB_2019_04/tracker.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker615/pixel.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerbar.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerfwd.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerStructureTopology.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker613/pixelStructureTopology.xml',
+ 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackersens.xml',
+ 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/pixelsens.xml',
+ 'Geometry/TrackerRecoData/data/PhaseII/TiltedTracker613_MB_2019_04/trackerRecoMaterial.xml',
+ 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackerProdCuts.xml',
+ 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/pixelProdCuts.xml',
+ 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml',
+ 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml',
+ 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml',
+ 'Geometry/EcalCommonData/data/ectkcablemat/2026/v1/ectkcablemat.xml',
+ 'Geometry/EcalCommonData/data/ebalgo.xml',
+ 'Geometry/EcalCommonData/data/ebcon.xml',
+ 'Geometry/EcalCommonData/data/ebrot.xml',
+ 'Geometry/HcalCommonData/data/hcalrotations.xml',
+ 'Geometry/HcalCommonData/data/hcal/v2/hcalalgo.xml',
+ 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml',
+ 'Geometry/HcalCommonData/data/hcalcablealgo/v2/hcalcablealgo.xml',
+ 'Geometry/HcalCommonData/data/hcalouteralgo.xml',
+ 'Geometry/HcalCommonData/data/hcalforwardalgo.xml',
+ 'Geometry/HcalCommonData/data/hcalSimNumbering/NoHE/hcalSimNumbering.xml',
+ 'Geometry/HcalCommonData/data/hcalRecNumbering/NoHE/hcalRecNumbering.xml',
+ 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml',
+ 'Geometry/HGCalCommonData/data/hgcalMaterial/v1/hgcalMaterial.xml',
+ 'Geometry/HGCalCommonData/data/hgcal/v12/hgcal.xml',
+ 'Geometry/HGCalCommonData/data/hgcalcell/v9/hgcalcell.xml',
+ 'Geometry/HGCalCommonData/data/hgcalwafer/v9/hgcalwafer.xml',
+ 'Geometry/HGCalCommonData/data/hgcalEE/v12/hgcalEE.xml',
+ 'Geometry/HGCalCommonData/data/hgcalHEsil/v12/hgcalHEsil.xml',
+ 'Geometry/HGCalCommonData/data/hgcalHEmix/v12/hgcalHEmix.xml',
+ 'Geometry/HGCalCommonData/data/hgcalCons/v12/hgcalCons.xml',
+ 'Geometry/ForwardCommonData/data/hfnose/v4/hfnose.xml',
+ 'Geometry/ForwardCommonData/data/hfnoseCell/v1/hfnoseCell.xml',
+ 'Geometry/ForwardCommonData/data/hfnoseWafer/v1/hfnoseWafer.xml',
+ 'Geometry/ForwardCommonData/data/hfnoseLayer/v2/hfnoseLayer.xml',
+ 'Geometry/ForwardCommonData/data/hfnoseCons/v1m/hfnoseCons.xml',
+ 'Geometry/MuonCommonData/data/mbCommon/2021/v1/mbCommon.xml',
+ 'Geometry/MuonCommonData/data/mb1/2015/v2/mb1.xml',
+ 'Geometry/MuonCommonData/data/mb2/2015/v2/mb2.xml',
+ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml',
+ 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml',
+ 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml',
+ 'Geometry/MuonCommonData/data/muonYoke/2021/v3/muonYoke.xml',
+ 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml',
+ 'Geometry/MuonCommonData/data/mfshield/2017/v2/mfshield.xml',
+ 'Geometry/MuonCommonData/data/mf/2026/v5/mf.xml',
+ 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml',
+ 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml',
+ 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml',
+ 'Geometry/MuonCommonData/data/gem21/TDR_Dev/gem21.xml',
+ 'Geometry/MuonCommonData/data/mfshield/2026/v1/mfshield.xml',
+ 'Geometry/MuonCommonData/data/me0/TDR_Dev/v3/me0.xml',
+ 'Geometry/ForwardCommonData/data/forwardshield/2026/v3/forwardshield.xml',
+ 'Geometry/ForwardCommonData/data/brmrotations.xml',
+ 'Geometry/ForwardCommonData/data/brm/2026/v2/brm.xml',
+ 'Geometry/ForwardCommonData/data/zdcmaterials.xml',
+ 'Geometry/ForwardCommonData/data/lumimaterials.xml',
+ 'Geometry/ForwardCommonData/data/zdcrotations.xml',
+ 'Geometry/ForwardCommonData/data/lumirotations.xml',
+ 'Geometry/ForwardCommonData/data/zdc.xml',
+ 'Geometry/ForwardCommonData/data/zdclumi.xml',
+ 'Geometry/ForwardCommonData/data/cmszdc.xml',
+ 'Geometry/MTDCommonData/data/mtdMaterial/v2/mtdMaterial.xml',
+ 'Geometry/MTDCommonData/data/btl/v1/btl.xml',
+ 'Geometry/MTDCommonData/data/etl/v4/etl.xml',
+ 'Geometry/MTDCommonData/data/mtdParameters/v2/mtdStructureTopology.xml',
+ 'Geometry/MTDCommonData/data/mtdParameters/v2/mtdParameters.xml',
+ )+
+ cms.vstring(
+ 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/v1/muonNumbering.xml',
+ 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml',
+ 'Geometry/HcalCommonData/data/hcalsens/NoHE/hcalsenspmf.xml',
+ 'Geometry/HcalSimData/data/hf.xml',
+ 'Geometry/HcalSimData/data/hfpmt.xml',
+ 'Geometry/HcalSimData/data/hffibrebundle.xml',
+ 'Geometry/HcalSimData/data/CaloUtil.xml',
+ 'Geometry/HGCalSimData/data/hgcsensv9.xml',
+ 'Geometry/ForwardSimData/data/hfnosesens.xml',
+ 'Geometry/MuonSimData/data/PhaseII/ME0EtaPart/muonSens.xml',
+ 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml',
+ 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml',
+ 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml',
+ 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml',
+ 'Geometry/GEMGeometryBuilder/data/v7/GEMSpecsFilter.xml',
+ 'Geometry/GEMGeometryBuilder/data/v7/GEMSpecs.xml',
+ 'Geometry/ForwardCommonData/data/brmsens.xml',
+ 'Geometry/ForwardSimData/data/zdcsens.xml',
+ 'Geometry/MTDSimData/data/v2/mtdsens.xml',
+ 'Geometry/HcalSimData/data/HcalProdCuts/2021/v1/HcalProdCuts.xml',
+ 'Geometry/EcalSimData/data/EcalProdCuts.xml',
+ 'Geometry/HGCalSimData/data/hgcProdCutsv9.xml',
+ 'Geometry/ForwardSimData/data/hfnoseProdCuts.xml',
+ 'Geometry/MuonSimData/data/PhaseII/muonProdCuts.xml',
+ 'Geometry/ForwardSimData/data/zdcProdCuts.xml',
+ 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml',
+ 'Geometry/MTDSimData/data/v2/mtdProdCuts.xml',
+ 'Geometry/CMSCommonData/data/FieldParameters.xml',
+ ),
+ rootNodeName = cms.string('cms:OCMS')
+)
diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D60XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D60XML_cfi.py
new file mode 100644
index 0000000000000..1cb4d2d25089e
--- /dev/null
+++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D60XML_cfi.py
@@ -0,0 +1,136 @@
+import FWCore.ParameterSet.Config as cms
+
+# This config was generated automatically using generate2026Geometry.py
+# If you notice a mistake, please update the generating script, not just this config
+
+XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource",
+ geomXMLFiles = cms.vstring(
+ 'Geometry/CMSCommonData/data/materials/2021/v1/materials.xml',
+ 'Geometry/CMSCommonData/data/rotations.xml',
+ 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml',
+ 'Geometry/CMSCommonData/data/cmsMother.xml',
+ 'Geometry/CMSCommonData/data/eta3/etaMax.xml',
+ 'Geometry/CMSCommonData/data/cmsTracker.xml',
+ 'Geometry/CMSCommonData/data/cmsCalo.xml',
+ 'Geometry/CMSCommonData/data/cmsMuon.xml',
+ 'Geometry/CMSCommonData/data/mgnt.xml',
+ 'Geometry/CMSCommonData/data/beampipe/2026/v2/beampipe.xml',
+ 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml',
+ 'Geometry/CMSCommonData/data/muonMB.xml',
+ 'Geometry/CMSCommonData/data/muonMagnet.xml',
+ 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml',
+ 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml',
+ 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml',
+ 'Geometry/CMSCommonData/data/cms/2026/v4/cms.xml',
+ 'Geometry/CMSCommonData/data/caloBase/2026/v3/caloBase.xml',
+ 'Geometry/CMSCommonData/data/muonBase/2026/v4/muonBase.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/trackerParameters.xml',
+ 'Geometry/TrackerCommonData/data/pixfwdCommon.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker613_MB_2019_04/pixfwd.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker613_MB_2019_04/pixbar.xml',
+ 'Geometry/TrackerCommonData/data/trackermaterial.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/otst.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker613_MB_2019_04/tracker.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker615/pixel.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerbar.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerfwd.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerStructureTopology.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker613/pixelStructureTopology.xml',
+ 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackersens.xml',
+ 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/pixelsens.xml',
+ 'Geometry/TrackerRecoData/data/PhaseII/TiltedTracker613_MB_2019_04/trackerRecoMaterial.xml',
+ 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackerProdCuts.xml',
+ 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/pixelProdCuts.xml',
+ 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml',
+ 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml',
+ 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml',
+ 'Geometry/EcalCommonData/data/ectkcablemat/2026/v1/ectkcablemat.xml',
+ 'Geometry/EcalCommonData/data/ebalgo.xml',
+ 'Geometry/EcalCommonData/data/ebcon.xml',
+ 'Geometry/EcalCommonData/data/ebrot.xml',
+ 'Geometry/HcalCommonData/data/hcalrotations.xml',
+ 'Geometry/HcalCommonData/data/hcal/v2/hcalalgo.xml',
+ 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml',
+ 'Geometry/HcalCommonData/data/hcalcablealgo/v2/hcalcablealgo.xml',
+ 'Geometry/HcalCommonData/data/hcalouteralgo.xml',
+ 'Geometry/HcalCommonData/data/hcalforwardalgo.xml',
+ 'Geometry/HcalCommonData/data/hcalSimNumbering/NoHE/hcalSimNumbering.xml',
+ 'Geometry/HcalCommonData/data/hcalRecNumbering/NoHE/hcalRecNumbering.xml',
+ 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml',
+ 'Geometry/HGCalCommonData/data/hgcalMaterial/v1/hgcalMaterial.xml',
+ 'Geometry/HGCalCommonData/data/hgcal/v12/hgcal.xml',
+ 'Geometry/HGCalCommonData/data/hgcalcell/v9/hgcalcell.xml',
+ 'Geometry/HGCalCommonData/data/hgcalwafer/v9/hgcalwafer.xml',
+ 'Geometry/HGCalCommonData/data/hgcalEE/v12/hgcalEE.xml',
+ 'Geometry/HGCalCommonData/data/hgcalHEsil/v12/hgcalHEsil.xml',
+ 'Geometry/HGCalCommonData/data/hgcalHEmix/v12/hgcalHEmix.xml',
+ 'Geometry/HGCalCommonData/data/hgcalCons/v12/hgcalCons.xml',
+ 'Geometry/ForwardCommonData/data/hfnose/v4/hfnose.xml',
+ 'Geometry/ForwardCommonData/data/hfnoseCell/v1/hfnoseCell.xml',
+ 'Geometry/ForwardCommonData/data/hfnoseWafer/v1/hfnoseWafer.xml',
+ 'Geometry/ForwardCommonData/data/hfnoseLayer/v2/hfnoseLayer.xml',
+ 'Geometry/ForwardCommonData/data/hfnoseCons/v1m/hfnoseCons.xml',
+ 'Geometry/MuonCommonData/data/mbCommon/2021/v1/mbCommon.xml',
+ 'Geometry/MuonCommonData/data/mb1/2015/v2/mb1.xml',
+ 'Geometry/MuonCommonData/data/mb2/2015/v2/mb2.xml',
+ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml',
+ 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml',
+ 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml',
+ 'Geometry/MuonCommonData/data/muonYoke/2021/v3/muonYoke.xml',
+ 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml',
+ 'Geometry/MuonCommonData/data/mfshield/2017/v2/mfshield.xml',
+ 'Geometry/MuonCommonData/data/mf/2026/v5/mf.xml',
+ 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml',
+ 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml',
+ 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml',
+ 'Geometry/MuonCommonData/data/gem21/TDR_Dev/gem21.xml',
+ 'Geometry/MuonCommonData/data/mfshield/2026/v1/mfshield.xml',
+ 'Geometry/MuonCommonData/data/me0/TDR_Dev/v3/me0.xml',
+ 'Geometry/ForwardCommonData/data/forwardshield/2026/v3/forwardshield.xml',
+ 'Geometry/ForwardCommonData/data/brmrotations.xml',
+ 'Geometry/ForwardCommonData/data/brm/2026/v2/brm.xml',
+ 'Geometry/ForwardCommonData/data/zdcmaterials.xml',
+ 'Geometry/ForwardCommonData/data/lumimaterials.xml',
+ 'Geometry/ForwardCommonData/data/zdcrotations.xml',
+ 'Geometry/ForwardCommonData/data/lumirotations.xml',
+ 'Geometry/ForwardCommonData/data/zdc.xml',
+ 'Geometry/ForwardCommonData/data/zdclumi.xml',
+ 'Geometry/ForwardCommonData/data/cmszdc.xml',
+ 'Geometry/MTDCommonData/data/mtdMaterial/v2/mtdMaterial.xml',
+ 'Geometry/MTDCommonData/data/btl/v1/btl.xml',
+ 'Geometry/MTDCommonData/data/etl/v5/etl.xml',
+ 'Geometry/MTDCommonData/data/mtdParameters/v3/mtdStructureTopology.xml',
+ 'Geometry/MTDCommonData/data/mtdParameters/v2/mtdParameters.xml',
+ )+
+ cms.vstring(
+ 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/v1/muonNumbering.xml',
+ 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml',
+ 'Geometry/HcalCommonData/data/hcalsens/NoHE/hcalsenspmf.xml',
+ 'Geometry/HcalSimData/data/hf.xml',
+ 'Geometry/HcalSimData/data/hfpmt.xml',
+ 'Geometry/HcalSimData/data/hffibrebundle.xml',
+ 'Geometry/HcalSimData/data/CaloUtil.xml',
+ 'Geometry/HGCalSimData/data/hgcsensv9.xml',
+ 'Geometry/ForwardSimData/data/hfnosesens.xml',
+ 'Geometry/MuonSimData/data/PhaseII/ME0EtaPart/muonSens.xml',
+ 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml',
+ 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml',
+ 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml',
+ 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml',
+ 'Geometry/GEMGeometryBuilder/data/v7/GEMSpecsFilter.xml',
+ 'Geometry/GEMGeometryBuilder/data/v7/GEMSpecs.xml',
+ 'Geometry/ForwardCommonData/data/brmsens.xml',
+ 'Geometry/ForwardSimData/data/zdcsens.xml',
+ 'Geometry/MTDSimData/data/v2/mtdsens.xml',
+ 'Geometry/HcalSimData/data/HcalProdCuts/2021/v1/HcalProdCuts.xml',
+ 'Geometry/EcalSimData/data/EcalProdCuts.xml',
+ 'Geometry/HGCalSimData/data/hgcProdCutsv9.xml',
+ 'Geometry/ForwardSimData/data/hfnoseProdCuts.xml',
+ 'Geometry/MuonSimData/data/PhaseII/muonProdCuts.xml',
+ 'Geometry/ForwardSimData/data/zdcProdCuts.xml',
+ 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml',
+ 'Geometry/MTDSimData/data/v2/mtdProdCuts.xml',
+ 'Geometry/CMSCommonData/data/FieldParameters.xml',
+ ),
+ rootNodeName = cms.string('cms:OCMS')
+)
diff --git a/Geometry/MTDCommonData/data/dd4hep/cms-mtdD59-geometry.xml b/Geometry/MTDCommonData/data/dd4hep/cms-mtdD59-geometry.xml
new file mode 100644
index 0000000000000..61d8db807761f
--- /dev/null
+++ b/Geometry/MTDCommonData/data/dd4hep/cms-mtdD59-geometry.xml
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/MTDCommonData/data/dd4hep/cms-mtdD60-geometry.xml b/Geometry/MTDCommonData/data/dd4hep/cms-mtdD60-geometry.xml
new file mode 100644
index 0000000000000..b17ddb338a5ff
--- /dev/null
+++ b/Geometry/MTDCommonData/data/dd4hep/cms-mtdD60-geometry.xml
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/MTDCommonData/data/etl/v4/etl.xml b/Geometry/MTDCommonData/data/etl/v4/etl.xml
index 6773c8b4db3fc..254a1abd9f530 100644
--- a/Geometry/MTDCommonData/data/etl/v4/etl.xml
+++ b/Geometry/MTDCommonData/data/etl/v4/etl.xml
@@ -2,32 +2,32 @@
-
-
+
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
@@ -36,8 +36,8 @@
-
-
+
+
diff --git a/Geometry/MTDCommonData/data/etl/v5/etl.xml b/Geometry/MTDCommonData/data/etl/v5/etl.xml
new file mode 100644
index 0000000000000..717e3bcd1d51c
--- /dev/null
+++ b/Geometry/MTDCommonData/data/etl/v5/etl.xml
@@ -0,0 +1,3353 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1, 7, 18, 33, 50, 69, 90, 112, 136, 161, 186, 207, 227, 247, 266,
+ 285, 305, 325, 349, 374, 398, 421, 443, 463, 481, 497, 510
+
+
+
+ 1, 8, 21, 37, 55, 75, 97, 120, 144, 169, 193, 213, 233, 252, 271,
+ 291, 311, 332, 357, 382, 406, 428, 449, 468, 485, 500, 511
+
+
+
+ [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset],
+ [y_offset]+5*([SensorModule_Y]+[DeltaY]), [y_offset]+6*([SensorModule_Y]+[DeltaY]), [y_offset]+7*([SensorModule_Y]+[DeltaY]), [y_offset]+8*([SensorModule_Y]+[DeltaY]), [y_offset]+8*([SensorModule_Y]+[DeltaY]), [y_offset]+7*([SensorModule_Y]+[DeltaY]), [y_offset]+6*([SensorModule_Y]+[DeltaY]), [y_offset]+2*([SensorModule_Y]+[DeltaY]),
+ [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset]
+
+
+
+ [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset],
+ [y_offset]+2*([SensorModule_Y]+[DeltaY]), [y_offset]+6*([SensorModule_Y]+[DeltaY]), [y_offset]+7*([SensorModule_Y]+[DeltaY]), [y_offset]+8*([SensorModule_Y]+[DeltaY]), [y_offset]+8*([SensorModule_Y]+[DeltaY]), [y_offset]+7*([SensorModule_Y]+[DeltaY]), [y_offset]+6*([SensorModule_Y]+[DeltaY]), [y_offset]+5*([SensorModule_Y]+[DeltaY]),
+ [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset]
+
+
+
+ 1, 10, 23, 39, 57, 77, 99, 122, 146, 171, 194, 214, 234, 254, 273,
+ 293, 313, 335, 360, 384, 407, 430, 451, 470, 487, 501, 511
+
+
+
+ 1, 4, 14, 28, 45, 64, 85, 107, 130, 154, 179, 201, 221, 241, 260,
+ 280, 300, 320, 343, 368, 392, 415, 437, 457, 475, 491, 504
+
+
+
+ [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset]+3*([SensorModule_Y]+[DeltaY]),
+ [y_offset]+6*([SensorModule_Y]+[DeltaY]), [y_offset]+7*([SensorModule_Y]+[DeltaY]), 0.8+[y_offset]+7*([SensorModule_Y]+[DeltaY]), [y_offset]+8*([SensorModule_Y]+[DeltaY]), [y_offset]+7*([SensorModule_Y]+[DeltaY]), [y_offset]+6*([SensorModule_Y]+[DeltaY]), [y_offset]+4*([SensorModule_Y]+[DeltaY]), [y_offset],[y_offset], [y_offset], [y_offset], [y_offset], [y_offset],
+ [y_offset], [y_offset], [y_offset], [y_offset]
+
+
+
+ [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset]+4*([SensorModule_Y]+[DeltaY]), [y_offset]+6*([SensorModule_Y]+[DeltaY]), 0.8+[y_offset]+7*([SensorModule_Y]+[DeltaY]), [y_offset]+8*([SensorModule_Y]+[DeltaY]), [y_offset]+7*([SensorModule_Y]+[DeltaY]), [y_offset]+7*([SensorModule_Y]+[DeltaY]), [y_offset]+6*([SensorModule_Y]+[DeltaY]), [y_offset]+3*([SensorModule_Y]+[DeltaY]), [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset], [y_offset]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-[DeltaX_ServiceModule])*mm, (1+[ServiceHybrid_Y7]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-2*[DeltaX_ServiceModule])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-2*[DeltaX_ServiceModule]-[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-3*[DeltaX_ServiceModule]-[SensorModule_X])*mm, (1+[ServiceHybrid_Y6]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-3*[DeltaX_ServiceModule]-[SensorModule_X])*mm, (1+[ServiceHybrid_Y6]/2+[DeltaY_Service6_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-4*[DeltaX_ServiceModule]-[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-4*[DeltaX_ServiceModule]-2*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-5*[DeltaX_ServiceModule]-2*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-5*[DeltaX_ServiceModule]-2*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[DeltaY_Service3_Service6])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-5*[DeltaX_ServiceModule]-2*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[DeltaY_Service3_Service6]+[DeltaY_Service6_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-6*[DeltaX_ServiceModule]-2*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-6*[DeltaX_ServiceModule]-3*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-7*[DeltaX_ServiceModule]-3*[SensorModule_X])*mm, (1+[ServiceHybrid_Y6]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-8*[DeltaX_ServiceModule]-3*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-8*[DeltaX_ServiceModule]-4*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-9*[DeltaX_ServiceModule]-4*[SensorModule_X])*mm, (1+[ServiceHybrid_Y6]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-9*[DeltaX_ServiceModule]-4*[SensorModule_X])*mm, (1+[ServiceHybrid_Y6]/2+[DeltaY_Service6_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-10*[DeltaX_ServiceModule]-4*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-10*[DeltaX_ServiceModule]-5*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-11*[DeltaX_ServiceModule]-5*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-11*[DeltaX_ServiceModule]-5*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[DeltaY_Service3_Service6])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-11*[DeltaX_ServiceModule]-5*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[DeltaY_Service3_Service6]+[ServiceHybrid_Y6]+[DeltaY]+[DeltaY_Service6_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-12*[DeltaX_ServiceModule]-5*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-12*[DeltaX_ServiceModule]-6*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-13*[DeltaX_ServiceModule]-6*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-13*[DeltaX_ServiceModule]-6*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[DeltaY_Service3_Service6])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-13*[DeltaX_ServiceModule]-6*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[DeltaY_Service3_Service6]+[DeltaY_Service6_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-14*[DeltaX_ServiceModule]-6*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-14*[DeltaX_ServiceModule]-7*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-15*[DeltaX_ServiceModule]-7*[SensorModule_X])*mm, (1+[ServiceHybrid_Y6]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-16*[DeltaX_ServiceModule]-7*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-16*[DeltaX_ServiceModule]-8*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-17*[DeltaX_ServiceModule]-8*[SensorModule_X])*mm, (1+[ServiceHybrid_Y6]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-17*[DeltaX_ServiceModule]-8*[SensorModule_X])*mm, (1+[ServiceHybrid_Y6]/2+2*[ServiceHybrid_Y6]+2*[DeltaY]+[DeltaY_Service6_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-18*[DeltaX_ServiceModule]-8*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-18*[DeltaX_ServiceModule]-9*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-19*[DeltaX_ServiceModule]-9*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-19*[DeltaX_ServiceModule]-9*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[ServiceHybrid_Y3]+[DeltaY]+[DeltaY_Service3_Service6])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-19*[DeltaX_ServiceModule]-9*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[ServiceHybrid_Y3]+[DeltaY]+[DeltaY_Service3_Service6]+[DeltaY_Service6_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-20*[DeltaX_ServiceModule]-9*[SensorModule_X])*mm, ([y_offset]+2*[SensorModule_Y]+2*[DeltaY])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-20*[DeltaX_ServiceModule]-10*[SensorModule_X])*mm, ([y_offset]+5*[SensorModule_Y]+5*[DeltaY])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-21*[DeltaX_ServiceModule]-10*[SensorModule_X])*mm, ([y_offset]+6*[SensorModule_Y]+6*[DeltaY])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-21*[DeltaX_ServiceModule]-10*[SensorModule_X])*mm, ([y_offset]+6*[SensorModule_Y]+6*[DeltaY]+[DeltaY_Service3_Service6])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-22*[DeltaX_ServiceModule]-10*[SensorModule_X])*mm, ([y_offset]+6*[SensorModule_Y]+6*[DeltaY])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-22*[DeltaX_ServiceModule]-11*[SensorModule_X])*mm, ([y_offset]+6*[SensorModule_Y]+6*[DeltaY])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-23*[DeltaX_ServiceModule]-11*[SensorModule_X])*mm, (5.78+[y_offset]+7*[SensorModule_Y]+7*[DeltaY])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-23*[DeltaX_ServiceModule]-11*[SensorModule_X])*mm, (5.78+[y_offset]+7*[SensorModule_Y]+6*[DeltaY]+[DeltaY_Service3_Service6])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-24*[DeltaX_ServiceModule]-11*[SensorModule_X])*mm, ([y_offset]+7*[SensorModule_Y]+7*[DeltaY])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-24*[DeltaX_ServiceModule]-12*[SensorModule_X])*mm, ([y_offset]+7*[SensorModule_Y]+7*[DeltaY])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-25*[DeltaX_ServiceModule]-12*[SensorModule_X])*mm, (5.7+[y_offset]+8*[SensorModule_Y]+8*[DeltaY])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-25*[DeltaX_ServiceModule]-12*[SensorModule_X])*mm, (5.7+[y_offset]+8*[SensorModule_Y]+8*[DeltaY]+[ServiceHybrid_Y3]+[DeltaY]+[DeltaY_Service3_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-26*[DeltaX_ServiceModule]-12*[SensorModule_X])*mm, ([y_offset]+8*[SensorModule_Y]+8*[DeltaY])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-26*[DeltaX_ServiceModule]-13*[SensorModule_X])*mm, ([y_offset]+8*[SensorModule_Y]+8*[DeltaY])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-27*[DeltaX_ServiceModule]-13*[SensorModule_X])*mm, ([y_offset]+9*[SensorModule_Y]+9*[DeltaY])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-27*[DeltaX_ServiceModule]-13*[SensorModule_X])*mm, ([y_offset]+9*[SensorModule_Y]+9*[DeltaY]+[ServiceHybrid_Y3]+[DeltaY]+[DeltaY_Service3_Service6])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-27*[DeltaX_ServiceModule]-13*[SensorModule_X])*mm, ([y_offset]+9*[SensorModule_Y]+9*[DeltaY]+[ServiceHybrid_Y3]+[DeltaY]+[DeltaY_Service3_Service6]+[DeltaY_Service6_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-28*[DeltaX_ServiceModule]-13*[SensorModule_X])*mm, ([y_offset]+8*[SensorModule_Y]+8*[DeltaY])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-28*[DeltaX_ServiceModule]-14*[SensorModule_X])*mm, ([y_offset]+8*[SensorModule_Y]+8*[DeltaY])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-29*[DeltaX_ServiceModule]-14*[SensorModule_X])*mm, (5.7+[y_offset]+8*[SensorModule_Y]+8*[DeltaY])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-29*[DeltaX_ServiceModule]-14*[SensorModule_X])*mm, (5.7+[y_offset]+8*[SensorModule_Y]+8*[DeltaY]+[ServiceHybrid_Y3]+[DeltaY]+[DeltaY_Service3_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-30*[DeltaX_ServiceModule]-14*[SensorModule_X])*mm, ([y_offset]+7*[SensorModule_Y]+7*[DeltaY])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-30*[DeltaX_ServiceModule]-15*[SensorModule_X])*mm, ([y_offset]+7*[SensorModule_Y]+7*[DeltaY])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-31*[DeltaX_ServiceModule]-15*[SensorModule_X])*mm, (5.78+[y_offset]+7*[SensorModule_Y]+7*[DeltaY])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-31*[DeltaX_ServiceModule]-15*[SensorModule_X])*mm, (5.78+[y_offset]+7*[SensorModule_Y]+6*[DeltaY]+[DeltaY_Service3_Service6])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-32*[DeltaX_ServiceModule]-15*[SensorModule_X])*mm, ([y_offset]+6*[SensorModule_Y]+6*[DeltaY])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-32*[DeltaX_ServiceModule]-16*[SensorModule_X])*mm, ([y_offset]+6*[SensorModule_Y]+6*[DeltaY])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-33*[DeltaX_ServiceModule]-16*[SensorModule_X])*mm, ([y_offset]+6*[SensorModule_Y]+6*[DeltaY])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-33*[DeltaX_ServiceModule]-16*[SensorModule_X])*mm, ([y_offset]+6*[SensorModule_Y]+6*[DeltaY]+[DeltaY_Service3_Service6])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-34*[DeltaX_ServiceModule]-16*[SensorModule_X])*mm, ([y_offset]+5*[SensorModule_Y]+5*[DeltaY])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-34*[DeltaX_ServiceModule]-17*[SensorModule_X])*mm, ([y_offset]+2*[SensorModule_Y]+2*[DeltaY])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-35*[DeltaX_ServiceModule]-17*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-35*[DeltaX_ServiceModule]-17*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[ServiceHybrid_Y3]+[DeltaY]+[DeltaY_Service3_Service6])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-35*[DeltaX_ServiceModule]-17*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[ServiceHybrid_Y3]+[DeltaY]+[DeltaY_Service3_Service6]+[DeltaY_Service6_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-36*[DeltaX_ServiceModule]-17*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-36*[DeltaX_ServiceModule]-18*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-37*[DeltaX_ServiceModule]-18*[SensorModule_X])*mm, (1+[ServiceHybrid_Y6]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-37*[DeltaX_ServiceModule]-18*[SensorModule_X])*mm, (1+[ServiceHybrid_Y6]/2+2*[ServiceHybrid_Y6]+2*[DeltaY]+[DeltaY_Service6_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-38*[DeltaX_ServiceModule]-18*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-38*[DeltaX_ServiceModule]-19*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-39*[DeltaX_ServiceModule]-19*[SensorModule_X])*mm, (1+[ServiceHybrid_Y6]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-40*[DeltaX_ServiceModule]-19*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-40*[DeltaX_ServiceModule]-20*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-41*[DeltaX_ServiceModule]-20*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-41*[DeltaX_ServiceModule]-20*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[DeltaY_Service3_Service6])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-41*[DeltaX_ServiceModule]-20*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[DeltaY_Service3_Service6]+[DeltaY_Service6_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-42*[DeltaX_ServiceModule]-20*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-42*[DeltaX_ServiceModule]-21*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-43*[DeltaX_ServiceModule]-21*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-43*[DeltaX_ServiceModule]-21*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[DeltaY_Service3_Service6])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-43*[DeltaX_ServiceModule]-21*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[DeltaY_Service3_Service6]+[ServiceHybrid_Y6]+[DeltaY]+[DeltaY_Service6_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-44*[DeltaX_ServiceModule]-21*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-44*[DeltaX_ServiceModule]-22*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-45*[DeltaX_ServiceModule]-22*[SensorModule_X])*mm, (1+[ServiceHybrid_Y6]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-45*[DeltaX_ServiceModule]-22*[SensorModule_X])*mm, (1+[ServiceHybrid_Y6]/2+[DeltaY_Service6_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-46*[DeltaX_ServiceModule]-22*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-46*[DeltaX_ServiceModule]-23*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-47*[DeltaX_ServiceModule]-23*[SensorModule_X])*mm, (1+[ServiceHybrid_Y6]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-48*[DeltaX_ServiceModule]-23*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-48*[DeltaX_ServiceModule]-24*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-49*[DeltaX_ServiceModule]-24*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-49*[DeltaX_ServiceModule]-24*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[DeltaY_Service3_Service6])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-49*[DeltaX_ServiceModule]-24*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[DeltaY_Service3_Service6]+[DeltaY_Service6_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-50*[DeltaX_ServiceModule]-24*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-50*[DeltaX_ServiceModule]-25*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-51*[DeltaX_ServiceModule]-25*[SensorModule_X])*mm, (1+[ServiceHybrid_Y6]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-51*[DeltaX_ServiceModule]-25*[SensorModule_X])*mm, (1+[ServiceHybrid_Y6]/2+[DeltaY_Service6_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-52*[DeltaX_ServiceModule]-25*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-52*[DeltaX_ServiceModule]-26*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-53*[DeltaX_ServiceModule]-26*[SensorModule_X])*mm, (1+[ServiceHybrid_Y7]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front]-54*[DeltaX_ServiceModule]-26*[SensorModule_X])*mm, ([y_offset])*mm, 4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back])*mm, (1+[ServiceHybrid_Y3]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+[DeltaX_ServiceModule])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+[DeltaX_ServiceModule]+[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+2*[DeltaX_ServiceModule]+[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+2*[DeltaX_ServiceModule]+[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[DeltaY_Service3_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+3*[DeltaX_ServiceModule]+[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+3*[DeltaX_ServiceModule]+2*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+4*[DeltaX_ServiceModule]+2*[SensorModule_X])*mm, (1+[ServiceHybrid_Y7]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+5*[DeltaX_ServiceModule]+2*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+5*[DeltaX_ServiceModule]+3*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+6*[DeltaX_ServiceModule]+3*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+6*[DeltaX_ServiceModule]+3*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[DeltaY_Service3_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+7*[DeltaX_ServiceModule]+3*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+7*[DeltaX_ServiceModule]+4*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+8*[DeltaX_ServiceModule]+4*[SensorModule_X])*mm, (1+[ServiceHybrid_Y6]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+8*[DeltaX_ServiceModule]+4*[SensorModule_X])*mm, (1+[ServiceHybrid_Y6]/2+[ServiceHybrid_Y6]+[DeltaY]+[DeltaY_Service6_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+9*[DeltaX_ServiceModule]+4*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+9*[DeltaX_ServiceModule]+5*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+10*[DeltaX_ServiceModule]+5*[SensorModule_X])*mm, (1+[ServiceHybrid_Y7]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+11*[DeltaX_ServiceModule]+5*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+11*[DeltaX_ServiceModule]+6*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+12*[DeltaX_ServiceModule]+6*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+12*[DeltaX_ServiceModule]+6*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[DeltaY_Service3_Service6])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+12*[DeltaX_ServiceModule]+6*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[DeltaY_Service3_Service6]+[ServiceHybrid_Y6]+[DeltaY]+[DeltaY_Service6_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+13*[DeltaX_ServiceModule]+6*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+13*[DeltaX_ServiceModule]+7*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+14*[DeltaX_ServiceModule]+7*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+14*[DeltaX_ServiceModule]+7*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[DeltaY_Service3_Service6])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+14*[DeltaX_ServiceModule]+7*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[DeltaY_Service3_Service6]+[DeltaY_Service6_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+15*[DeltaX_ServiceModule]+7*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+15*[DeltaX_ServiceModule]+8*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+16*[DeltaX_ServiceModule]+8*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+16*[DeltaX_ServiceModule]+8*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[ServiceHybrid_Y3]+[DeltaY]+[DeltaY_Service3_Service6])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+17*[DeltaX_ServiceModule]+8*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+17*[DeltaX_ServiceModule]+9*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+18*[DeltaX_ServiceModule]+9*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+18*[DeltaX_ServiceModule]+9*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[ServiceHybrid_Y3]+[DeltaY]+[DeltaY_Service3_Service6])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+18*[DeltaX_ServiceModule]+9*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[ServiceHybrid_Y3]+[DeltaY]+[DeltaY_Service3_Service6]+[ServiceHybrid_Y6]+[DeltaY]+[DeltaY_Service6_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+19*[DeltaX_ServiceModule]+9*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+19*[DeltaX_ServiceModule]+10*[SensorModule_X])*mm, ([y_offset]+3*[SensorModule_Y]+3*[DeltaY])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+20*[DeltaX_ServiceModule]+10*[SensorModule_X])*mm, ([y_offset]+4*[SensorModule_Y]+4*[DeltaY])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+20*[DeltaX_ServiceModule]+10*[SensorModule_X])*mm, ([y_offset]+4*[SensorModule_Y]+4*[DeltaY]+2*[ServiceHybrid_Y3]+2*[DeltaY]+[DeltaY_Service3_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+21*[DeltaX_ServiceModule]+10*[SensorModule_X])*mm, (1+[y_offset]+4*[SensorModule_Y]+4*[DeltaY])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+21*[DeltaX_ServiceModule]+11*[SensorModule_X])*mm, ([y_offset]+6*[SensorModule_Y]+6*[DeltaY])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+22*[DeltaX_ServiceModule]+11*[SensorModule_X])*mm, ([y_offset]+7*[SensorModule_Y]+7*[DeltaY])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+22*[DeltaX_ServiceModule]+11*[SensorModule_X])*mm, ([y_offset]+7*[SensorModule_Y]+7*[DeltaY]+[ServiceHybrid_Y3]+[DeltaY]+[DeltaY_Service3_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+23*[DeltaX_ServiceModule]+11*[SensorModule_X])*mm, (1+[y_offset]+6*[SensorModule_Y]+6*[DeltaY])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+23*[DeltaX_ServiceModule]+12*[SensorModule_X])*mm, (0.8+[SensorModule_Y]/2+7*[SensorModule_Y]+7*[DeltaY])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+24*[DeltaX_ServiceModule]+12*[SensorModule_X])*mm, ([y_offset]+8*[SensorModule_Y]+8*[DeltaY])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+24*[DeltaX_ServiceModule]+12*[SensorModule_X])*mm, ([y_offset]+8*[SensorModule_Y]+8*[DeltaY]+[ServiceHybrid_Y3]+[DeltaY]+[DeltaY_Service3_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+25*[DeltaX_ServiceModule]+12*[SensorModule_X])*mm, (0.8+[y_offset]+7*[SensorModule_Y]+7*[DeltaY])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+25*[DeltaX_ServiceModule]+13*[SensorModule_X])*mm, (0.8+[y_offset]+7*[SensorModule_Y]+7*[DeltaY])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+26*[DeltaX_ServiceModule]+13*[SensorModule_X])*mm, (5+[y_offset]+8*[SensorModule_Y]+8*[DeltaY])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+26*[DeltaX_ServiceModule]+13*[SensorModule_X])*mm, (5+[y_offset]+8*[SensorModule_Y]+8*[DeltaY]+[ServiceHybrid_Y3]+[DeltaY]+[DeltaY_Service3_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+27*[DeltaX_ServiceModule]+13*[SensorModule_X])*mm, ([y_offset]+8*[SensorModule_Y]+8*[DeltaY])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+27*[DeltaX_ServiceModule]+14*[SensorModule_X])*mm, ([y_offset]+8*[SensorModule_Y]+8*[DeltaY])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+28*[DeltaX_ServiceModule]+14*[SensorModule_X])*mm, (5+[y_offset]+8*[SensorModule_Y]+8*[DeltaY])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+28*[DeltaX_ServiceModule]+14*[SensorModule_X])*mm, (5+[y_offset]+8*[SensorModule_Y]+8*[DeltaY]+[ServiceHybrid_Y3]+[DeltaY]+[DeltaY_Service3_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+29*[DeltaX_ServiceModule]+14*[SensorModule_X])*mm, (0.8+[y_offset]+7*[SensorModule_Y]+7*[DeltaY])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+29*[DeltaX_ServiceModule]+15*[SensorModule_X])*mm, (0.8+[y_offset]+7*[SensorModule_Y]+7*[DeltaY])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+30*[DeltaX_ServiceModule]+15*[SensorModule_X])*mm, ([y_offset]+8*[SensorModule_Y]+8*[DeltaY])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+30*[DeltaX_ServiceModule]+15*[SensorModule_X])*mm, ([y_offset]+8*[SensorModule_Y]+8*[DeltaY]+[ServiceHybrid_Y3]+[DeltaY]+[DeltaY_Service3_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+31*[DeltaX_ServiceModule]+15*[SensorModule_X])*mm, (0.8+[SensorModule_Y]/2+7*[SensorModule_Y]+7*[DeltaY])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+31*[DeltaX_ServiceModule]+16*[SensorModule_X])*mm, (1+[y_offset]+6*[SensorModule_Y]+6*[DeltaY])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+32*[DeltaX_ServiceModule]+16*[SensorModule_X])*mm, ([y_offset]+7*[SensorModule_Y]+7*[DeltaY])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+32*[DeltaX_ServiceModule]+16*[SensorModule_X])*mm, ([y_offset]+7*[SensorModule_Y]+7*[DeltaY]+[ServiceHybrid_Y3]+[DeltaY]+[DeltaY_Service3_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+33*[DeltaX_ServiceModule]+16*[SensorModule_X])*mm, ([y_offset]+6*[SensorModule_Y]+6*[DeltaY])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+33*[DeltaX_ServiceModule]+17*[SensorModule_X])*mm, (1+[y_offset]+4*[SensorModule_Y]+4*[DeltaY])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+34*[DeltaX_ServiceModule]+17*[SensorModule_X])*mm, ([y_offset]+4*[SensorModule_Y]+4*[DeltaY])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+34*[DeltaX_ServiceModule]+17*[SensorModule_X])*mm, ([y_offset]+4*[SensorModule_Y]+4*[DeltaY]+2*[ServiceHybrid_Y3]+2*[DeltaY]+[DeltaY_Service3_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+35*[DeltaX_ServiceModule]+17*[SensorModule_X])*mm, ([y_offset]+3*[SensorModule_Y]+3*[DeltaY])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+35*[DeltaX_ServiceModule]+18*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+36*[DeltaX_ServiceModule]+18*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+36*[DeltaX_ServiceModule]+18*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[ServiceHybrid_Y3]+[DeltaY]+[DeltaY_Service3_Service6])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+36*[DeltaX_ServiceModule]+18*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[ServiceHybrid_Y3]+[DeltaY]+[DeltaY_Service3_Service6]+[ServiceHybrid_Y6]+[DeltaY]+[DeltaY_Service6_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+37*[DeltaX_ServiceModule]+18*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+37*[DeltaX_ServiceModule]+19*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+38*[DeltaX_ServiceModule]+19*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+38*[DeltaX_ServiceModule]+19*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[ServiceHybrid_Y3]+[DeltaY]+[DeltaY_Service3_Service6])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+39*[DeltaX_ServiceModule]+19*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+39*[DeltaX_ServiceModule]+20*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+40*[DeltaX_ServiceModule]+20*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+40*[DeltaX_ServiceModule]+20*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[DeltaY_Service3_Service6])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+40*[DeltaX_ServiceModule]+20*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[DeltaY_Service3_Service6]+[DeltaY_Service6_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+41*[DeltaX_ServiceModule]+20*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+41*[DeltaX_ServiceModule]+21*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+42*[DeltaX_ServiceModule]+21*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+42*[DeltaX_ServiceModule]+21*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[DeltaY_Service3_Service6])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+42*[DeltaX_ServiceModule]+21*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[DeltaY_Service3_Service6]+[ServiceHybrid_Y6]+[DeltaY]+[DeltaY_Service6_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+43*[DeltaX_ServiceModule]+21*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+43*[DeltaX_ServiceModule]+22*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+44*[DeltaX_ServiceModule]+22*[SensorModule_X])*mm, (1+[ServiceHybrid_Y7]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+45*[DeltaX_ServiceModule]+22*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+45*[DeltaX_ServiceModule]+23*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+46*[DeltaX_ServiceModule]+23*[SensorModule_X])*mm, (1+[ServiceHybrid_Y6]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+46*[DeltaX_ServiceModule]+23*[SensorModule_X])*mm, (1+[ServiceHybrid_Y6]/2+[ServiceHybrid_Y6]+[DeltaY]+[DeltaY_Service6_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+47*[DeltaX_ServiceModule]+23*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+47*[DeltaX_ServiceModule]+24*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+48*[DeltaX_ServiceModule]+24*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+48*[DeltaX_ServiceModule]+24*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[DeltaY_Service3_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+49*[DeltaX_ServiceModule]+24*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+49*[DeltaX_ServiceModule]+25*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+50*[DeltaX_ServiceModule]+25*[SensorModule_X])*mm, (1+[ServiceHybrid_Y7]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+51*[DeltaX_ServiceModule]+25*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+51*[DeltaX_ServiceModule]+26*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+52*[DeltaX_ServiceModule]+26*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+52*[DeltaX_ServiceModule]+26*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2+[DeltaY_Service3_Service7])*mm, 0.*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+53*[DeltaX_ServiceModule]+26*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+53*[DeltaX_ServiceModule]+27*[SensorModule_X])*mm, ([y_offset])*mm, -4.02*mm
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back]+54*[DeltaX_ServiceModule]+27*[SensorModule_X])*mm, (1+[ServiceHybrid_Y3]/2)*mm, 0.*mm
+
+
+
+
+
+
+
+
diff --git a/Geometry/MTDCommonData/data/mtdParameters/v3/mtdStructureTopology.xml b/Geometry/MTDCommonData/data/mtdParameters/v3/mtdStructureTopology.xml
new file mode 100644
index 0000000000000..868a0af75faf5
--- /dev/null
+++ b/Geometry/MTDCommonData/data/mtdParameters/v3/mtdStructureTopology.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/MTDCommonData/interface/MTDTopologyMode.h b/Geometry/MTDCommonData/interface/MTDTopologyMode.h
index f2f597cc182db..cd6dc4b08ca0b 100644
--- a/Geometry/MTDCommonData/interface/MTDTopologyMode.h
+++ b/Geometry/MTDCommonData/interface/MTDTopologyMode.h
@@ -10,7 +10,7 @@
namespace MTDTopologyMode {
- enum class Mode { undefined = 0, tile = 1, bar = 2, barzflat = 3, barphiflat = 4, btlv1etlv4 = 5 };
+ enum class Mode { undefined = 0, tile = 1, bar = 2, barzflat = 3, barphiflat = 4, btlv1etlv4 = 5, btlv1etlv5 = 6 };
Mode MTDStringToEnumParser(const std::string&);
diff --git a/Geometry/MTDCommonData/src/MTDTopologyMode.cc b/Geometry/MTDCommonData/src/MTDTopologyMode.cc
index 3194d340f58e5..a4dd3a0cae2c5 100644
--- a/Geometry/MTDCommonData/src/MTDTopologyMode.cc
+++ b/Geometry/MTDCommonData/src/MTDTopologyMode.cc
@@ -17,6 +17,8 @@ namespace MTDTopologyMode {
output = Mode::barphiflat;
} else if (value == prefix + "btlv1etlv4") {
output = Mode::btlv1etlv4;
+ } else if (value == prefix + "btlv1etlv5") {
+ output = Mode::btlv1etlv5;
} else {
throw cms::Exception("MTDTopologyModeError") << "the value " << value << " is not defined.";
}
diff --git a/SimGeneral/Debugging/test/SimDigiDumper.cc b/SimGeneral/Debugging/test/SimDigiDumper.cc
index 5d3afd116d3f5..d754de98ac8d0 100644
--- a/SimGeneral/Debugging/test/SimDigiDumper.cc
+++ b/SimGeneral/Debugging/test/SimDigiDumper.cc
@@ -1,5 +1,6 @@
// system include files
#include
+#include
#include "SimGeneral/Debugging/test/SimDigiDumper.h"
@@ -24,6 +25,8 @@
// muon DT info
#include "CondFormats/DTObjects/interface/DTT0.h"
+#include "DataFormats/ForwardDetId/interface/ETLDetId.h"
+
SimDigiDumper::SimDigiDumper(const edm::ParameterSet& iPSet) {
//get Labels to use to extract information
ECalEBSrc_ = consumes(iPSet.getParameter("ECalEBSrc"));
@@ -39,6 +42,7 @@ SimDigiDumper::SimDigiDumper(const edm::ParameterSet& iPSet) {
MuCSCStripSrc_ = consumes(iPSet.getParameter("MuCSCStripSrc"));
MuCSCWireSrc_ = consumes(iPSet.getParameter("MuCSCWireSrc"));
MuRPCSrc_ = consumes(iPSet.getParameter("MuRPCSrc"));
+ ETLSrc_ = consumes(iPSet.getParameter("ETLSrc"));
// TODO(proper responsible): update the cout, for sure not my
// business.
@@ -148,6 +152,32 @@ void SimDigiDumper::analyze(const edm::Event& iEvent, const edm::EventSetup& iSe
}
}
+ // ETL
+ bool isETL = true;
+ edm::Handle ETLDigi;
+ const ETLDigiCollection* ETLdigis = 0;
+ iEvent.getByToken(ETLSrc_, ETLDigi);
+ if (!ETLDigi.isValid()) {
+ std::cout << "Unable to find ETLDigi in event!" << std::endl;
+ } else {
+ ETLdigis = ETLDigi.product();
+ if (ETLDigi->size() == 0)
+ isETL = false;
+ std::cout << "Endcap Timing Layer, digi multiplicity = " << ETLDigi->size() << std::endl;
+
+ if (isETL) {
+ // loop over digis
+ for (unsigned int digis = 0; digis < ETLDigi->size(); ++digis) {
+ ETLDataFrame etldf = (*ETLdigis)[digis];
+ //std::cout << etldf.id() << std::endl;
+ uint32_t id = etldf.id();
+ std::cout << id << std::endl;
+ etldf.print();
+ }
+ }
+ }
+
+
// HBHE
bool isHBHE = true;
edm::Handle hbhe;
diff --git a/SimGeneral/Debugging/test/SimDigiDumper.h b/SimGeneral/Debugging/test/SimDigiDumper.h
index 5ec3011ae7a1c..a1dab6f13f33d 100644
--- a/SimGeneral/Debugging/test/SimDigiDumper.h
+++ b/SimGeneral/Debugging/test/SimDigiDumper.h
@@ -26,6 +26,8 @@
#include "DataFormats/CSCDigi/interface/CSCWireDigiCollection.h"
// muon RPC info
#include "DataFormats/RPCDigi/interface/RPCDigiCollection.h"
+// ETL info
+#include "DataFormats/FTLDigi/interface/FTLDigiCollections.h"
#include
@@ -43,6 +45,8 @@ class SimDigiDumper : public edm::EDAnalyzer {
edm::EDGetTokenT ECalEESrc_;
edm::EDGetTokenT ECalESSrc_;
+ edm::EDGetTokenT ETLSrc_;
+
edm::EDGetTokenT HCalDigi_;
edm::EDGetTokenT HCalHODigi_;
edm::EDGetTokenT HCalHFDigi_;
diff --git a/SimGeneral/Debugging/test/runSimDigiDumper_cfg.py b/SimGeneral/Debugging/test/runSimDigiDumper_cfg.py
index f17e40ed6efff..6b5010282e3b4 100644
--- a/SimGeneral/Debugging/test/runSimDigiDumper_cfg.py
+++ b/SimGeneral/Debugging/test/runSimDigiDumper_cfg.py
@@ -9,7 +9,7 @@
input = cms.untracked.int32(-1)
)
process.source = cms.Source("PoolSource",
- fileNames = cms.untracked.vstring('file:myfile.root')
+ fileNames = cms.untracked.vstring('file:23234.0/step2.root')
)
process.prod = cms.EDAnalyzer("SimDigiDumper",
@@ -23,7 +23,8 @@
SiPxlSrc = cms.InputTag("simSiPixelDigis"),
ECalEBSrc = cms.InputTag("simEcalDigis","ebDigis"),
ECalESSrc = cms.InputTag("simEcalPreshowerDigis"),
- MuRPCSrc = cms.InputTag("simMuonRPCDigis")
+ MuRPCSrc = cms.InputTag("simMuonRPCDigis"),
+ ETLSrc = cms.InputTag("mix","FTLEndcap"),
)
process.p1 = cms.Path(process.prod)