diff --git a/Configuration/Geometry/python/GeometryDD4hepExtendedRun4D118Reco_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtendedRun4D118Reco_cff.py
new file mode 100644
index 0000000000000..1ccedfefdea60
--- /dev/null
+++ b/Configuration/Geometry/python/GeometryDD4hepExtendedRun4D118Reco_cff.py
@@ -0,0 +1,61 @@
+import FWCore.ParameterSet.Config as cms
+
+# This config was generated automatically using generateRun4Geometry.py
+# If you notice a mistake, please update the generating script, not just this config
+
+from Configuration.Geometry.GeometryDD4hepExtendedRun4D118_cff import *
+
+# tracker
+from Geometry.CommonTopologies.globalTrackingGeometry_cfi import *
+from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import *
+from Geometry.TrackerGeometryBuilder.TrackerAdditionalParametersPerDet_cfi import *
+from Geometry.TrackerGeometryBuilder.trackerParameters_cff import *
+from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import *
+from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import *
+trackerGeometry.applyAlignment = True
+
+# calo
+from Geometry.CaloEventSetup.HGCalTopology_cfi import *
+from Geometry.HGCalGeometry.HGCalGeometryESProducer_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"
+ )
+)
+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_cff import *
+from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import *
+from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import *
+
+# forward
+from Geometry.ForwardGeometry.zdcTopologyEP_cfi import *
+from Geometry.ForwardGeometry.ZdcGeometry_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 = False
+
diff --git a/Configuration/Geometry/python/GeometryDD4hepExtendedRun4D118_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtendedRun4D118_cff.py
new file mode 100644
index 0000000000000..301569f432e1c
--- /dev/null
+++ b/Configuration/Geometry/python/GeometryDD4hepExtendedRun4D118_cff.py
@@ -0,0 +1,17 @@
+import FWCore.ParameterSet.Config as cms
+
+# This config was generated automatically using generateRun4Geometry.py
+# If you notice a mistake, please update the generating script, not just this config
+
+from Configuration.Geometry.GeometryDD4hep_cff import *
+DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D118.xml")
+
+from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff import *
+from SLHCUpgradeSimulations.Geometry.fakePhase2OuterTrackerConditions_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.MuonNumbering.muonGeometryConstants_cff import *
+from Geometry.MuonNumbering.muonOffsetESProducer_cff import *
+from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import *
diff --git a/Configuration/Geometry/python/GeometryDD4hepExtendedRun4D119Reco_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtendedRun4D119Reco_cff.py
new file mode 100644
index 0000000000000..ebab95e320019
--- /dev/null
+++ b/Configuration/Geometry/python/GeometryDD4hepExtendedRun4D119Reco_cff.py
@@ -0,0 +1,61 @@
+import FWCore.ParameterSet.Config as cms
+
+# This config was generated automatically using generateRun4Geometry.py
+# If you notice a mistake, please update the generating script, not just this config
+
+from Configuration.Geometry.GeometryDD4hepExtendedRun4D119_cff import *
+
+# tracker
+from Geometry.CommonTopologies.globalTrackingGeometry_cfi import *
+from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import *
+from Geometry.TrackerGeometryBuilder.TrackerAdditionalParametersPerDet_cfi import *
+from Geometry.TrackerGeometryBuilder.trackerParameters_cff import *
+from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import *
+from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import *
+trackerGeometry.applyAlignment = True
+
+# calo
+from Geometry.CaloEventSetup.HGCalTopology_cfi import *
+from Geometry.HGCalGeometry.HGCalGeometryESProducer_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"
+ )
+)
+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_cff import *
+from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import *
+from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import *
+
+# forward
+from Geometry.ForwardGeometry.zdcTopologyEP_cfi import *
+from Geometry.ForwardGeometry.ZdcGeometry_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 = False
+
diff --git a/Configuration/Geometry/python/GeometryDD4hepExtendedRun4D119_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtendedRun4D119_cff.py
new file mode 100644
index 0000000000000..598ce7bcf81b2
--- /dev/null
+++ b/Configuration/Geometry/python/GeometryDD4hepExtendedRun4D119_cff.py
@@ -0,0 +1,17 @@
+import FWCore.ParameterSet.Config as cms
+
+# This config was generated automatically using generateRun4Geometry.py
+# If you notice a mistake, please update the generating script, not just this config
+
+from Configuration.Geometry.GeometryDD4hep_cff import *
+DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D119.xml")
+
+from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff import *
+from SLHCUpgradeSimulations.Geometry.fakePhase2OuterTrackerConditions_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.MuonNumbering.muonGeometryConstants_cff import *
+from Geometry.MuonNumbering.muonOffsetESProducer_cff import *
+from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import *
diff --git a/Configuration/Geometry/python/GeometryExtendedRun4D118Reco_cff.py b/Configuration/Geometry/python/GeometryExtendedRun4D118Reco_cff.py
new file mode 100644
index 0000000000000..08ea89cf9f550
--- /dev/null
+++ b/Configuration/Geometry/python/GeometryExtendedRun4D118Reco_cff.py
@@ -0,0 +1,61 @@
+import FWCore.ParameterSet.Config as cms
+
+# This config was generated automatically using generateRun4Geometry.py
+# If you notice a mistake, please update the generating script, not just this config
+
+from Configuration.Geometry.GeometryExtendedRun4D118_cff import *
+
+# tracker
+from Geometry.CommonTopologies.globalTrackingGeometry_cfi import *
+from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import *
+from Geometry.TrackerGeometryBuilder.TrackerAdditionalParametersPerDet_cfi import *
+from Geometry.TrackerGeometryBuilder.trackerParameters_cff import *
+from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import *
+from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import *
+trackerGeometry.applyAlignment = True
+
+# calo
+from Geometry.CaloEventSetup.HGCalTopology_cfi import *
+from Geometry.HGCalGeometry.HGCalGeometryESProducer_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"
+ )
+)
+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_cff import *
+from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import *
+from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import *
+
+# forward
+from Geometry.ForwardGeometry.zdcTopologyEP_cfi import *
+from Geometry.ForwardGeometry.ZdcGeometry_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 = False
+
diff --git a/Configuration/Geometry/python/GeometryExtendedRun4D118_cff.py b/Configuration/Geometry/python/GeometryExtendedRun4D118_cff.py
new file mode 100644
index 0000000000000..61f6ca4e5d19e
--- /dev/null
+++ b/Configuration/Geometry/python/GeometryExtendedRun4D118_cff.py
@@ -0,0 +1,15 @@
+import FWCore.ParameterSet.Config as cms
+
+# This config was generated automatically using generateRun4Geometry.py
+# If you notice a mistake, please update the generating script, not just this config
+
+from Geometry.CMSCommonData.cmsExtendedGeometryRun4D118XML_cfi import *
+from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff import *
+from SLHCUpgradeSimulations.Geometry.fakePhase2OuterTrackerConditions_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.MuonNumbering.muonGeometryConstants_cff import *
+from Geometry.MuonNumbering.muonOffsetESProducer_cff import *
+from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import *
diff --git a/Configuration/Geometry/python/GeometryExtendedRun4D119Reco_cff.py b/Configuration/Geometry/python/GeometryExtendedRun4D119Reco_cff.py
new file mode 100644
index 0000000000000..5a7872b51e250
--- /dev/null
+++ b/Configuration/Geometry/python/GeometryExtendedRun4D119Reco_cff.py
@@ -0,0 +1,61 @@
+import FWCore.ParameterSet.Config as cms
+
+# This config was generated automatically using generateRun4Geometry.py
+# If you notice a mistake, please update the generating script, not just this config
+
+from Configuration.Geometry.GeometryExtendedRun4D119_cff import *
+
+# tracker
+from Geometry.CommonTopologies.globalTrackingGeometry_cfi import *
+from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import *
+from Geometry.TrackerGeometryBuilder.TrackerAdditionalParametersPerDet_cfi import *
+from Geometry.TrackerGeometryBuilder.trackerParameters_cff import *
+from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import *
+from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import *
+trackerGeometry.applyAlignment = True
+
+# calo
+from Geometry.CaloEventSetup.HGCalTopology_cfi import *
+from Geometry.HGCalGeometry.HGCalGeometryESProducer_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"
+ )
+)
+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_cff import *
+from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import *
+from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import *
+
+# forward
+from Geometry.ForwardGeometry.zdcTopologyEP_cfi import *
+from Geometry.ForwardGeometry.ZdcGeometry_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 = False
+
diff --git a/Configuration/Geometry/python/GeometryExtendedRun4D119_cff.py b/Configuration/Geometry/python/GeometryExtendedRun4D119_cff.py
new file mode 100644
index 0000000000000..69ecd4653e902
--- /dev/null
+++ b/Configuration/Geometry/python/GeometryExtendedRun4D119_cff.py
@@ -0,0 +1,15 @@
+import FWCore.ParameterSet.Config as cms
+
+# This config was generated automatically using generateRun4Geometry.py
+# If you notice a mistake, please update the generating script, not just this config
+
+from Geometry.CMSCommonData.cmsExtendedGeometryRun4D119XML_cfi import *
+from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff import *
+from SLHCUpgradeSimulations.Geometry.fakePhase2OuterTrackerConditions_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.MuonNumbering.muonGeometryConstants_cff import *
+from Geometry.MuonNumbering.muonOffsetESProducer_cff import *
+from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import *
diff --git a/Configuration/Geometry/python/dictRun4Geometry.py b/Configuration/Geometry/python/dictRun4Geometry.py
index 2ce2b0cc21dda..4b382d02ec849 100644
--- a/Configuration/Geometry/python/dictRun4Geometry.py
+++ b/Configuration/Geometry/python/dictRun4Geometry.py
@@ -1559,6 +1559,62 @@
],
"era" : "phase2_timing, phase2_timing_layer, phase2_etlV4",
},
+ "I19" : {
+ 1 : [
+ 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml',
+ 'Geometry/MTDCommonData/data/btl/v4/btl.xml',
+ 'Geometry/MTDCommonData/data/etl/v9/etl.xml',
+ 'Geometry/MTDCommonData/data/mtdParameters/v7/mtdStructureTopology.xml',
+ 'Geometry/MTDCommonData/data/mtdParameters/v7/mtdParameters.xml',
+ ],
+ 3 : [
+ 'Geometry/MTDSimData/data/v5/mtdsens.xml'
+ ],
+ 4 : [
+ 'Geometry/MTDSimData/data/v5/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 = False'
+ ],
+ "era" : "phase2_timing, phase2_timing_layer, phase2_etlV4",
+ },
+ "I20" : {
+ 1 : [
+ 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml',
+ 'Geometry/MTDCommonData/data/btl/v4/btl.xml',
+ 'Geometry/MTDCommonData/data/etl/v10/etl.xml',
+ 'Geometry/MTDCommonData/data/mtdParameters/v8/mtdStructureTopology.xml',
+ 'Geometry/MTDCommonData/data/mtdParameters/v8/mtdParameters.xml',
+ ],
+ 3 : [
+ 'Geometry/MTDSimData/data/v5/mtdsens.xml'
+ ],
+ 4 : [
+ 'Geometry/MTDSimData/data/v5/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 = False'
+ ],
+ "era" : "phase2_timing, phase2_timing_layer, phase2_etlV4",
+ },
}
allDicts = [ commonDict, trackerDict, caloDict, muonDict, forwardDict, timingDict ]
@@ -1586,6 +1642,8 @@
("O9","T35","C20","M14","F8","I17") : "D115",
("O10","T35","C25","M15","F9","I17") : "D116",
("O10","T35","C25","M15","F9","I18") : "D117",
+ ("O10","T35","C25","M15","F9","I19") : "D118",
+ ("O10","T35","C25","M15","F9","I20") : "D119",
}
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", "D35", "D41", "D43", "D44", "D45", "D46", "D48", "D47", "D50", "D51", "D52", "D53", "D54", "D55", "D56", "D57", "D58", "D59", "D61", "D62", "D63", "D64", "D65", "D66", "D67", "D69", "D71", "D72", "D73", "D74", "D75", "D78", "D79", "D87", "D89", "D90", "D49", "D60", "D68", "D70", "D76", "D77", "D80", "D81", "D82", "D83", "D84", "D85","D86","D88","D91","D92","D93","D94","D97"])
diff --git a/Configuration/PyReleaseValidation/python/relval_Run4.py b/Configuration/PyReleaseValidation/python/relval_Run4.py
index edcc86ebcfc15..bb2b881023042 100644
--- a/Configuration/PyReleaseValidation/python/relval_Run4.py
+++ b/Configuration/PyReleaseValidation/python/relval_Run4.py
@@ -37,6 +37,8 @@
numWFIB.extend([32034.0]) #Run4D115
numWFIB.extend([32434.0]) #Run4D116
numWFIB.extend([32834.0]) #Run4D117
+numWFIB.extend([33234.0]) #Run4D118
+numWFIB.extend([33634.0]) #Run4D119
#Additional sample for short matrix and IB
#Default Phase-2 Det NoPU
diff --git a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py
index 91c950ad3958d..2c061b3a3d167 100644
--- a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py
+++ b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py
@@ -97,6 +97,10 @@
'Run4D116PU',
'Run4D117',
'Run4D117PU',
+ 'Run4D118',
+ 'Run4D118PU',
+ 'Run4D119',
+ 'Run4D119PU',
]
# pre-generation of WF numbers
@@ -3293,6 +3297,20 @@ def condition(self, fragment, stepList, key, hasHarvest):
'Era' : 'Phase2C17I13M9',
'ScenToRun' : ['GenSimHLBeamSpot','DigiTrigger','RecoGlobal', 'HARVESTGlobal', 'ALCAPhase2'],
},
+ 'Run4D118' : {
+ 'Geom' : 'ExtendedRun4D118',
+ 'HLTmenu': '@relvalRun4',
+ 'GT' : 'auto:phase2_realistic_T33',
+ 'Era' : 'Phase2C17I13M9',
+ 'ScenToRun' : ['GenSimHLBeamSpot','DigiTrigger','RecoGlobal', 'HARVESTGlobal', 'ALCAPhase2'],
+ },
+ 'Run4D119' : {
+ 'Geom' : 'ExtendedRun4D119',
+ 'HLTmenu': '@relvalRun4',
+ 'GT' : 'auto:phase2_realistic_T33',
+ 'Era' : 'Phase2C17I13M9',
+ 'ScenToRun' : ['GenSimHLBeamSpot','DigiTrigger','RecoGlobal', 'HARVESTGlobal', 'ALCAPhase2'],
+ },
}
# standard PU sequences
diff --git a/Configuration/StandardSequences/python/GeometryConf.py b/Configuration/StandardSequences/python/GeometryConf.py
index 773ec9b8a92fa..ccf8efed0e9c8 100644
--- a/Configuration/StandardSequences/python/GeometryConf.py
+++ b/Configuration/StandardSequences/python/GeometryConf.py
@@ -132,4 +132,8 @@
'DD4hepExtendedRun4D116' : 'DD4hepExtendedRun4D116,DD4hepExtendedRun4D116Reco',
'ExtendedRun4D117' : 'ExtendedRun4D117,ExtendedRun4D117Reco',
'DD4hepExtendedRun4D117' : 'DD4hepExtendedRun4D117,DD4hepExtendedRun4D117Reco',
+ 'ExtendedRun4D118' : 'ExtendedRun4D118,ExtendedRun4D118Reco',
+ 'DD4hepExtendedRun4D118' : 'DD4hepExtendedRun4D118,DD4hepExtendedRun4D118Reco',
+ 'ExtendedRun4D119' : 'ExtendedRun4D119,ExtendedRun4D119Reco',
+ 'DD4hepExtendedRun4D119' : 'DD4hepExtendedRun4D119,DD4hepExtendedRun4D119Reco',
}
diff --git a/DataFormats/ForwardDetId/src/ETLDetId.cc b/DataFormats/ForwardDetId/src/ETLDetId.cc
index e0ce3d86b0ecb..94cb955f95de6 100644
--- a/DataFormats/ForwardDetId/src/ETLDetId.cc
+++ b/DataFormats/ForwardDetId/src/ETLDetId.cc
@@ -5,8 +5,9 @@ std::ostream& operator<<(std::ostream& os, const ETLDetId& id) {
os << (MTDDetId&)id;
os << " ETL " << std::endl
<< " Side : " << id.mtdSide() << std::endl
- << " Ring : " << id.mtdRR() << " "
- << " Disc/Side/Sector = " << id.nDisc() << " " << id.discSide() << " " << id.sector() << std::endl
+ << " Disc : " << id.nDisc() << std::endl
+ << " Side : " << id.discSide() << std::endl
+ << " Sector : " << id.sector() << std::endl
<< " Module : " << id.module() << std::endl
<< " Module type : " << id.modType() << std::endl
<< " Sensor : " << id.sensor() << std::endl;
diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D118.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D118.xml
new file mode 100644
index 0000000000000..17956314df701
--- /dev/null
+++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D118.xml
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D119.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D119.xml
new file mode 100644
index 0000000000000..bbc9236eb7525
--- /dev/null
+++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D119.xml
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D118XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D118XML_cfi.py
new file mode 100644
index 0000000000000..47ebda6e1b358
--- /dev/null
+++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D118XML_cfi.py
@@ -0,0 +1,128 @@
+import FWCore.ParameterSet.Config as cms
+
+# This config was generated automatically using generateRun4Geometry.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/2030/v1/materials.xml',
+ 'Geometry/TrackerCommonData/data/trackermaterial/2021/v2/trackermaterial.xml',
+ 'Geometry/CMSCommonData/data/rotations.xml',
+ 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml',
+ 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml',
+ 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml',
+ 'Geometry/CMSCommonData/data/cmsMother.xml',
+ 'Geometry/CMSCommonData/data/eta3/etaMax.xml',
+ 'Geometry/CMSCommonData/data/cmsTracker.xml',
+ 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml',
+ 'Geometry/CMSCommonData/data/cmsCalo.xml',
+ 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml',
+ 'Geometry/CMSCommonData/data/cmsMuon.xml',
+ 'Geometry/CMSCommonData/data/mgnt.xml',
+ 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml',
+ 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml',
+ 'Geometry/CMSCommonData/data/muonMB.xml',
+ 'Geometry/CMSCommonData/data/muonMagnet.xml',
+ 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml',
+ 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/trackerParameters.xml',
+ 'Geometry/TrackerCommonData/data/pixfwdCommon.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixfwd.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_OT800_IT615_2022_10/pixbar.xml',
+ 'Geometry/TrackerCommonData/data/trackermaterial.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_03/tracker.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_IT711_2023_05/pixel.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerbar.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerfwd.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerStructureTopology.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_IT711_2023_05/pixelStructureTopology.xml',
+ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackersens.xml',
+ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT711_2023_05/pixelsens.xml',
+ 'Geometry/TrackerRecoData/data/PhaseII/Tracker_DD4hep_compatible_IT711_2023_05/trackerRecoMaterial.xml',
+ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml',
+ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT711_2023_05/pixelProdCuts.xml',
+ 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml',
+ 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml',
+ 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml',
+ 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml',
+ 'Geometry/EcalCommonData/data/ebalgo/2021/v1/ebalgo.xml',
+ 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml',
+ 'Geometry/EcalCommonData/data/ebrot.xml',
+ 'Geometry/HcalCommonData/data/hcalrotations.xml',
+ 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml',
+ 'Geometry/HcalCommonData/data/hcal/v2/hcalalgo.xml',
+ 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml',
+ 'Geometry/HcalCommonData/data/hcalcablealgo/v2/hcalcablealgo.xml',
+ 'Geometry/HcalCommonData/data/hcalouteralgo/v1/hcalouteralgo.xml',
+ 'Geometry/HcalCommonData/data/hcalforwardalgo.xml',
+ 'Geometry/HcalCommonData/data/hcalSimNumbering/NoHE/v1/hcalSimNumbering.xml',
+ 'Geometry/HcalCommonData/data/hcalRecNumbering/NoHE/v2/hcalRecNumbering.xml',
+ 'Geometry/HGCalCommonData/data/hgcalMaterial/v2/hgcalMaterial.xml',
+ 'Geometry/HGCalCommonData/data/hgcal/v17/hgcal.xml',
+ 'Geometry/HGCalCommonData/data/hgcalcell/v17/hgcalcell.xml',
+ 'Geometry/HGCalCommonData/data/hgcalwafer/v17/hgcalwafer.xml',
+ 'Geometry/HGCalCommonData/data/hgcalEE/v17/hgcalEE.xml',
+ 'Geometry/HGCalCommonData/data/hgcalHEsil/v17/hgcalHEsil.xml',
+ 'Geometry/HGCalCommonData/data/hgcalHEmix/v17/hgcalHEmix.xml',
+ 'Geometry/HGCalCommonData/data/hgcalCons/v17/hgcalCons.xml',
+ 'Geometry/HGCalCommonData/data/hgcalConsData/v17/hgcalConsData.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/v3/mb3.xml',
+ 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml',
+ 'Geometry/MuonCommonData/data/mb4Shield/2030/v1/mb4Shield.xml',
+ 'Geometry/MuonCommonData/data/muonYoke/2030/v4/muonYoke.xml',
+ 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml',
+ 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml',
+ 'Geometry/MuonCommonData/data/rpcf/2030/v4/rpcf.xml',
+ 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml',
+ 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml',
+ 'Geometry/MuonCommonData/data/gem21/2030/v1/gem21.xml',
+ 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml',
+ 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v5/ge0.xml',
+ 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml',
+ 'Geometry/ForwardCommonData/data/forwardshield/2030/v5/forwardshield.xml',
+ 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml',
+ 'Geometry/ForwardCommonData/data/lumimaterials.xml',
+ 'Geometry/ForwardCommonData/data/zdcrotations.xml',
+ 'Geometry/ForwardCommonData/data/lumirotations.xml',
+ 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml',
+ 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml',
+ 'Geometry/ForwardCommonData/data/cmszdc.xml',
+ 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml',
+ 'Geometry/MTDCommonData/data/btl/v4/btl.xml',
+ 'Geometry/MTDCommonData/data/etl/v9/etl.xml',
+ 'Geometry/MTDCommonData/data/mtdParameters/v7/mtdStructureTopology.xml',
+ 'Geometry/MTDCommonData/data/mtdParameters/v7/mtdParameters.xml',
+ )+
+ cms.vstring(
+ 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/v5/muonNumbering.xml',
+ 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml',
+ 'Geometry/HcalCommonData/data/hcalsens/NoHE/v1/hcalsenspmf.xml',
+ 'Geometry/HcalSimData/data/hf.xml',
+ 'Geometry/HcalSimData/data/hfpmt.xml',
+ 'Geometry/HcalSimData/data/hffibrebundle.xml',
+ 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml',
+ 'Geometry/HGCalSimData/data/hgcsensv15.xml',
+ 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml',
+ 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml',
+ 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml',
+ 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml',
+ 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml',
+ 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml',
+ 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml',
+ 'Geometry/ForwardSimData/data/zdcsens.xml',
+ 'Geometry/MTDSimData/data/v5/mtdsens.xml',
+ 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml',
+ 'Geometry/EcalSimData/data/EcalProdCuts.xml',
+ 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml',
+ 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml',
+ 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml',
+ 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml',
+ 'Geometry/MTDSimData/data/v5/mtdProdCuts.xml',
+ 'Geometry/CMSCommonData/data/FieldParameters.xml',
+ ),
+ rootNodeName = cms.string('cms:OCMS')
+)
diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D119XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D119XML_cfi.py
new file mode 100644
index 0000000000000..397d52916e89b
--- /dev/null
+++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D119XML_cfi.py
@@ -0,0 +1,128 @@
+import FWCore.ParameterSet.Config as cms
+
+# This config was generated automatically using generateRun4Geometry.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/2030/v1/materials.xml',
+ 'Geometry/TrackerCommonData/data/trackermaterial/2021/v2/trackermaterial.xml',
+ 'Geometry/CMSCommonData/data/rotations.xml',
+ 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml',
+ 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml',
+ 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml',
+ 'Geometry/CMSCommonData/data/cmsMother.xml',
+ 'Geometry/CMSCommonData/data/eta3/etaMax.xml',
+ 'Geometry/CMSCommonData/data/cmsTracker.xml',
+ 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml',
+ 'Geometry/CMSCommonData/data/cmsCalo.xml',
+ 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml',
+ 'Geometry/CMSCommonData/data/cmsMuon.xml',
+ 'Geometry/CMSCommonData/data/mgnt.xml',
+ 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml',
+ 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml',
+ 'Geometry/CMSCommonData/data/muonMB.xml',
+ 'Geometry/CMSCommonData/data/muonMagnet.xml',
+ 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml',
+ 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/trackerParameters.xml',
+ 'Geometry/TrackerCommonData/data/pixfwdCommon.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixfwd.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_OT800_IT615_2022_10/pixbar.xml',
+ 'Geometry/TrackerCommonData/data/trackermaterial.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_03/tracker.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_IT711_2023_05/pixel.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerbar.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerfwd.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerStructureTopology.xml',
+ 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_IT711_2023_05/pixelStructureTopology.xml',
+ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackersens.xml',
+ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT711_2023_05/pixelsens.xml',
+ 'Geometry/TrackerRecoData/data/PhaseII/Tracker_DD4hep_compatible_IT711_2023_05/trackerRecoMaterial.xml',
+ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml',
+ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT711_2023_05/pixelProdCuts.xml',
+ 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml',
+ 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml',
+ 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml',
+ 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml',
+ 'Geometry/EcalCommonData/data/ebalgo/2021/v1/ebalgo.xml',
+ 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml',
+ 'Geometry/EcalCommonData/data/ebrot.xml',
+ 'Geometry/HcalCommonData/data/hcalrotations.xml',
+ 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml',
+ 'Geometry/HcalCommonData/data/hcal/v2/hcalalgo.xml',
+ 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml',
+ 'Geometry/HcalCommonData/data/hcalcablealgo/v2/hcalcablealgo.xml',
+ 'Geometry/HcalCommonData/data/hcalouteralgo/v1/hcalouteralgo.xml',
+ 'Geometry/HcalCommonData/data/hcalforwardalgo.xml',
+ 'Geometry/HcalCommonData/data/hcalSimNumbering/NoHE/v1/hcalSimNumbering.xml',
+ 'Geometry/HcalCommonData/data/hcalRecNumbering/NoHE/v2/hcalRecNumbering.xml',
+ 'Geometry/HGCalCommonData/data/hgcalMaterial/v2/hgcalMaterial.xml',
+ 'Geometry/HGCalCommonData/data/hgcal/v17/hgcal.xml',
+ 'Geometry/HGCalCommonData/data/hgcalcell/v17/hgcalcell.xml',
+ 'Geometry/HGCalCommonData/data/hgcalwafer/v17/hgcalwafer.xml',
+ 'Geometry/HGCalCommonData/data/hgcalEE/v17/hgcalEE.xml',
+ 'Geometry/HGCalCommonData/data/hgcalHEsil/v17/hgcalHEsil.xml',
+ 'Geometry/HGCalCommonData/data/hgcalHEmix/v17/hgcalHEmix.xml',
+ 'Geometry/HGCalCommonData/data/hgcalCons/v17/hgcalCons.xml',
+ 'Geometry/HGCalCommonData/data/hgcalConsData/v17/hgcalConsData.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/v3/mb3.xml',
+ 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml',
+ 'Geometry/MuonCommonData/data/mb4Shield/2030/v1/mb4Shield.xml',
+ 'Geometry/MuonCommonData/data/muonYoke/2030/v4/muonYoke.xml',
+ 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml',
+ 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml',
+ 'Geometry/MuonCommonData/data/rpcf/2030/v4/rpcf.xml',
+ 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml',
+ 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml',
+ 'Geometry/MuonCommonData/data/gem21/2030/v1/gem21.xml',
+ 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml',
+ 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v5/ge0.xml',
+ 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml',
+ 'Geometry/ForwardCommonData/data/forwardshield/2030/v5/forwardshield.xml',
+ 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml',
+ 'Geometry/ForwardCommonData/data/lumimaterials.xml',
+ 'Geometry/ForwardCommonData/data/zdcrotations.xml',
+ 'Geometry/ForwardCommonData/data/lumirotations.xml',
+ 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml',
+ 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml',
+ 'Geometry/ForwardCommonData/data/cmszdc.xml',
+ 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml',
+ 'Geometry/MTDCommonData/data/btl/v4/btl.xml',
+ 'Geometry/MTDCommonData/data/etl/v10/etl.xml',
+ 'Geometry/MTDCommonData/data/mtdParameters/v8/mtdStructureTopology.xml',
+ 'Geometry/MTDCommonData/data/mtdParameters/v8/mtdParameters.xml',
+ )+
+ cms.vstring(
+ 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/v5/muonNumbering.xml',
+ 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml',
+ 'Geometry/HcalCommonData/data/hcalsens/NoHE/v1/hcalsenspmf.xml',
+ 'Geometry/HcalSimData/data/hf.xml',
+ 'Geometry/HcalSimData/data/hfpmt.xml',
+ 'Geometry/HcalSimData/data/hffibrebundle.xml',
+ 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml',
+ 'Geometry/HGCalSimData/data/hgcsensv15.xml',
+ 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml',
+ 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml',
+ 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml',
+ 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml',
+ 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml',
+ 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml',
+ 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml',
+ 'Geometry/ForwardSimData/data/zdcsens.xml',
+ 'Geometry/MTDSimData/data/v5/mtdsens.xml',
+ 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml',
+ 'Geometry/EcalSimData/data/EcalProdCuts.xml',
+ 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml',
+ 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml',
+ 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml',
+ 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml',
+ 'Geometry/MTDSimData/data/v5/mtdProdCuts.xml',
+ 'Geometry/CMSCommonData/data/FieldParameters.xml',
+ ),
+ rootNodeName = cms.string('cms:OCMS')
+)
diff --git a/Geometry/MTDCommonData/data/etl/v10/etl.xml b/Geometry/MTDCommonData/data/etl/v10/etl.xml
new file mode 100644
index 0000000000000..1af0a995197c3
--- /dev/null
+++ b/Geometry/MTDCommonData/data/etl/v10/etl.xml
@@ -0,0 +1,4434 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1, 7, 21, 47, 79, 115, 153, 195, 237, 275, 309, 343, 377, 409, 439,
+ 471, 505, 541, 289, 578, 617, 701, 739, 773, 803, 827, 841
+
+
+
+ 1, 7, 27, 55, 87, 123, 163, 205, 245, 281, 317, 353, 387, 417, 447,
+ 481, 515, 555, 591, 631, 673, 713, 751, 785, 815, 839, 851
+
+
+
+ 1, 7, 21, 47, 79, 115, 153, 195, 237, 275, 311, 349, 383, 415, 445,
+ 477, 511, 549, 585, 625, 669, 709, 747, 781, 811, 835, 849
+
+
+
+ 1, 7, 21, 41, 65, 89, 109, 129, 149, 167, 185, 205, 225, 245, 269,
+ 293, 313, 327, 333, 333, 333, 333, 333, 333, 333, 333, 333
+
+
+
+ 4, 4, 0, 0, 0, 0, 0, 0, 2, 6, 12, 12, 14, 16, 14, 12, 10, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0
+
+
+
+ 4, 0, 0, 0, 0, 0, 0, 0, 4, 6, 10, 12, 16, 16, 12, 12, 6, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0
+
+
+
+ 4, 4, 0, 0, 0, 0, 0, 0, 2, 4, 8, 12, 14, 16, 14, 12, 8, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0
+
+
+
+ 0, 0, 0, 0, 4, 8, 12, 12, 16, 16, 12, 12, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,0 ,0, 0 ,0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_front]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+[DeltaY_ServiceModule]+[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_front]+2*[DeltaY_ServiceModule]+2*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+5*[Module_X]+5*[DeltaX]), ([y_start_front]+3*[DeltaY_ServiceModule]+3*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+4*[DeltaY_ServiceModule]+4*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+5*[DeltaY_ServiceModule]+5*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9.5*[Module_X]+9.5*[DeltaX]), ([y_start_front]+5*[DeltaY_ServiceModule]+5*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+6*[DeltaY_ServiceModule]+6*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+7*[DeltaY_ServiceModule]+7*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9.5*[Module_X]+9.5*[DeltaX]), ([y_start_front]+7*[DeltaY_ServiceModule]+7*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+14*[Module_X]+14*[DeltaX]), ([y_start_front]+7*[DeltaY_ServiceModule]+7*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+8*[DeltaY_ServiceModule]+8*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2.5*[Module_X]+2.5*[DeltaX]), ([y_start_front]+9*[DeltaY_ServiceModule]+9*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+10*[DeltaY_ServiceModule]+10*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+11*[DeltaY_ServiceModule]+11*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9.5*[Module_X]+9.5*[DeltaX]), ([y_start_front]+11*[DeltaY_ServiceModule]+11*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+12*[DeltaY_ServiceModule]+12*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+13*[DeltaY_ServiceModule]+13*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+14*[DeltaY_ServiceModule]+14*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+15*[DeltaY_ServiceModule]+15*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+1*[Module_X]+1*[DeltaX]), ([y_start_front]+16*[DeltaY_ServiceModule]+16*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4*[Module_X]+4*[DeltaX]), ([y_start_front]+17*[DeltaY_ServiceModule]+17*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+10.5*[Module_X]+10.5*[DeltaX]), ([y_start_front]+17*[DeltaY_ServiceModule]+17*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+18*[DeltaY_ServiceModule]+18*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+6*[Module_X]+6*[DeltaX]), ([y_start_front]+19*[DeltaY_ServiceModule]+19*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+18*[Module_X]+18*[DeltaX]), ([y_start_front]+19*[DeltaY_ServiceModule]+19*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+6*[Module_X]+6*[DeltaX]), ([y_start_front]+20*[DeltaY_ServiceModule]+20*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9*[Module_X]+9*[DeltaX]), ([y_start_front]+21*[DeltaY_ServiceModule]+21*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+21*[DeltaY_ServiceModule]+21*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+6*[Module_X]+6*[DeltaX]), ([y_start_front]+22*[DeltaY_ServiceModule]+22*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9*[Module_X]+9*[DeltaX]), ([y_start_front]+23*[DeltaY_ServiceModule]+23*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+23*[DeltaY_ServiceModule]+23*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+7*[Module_X]+7*[DeltaX]), ([y_start_front]+24*[DeltaY_ServiceModule]+24*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+10*[Module_X]+10*[DeltaX]), ([y_start_front]+25*[DeltaY_ServiceModule]+25*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+25*[DeltaY_ServiceModule]+25*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+25*[DeltaY_ServiceModule]+25*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+8*[Module_X]+8*[DeltaX]), ([y_start_front]+26*[DeltaY_ServiceModule]+26*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+10.5*[Module_X]+10.5*[DeltaX]), ([y_start_front]+27*[DeltaY_ServiceModule]+27*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+27*[DeltaY_ServiceModule]+27*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+7*[Module_X]+7*[DeltaX]), ([y_start_front]+28*[DeltaY_ServiceModule]+28*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+10*[Module_X]+10*[DeltaX]), ([y_start_front]+29*[DeltaY_ServiceModule]+29*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+29*[DeltaY_ServiceModule]+29*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+29*[DeltaY_ServiceModule]+29*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+6*[Module_X]+6*[DeltaX]), ([y_start_front]+30*[DeltaY_ServiceModule]+30*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9*[Module_X]+9*[DeltaX]), ([y_start_front]+31*[DeltaY_ServiceModule]+31*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+31*[DeltaY_ServiceModule]+31*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+5*[Module_X]+5*[DeltaX]), ([y_start_front]+32*[DeltaY_ServiceModule]+32*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+7.5*[Module_X]+7.5*[DeltaX]), ([y_start_front]+33*[DeltaY_ServiceModule]+33*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_front]+34*[DeltaY_ServiceModule]+34*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4.5*[Module_X]+4.5*[DeltaX]), ([y_start_front]+35*[DeltaY_ServiceModule]+35*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+36*[DeltaY_ServiceModule]+36*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+37*[DeltaY_ServiceModule]+37*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+37*[DeltaY_ServiceModule]+37*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+38*[DeltaY_ServiceModule]+38*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+39*[DeltaY_ServiceModule]+39*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9.5*[Module_X]+9.5*[DeltaX]), ([y_start_front]+39*[DeltaY_ServiceModule]+39*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+20*[Module_X]+20*[DeltaX]), ([y_start_front]+39*[DeltaY_ServiceModule]+39*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+40*[DeltaY_ServiceModule]+40*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+41*[DeltaY_ServiceModule]+41*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+41*[DeltaY_ServiceModule]+41*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+42*[DeltaY_ServiceModule]+42*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+43*[DeltaY_ServiceModule]+43*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9.5*[Module_X]+9.5*[DeltaX]), ([y_start_front]+43*[DeltaY_ServiceModule]+43*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+44*[DeltaY_ServiceModule]+44*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+45*[DeltaY_ServiceModule]+45*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+15*[Module_X]+15*[DeltaX]), ([y_start_front]+45*[DeltaY_ServiceModule]+45*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+46*[DeltaY_ServiceModule]+46*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2.5*[Module_X]+2.5*[DeltaX]), ([y_start_front]+47*[DeltaY_ServiceModule]+47*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+13*[Module_X]+13*[DeltaX]), ([y_start_front]+47*[DeltaY_ServiceModule]+47*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+48*[DeltaY_ServiceModule]+48*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2.5*[Module_X]+2.5*[DeltaX]), ([y_start_front]+49*[DeltaY_ServiceModule]+49*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_front]+50*[DeltaY_ServiceModule]+50*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+5*[Module_X]+5*[DeltaX]), ([y_start_front]+51*[DeltaY_ServiceModule]+51*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+3*[Module_X]+3*[DeltaX]), ([y_start_back_1]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_back_1]+1*[DeltaY_ServiceModule]+1*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+2*[DeltaY_ServiceModule]+2*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+8*[Module_X]+8*[DeltaX]), ([y_start_front]+2*[DeltaY_ServiceModule]+2*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+3*[DeltaY_ServiceModule]+3*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+4*[DeltaY_ServiceModule]+4*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+5*[DeltaY_ServiceModule]+5*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+6*[DeltaY_ServiceModule]+6*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9.5*[Module_X]+9.5*[DeltaX]), ([y_start_front]+6*[DeltaY_ServiceModule]+6*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+14*[Module_X]+14*[DeltaX]), ([y_start_front]+6*[DeltaY_ServiceModule]+6*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+7*[DeltaY_ServiceModule]+7*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2.5*[Module_X]+2.5*[DeltaX]), ([y_start_front]+8*[DeltaY_ServiceModule]+8*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+9*[DeltaY_ServiceModule]+9*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+10*[DeltaY_ServiceModule]+10*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+10*[DeltaY_ServiceModule]+10*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+11*[DeltaY_ServiceModule]+11*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+12*[DeltaY_ServiceModule]+12*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+13*[DeltaY_ServiceModule]+13*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+14*[DeltaY_ServiceModule]+14*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+14*[DeltaY_ServiceModule]+14*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+15*[DeltaY_ServiceModule]+15*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4.5*[Module_X]+4.5*[DeltaX]), ([y_start_front]+16*[DeltaY_ServiceModule]+16*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_back_1]+17*[DeltaY_ServiceModule]+17*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+5.5*[Module_X]+5.5*[DeltaX]), ([y_start_front]+18*[DeltaY_ServiceModule]+18*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_back_1]+19*[DeltaY_ServiceModule]+19*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+7.5*[Module_X]+7.5*[DeltaX]), ([y_start_front]+20*[DeltaY_ServiceModule]+20*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+5*[Module_X]+5*[DeltaX]), ([y_start_back_1]+21*[DeltaY_ServiceModule]+21*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9*[Module_X]+9*[DeltaX]), ([y_start_front]+22*[DeltaY_ServiceModule]+22*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+22*[DeltaY_ServiceModule]+22*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+6*[Module_X]+6*[DeltaX]), ([y_start_back_1]+23*[DeltaY_ServiceModule]+23*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+10.5*[Module_X]+10.5*[DeltaX]), ([y_start_front]+24*[DeltaY_ServiceModule]+24*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+24*[DeltaY_ServiceModule]+24*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+8*[Module_X]+8*[DeltaX]), ([y_start_back_1]+25*[DeltaY_ServiceModule]+25*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+10.5*[Module_X]+10.5*[DeltaX]), ([y_start_front]+26*[DeltaY_ServiceModule]+26*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+26*[DeltaY_ServiceModule]+26*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+8*[Module_X]+8*[DeltaX]), ([y_start_back_1]+27*[DeltaY_ServiceModule]+27*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9*[Module_X]+9*[DeltaX]), ([y_start_front]+28*[DeltaY_ServiceModule]+28*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+28*[DeltaY_ServiceModule]+28*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+6*[Module_X]+6*[DeltaX]), ([y_start_back_1]+29*[DeltaY_ServiceModule]+29*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9*[Module_X]+9*[DeltaX]), ([y_start_front]+30*[DeltaY_ServiceModule]+30*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+30*[DeltaY_ServiceModule]+30*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+6*[Module_X]+6*[DeltaX]), ([y_start_back_1]+31*[DeltaY_ServiceModule]+31*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+6*[Module_X]+6*[DeltaX]), ([y_start_front]+32*[DeltaY_ServiceModule]+32*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+19.5*[Module_X]+19.5*[DeltaX]), ([y_start_front]+32*[DeltaY_ServiceModule]+32*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_back_1]+33*[DeltaY_ServiceModule]+33*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4.5*[Module_X]+4.5*[DeltaX]), ([y_start_front]+34*[DeltaY_ServiceModule]+34*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_back_1]+35*[DeltaY_ServiceModule]+35*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+36*[DeltaY_ServiceModule]+36*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+36*[DeltaY_ServiceModule]+36*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+37*[DeltaY_ServiceModule]+37*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+38*[DeltaY_ServiceModule]+38*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+39*[DeltaY_ServiceModule]+39*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+40*[DeltaY_ServiceModule]+40*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+40*[DeltaY_ServiceModule]+40*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+41*[DeltaY_ServiceModule]+41*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+42*[DeltaY_ServiceModule]+42*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9.5*[Module_X]+9.5*[DeltaX]), ([y_start_front]+42*[DeltaY_ServiceModule]+42*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+43*[DeltaY_ServiceModule]+43*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+44*[DeltaY_ServiceModule]+44*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+15*[Module_X]+15*[DeltaX]), ([y_start_front]+44*[DeltaY_ServiceModule]+44*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+45*[DeltaY_ServiceModule]+45*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2.5*[Module_X]+2.5*[DeltaX]), ([y_start_front]+46*[DeltaY_ServiceModule]+46*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+13*[Module_X]+13*[DeltaX]), ([y_start_front]+46*[DeltaY_ServiceModule]+46*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+47*[DeltaY_ServiceModule]+47*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2.5*[Module_X]+2.5*[DeltaX]), ([y_start_front]+48*[DeltaY_ServiceModule]+48*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+49*[DeltaY_ServiceModule]+49*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4.5*[Module_X]+4.5*[DeltaX]), ([y_start_front]+50*[DeltaY_ServiceModule]+50*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_back_1]+51*[DeltaY_ServiceModule]+52*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_front]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+[DeltaY_ServiceModule]+[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_front]+2*[DeltaY_ServiceModule]+2*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+5*[Module_X]+5*[DeltaX]), ([y_start_front]+3*[DeltaY_ServiceModule]+3*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+4*[DeltaY_ServiceModule]+4*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+5*[DeltaY_ServiceModule]+5*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9.5*[Module_X]+9.5*[DeltaX]), ([y_start_front]+5*[DeltaY_ServiceModule]+5*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+6*[DeltaY_ServiceModule]+6*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+7*[DeltaY_ServiceModule]+7*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9.5*[Module_X]+9.5*[DeltaX]), ([y_start_front]+7*[DeltaY_ServiceModule]+7*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+14*[Module_X]+14*[DeltaX]), ([y_start_front]+7*[DeltaY_ServiceModule]+7*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+8*[DeltaY_ServiceModule]+8*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2.5*[Module_X]+2.5*[DeltaX]), ([y_start_front]+9*[DeltaY_ServiceModule]+9*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+10*[DeltaY_ServiceModule]+10*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+11*[DeltaY_ServiceModule]+11*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9.5*[Module_X]+9.5*[DeltaX]), ([y_start_front]+11*[DeltaY_ServiceModule]+11*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+12*[DeltaY_ServiceModule]+12*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+13*[DeltaY_ServiceModule]+13*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+14*[DeltaY_ServiceModule]+14*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+15*[DeltaY_ServiceModule]+15*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+1*[Module_X]+1*[DeltaX]), ([y_start_front]+16*[DeltaY_ServiceModule]+16*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4*[Module_X]+4*[DeltaX]), ([y_start_front]+17*[DeltaY_ServiceModule]+17*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+10.5*[Module_X]+10.5*[DeltaX]), ([y_start_front]+17*[DeltaY_ServiceModule]+17*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_front]+18*[DeltaY_ServiceModule]+18*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4.5*[Module_X]+4.5*[DeltaX]), ([y_start_front]+19*[DeltaY_ServiceModule]+19*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4*[Module_X]+4*[DeltaX]), ([y_start_front]+20*[DeltaY_ServiceModule]+20*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+7*[Module_X]+7*[DeltaX]), ([y_start_front]+21*[DeltaY_ServiceModule]+21*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+13.5*[Module_X]+13.5*[DeltaX]), ([y_start_front]+21*[DeltaY_ServiceModule]+21*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+6*[Module_X]+6*[DeltaX]), ([y_start_front]+22*[DeltaY_ServiceModule]+22*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9*[Module_X]+9*[DeltaX]), ([y_start_front]+23*[DeltaY_ServiceModule]+23*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+23*[DeltaY_ServiceModule]+23*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+7*[Module_X]+7*[DeltaX]), ([y_start_front]+24*[DeltaY_ServiceModule]+24*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+10*[Module_X]+10*[DeltaX]), ([y_start_front]+25*[DeltaY_ServiceModule]+25*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+25*[DeltaY_ServiceModule]+25*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+25*[DeltaY_ServiceModule]+25*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+8*[Module_X]+8*[DeltaX]), ([y_start_front]+26*[DeltaY_ServiceModule]+26*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+10.5*[Module_X]+10.5*[DeltaX]), ([y_start_front]+27*[DeltaY_ServiceModule]+27*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+27*[DeltaY_ServiceModule]+27*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+7*[Module_X]+7*[DeltaX]), ([y_start_front]+28*[DeltaY_ServiceModule]+28*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+10*[Module_X]+10*[DeltaX]), ([y_start_front]+29*[DeltaY_ServiceModule]+29*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+29*[DeltaY_ServiceModule]+29*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+29*[DeltaY_ServiceModule]+29*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+6*[Module_X]+6*[DeltaX]), ([y_start_front]+30*[DeltaY_ServiceModule]+30*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9*[Module_X]+9*[DeltaX]), ([y_start_front]+31*[DeltaY_ServiceModule]+31*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+31*[DeltaY_ServiceModule]+31*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4*[Module_X]+4*[DeltaX]), ([y_start_front]+32*[DeltaY_ServiceModule]+32*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+7*[Module_X]+7*[DeltaX]), ([y_start_front]+33*[DeltaY_ServiceModule]+33*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+13.5*[Module_X]+13.5*[DeltaX]), ([y_start_front]+33*[DeltaY_ServiceModule]+33*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+34*[DeltaY_ServiceModule]+34*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4.5*[Module_X]+4.5*[DeltaX]), ([y_start_front]+35*[DeltaY_ServiceModule]+35*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+36*[DeltaY_ServiceModule]+36*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+37*[DeltaY_ServiceModule]+37*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+37*[DeltaY_ServiceModule]+37*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+38*[DeltaY_ServiceModule]+38*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+39*[DeltaY_ServiceModule]+39*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9.5*[Module_X]+9.5*[DeltaX]), ([y_start_front]+39*[DeltaY_ServiceModule]+39*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+20*[Module_X]+20*[DeltaX]), ([y_start_front]+39*[DeltaY_ServiceModule]+39*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+40*[DeltaY_ServiceModule]+40*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+41*[DeltaY_ServiceModule]+41*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+41*[DeltaY_ServiceModule]+41*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+42*[DeltaY_ServiceModule]+42*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+43*[DeltaY_ServiceModule]+43*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9.5*[Module_X]+9.5*[DeltaX]), ([y_start_front]+43*[DeltaY_ServiceModule]+43*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+44*[DeltaY_ServiceModule]+44*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+45*[DeltaY_ServiceModule]+45*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+15*[Module_X]+15*[DeltaX]), ([y_start_front]+45*[DeltaY_ServiceModule]+45*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+46*[DeltaY_ServiceModule]+46*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2.5*[Module_X]+2.5*[DeltaX]), ([y_start_front]+47*[DeltaY_ServiceModule]+47*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+13*[Module_X]+13*[DeltaX]), ([y_start_front]+47*[DeltaY_ServiceModule]+47*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+48*[DeltaY_ServiceModule]+48*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2.5*[Module_X]+2.5*[DeltaX]), ([y_start_front]+49*[DeltaY_ServiceModule]+49*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_front]+50*[DeltaY_ServiceModule]+50*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+5*[Module_X]+5*[DeltaX]), ([y_start_front]+51*[DeltaY_ServiceModule]+51*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+1*[Module_X]+1*[DeltaX]), ([y_start_back_1]+8*[DeltaY_ServiceModule]+8*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+9*[DeltaY_ServiceModule]+9*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+10*[DeltaY_ServiceModule]+10*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+11*[DeltaY_ServiceModule]+11*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+12*[DeltaY_ServiceModule]+12*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+8*[Module_X]+8*[DeltaX]), ([y_start_back_1]+12*[DeltaY_ServiceModule]+12*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+13*[DeltaY_ServiceModule]+13*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2.5*[Module_X]+2.5*[DeltaX]), ([y_start_front]+14*[DeltaY_ServiceModule]+14*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+15*[DeltaY_ServiceModule]+15*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4.5*[Module_X]+4.5*[DeltaX]), ([y_start_front]+16*[DeltaY_ServiceModule]+16*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_back_1]+17*[DeltaY_ServiceModule]+17*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+7*[Module_X]+7*[DeltaX]), ([y_start_front]+18*[DeltaY_ServiceModule]+18*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+12*[Module_X]+12*[DeltaX]), ([y_start_front]+18*[DeltaY_ServiceModule]+18*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4*[Module_X]+4*[DeltaX]), ([y_start_back_1]+19*[DeltaY_ServiceModule]+19*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9*[Module_X]+9*[DeltaX]), ([y_start_front]+20*[DeltaY_ServiceModule]+20*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+14*[Module_X]+14*[DeltaX]), ([y_start_front]+20*[DeltaY_ServiceModule]+20*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+6*[Module_X]+6*[DeltaX]), ([y_start_back_1]+21*[DeltaY_ServiceModule]+21*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9*[Module_X]+9*[DeltaX]), ([y_start_front]+22*[DeltaY_ServiceModule]+22*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+14*[Module_X]+14*[DeltaX]), ([y_start_front]+22*[DeltaY_ServiceModule]+22*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9*[Module_X]+9*[DeltaX]), ([y_start_back_1]+23*[DeltaY_ServiceModule]+23*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+10.5*[Module_X]+10.5*[DeltaX]), ([y_start_front]+24*[DeltaY_ServiceModule]+24*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+15*[Module_X]+15*[DeltaX]), ([y_start_front]+24*[DeltaY_ServiceModule]+24*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+8*[Module_X]+8*[DeltaX]), ([y_start_back_1]+25*[DeltaY_ServiceModule]+25*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+10.5*[Module_X]+10.5*[DeltaX]), ([y_start_front]+26*[DeltaY_ServiceModule]+26*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+15*[Module_X]+15*[DeltaX]), ([y_start_front]+26*[DeltaY_ServiceModule]+26*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+8*[Module_X]+8*[DeltaX]), ([y_start_back_1]+27*[DeltaY_ServiceModule]+27*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9*[Module_X]+9*[DeltaX]), ([y_start_front]+28*[DeltaY_ServiceModule]+28*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+14*[Module_X]+14*[DeltaX]), ([y_start_front]+28*[DeltaY_ServiceModule]+28*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+6*[Module_X]+6*[DeltaX]), ([y_start_back_1]+29*[DeltaY_ServiceModule]+29*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9*[Module_X]+9*[DeltaX]), ([y_start_front]+30*[DeltaY_ServiceModule]+30*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+14*[Module_X]+14*[DeltaX]), ([y_start_front]+30*[DeltaY_ServiceModule]+30*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9*[Module_X]+9*[DeltaX]), ([y_start_back_1]+31*[DeltaY_ServiceModule]+31*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+7*[Module_X]+7*[DeltaX]), ([y_start_front]+32*[DeltaY_ServiceModule]+32*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+12*[Module_X]+12*[DeltaX]), ([y_start_front]+32*[DeltaY_ServiceModule]+32*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4*[Module_X]+4*[DeltaX]), ([y_start_back_1]+33*[DeltaY_ServiceModule]+33*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4.5*[Module_X]+4.5*[DeltaX]), ([y_start_front]+34*[DeltaY_ServiceModule]+34*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_back_1]+35*[DeltaY_ServiceModule]+35*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2.5*[Module_X]+2.5*[DeltaX]), ([y_start_front]+36*[DeltaY_ServiceModule]+36*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+37*[DeltaY_ServiceModule]+37*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+38*[DeltaY_ServiceModule]+38*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+8*[Module_X]+8*[DeltaX]), ([y_start_back_1]+38*[DeltaY_ServiceModule]+38*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+39*[DeltaY_ServiceModule]+39*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+40*[DeltaY_ServiceModule]+40*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+41*[DeltaY_ServiceModule]+41*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+1*[Module_X]+1*[DeltaX]), ([y_start_back_1]+42*[DeltaY_ServiceModule]+42*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+43*[DeltaY_ServiceModule]+43*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
diff --git a/Geometry/MTDCommonData/data/etl/v9/etl.xml b/Geometry/MTDCommonData/data/etl/v9/etl.xml
new file mode 100644
index 0000000000000..e131bae39b259
--- /dev/null
+++ b/Geometry/MTDCommonData/data/etl/v9/etl.xml
@@ -0,0 +1,4725 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1, 7, 21, 47, 79, 115, 153, 195, 237, 275, 309, 343, 377, 409, 439,
+ 471, 505, 541, 289, 578, 617, 701, 739, 773, 803, 827, 841
+
+
+
+ 1, 7, 27, 55, 87, 123, 163, 205, 245, 281, 317, 353, 387, 417, 447,
+ 481, 515, 555, 591, 631, 673, 713, 751, 785, 815, 839, 851
+
+
+
+ 1, 7, 21, 47, 79, 115, 153, 195, 237, 275, 311, 349, 383, 415, 445,
+ 477, 511, 549, 585, 625, 669, 709, 747, 781, 811, 835, 849
+
+
+
+ 1, 7, 27, 55, 87, 123, 163, 205, 245, 281, 317, 353, 387, 417, 447,
+ 481, 515, 555, 591, 631, 673, 713, 751, 785, 815, 839, 851
+
+
+
+ 4, 4, 0, 0, 0, 0, 0, 0, 2, 6, 12, 12, 14, 16, 14, 12, 10, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0
+
+
+
+ 4, 0, 0, 0, 0, 0, 0, 0, 4, 6, 10, 12, 16, 16, 12, 12, 6, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0
+
+
+
+ 4, 4, 0, 0, 0, 0, 0, 0, 2, 4, 8, 12, 14, 16, 14, 12, 8, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0
+
+
+
+ 4, 0, 0, 0, 0, 0, 0, 0, 4, 6, 10, 12, 16, 16, 12, 12, 6, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_front]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+[DeltaY_ServiceModule]+[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_front]+2*[DeltaY_ServiceModule]+2*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+5*[Module_X]+5*[DeltaX]), ([y_start_front]+3*[DeltaY_ServiceModule]+3*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+4*[DeltaY_ServiceModule]+4*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+5*[DeltaY_ServiceModule]+5*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9.5*[Module_X]+9.5*[DeltaX]), ([y_start_front]+5*[DeltaY_ServiceModule]+5*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+6*[DeltaY_ServiceModule]+6*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+7*[DeltaY_ServiceModule]+7*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9.5*[Module_X]+9.5*[DeltaX]), ([y_start_front]+7*[DeltaY_ServiceModule]+7*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+14*[Module_X]+14*[DeltaX]), ([y_start_front]+7*[DeltaY_ServiceModule]+7*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+8*[DeltaY_ServiceModule]+8*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2.5*[Module_X]+2.5*[DeltaX]), ([y_start_front]+9*[DeltaY_ServiceModule]+9*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+10*[DeltaY_ServiceModule]+10*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+11*[DeltaY_ServiceModule]+11*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9.5*[Module_X]+9.5*[DeltaX]), ([y_start_front]+11*[DeltaY_ServiceModule]+11*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+12*[DeltaY_ServiceModule]+12*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+13*[DeltaY_ServiceModule]+13*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+14*[DeltaY_ServiceModule]+14*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+15*[DeltaY_ServiceModule]+15*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+1*[Module_X]+1*[DeltaX]), ([y_start_front]+16*[DeltaY_ServiceModule]+16*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4*[Module_X]+4*[DeltaX]), ([y_start_front]+17*[DeltaY_ServiceModule]+17*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+10.5*[Module_X]+10.5*[DeltaX]), ([y_start_front]+17*[DeltaY_ServiceModule]+17*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+18*[DeltaY_ServiceModule]+18*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+6*[Module_X]+6*[DeltaX]), ([y_start_front]+19*[DeltaY_ServiceModule]+19*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+18*[Module_X]+18*[DeltaX]), ([y_start_front]+19*[DeltaY_ServiceModule]+19*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+6*[Module_X]+6*[DeltaX]), ([y_start_front]+20*[DeltaY_ServiceModule]+20*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9*[Module_X]+9*[DeltaX]), ([y_start_front]+21*[DeltaY_ServiceModule]+21*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+21*[DeltaY_ServiceModule]+21*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+6*[Module_X]+6*[DeltaX]), ([y_start_front]+22*[DeltaY_ServiceModule]+22*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9*[Module_X]+9*[DeltaX]), ([y_start_front]+23*[DeltaY_ServiceModule]+23*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+23*[DeltaY_ServiceModule]+23*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+7*[Module_X]+7*[DeltaX]), ([y_start_front]+24*[DeltaY_ServiceModule]+24*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+10*[Module_X]+10*[DeltaX]), ([y_start_front]+25*[DeltaY_ServiceModule]+25*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+25*[DeltaY_ServiceModule]+25*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+25*[DeltaY_ServiceModule]+25*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+8*[Module_X]+8*[DeltaX]), ([y_start_front]+26*[DeltaY_ServiceModule]+26*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+10.5*[Module_X]+10.5*[DeltaX]), ([y_start_front]+27*[DeltaY_ServiceModule]+27*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+27*[DeltaY_ServiceModule]+27*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+7*[Module_X]+7*[DeltaX]), ([y_start_front]+28*[DeltaY_ServiceModule]+28*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+10*[Module_X]+10*[DeltaX]), ([y_start_front]+29*[DeltaY_ServiceModule]+29*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+29*[DeltaY_ServiceModule]+29*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+29*[DeltaY_ServiceModule]+29*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+6*[Module_X]+6*[DeltaX]), ([y_start_front]+30*[DeltaY_ServiceModule]+30*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9*[Module_X]+9*[DeltaX]), ([y_start_front]+31*[DeltaY_ServiceModule]+31*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+31*[DeltaY_ServiceModule]+31*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+5*[Module_X]+5*[DeltaX]), ([y_start_front]+32*[DeltaY_ServiceModule]+32*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+7.5*[Module_X]+7.5*[DeltaX]), ([y_start_front]+33*[DeltaY_ServiceModule]+33*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_front]+34*[DeltaY_ServiceModule]+34*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4.5*[Module_X]+4.5*[DeltaX]), ([y_start_front]+35*[DeltaY_ServiceModule]+35*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+36*[DeltaY_ServiceModule]+36*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+37*[DeltaY_ServiceModule]+37*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+37*[DeltaY_ServiceModule]+37*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+38*[DeltaY_ServiceModule]+38*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+39*[DeltaY_ServiceModule]+39*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9.5*[Module_X]+9.5*[DeltaX]), ([y_start_front]+39*[DeltaY_ServiceModule]+39*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+20*[Module_X]+20*[DeltaX]), ([y_start_front]+39*[DeltaY_ServiceModule]+39*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+40*[DeltaY_ServiceModule]+40*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+41*[DeltaY_ServiceModule]+41*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+41*[DeltaY_ServiceModule]+41*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+42*[DeltaY_ServiceModule]+42*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+43*[DeltaY_ServiceModule]+43*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9.5*[Module_X]+9.5*[DeltaX]), ([y_start_front]+43*[DeltaY_ServiceModule]+43*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+44*[DeltaY_ServiceModule]+44*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+45*[DeltaY_ServiceModule]+45*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+15*[Module_X]+15*[DeltaX]), ([y_start_front]+45*[DeltaY_ServiceModule]+45*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+46*[DeltaY_ServiceModule]+46*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2.5*[Module_X]+2.5*[DeltaX]), ([y_start_front]+47*[DeltaY_ServiceModule]+47*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+13*[Module_X]+13*[DeltaX]), ([y_start_front]+47*[DeltaY_ServiceModule]+47*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+48*[DeltaY_ServiceModule]+48*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2.5*[Module_X]+2.5*[DeltaX]), ([y_start_front]+49*[DeltaY_ServiceModule]+49*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_front]+50*[DeltaY_ServiceModule]+50*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+5*[Module_X]+5*[DeltaX]), ([y_start_front]+51*[DeltaY_ServiceModule]+51*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+3*[Module_X]+3*[DeltaX]), ([y_start_back_1]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_back_1]+1*[DeltaY_ServiceModule]+1*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+2*[DeltaY_ServiceModule]+2*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+8*[Module_X]+8*[DeltaX]), ([y_start_front]+2*[DeltaY_ServiceModule]+2*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+3*[DeltaY_ServiceModule]+3*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+4*[DeltaY_ServiceModule]+4*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+5*[DeltaY_ServiceModule]+5*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+6*[DeltaY_ServiceModule]+6*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9.5*[Module_X]+9.5*[DeltaX]), ([y_start_front]+6*[DeltaY_ServiceModule]+6*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+14*[Module_X]+14*[DeltaX]), ([y_start_front]+6*[DeltaY_ServiceModule]+6*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+7*[DeltaY_ServiceModule]+7*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2.5*[Module_X]+2.5*[DeltaX]), ([y_start_front]+8*[DeltaY_ServiceModule]+8*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+9*[DeltaY_ServiceModule]+9*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+10*[DeltaY_ServiceModule]+10*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+10*[DeltaY_ServiceModule]+10*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+11*[DeltaY_ServiceModule]+11*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+12*[DeltaY_ServiceModule]+12*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+13*[DeltaY_ServiceModule]+13*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+14*[DeltaY_ServiceModule]+14*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+14*[DeltaY_ServiceModule]+14*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+15*[DeltaY_ServiceModule]+15*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4.5*[Module_X]+4.5*[DeltaX]), ([y_start_front]+16*[DeltaY_ServiceModule]+16*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_back_1]+17*[DeltaY_ServiceModule]+17*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+5.5*[Module_X]+5.5*[DeltaX]), ([y_start_front]+18*[DeltaY_ServiceModule]+18*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_back_1]+19*[DeltaY_ServiceModule]+19*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+7.5*[Module_X]+7.5*[DeltaX]), ([y_start_front]+20*[DeltaY_ServiceModule]+20*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+5*[Module_X]+5*[DeltaX]), ([y_start_back_1]+21*[DeltaY_ServiceModule]+21*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9*[Module_X]+9*[DeltaX]), ([y_start_front]+22*[DeltaY_ServiceModule]+22*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+22*[DeltaY_ServiceModule]+22*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+6*[Module_X]+6*[DeltaX]), ([y_start_back_1]+23*[DeltaY_ServiceModule]+23*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+10.5*[Module_X]+10.5*[DeltaX]), ([y_start_front]+24*[DeltaY_ServiceModule]+24*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+24*[DeltaY_ServiceModule]+24*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+8*[Module_X]+8*[DeltaX]), ([y_start_back_1]+25*[DeltaY_ServiceModule]+25*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+10.5*[Module_X]+10.5*[DeltaX]), ([y_start_front]+26*[DeltaY_ServiceModule]+26*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+26*[DeltaY_ServiceModule]+26*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+8*[Module_X]+8*[DeltaX]), ([y_start_back_1]+27*[DeltaY_ServiceModule]+27*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9*[Module_X]+9*[DeltaX]), ([y_start_front]+28*[DeltaY_ServiceModule]+28*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+28*[DeltaY_ServiceModule]+28*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+6*[Module_X]+6*[DeltaX]), ([y_start_back_1]+29*[DeltaY_ServiceModule]+29*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9*[Module_X]+9*[DeltaX]), ([y_start_front]+30*[DeltaY_ServiceModule]+30*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+30*[DeltaY_ServiceModule]+30*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+6*[Module_X]+6*[DeltaX]), ([y_start_back_1]+31*[DeltaY_ServiceModule]+31*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+6*[Module_X]+6*[DeltaX]), ([y_start_front]+32*[DeltaY_ServiceModule]+32*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+19.5*[Module_X]+19.5*[DeltaX]), ([y_start_front]+32*[DeltaY_ServiceModule]+32*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_back_1]+33*[DeltaY_ServiceModule]+33*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4.5*[Module_X]+4.5*[DeltaX]), ([y_start_front]+34*[DeltaY_ServiceModule]+34*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_back_1]+35*[DeltaY_ServiceModule]+35*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+36*[DeltaY_ServiceModule]+36*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+36*[DeltaY_ServiceModule]+36*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+37*[DeltaY_ServiceModule]+37*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+38*[DeltaY_ServiceModule]+38*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+39*[DeltaY_ServiceModule]+39*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+40*[DeltaY_ServiceModule]+40*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+40*[DeltaY_ServiceModule]+40*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+41*[DeltaY_ServiceModule]+41*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+42*[DeltaY_ServiceModule]+42*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9.5*[Module_X]+9.5*[DeltaX]), ([y_start_front]+42*[DeltaY_ServiceModule]+42*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+43*[DeltaY_ServiceModule]+43*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+44*[DeltaY_ServiceModule]+44*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+15*[Module_X]+15*[DeltaX]), ([y_start_front]+44*[DeltaY_ServiceModule]+44*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+45*[DeltaY_ServiceModule]+45*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2.5*[Module_X]+2.5*[DeltaX]), ([y_start_front]+46*[DeltaY_ServiceModule]+46*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+13*[Module_X]+13*[DeltaX]), ([y_start_front]+46*[DeltaY_ServiceModule]+46*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+47*[DeltaY_ServiceModule]+47*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2.5*[Module_X]+2.5*[DeltaX]), ([y_start_front]+48*[DeltaY_ServiceModule]+48*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+49*[DeltaY_ServiceModule]+49*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4.5*[Module_X]+4.5*[DeltaX]), ([y_start_front]+50*[DeltaY_ServiceModule]+50*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_back_1]+51*[DeltaY_ServiceModule]+52*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_front]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+[DeltaY_ServiceModule]+[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_front]+2*[DeltaY_ServiceModule]+2*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+5*[Module_X]+5*[DeltaX]), ([y_start_front]+3*[DeltaY_ServiceModule]+3*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+4*[DeltaY_ServiceModule]+4*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+5*[DeltaY_ServiceModule]+5*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9.5*[Module_X]+9.5*[DeltaX]), ([y_start_front]+5*[DeltaY_ServiceModule]+5*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+6*[DeltaY_ServiceModule]+6*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+7*[DeltaY_ServiceModule]+7*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9.5*[Module_X]+9.5*[DeltaX]), ([y_start_front]+7*[DeltaY_ServiceModule]+7*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+14*[Module_X]+14*[DeltaX]), ([y_start_front]+7*[DeltaY_ServiceModule]+7*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+8*[DeltaY_ServiceModule]+8*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2.5*[Module_X]+2.5*[DeltaX]), ([y_start_front]+9*[DeltaY_ServiceModule]+9*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+10*[DeltaY_ServiceModule]+10*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+11*[DeltaY_ServiceModule]+11*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9.5*[Module_X]+9.5*[DeltaX]), ([y_start_front]+11*[DeltaY_ServiceModule]+11*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+12*[DeltaY_ServiceModule]+12*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+13*[DeltaY_ServiceModule]+13*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+14*[DeltaY_ServiceModule]+14*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+15*[DeltaY_ServiceModule]+15*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+1*[Module_X]+1*[DeltaX]), ([y_start_front]+16*[DeltaY_ServiceModule]+16*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4*[Module_X]+4*[DeltaX]), ([y_start_front]+17*[DeltaY_ServiceModule]+17*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+10.5*[Module_X]+10.5*[DeltaX]), ([y_start_front]+17*[DeltaY_ServiceModule]+17*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_front]+18*[DeltaY_ServiceModule]+18*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4.5*[Module_X]+4.5*[DeltaX]), ([y_start_front]+19*[DeltaY_ServiceModule]+19*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4*[Module_X]+4*[DeltaX]), ([y_start_front]+20*[DeltaY_ServiceModule]+20*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+7*[Module_X]+7*[DeltaX]), ([y_start_front]+21*[DeltaY_ServiceModule]+21*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+13.5*[Module_X]+13.5*[DeltaX]), ([y_start_front]+21*[DeltaY_ServiceModule]+21*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+6*[Module_X]+6*[DeltaX]), ([y_start_front]+22*[DeltaY_ServiceModule]+22*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9*[Module_X]+9*[DeltaX]), ([y_start_front]+23*[DeltaY_ServiceModule]+23*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+23*[DeltaY_ServiceModule]+23*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+7*[Module_X]+7*[DeltaX]), ([y_start_front]+24*[DeltaY_ServiceModule]+24*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+10*[Module_X]+10*[DeltaX]), ([y_start_front]+25*[DeltaY_ServiceModule]+25*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+25*[DeltaY_ServiceModule]+25*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+25*[DeltaY_ServiceModule]+25*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+8*[Module_X]+8*[DeltaX]), ([y_start_front]+26*[DeltaY_ServiceModule]+26*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+10.5*[Module_X]+10.5*[DeltaX]), ([y_start_front]+27*[DeltaY_ServiceModule]+27*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+27*[DeltaY_ServiceModule]+27*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+7*[Module_X]+7*[DeltaX]), ([y_start_front]+28*[DeltaY_ServiceModule]+28*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+10*[Module_X]+10*[DeltaX]), ([y_start_front]+29*[DeltaY_ServiceModule]+29*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+29*[DeltaY_ServiceModule]+29*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+29*[DeltaY_ServiceModule]+29*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+6*[Module_X]+6*[DeltaX]), ([y_start_front]+30*[DeltaY_ServiceModule]+30*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9*[Module_X]+9*[DeltaX]), ([y_start_front]+31*[DeltaY_ServiceModule]+31*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+31*[DeltaY_ServiceModule]+31*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4*[Module_X]+4*[DeltaX]), ([y_start_front]+32*[DeltaY_ServiceModule]+32*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+7*[Module_X]+7*[DeltaX]), ([y_start_front]+33*[DeltaY_ServiceModule]+33*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+13.5*[Module_X]+13.5*[DeltaX]), ([y_start_front]+33*[DeltaY_ServiceModule]+33*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+34*[DeltaY_ServiceModule]+34*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4.5*[Module_X]+4.5*[DeltaX]), ([y_start_front]+35*[DeltaY_ServiceModule]+35*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+36*[DeltaY_ServiceModule]+36*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+37*[DeltaY_ServiceModule]+37*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+37*[DeltaY_ServiceModule]+37*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+38*[DeltaY_ServiceModule]+38*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+39*[DeltaY_ServiceModule]+39*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9.5*[Module_X]+9.5*[DeltaX]), ([y_start_front]+39*[DeltaY_ServiceModule]+39*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+20*[Module_X]+20*[DeltaX]), ([y_start_front]+39*[DeltaY_ServiceModule]+39*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+40*[DeltaY_ServiceModule]+40*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+41*[DeltaY_ServiceModule]+41*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+41*[DeltaY_ServiceModule]+41*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+42*[DeltaY_ServiceModule]+42*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+43*[DeltaY_ServiceModule]+43*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9.5*[Module_X]+9.5*[DeltaX]), ([y_start_front]+43*[DeltaY_ServiceModule]+43*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+44*[DeltaY_ServiceModule]+44*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+45*[DeltaY_ServiceModule]+45*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+15*[Module_X]+15*[DeltaX]), ([y_start_front]+45*[DeltaY_ServiceModule]+45*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+46*[DeltaY_ServiceModule]+46*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2.5*[Module_X]+2.5*[DeltaX]), ([y_start_front]+47*[DeltaY_ServiceModule]+47*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+13*[Module_X]+13*[DeltaX]), ([y_start_front]+47*[DeltaY_ServiceModule]+47*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_front]+48*[DeltaY_ServiceModule]+48*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2.5*[Module_X]+2.5*[DeltaX]), ([y_start_front]+49*[DeltaY_ServiceModule]+49*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_front]+50*[DeltaY_ServiceModule]+50*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+5*[Module_X]+5*[DeltaX]), ([y_start_front]+51*[DeltaY_ServiceModule]+51*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+3*[Module_X]+3*[DeltaX]), ([y_start_back_1]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_back_1]+1*[DeltaY_ServiceModule]+1*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+2*[DeltaY_ServiceModule]+2*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+8*[Module_X]+8*[DeltaX]), ([y_start_front]+2*[DeltaY_ServiceModule]+2*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+3*[DeltaY_ServiceModule]+3*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+4*[DeltaY_ServiceModule]+4*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+5*[DeltaY_ServiceModule]+5*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+6*[DeltaY_ServiceModule]+6*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9.5*[Module_X]+9.5*[DeltaX]), ([y_start_front]+6*[DeltaY_ServiceModule]+6*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+14*[Module_X]+14*[DeltaX]), ([y_start_front]+6*[DeltaY_ServiceModule]+6*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+7*[DeltaY_ServiceModule]+7*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2.5*[Module_X]+2.5*[DeltaX]), ([y_start_front]+8*[DeltaY_ServiceModule]+8*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+9*[DeltaY_ServiceModule]+9*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+10*[DeltaY_ServiceModule]+10*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+10*[DeltaY_ServiceModule]+10*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+11*[DeltaY_ServiceModule]+11*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+12*[DeltaY_ServiceModule]+12*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+13*[DeltaY_ServiceModule]+13*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+14*[DeltaY_ServiceModule]+14*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+14*[DeltaY_ServiceModule]+14*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+15*[DeltaY_ServiceModule]+15*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4.5*[Module_X]+4.5*[DeltaX]), ([y_start_front]+16*[DeltaY_ServiceModule]+16*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_back_1]+17*[DeltaY_ServiceModule]+17*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+5.5*[Module_X]+5.5*[DeltaX]), ([y_start_front]+18*[DeltaY_ServiceModule]+18*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_back_1]+19*[DeltaY_ServiceModule]+19*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+7.5*[Module_X]+7.5*[DeltaX]), ([y_start_front]+20*[DeltaY_ServiceModule]+20*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+5*[Module_X]+5*[DeltaX]), ([y_start_back_1]+21*[DeltaY_ServiceModule]+21*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9*[Module_X]+9*[DeltaX]), ([y_start_front]+22*[DeltaY_ServiceModule]+22*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+22*[DeltaY_ServiceModule]+22*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+6*[Module_X]+6*[DeltaX]), ([y_start_back_1]+23*[DeltaY_ServiceModule]+23*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+10.5*[Module_X]+10.5*[DeltaX]), ([y_start_front]+24*[DeltaY_ServiceModule]+24*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+24*[DeltaY_ServiceModule]+24*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+8*[Module_X]+8*[DeltaX]), ([y_start_back_1]+25*[DeltaY_ServiceModule]+25*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+10.5*[Module_X]+10.5*[DeltaX]), ([y_start_front]+26*[DeltaY_ServiceModule]+26*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+26*[DeltaY_ServiceModule]+26*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+8*[Module_X]+8*[DeltaX]), ([y_start_back_1]+27*[DeltaY_ServiceModule]+27*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9*[Module_X]+9*[DeltaX]), ([y_start_front]+28*[DeltaY_ServiceModule]+28*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+28*[DeltaY_ServiceModule]+28*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+6*[Module_X]+6*[DeltaX]), ([y_start_back_1]+29*[DeltaY_ServiceModule]+29*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9*[Module_X]+9*[DeltaX]), ([y_start_front]+30*[DeltaY_ServiceModule]+30*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+21*[Module_X]+21*[DeltaX]), ([y_start_front]+30*[DeltaY_ServiceModule]+30*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+6*[Module_X]+6*[DeltaX]), ([y_start_back_1]+31*[DeltaY_ServiceModule]+31*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+6*[Module_X]+6*[DeltaX]), ([y_start_front]+32*[DeltaY_ServiceModule]+32*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+19.5*[Module_X]+19.5*[DeltaX]), ([y_start_front]+32*[DeltaY_ServiceModule]+32*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_back_1]+33*[DeltaY_ServiceModule]+33*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4.5*[Module_X]+4.5*[DeltaX]), ([y_start_front]+34*[DeltaY_ServiceModule]+34*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_back_1]+35*[DeltaY_ServiceModule]+35*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+36*[DeltaY_ServiceModule]+36*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+36*[DeltaY_ServiceModule]+36*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+37*[DeltaY_ServiceModule]+37*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+38*[DeltaY_ServiceModule]+38*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+39*[DeltaY_ServiceModule]+39*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+40*[DeltaY_ServiceModule]+40*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+16.5*[Module_X]+16.5*[DeltaX]), ([y_start_front]+40*[DeltaY_ServiceModule]+40*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+41*[DeltaY_ServiceModule]+41*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+42*[DeltaY_ServiceModule]+42*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+9.5*[Module_X]+9.5*[DeltaX]), ([y_start_front]+42*[DeltaY_ServiceModule]+42*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+43*[DeltaY_ServiceModule]+43*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+3*[Module_X]+3*[DeltaX]), ([y_start_front]+44*[DeltaY_ServiceModule]+44*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+15*[Module_X]+15*[DeltaX]), ([y_start_front]+44*[DeltaY_ServiceModule]+44*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+45*[DeltaY_ServiceModule]+45*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2.5*[Module_X]+2.5*[DeltaX]), ([y_start_front]+46*[DeltaY_ServiceModule]+46*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_back_1]+13*[Module_X]+13*[DeltaX]), ([y_start_front]+46*[DeltaY_ServiceModule]+46*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+47*[DeltaY_ServiceModule]+47*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2.5*[Module_X]+2.5*[DeltaX]), ([y_start_front]+48*[DeltaY_ServiceModule]+48*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]), ([y_start_back_1]+49*[DeltaY_ServiceModule]+49*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+4.5*[Module_X]+4.5*[DeltaX]), ([y_start_front]+50*[DeltaY_ServiceModule]+50*[DeltaY]), ([ServiceHybrid_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+ ([x_start_front_1]+2*[Module_X]+2*[DeltaX]), ([y_start_back_1]+51*[DeltaY_ServiceModule]+52*[DeltaY]), ([Module_translation_z])
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/MTDCommonData/data/mtdParameters/v7/mtdParameters.xml b/Geometry/MTDCommonData/data/mtdParameters/v7/mtdParameters.xml
new file mode 100644
index 0000000000000..c9517bff4792c
--- /dev/null
+++ b/Geometry/MTDCommonData/data/mtdParameters/v7/mtdParameters.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ 4, 4, 4, 24
+
+
+ 0, 0, 0, 0, 0, 10, 40, 80, 1, 16, 1, 1
+
+
+ 0, 0, 0, 0, 12, 24, 6, 12, 16, 16, 1, 1
+
+
+
+
diff --git a/Geometry/MTDCommonData/data/mtdParameters/v7/mtdStructureTopology.xml b/Geometry/MTDCommonData/data/mtdParameters/v7/mtdStructureTopology.xml
new file mode 100644
index 0000000000000..bdc7dca59a176
--- /dev/null
+++ b/Geometry/MTDCommonData/data/mtdParameters/v7/mtdStructureTopology.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/MTDCommonData/data/mtdParameters/v8/mtdParameters.xml b/Geometry/MTDCommonData/data/mtdParameters/v8/mtdParameters.xml
new file mode 100644
index 0000000000000..c9517bff4792c
--- /dev/null
+++ b/Geometry/MTDCommonData/data/mtdParameters/v8/mtdParameters.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ 4, 4, 4, 24
+
+
+ 0, 0, 0, 0, 0, 10, 40, 80, 1, 16, 1, 1
+
+
+ 0, 0, 0, 0, 12, 24, 6, 12, 16, 16, 1, 1
+
+
+
+
diff --git a/Geometry/MTDCommonData/data/mtdParameters/v8/mtdStructureTopology.xml b/Geometry/MTDCommonData/data/mtdParameters/v8/mtdStructureTopology.xml
new file mode 100644
index 0000000000000..ef9e639f354a6
--- /dev/null
+++ b/Geometry/MTDCommonData/data/mtdParameters/v8/mtdStructureTopology.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/MTDCommonData/interface/MTDTopologyMode.h b/Geometry/MTDCommonData/interface/MTDTopologyMode.h
index 704571ad19f21..8bf22fc7cd93d 100644
--- a/Geometry/MTDCommonData/interface/MTDTopologyMode.h
+++ b/Geometry/MTDCommonData/interface/MTDTopologyMode.h
@@ -20,10 +20,12 @@ namespace MTDTopologyMode {
btlv1etlv5 = 6,
btlv2etlv5 = 7,
btlv3etlv8 = 8,
- btlv4etlv8 = 9
+ btlv4etlv8 = 9,
+ btlv4etlv9 = 10,
+ btlv4etlv10 = 11
};
- enum class EtlLayout { v5 = 3, v8 = 4 };
+ enum class EtlLayout { v5 = 3, v8 = 4, v9 = 5, v10 = 6 };
Mode MTDStringToEnumParser(const std::string&);
@@ -31,6 +33,12 @@ namespace MTDTopologyMode {
inline BTLDetId::CrysLayout crysLayoutFromTopoMode(const int& topoMode) {
switch (topoMode) {
+ case static_cast(Mode::btlv4etlv10):
+ return BTLDetId::CrysLayout::v4;
+ break;
+ case static_cast(Mode::btlv4etlv9):
+ return BTLDetId::CrysLayout::v4;
+ break;
case static_cast(Mode::btlv4etlv8):
return BTLDetId::CrysLayout::v4;
break;
@@ -50,6 +58,12 @@ namespace MTDTopologyMode {
inline EtlLayout etlLayoutFromTopoMode(const int& topoMode) {
switch (topoMode) {
+ case static_cast(Mode::btlv4etlv10):
+ return EtlLayout::v10;
+ break;
+ case static_cast(Mode::btlv4etlv9):
+ return EtlLayout::v9;
+ break;
case static_cast(Mode::btlv4etlv8):
return EtlLayout::v8;
break;
diff --git a/Geometry/MTDCommonData/src/ETLNumberingScheme.cc b/Geometry/MTDCommonData/src/ETLNumberingScheme.cc
index fd076d0cb0b42..c1ff9acf09bfd 100644
--- a/Geometry/MTDCommonData/src/ETLNumberingScheme.cc
+++ b/Geometry/MTDCommonData/src/ETLNumberingScheme.cc
@@ -33,49 +33,59 @@ uint32_t ETLNumberingScheme::getUnitID(const MTDBaseNumber& baseNumber) const {
}
const bool prev8(baseNumber.getLevelName(2).find("Sensor") != std::string::npos);
-
- const uint32_t modCopy(baseNumber.getCopyNumber(2));
- uint32_t sensor = 0;
+ const bool prev9(baseNumber.getLevelName(2).find("Half_") == std::string::npos);
+
+ std::stringstream ss;
+ auto dump_levels = [&]() {
+ for (size_t ii = 0; ii < nLevels; ii++) {
+ ss << ii << ": " << baseNumber.getLevelName(ii) << " ";
+ }
+ ss << "\nReturning 0";
+ return ss.str();
+ };
+
+ uint32_t modCopy(baseNumber.getCopyNumber(2));
+ if (!prev9) {
+ modCopy = baseNumber.getCopyNumber(3);
+ }
+ uint32_t modtyp(0);
+ if (prev9) {
+ modtyp = (baseNumber.getLevelName(2).find("_Left") != std::string::npos) ? 1 : 2;
+ } else {
+ modtyp = baseNumber.getCopyNumber(2);
+ }
+ uint32_t sensor(0);
if (!prev8) {
sensor = baseNumber.getCopyNumber(1);
}
-
- int modtyp(0);
+ // for v9 keep the same sensor order inside a module as in v8
+ if (!prev9 && modtyp == 2) {
+ sensor = (sensor == 1) ? 2 : 1;
+ }
uint32_t discN, sectorS, sectorN;
- discN = (baseNumber.getLevelName(4).find("Disc1") != std::string::npos) ? 0 : 1;
- sectorS = (baseNumber.getLevelName(3).find("Front") != std::string::npos) ? 0 : 1;
- sectorN = baseNumber.getCopyNumber(3);
+ uint32_t offset = prev9 ? 3 : 4;
+ discN = (baseNumber.getLevelName(offset + 1).find("Disc1") != std::string::npos) ? 0 : 1;
+ sectorS = (baseNumber.getLevelName(offset).find("Front") != std::string::npos) ? 0 : 1;
+ sectorN = baseNumber.getCopyNumber(offset);
ETLDetId tmpId;
- int ringCopy = static_cast(tmpId.encodeSector(discN, sectorS, sectorN));
-
- modtyp = (baseNumber.getLevelName(2).find("_Left") != std::string::npos) ? 1 : 2;
+ uint32_t ringCopy = static_cast(tmpId.encodeSector(discN, sectorS, sectorN));
- int nSide(7);
- const std::string_view& sideName(baseNumber.getLevelName(nSide));
- if (sideName.find("CALOECTSFront") != std::string::npos) {
+ uint32_t nSide(999);
+ if (baseNumber.getLevelName(7).find("CALOECTSFront") != std::string::npos) {
nSide = 8;
+ } else if (baseNumber.getLevelName(8).find("CALOECTSFront") != std::string::npos) {
+ nSide = 9;
} else {
- edm::LogWarning("MTDGeom") << "ETLNumberingScheme::getUnitID(): incorrect volume stack: \n"
- << baseNumber.getLevelName(0) << ", " << baseNumber.getLevelName(1) << ", "
- << baseNumber.getLevelName(2) << ", " << baseNumber.getLevelName(3) << ", "
- << baseNumber.getLevelName(4) << ", " << baseNumber.getLevelName(5) << ", "
- << baseNumber.getLevelName(6) << ", " << baseNumber.getLevelName(7) << ", "
- << baseNumber.getLevelName(8) << ", " << baseNumber.getLevelName(9) << ", "
- << baseNumber.getLevelName(10) << ", " << baseNumber.getLevelName(11) << "\nReturning 0";
+ edm::LogWarning("MTDGeom") << "ETLNumberingScheme::getUnitID(): incorrect volume stack: \n" << dump_levels();
return 0;
}
const uint32_t sideCopy(baseNumber.getCopyNumber(nSide));
const uint32_t zside(sideCopy == 1 ? 1 : 0);
#ifdef EDM_ML_DEBUG
- edm::LogInfo("MTDGeom") << baseNumber.getLevelName(0) << ", " << baseNumber.getLevelName(1) << ", "
- << baseNumber.getLevelName(2) << ", " << baseNumber.getLevelName(3) << ", "
- << baseNumber.getLevelName(4) << ", " << baseNumber.getLevelName(5) << ", "
- << baseNumber.getLevelName(6) << ", " << baseNumber.getLevelName(7) << ", "
- << baseNumber.getLevelName(8) << ", " << baseNumber.getLevelName(9) << ", "
- << baseNumber.getLevelName(10) << ", " << baseNumber.getLevelName(11);
+ edm::LogInfo("MTDGeom") << dump_levels();
#endif
// error checking
diff --git a/Geometry/MTDCommonData/src/MTDTopologyMode.cc b/Geometry/MTDCommonData/src/MTDTopologyMode.cc
index d2d86e0afa7d2..4705d3e21d7e9 100644
--- a/Geometry/MTDCommonData/src/MTDTopologyMode.cc
+++ b/Geometry/MTDCommonData/src/MTDTopologyMode.cc
@@ -13,6 +13,10 @@ namespace MTDTopologyMode {
output = Mode::btlv3etlv8;
} else if (value == prefix + "btlv4etlv8") {
output = Mode::btlv4etlv8;
+ } else if (value == prefix + "btlv4etlv9") {
+ output = Mode::btlv4etlv9;
+ } else if (value == prefix + "btlv4etlv10") {
+ output = Mode::btlv4etlv10;
} else {
throw cms::Exception("MTDTopologyModeError") << "the value " << value << " is not defined.";
}
diff --git a/Geometry/MTDGeometryBuilder/interface/MTDTopology.h b/Geometry/MTDGeometryBuilder/interface/MTDTopology.h
index 4ea6d97362571..b446be7eea111 100644
--- a/Geometry/MTDGeometryBuilder/interface/MTDTopology.h
+++ b/Geometry/MTDGeometryBuilder/interface/MTDTopology.h
@@ -27,7 +27,7 @@ class MTDTopology {
using BTLValues = BTLLayout;
struct ETLfaceLayout {
- uint32_t idDiscSide_; // disc face identifier
+ uint32_t idDiscSide_; // disc face identifier: 0 disc1 F, 1 disc1 B, 2 disc2 F, 3 disc2 B
uint32_t idDetType1_; // module type id identifier for first row
std::array, 2> start_copy_; // start copy per row, first of type idDetType1_
diff --git a/Geometry/MTDGeometryBuilder/plugins/MTDTopologyEP.cc b/Geometry/MTDGeometryBuilder/plugins/MTDTopologyEP.cc
index 0b060b6986a3d..d769a4c8eb861 100644
--- a/Geometry/MTDGeometryBuilder/plugins/MTDTopologyEP.cc
+++ b/Geometry/MTDGeometryBuilder/plugins/MTDTopologyEP.cc
@@ -99,29 +99,106 @@ void MTDTopologyEP::fillETLtopology(const PMTDParameters& ptp, int& mtdTopologyM
MTDTopology::ETLfaceLayout tmpFace;
- // Front Face (0), starting with type Right (2)
+ if (static_cast(MTDTopologyMode::etlLayoutFromTopoMode(mtdTopologyMode)) <=
+ static_cast(MTDTopologyMode::EtlLayout::v8)) {
+ // Disc1 Front Face (0), starting with type Right (2)
- tmpFace.idDiscSide_ = 0; // ETL front side
- tmpFace.idDetType1_ = 2; // ETL module type right
+ tmpFace.idDiscSide_ = 0; // ETL front side, Disc1
+ tmpFace.idDetType1_ = 2; // ETL module type right
- tmpFace.start_copy_[0] = ptp.vitems_[3].vpars_; // start_copy_FR
- tmpFace.start_copy_[1] = ptp.vitems_[2].vpars_; // start_copy_FL
- tmpFace.offset_[0] = ptp.vitems_[7].vpars_; // offset_FR
- tmpFace.offset_[1] = ptp.vitems_[6].vpars_; // offset_FL
+ tmpFace.start_copy_[0] = ptp.vitems_[3].vpars_; // start_copy_FR
+ tmpFace.start_copy_[1] = ptp.vitems_[2].vpars_; // start_copy_FL
+ tmpFace.offset_[0] = ptp.vitems_[7].vpars_; // offset_FR
+ tmpFace.offset_[1] = ptp.vitems_[6].vpars_; // offset_FL
- etlVals.emplace_back(tmpFace);
+ etlVals.emplace_back(tmpFace);
- // Back Face (1), starting with type Left (1)
+ // Disc1 Back Face (1), starting with type Left (1)
- tmpFace.idDiscSide_ = 1; // ETL back side
- tmpFace.idDetType1_ = 1; // ETL module type left
+ tmpFace.idDiscSide_ = 1; // ETL back side, Disc1
+ tmpFace.idDetType1_ = 1; // ETL module type left
- tmpFace.start_copy_[0] = ptp.vitems_[4].vpars_; // start_copy_BL
- tmpFace.start_copy_[1] = ptp.vitems_[5].vpars_; // start_copy_BR
- tmpFace.offset_[0] = ptp.vitems_[8].vpars_; // offset_BL
- tmpFace.offset_[1] = ptp.vitems_[9].vpars_; // offset_BR
+ tmpFace.start_copy_[0] = ptp.vitems_[4].vpars_; // start_copy_BL
+ tmpFace.start_copy_[1] = ptp.vitems_[5].vpars_; // start_copy_BR
+ tmpFace.offset_[0] = ptp.vitems_[8].vpars_; // offset_BL
+ tmpFace.offset_[1] = ptp.vitems_[9].vpars_; // offset_BR
- etlVals.emplace_back(tmpFace);
+ etlVals.emplace_back(tmpFace);
+
+ // Disc2 Front Face (0), starting with type Right (2)
+
+ tmpFace.idDiscSide_ = 2; // ETL front side, Disc2
+ tmpFace.idDetType1_ = 2; // ETL module type right
+
+ tmpFace.start_copy_[0] = ptp.vitems_[3].vpars_; // start_copy_FR
+ tmpFace.start_copy_[1] = ptp.vitems_[2].vpars_; // start_copy_FL
+ tmpFace.offset_[0] = ptp.vitems_[7].vpars_; // offset_FR
+ tmpFace.offset_[1] = ptp.vitems_[6].vpars_; // offset_FL
+
+ etlVals.emplace_back(tmpFace);
+
+ // Disc2 Back Face (1), starting with type Left (1)
+
+ tmpFace.idDiscSide_ = 3; // ETL back side, Disc2
+ tmpFace.idDetType1_ = 1; // ETL module type left
+
+ tmpFace.start_copy_[0] = ptp.vitems_[4].vpars_; // start_copy_BL
+ tmpFace.start_copy_[1] = ptp.vitems_[5].vpars_; // start_copy_BR
+ tmpFace.offset_[0] = ptp.vitems_[8].vpars_; // offset_BL
+ tmpFace.offset_[1] = ptp.vitems_[9].vpars_; // offset_BR
+
+ etlVals.emplace_back(tmpFace);
+
+ } else if (static_cast(MTDTopologyMode::etlLayoutFromTopoMode(mtdTopologyMode)) >
+ static_cast(MTDTopologyMode::EtlLayout::v8)) {
+ // Disc1 Front Face (0), starting with type Right (2)
+
+ tmpFace.idDiscSide_ = 0; // ETL front side, Disc1
+ tmpFace.idDetType1_ = 2; // etl module type HalfFront2
+
+ tmpFace.start_copy_[0] = ptp.vitems_[2].vpars_; // start_copy_FR
+ tmpFace.start_copy_[1] = ptp.vitems_[2].vpars_; // start_copy_FL
+ tmpFace.offset_[0] = ptp.vitems_[6].vpars_; // offset_FR
+ tmpFace.offset_[1] = ptp.vitems_[6].vpars_; // offset_FL
+
+ etlVals.emplace_back(tmpFace);
+
+ // Disc1 Back Face (1), starting with type Left (1)
+
+ tmpFace.idDiscSide_ = 1; // ETL back side, Disc1
+ tmpFace.idDetType1_ = 2; // ETL module type HalfBack2
+
+ tmpFace.start_copy_[0] = ptp.vitems_[3].vpars_; // start_copy_BL
+ tmpFace.start_copy_[1] = ptp.vitems_[3].vpars_; // start_copy_BR
+ tmpFace.offset_[0] = ptp.vitems_[7].vpars_; // offset_BL
+ tmpFace.offset_[1] = ptp.vitems_[7].vpars_; // offset_BR
+
+ etlVals.emplace_back(tmpFace);
+
+ // Disc2 Front Face (0), starting with type Right (2)
+
+ tmpFace.idDiscSide_ = 2; // ETL front side, Disc2
+ tmpFace.idDetType1_ = 2; // etl module type HalfFront2
+
+ tmpFace.start_copy_[0] = ptp.vitems_[4].vpars_; // start_copy_FR
+ tmpFace.start_copy_[1] = ptp.vitems_[4].vpars_; // start_copy_FL
+ tmpFace.offset_[0] = ptp.vitems_[8].vpars_; // offset_FR
+ tmpFace.offset_[1] = ptp.vitems_[8].vpars_; // offset_FL
+
+ etlVals.emplace_back(tmpFace);
+
+ // Disc2 Back Face (1), starting with type Left (1)
+
+ tmpFace.idDiscSide_ = 3; // ETL back side, Disc2
+ tmpFace.idDetType1_ = 2; // ETL module type HalfBack2
+
+ tmpFace.start_copy_[0] = ptp.vitems_[5].vpars_; // start_copy_BL
+ tmpFace.start_copy_[1] = ptp.vitems_[5].vpars_; // start_copy_BR
+ tmpFace.offset_[0] = ptp.vitems_[9].vpars_; // offset_BL
+ tmpFace.offset_[1] = ptp.vitems_[9].vpars_; // offset_BR
+
+ etlVals.emplace_back(tmpFace);
+ }
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("MTDTopologyEP") << " Topology mode = " << mtdTopologyMode << "\n";
diff --git a/Geometry/MTDGeometryBuilder/src/MTDParametersFromDD.cc b/Geometry/MTDGeometryBuilder/src/MTDParametersFromDD.cc
index 2f16a2d75099f..aee25a6825386 100644
--- a/Geometry/MTDGeometryBuilder/src/MTDParametersFromDD.cc
+++ b/Geometry/MTDGeometryBuilder/src/MTDParametersFromDD.cc
@@ -59,28 +59,36 @@ bool MTDParametersFromDD::build(const DDCompactView* cvp, PMTDParameters& ptp) {
throw cms::Exception("MTDParametersFromDD") << "Not found " << attribute.c_str() << " but needed.";
}
+ std::vector etlLayout;
if (MTDTopologyMode::etlLayoutFromTopoMode(topoMode) == MTDTopologyMode::EtlLayout::v5 ||
MTDTopologyMode::etlLayoutFromTopoMode(topoMode) == MTDTopologyMode::EtlLayout::v8) {
- std::array etlLayout{{
- "StartCopyNo_Front_Left",
- "StartCopyNo_Front_Right",
- "StartCopyNo_Back_Left",
- "StartCopyNo_Back_Right",
- "Offset_Front_Left",
- "Offset_Front_Right",
- "Offset_Back_Left",
- "Offset_Back_Right",
- }};
- int sector(10);
- for (const auto& name : etlLayout) {
- auto const& v = cvp->vector(name);
- if (!v.empty()) {
- sector++;
- std::vector ipos = dbl_to_int(v);
- putOne(sector, ipos, ptp);
- } else {
- throw cms::Exception("MTDParametersFromDD") << "Not found " << name << " but needed.";
- }
+ etlLayout.emplace_back("StartCopyNo_Front_Left");
+ etlLayout.emplace_back("StartCopyNo_Front_Right");
+ etlLayout.emplace_back("StartCopyNo_Back_Left");
+ etlLayout.emplace_back("StartCopyNo_Back_Right");
+ etlLayout.emplace_back("Offset_Front_Left");
+ etlLayout.emplace_back("Offset_Front_Right");
+ etlLayout.emplace_back("Offset_Back_Left");
+ etlLayout.emplace_back("Offset_Back_Right");
+ } else if (MTDTopologyMode::etlLayoutFromTopoMode(topoMode) >= MTDTopologyMode::EtlLayout::v9) {
+ etlLayout.emplace_back("StartCopyNo_Front_Disc_1");
+ etlLayout.emplace_back("StartCopyNo_Back_Disc_1");
+ etlLayout.emplace_back("StartCopyNo_Front_Disc_2");
+ etlLayout.emplace_back("StartCopyNo_Back_Disc_2");
+ etlLayout.emplace_back("Offset_Front_Disc_1");
+ etlLayout.emplace_back("Offset_Back_Disc_1");
+ etlLayout.emplace_back("Offset_Front_Disc_2");
+ etlLayout.emplace_back("Offset_Back_Disc_2");
+ }
+ int sector(10);
+ for (const auto& name : etlLayout) {
+ auto const& v = cvp->vector(name);
+ if (!v.empty()) {
+ sector++;
+ std::vector ipos = dbl_to_int(v);
+ putOne(sector, ipos, ptp);
+ } else {
+ throw cms::Exception("MTDParametersFromDD") << "Not found " << name << " but needed.";
}
}
@@ -134,37 +142,45 @@ bool MTDParametersFromDD::build(const cms::DDCompactView* cvp, PMTDParameters& p
throw cms::Exception("MTDParametersFromDD") << "Not found " << attribute.c_str() << " but needed.";
}
+ std::vector etlLayout;
if (MTDTopologyMode::etlLayoutFromTopoMode(topoMode) == MTDTopologyMode::EtlLayout::v5 ||
MTDTopologyMode::etlLayoutFromTopoMode(topoMode) == MTDTopologyMode::EtlLayout::v8) {
- std::array etlLayout{{
- "StartCopyNo_Front_Left",
- "StartCopyNo_Front_Right",
- "StartCopyNo_Back_Left",
- "StartCopyNo_Back_Right",
- "Offset_Front_Left",
- "Offset_Front_Right",
- "Offset_Back_Left",
- "Offset_Back_Right",
- }};
- int sector(10); // add vector index with offset, to distinguish from subdet
- for (const auto& name : etlLayout) {
- bool found(false);
- for (auto const& it : vmap) {
- if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first), name)) {
- sector++;
- std::vector ipos;
- ipos.reserve(it.second.size());
- for (const auto& i : it.second)
- ipos.emplace_back(std::round(i));
- putOne(sector, ipos, ptp);
- found = true;
- break;
- }
- }
- if (!found) {
- throw cms::Exception("MTDParametersFromDD") << "Not found " << name << " but needed.";
+ etlLayout.emplace_back("StartCopyNo_Front_Left");
+ etlLayout.emplace_back("StartCopyNo_Front_Right");
+ etlLayout.emplace_back("StartCopyNo_Back_Left");
+ etlLayout.emplace_back("StartCopyNo_Back_Right");
+ etlLayout.emplace_back("Offset_Front_Left");
+ etlLayout.emplace_back("Offset_Front_Right");
+ etlLayout.emplace_back("Offset_Back_Left");
+ etlLayout.emplace_back("Offset_Back_Right");
+ } else if (MTDTopologyMode::etlLayoutFromTopoMode(topoMode) >= MTDTopologyMode::EtlLayout::v9) {
+ etlLayout.emplace_back("StartCopyNo_Front_Disc_1");
+ etlLayout.emplace_back("StartCopyNo_Back_Disc_1");
+ etlLayout.emplace_back("StartCopyNo_Front_Disc_2");
+ etlLayout.emplace_back("StartCopyNo_Back_Disc_2");
+ etlLayout.emplace_back("Offset_Front_Disc_1");
+ etlLayout.emplace_back("Offset_Back_Disc_1");
+ etlLayout.emplace_back("Offset_Front_Disc_2");
+ etlLayout.emplace_back("Offset_Back_Disc_2");
+ }
+ int sector(10); // add vector index with offset, to distinguish from subdet
+ for (const auto& name : etlLayout) {
+ bool found(false);
+ for (auto const& it : vmap) {
+ if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first), name)) {
+ sector++;
+ std::vector ipos;
+ ipos.reserve(it.second.size());
+ for (const auto& i : it.second)
+ ipos.emplace_back(std::round(i));
+ putOne(sector, ipos, ptp);
+ found = true;
+ break;
}
}
+ if (!found) {
+ throw cms::Exception("MTDParametersFromDD") << "Not found " << name << " but needed.";
+ }
}
return true;
diff --git a/Geometry/MTDGeometryBuilder/src/MTDTopology.cc b/Geometry/MTDGeometryBuilder/src/MTDTopology.cc
index a7387b0119c42..339569d8ece54 100644
--- a/Geometry/MTDGeometryBuilder/src/MTDTopology.cc
+++ b/Geometry/MTDGeometryBuilder/src/MTDTopology.cc
@@ -124,7 +124,7 @@ size_t MTDTopology::hshiftETL(const uint32_t detid, const int horizontalShift) c
int sensor = start_mod.sensor();
int module = start_mod.module();
uint32_t modtyp = start_mod.modType();
- uint32_t discside = start_mod.discSide();
+ uint32_t discface = start_mod.discSide() + 2 * (start_mod.nDisc() - 1);
int geomDetIndex;
// distinguish numbering in prev8 / v8 geometries
@@ -138,18 +138,18 @@ size_t MTDTopology::hshiftETL(const uint32_t detid, const int horizontalShift) c
// ilayout number coincides at present with disc face, use this
- size_t iHome = (modtyp == etlVals_[discside].idDetType1_) ? 0 : 1;
- size_t iLeft = (etlVals_[discside].idDetType1_ == 1) ? 0 : 1;
+ size_t iHome = (modtyp == etlVals_[discface].idDetType1_) ? 0 : 1;
+ size_t iLeft = (etlVals_[discface].idDetType1_ == 1) ? 0 : 1;
// for left type modules the position according to the default order is module - 1, for the rigth type modules the total number of left modules must be added
- size_t nmodOffset = (modtyp == 1) ? 0 : etlVals_[discside].start_copy_[iLeft].back() - 1;
+ size_t nmodOffset = (modtyp == 1) ? 0 : etlVals_[discface].start_copy_[iLeft].back() - 1;
- for (size_t iloop = 0; iloop < etlVals_[discside].start_copy_[iHome].size() - 1; iloop++) {
- if (geomDetIndex >= etlVals_[discside].start_copy_[iHome][iloop] &&
- geomDetIndex < etlVals_[discside].start_copy_[iHome][iloop + 1]) {
- if (geomDetIndex + hsh >= etlVals_[discside].start_copy_[iHome][iloop] &&
- geomDetIndex + hsh < etlVals_[discside].start_copy_[iHome][iloop + 1]) {
+ for (size_t iloop = 0; iloop < etlVals_[discface].start_copy_[iHome].size() - 1; iloop++) {
+ if (geomDetIndex >= etlVals_[discface].start_copy_[iHome][iloop] &&
+ geomDetIndex < etlVals_[discface].start_copy_[iHome][iloop + 1]) {
+ if (geomDetIndex + hsh >= etlVals_[discface].start_copy_[iHome][iloop] &&
+ geomDetIndex + hsh < etlVals_[discface].start_copy_[iHome][iloop + 1]) {
return geomDetIndex + hsh - 1 + nmodOffset;
}
break;
@@ -173,7 +173,7 @@ size_t MTDTopology::vshiftETL(const uint32_t detid, const int verticalShift, siz
int sensor = start_mod.sensor();
int module = start_mod.module();
uint32_t modtyp = start_mod.modType();
- uint32_t discside = start_mod.discSide();
+ uint32_t discface = start_mod.discSide() + 2 * (start_mod.nDisc() - 1);
int geomDetIndex;
// distinguish numbering in prev8 / v8 geometries
@@ -187,25 +187,25 @@ size_t MTDTopology::vshiftETL(const uint32_t detid, const int verticalShift, siz
// ilayout number coincides at present with disc face, use this
- size_t iHome = (modtyp == etlVals_[discside].idDetType1_) ? 0 : 1;
+ size_t iHome = (modtyp == etlVals_[discface].idDetType1_) ? 0 : 1;
size_t iOther = (iHome == 0) ? 1 : 0;
- size_t iLeft = (etlVals_[discside].idDetType1_ == 1) ? 0 : 1;
+ size_t iLeft = (etlVals_[discface].idDetType1_ == 1) ? 0 : 1;
// for right type modules the offset of the total number of left modules needs to be added,
// what matters here is the other type, i.e. if the starting module is left the vertical shift moves towards a right type, and viceversa
- size_t nmodOffset = (modtyp == 1) ? etlVals_[discside].start_copy_[iLeft].back() - 1 : 0;
+ size_t nmodOffset = (modtyp == 1) ? etlVals_[discface].start_copy_[iLeft].back() - 1 : 0;
- size_t iBin(etlVals_[discside].start_copy_[iHome].size()); // never allowed
- for (size_t iloop = 0; iloop < etlVals_[discside].start_copy_[iHome].size() - 1; iloop++) {
- if (geomDetIndex >= etlVals_[discside].start_copy_[iHome][iloop] &&
- geomDetIndex < etlVals_[discside].start_copy_[iHome][iloop + 1]) {
+ size_t iBin(etlVals_[discface].start_copy_[iHome].size()); // never allowed
+ for (size_t iloop = 0; iloop < etlVals_[discface].start_copy_[iHome].size() - 1; iloop++) {
+ if (geomDetIndex >= etlVals_[discface].start_copy_[iHome][iloop] &&
+ geomDetIndex < etlVals_[discface].start_copy_[iHome][iloop + 1]) {
iBin = iloop;
break;
}
}
- if (iBin == etlVals_[discside].start_copy_[iHome].size()) {
+ if (iBin == etlVals_[discface].start_copy_[iHome].size()) {
edm::LogWarning("MTDTopology") << "Module number not compatible with layout, abort";
return failIndex_;
}
@@ -219,30 +219,30 @@ size_t MTDTopology::vshiftETL(const uint32_t detid, const int verticalShift, siz
if (iHome == 1 && vsh > 0) {
iBinOther = iBin + 1;
}
- if (iBinOther < 0 || iBinOther >= static_cast(etlVals_[discside].start_copy_[iOther].size()) - 1) {
+ if (iBinOther < 0 || iBinOther >= static_cast(etlVals_[discface].start_copy_[iOther].size()) - 1) {
return failIndex_;
}
// determine the position of the other type corresponding to the same column of the home type
- int vpos = etlVals_[discside].offset_[iHome][iBin] + geomDetIndex - etlVals_[discside].start_copy_[iHome][iBin] + 1;
- if (vpos <= etlVals_[discside].offset_[iOther][iBinOther]) {
- closest = etlVals_[discside].start_copy_[iOther][iBinOther];
- } else if (vpos > etlVals_[discside].offset_[iOther][iBinOther] +
- etlVals_[discside].start_copy_[iOther][iBinOther + 1] -
- etlVals_[discside].start_copy_[iOther][iBinOther] ||
- (vpos == etlVals_[discside].offset_[iOther][iBinOther] +
- etlVals_[discside].start_copy_[iOther][iBinOther + 1] -
- etlVals_[discside].start_copy_[iOther][iBinOther] &&
- iBinOther + 1 == static_cast(etlVals_[discside].start_copy_[iOther].size()))) {
- closest = etlVals_[discside].start_copy_[iOther][iBinOther + 1] - 1;
+ int vpos = etlVals_[discface].offset_[iHome][iBin] + geomDetIndex - etlVals_[discface].start_copy_[iHome][iBin] + 1;
+ if (vpos <= etlVals_[discface].offset_[iOther][iBinOther]) {
+ closest = etlVals_[discface].start_copy_[iOther][iBinOther];
+ } else if (vpos > etlVals_[discface].offset_[iOther][iBinOther] +
+ etlVals_[discface].start_copy_[iOther][iBinOther + 1] -
+ etlVals_[discface].start_copy_[iOther][iBinOther] ||
+ (vpos == etlVals_[discface].offset_[iOther][iBinOther] +
+ etlVals_[discface].start_copy_[iOther][iBinOther + 1] -
+ etlVals_[discface].start_copy_[iOther][iBinOther] &&
+ iBinOther + 1 == static_cast(etlVals_[discface].start_copy_[iOther].size()))) {
+ closest = etlVals_[discface].start_copy_[iOther][iBinOther + 1] - 1;
}
if (closest < failIndex_) {
closest = closest + nmodOffset - 1;
return failIndex_;
} else {
// number of module shifted by 1 wrt the position in the array (i.e. module 1 has index 0)
- return etlVals_[discside].start_copy_[iOther][iBinOther] + vpos - 1 -
- etlVals_[discside].offset_[iOther][iBinOther] + nmodOffset - 1;
+ return etlVals_[discface].start_copy_[iOther][iBinOther] + vpos - 1 -
+ etlVals_[discface].offset_[iOther][iBinOther] + nmodOffset - 1;
}
}
diff --git a/RecoMTD/DetLayers/src/ETLDetLayerGeometryBuilder.cc b/RecoMTD/DetLayers/src/ETLDetLayerGeometryBuilder.cc
index 8a05fef2ee512..b950b74198ab3 100644
--- a/RecoMTD/DetLayers/src/ETLDetLayerGeometryBuilder.cc
+++ b/RecoMTD/DetLayers/src/ETLDetLayerGeometryBuilder.cc
@@ -22,10 +22,9 @@ pair, vector > ETLDetLayerGeometryBuilder::buildLay
const int mtdTopologyMode = topo.getMTDTopologyMode();
MTDTopologyMode::EtlLayout etlL = MTDTopologyMode::etlLayoutFromTopoMode(mtdTopologyMode);
- // number of layers is identical for post TDR scenarios, pick v4
// loop on number of sectors per face, two faces per disc (i.e. layer) taken into account in layer building (front/back)
unsigned int nSector(1);
- if (etlL == MTDTopologyMode::EtlLayout::v5 || etlL == MTDTopologyMode::EtlLayout::v8) {
+ if (static_cast(etlL) >= static_cast(MTDTopologyMode::EtlLayout::v5)) {
nSector *= ETLDetId::kETLv5maxSector;
} else {
throw cms::Exception("MTDDetLayers") << "Not implemented scenario " << mtdTopologyMode;