diff --git a/Geometry/HGCalCommonData/BuildFile.xml b/Geometry/HGCalCommonData/BuildFile.xml
new file mode 100644
index 0000000000000..3fcdb8c74741a
--- /dev/null
+++ b/Geometry/HGCalCommonData/BuildFile.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/eta4/hgcalEE.xml b/Geometry/HGCalCommonData/data/eta4/hgcalEE.xml
new file mode 100644
index 0000000000000..20077bc59839b
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/eta4/hgcalEE.xml
@@ -0,0 +1,4591 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1, 1
+ 2, 4
+ 5, 5
+ 6, 6
+ 7, 16
+ 17, 26
+ 27, 56
+ 57, 66
+ 67, 76
+ 77, 86
+ 87, 96
+ 97, 126
+ 127, 136
+ 137, 146
+ 147, 156
+ 157, 166
+ 167, 196
+ 197, 206
+ 207, 216
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.1715*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.17305*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.17315*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.17325*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.1743*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.1763*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.1781*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.187*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.1959*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2048*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2137*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2226*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2315*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2404*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2493*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2582*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.1804*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.1893*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.1982*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2071*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.216*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2249*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2338*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2427*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2516*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2605*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.18195*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.18205*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.18215*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.19085*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.19095*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.19105*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.19975*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.19985*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.19995*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.20865*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.20875*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.20885*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.21755*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.21765*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.21775*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.22645*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.22655*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.22665*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.23535*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.23545*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.23555*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.24425*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.24435*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.24445*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.25315*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.25325*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.25335*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.26205*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.26215*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.26225*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.1832*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.1921*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.201*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2099*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2188*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2277*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2366*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2455*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2544*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2633*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.1852*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.1941*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.203*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2119*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2208*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2297*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2386*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2475*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2564*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2653*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.26795*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.27855*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.28915*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.29975*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.31035*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.32095*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.33155*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.34215*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.35275*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.36335*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2711*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2817*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2923*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3029*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3135*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3241*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3347*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3453*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3559*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3665*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.27265*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.27275*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.27285*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.28325*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.28335*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.28345*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.29385*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.29395*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.29405*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.30445*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.30455*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.30465*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.31505*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.31515*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.31525*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.32565*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.32575*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.32585*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.33625*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.33635*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.33645*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.34685*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.34695*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.34705*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.35745*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.35755*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.35765*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.36805*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.36815*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.36825*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2739*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2845*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2951*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3057*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3163*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3269*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3375*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3481*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3587*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3693*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2759*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2865*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.2971*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3077*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3183*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3289*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3395*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3501*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3607*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3713*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3751*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.388*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4009*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4138*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4267*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4396*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4525*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4654*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4783*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4912*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3794*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3923*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4052*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4181*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.431*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4439*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4568*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4697*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4826*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4955*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.38095*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.38105*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.38115*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.39385*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.39395*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.39405*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.40675*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.40685*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.40695*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.41965*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.41975*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.41985*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.43255*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.43265*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.43275*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.44545*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.44555*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.44565*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.45835*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.45845*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.45855*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.47125*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.47135*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.47145*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.48415*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.48425*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.48435*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.49705*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.49715*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.49725*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3822*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3951*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.408*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4209*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4338*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4467*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4596*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4725*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4854*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4983*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3842*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.3971*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.41*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4229*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4358*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4487*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4616*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4745*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.4874*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.5003*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/eta4/hgcalHEgem.xml b/Geometry/HGCalCommonData/data/eta4/hgcalHEgem.xml
new file mode 100644
index 0000000000000..d2b043c9e1b5d
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/eta4/hgcalHEgem.xml
@@ -0,0 +1,1217 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1, 8
+ 9, 16
+ 17, 24
+ 25, 32
+ 33, 40
+ 41, 48
+ 49, 56
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.21025*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.25375*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.29725*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.34075*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.38425*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.42775*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.47125*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.51475*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.232*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.2755*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.319*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.3625*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.406*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.4495*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.493*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.5365*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.2285*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.272*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.3155*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.359*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.4025*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.446*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.4895*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.533*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.231*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.2745*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.318*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.3615*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.405*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.4485*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.492*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.5355*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.23253*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.27603*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.31953*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.36303*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.40653*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.45003*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.49353*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.53703*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.23306*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.27656*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.32006*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.36356*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.40706*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.45056*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.49406*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.53756*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.23453*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.27803*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.32153*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.36503*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.40853*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.45203*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.49553*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.53903*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/eta4/hgcalHEsci.xml b/Geometry/HGCalCommonData/data/eta4/hgcalHEsci.xml
new file mode 100644
index 0000000000000..a3f3f723e24c9
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/eta4/hgcalHEsci.xml
@@ -0,0 +1,1168 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1, 18
+ 19, 36
+ 37, 54
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.42725*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.47075*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.51425*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.55775*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.60125*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.64475*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.68825*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.73175*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.77525*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.81875*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.86225*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.90575*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.94925*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.99275*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.03625*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.07975*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.12325*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.16675*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.449*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.4925*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.536*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.5795*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.623*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.6665*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.71*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.7535*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.797*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.8405*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.884*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.9275*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.971*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.0145*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.058*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.1015*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.145*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.1885*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.449*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.4925*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.536*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.5795*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.623*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.6665*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.71*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.7535*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.797*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.8405*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.884*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.9275*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.971*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.0145*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.058*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.1015*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.145*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,-264.962*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 5.1885*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,84.9616*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/eta4/hgcalHEsil.xml b/Geometry/HGCalCommonData/data/eta4/hgcalHEsil.xml
new file mode 100644
index 0000000000000..b2c43cfb4b0d1
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/eta4/hgcalHEsil.xml
@@ -0,0 +1,1832 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1, 1
+ 2, 7
+ 8, 13
+ 14, 31
+ 32, 37
+ 38, 43
+ 44, 49
+ 50, 55
+ 56, 73
+ 74, 79
+ 80, 85
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.5263*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.5773*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.6366*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.6959*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.7552*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.8145*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.8738*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.6048*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.6641*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.7234*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.7827*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.842*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.9013*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.60635*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.60645*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.60655*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.66565*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.66575*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.66585*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.72495*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.72505*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.72515*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.78425*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.78435*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.78445*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.84355*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.84365*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.84375*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.90285*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.90295*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.90305*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.6076*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.6669*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.7262*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.7855*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.8448*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.9041*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.6096*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.6689*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.7282*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.7875*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.8468*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.9061*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.9331*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.9924*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.0517*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.111*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.1703*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.2296*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.9606*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.0199*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.0792*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.1385*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.1978*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.2571*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.96215*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.96225*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.96235*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.02145*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.02155*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.02165*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.08075*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.08085*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.08095*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.14005*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.14015*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.14025*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.19935*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.19945*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.19955*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.25865*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.25875*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.25885*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.9634*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.0227*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.082*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.1413*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.2006*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.2599*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 3.9654*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.0247*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.084*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.1433*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.2026*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 4.2619*m
+ 90*deg,90*deg,180*deg,0*deg,0*deg,90*deg,0*deg,0*deg,180*deg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/fastTiming.xml b/Geometry/HGCalCommonData/data/fastTiming.xml
new file mode 100644
index 0000000000000..ed48dabc6115e
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/fastTiming.xml
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/fastTimingConst.xml b/Geometry/HGCalCommonData/data/fastTimingConst.xml
new file mode 100644
index 0000000000000..f5e13ddf7f60a
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/fastTimingConst.xml
@@ -0,0 +1,261 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/hgcal.xml b/Geometry/HGCalCommonData/data/hgcal.xml
new file mode 100644
index 0000000000000..03fbabc82dc56
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/hgcal.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v1/hgcal.xml b/Geometry/HGCalCommonData/data/v1/hgcal.xml
new file mode 100644
index 0000000000000..c41c7cb14a536
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v1/hgcal.xml
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v1/hgcalCons.xml b/Geometry/HGCalCommonData/data/v1/hgcalCons.xml
new file mode 100644
index 0000000000000..09d3de5f4aa45
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v1/hgcalCons.xml
@@ -0,0 +1,253 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v1/hgcalEE.xml b/Geometry/HGCalCommonData/data/v1/hgcalEE.xml
new file mode 100644
index 0000000000000..0e73fd3cbe354
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v1/hgcalEE.xml
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 0
+ 0.*deg, 0.*deg, 0.*deg
+
+
+
+
+ materials:Lead, materials:Lead, materials:Lead, materials:Copper,
+ materials:Silicon, materials:M_NEMA FR4 plate, materials:Air
+
+ EEAbsorber1, EEAbsorber2, EEAbsorber3, EEHeatShield, EESensitive, EEPCB,
+ EEAirGap
+
+ 1.6*mm, 3.3*mm, 5.6*mm, 3.0*mm, 0.1*mm, 1.0*mm, 1.0*mm
+
+
+ 0, 3, 4, 4, 5, 6, 0, 3, 4, 4, 5, 6, 0, 3, 4, 4, 5, 6,
+ 0, 3, 4, 4, 5, 6, 0, 3, 4, 4, 5, 6, 0, 3, 4, 4, 5, 6,
+ 0, 3, 4, 4, 5, 6, 0, 3, 4, 4, 5, 6, 0, 3, 4, 4, 5, 6,
+ 0, 3, 4, 4, 5, 6, 1, 3, 4, 4, 5, 6, 1, 3, 4, 4, 5, 6,
+ 1, 3, 4, 4, 5, 6, 1, 3, 4, 4, 5, 6, 1, 3, 4, 4, 5, 6,
+ 1, 3, 4, 4, 5, 6, 1, 3, 4, 4, 5, 6, 1, 3, 4, 4, 5, 6,
+ 1, 3, 4, 4, 5, 6, 1, 3, 4, 4, 5, 6, 2, 3, 4, 4, 5, 6,
+ 2, 3, 4, 4, 5, 6, 2, 3, 4, 4, 5, 6, 2, 3, 4, 4, 5, 6,
+ 2, 3, 4, 4, 5, 6, 2, 3, 4, 4, 5, 6, 2, 3, 4, 4, 5, 6,
+ 2, 3, 4, 4, 5, 6, 2, 3, 4, 4, 5, 6, 2, 3, 4, 4, 5, 6
+
+
+ 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1
+
+
+ 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm,
+ 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm,
+ 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm,
+ 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm,
+ 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm,
+ 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm,
+ 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm,
+ 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm,
+ 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm,
+ 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm, 6.8*mm,
+ 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm,
+ 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm,
+ 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm,
+ 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm,
+ 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm,
+ 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm,
+ 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm,
+ 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm,
+ 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm,
+ 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm, 8.5*mm,
+ 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm,
+ 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm,
+ 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm,
+ 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm,
+ 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm,
+ 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm,
+ 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm,
+ 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm,
+ 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm,
+ 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm, 10.7*mm
+
+
+
+
+ [hgcal:slope2], [hgcal:slope3], 0, 0
+
+ [hgcal:zHGCal1], [hgcal:zHGCal2], [hgcal:zHGCal3], [hgcal:zHGCal4]
+
+ [hgcal:rMaxHGCal1], [hgcal:rMaxHGCal2], [hgcal:rMaxHGCal3], [hgcal:rMaxHGCal4]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v1/hgcalHEgem.xml b/Geometry/HGCalCommonData/data/v1/hgcalHEgem.xml
new file mode 100644
index 0000000000000..981880a5b2f7f
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v1/hgcalHEgem.xml
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 0
+ 0.*deg, 0.*deg, 0.*deg
+
+
+
+
+ materials:H_Brass, materials:H_Brass, materials:M_Kapton_Cu,
+ materials:M_GEM_Gas,materials:M_GEM_Foil,materials:M_GEM_Gas,
+ materials:M_Rdout_Brd
+
+ HEGemAbsorber, HEGemShield, HEGemKapton, HEGem1Sensitive, HEGemFoil,
+ HEGem2Sensitive, HEGemReadout
+
+ 0, 1, -1, -1, -1, -1, -1
+
+ 34.5*mm, 9.0*mm, 2.0*mm, 3.0*mm, 0.06*mm, 1.0*mm, 1.94*mm
+
+ 5193.0*mm, 5227.5*mm, 5227.5*mm, 5229.5*mm, 5232.5*mm, 5232.56*mm,
+ 5233.56*mm
+
+ 1, 1, 1, 1, 1, 11, 1
+
+
+ 0, 2, 3, 4, 5, 6, 1, 0, 2, 3, 4, 5, 6, 1, 0, 2, 3, 4, 5, 6, 1,
+ 0, 2, 3, 4, 5, 6, 1, 0, 2, 3, 4, 5, 6, 1, 0, 2, 3, 4, 5, 6, 1,
+ 0, 2, 3, 4, 5, 6, 1, 0, 2, 3, 4, 5, 6, 1
+
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1
+
+
+
+
+ [hgcal:slope2], [hgcal:slope3], 0, 0
+
+ [hgcal:zHGCal1], [hgcal:zHGCal2], [hgcal:zHGCal3], [hgcal:zHGCal4]
+
+ [hgcal:rMaxHGCal1], [hgcal:rMaxHGCal2], [hgcal:rMaxHGCal3], [hgcal:rMaxHGCal4]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v1/hgcalHEsci.xml b/Geometry/HGCalCommonData/data/v1/hgcalHEsci.xml
new file mode 100644
index 0000000000000..535e84312c949
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v1/hgcalHEsci.xml
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 0
+ 0.*deg, 0.*deg, 0.*deg
+
+
+
+
+ materials:H_Brass, materials:H_Brass, materials:Scintillator
+
+ HEScintillatorAbsorber, HEScintillatorShield,
+ HEScintillatorSensitive
+ 0, 1, -1
+
+ 34.5*mm, 9.0*mm, 9.0*mm
+
+ 4236.0*mm, 4270.5*mm, 4270.5*mm
+ 1, 1, 1
+
+
+ 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1,
+ 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1,
+ 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1
+
+ 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1,
+ 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1,
+ 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1
+
+
+
+
+ [hgcal:slope2], [hgcal:slope3], 0, 0
+
+ [hgcal:zHGCal1], [hgcal:zHGCal2], [hgcal:zHGCal3], [hgcal:zHGCal4]
+
+ [hgcal:rMaxHGCal1], [hgcal:rMaxHGCal2], [hgcal:rMaxHGCal3], [hgcal:rMaxHGCal4]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v1/hgcalHEsil.xml b/Geometry/HGCalCommonData/data/v1/hgcalHEsil.xml
new file mode 100644
index 0000000000000..544547cedbd9e
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v1/hgcalHEsil.xml
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 0
+ 0.*deg, 0.*deg, 0.*deg
+
+
+
+
+ materials:Lead, materials:Copper, materials:Silicon,
+ materials:M_NEMA FR4 plate, materials:Air
+
+ HESiliconAbsorber, HESiliconHeatShield, HESiliconSensitive, HESiliconPCB,
+ HESiliconAirGap
+
+ 52.0*mm, 3.0*mm, 0.1*mm, 1.0*mm, 1.0*mm
+
+
+ 0, 1, 2, 2, 3, 4, 0, 1, 2, 2, 3, 4, 0, 1, 2, 2, 3, 4,
+ 0, 1, 2, 2, 3, 4, 0, 1, 2, 2, 3, 4, 0, 1, 2, 2, 3, 4,
+ 0, 1, 2, 2, 3, 4, 0, 1, 2, 2, 3, 4, 0, 1, 2, 2, 3, 4,
+ 0, 1, 2, 2, 3, 4, 0, 1, 2, 2, 3, 4, 0, 1, 2, 2, 3, 4
+
+ 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1
+
+ 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm,
+ 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm,
+ 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm,
+ 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm,
+ 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm,
+ 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm,
+ 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm,
+ 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm,
+ 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm,
+ 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm,
+ 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm,
+ 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm, 57.2*mm
+
+
+
+
+ [hgcal:slope2], [hgcal:slope3], 0, 0
+
+ [hgcal:zHGCal1], [hgcal:zHGCal2], [hgcal:zHGCal3], [hgcal:zHGCal4]
+
+ [hgcal:rMaxHGCal1], [hgcal:rMaxHGCal2], [hgcal:rMaxHGCal3], [hgcal:rMaxHGCal4]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v2/hgcal.xml b/Geometry/HGCalCommonData/data/v2/hgcal.xml
new file mode 100644
index 0000000000000..cf0f81be14ac5
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v2/hgcal.xml
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v2/hgcalCons.xml b/Geometry/HGCalCommonData/data/v2/hgcalCons.xml
new file mode 100644
index 0000000000000..a2bfa9d80445e
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v2/hgcalCons.xml
@@ -0,0 +1,334 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v2/hgcalEE.xml b/Geometry/HGCalCommonData/data/v2/hgcalEE.xml
new file mode 100644
index 0000000000000..198b55d8ffa6b
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v2/hgcalEE.xml
@@ -0,0 +1,212 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 0
+ 0.*deg, 0.*deg, 0.*deg
+
+
+
+
+ materials:Lead, materials:Lead, materials:Lead, materials:Copper,
+ materials:Silicon, materials:M_NEMA FR4 plate, materials:Air
+
+ EEAbsorber1, EEAbsorber2, EEAbsorber3, EEHeatShield, EESensitive, EEPCB,
+ EEAirGap
+
+ 1.6*mm, 3.3*mm, 5.6*mm, 3.0*mm, 0.1*mm, 2.0*mm, 2.0*mm
+
+
+ 3, 4, 4, 4, 5, 6,
+ 0, 3, 4, 4, 4, 5, 6, 0, 3, 4, 4, 4, 5, 6, 0, 3, 4, 4, 4, 5, 6,
+ 0, 3, 4, 4, 4, 5, 6, 0, 3, 4, 4, 4, 5, 6, 0, 3, 4, 4, 4, 5, 6,
+ 0, 3, 4, 4, 4, 5, 6, 0, 3, 4, 4, 4, 5, 6, 0, 3, 4, 4, 4, 5, 6,
+ 0, 3, 4, 4, 4, 5, 6, 1, 3, 4, 4, 4, 5, 6, 1, 3, 4, 4, 4, 5, 6,
+ 1, 3, 4, 4, 4, 5, 6, 1, 3, 4, 4, 4, 5, 6, 1, 3, 4, 4, 4, 5, 6,
+ 1, 3, 4, 4, 4, 5, 6, 1, 3, 4, 4, 4, 5, 6, 1, 3, 4, 4, 4, 5, 6,
+ 1, 3, 4, 4, 4, 5, 6, 1, 3, 4, 4, 4, 5, 6, 2, 3, 4, 4, 4, 5, 6,
+ 2, 3, 4, 4, 4, 5, 6, 2, 3, 4, 4, 4, 5, 6, 2, 3, 4, 4, 4, 5, 6,
+ 2, 3, 4, 4, 4, 5, 6, 2, 3, 4, 4, 4, 5, 6, 2, 3, 4, 4, 4, 5, 6,
+ 2, 3, 4, 4, 4, 5, 6, 2, 3, 4, 4, 4, 5, 6, 2, 3, 4, 4, 4, 5, 6
+
+
+ 0, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1
+
+
+ 7.3*mm, 7.3*mm, 7.3*mm, 7.3*mm, 7.3*mm, 7.3*mm,
+ 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm,
+ 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm,
+ 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm,
+ 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm,
+ 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm,
+ 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm,
+ 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm,
+ 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm,
+ 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm,
+ 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm,
+ 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm,
+ 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm,
+ 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm,
+ 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm,
+ 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm,
+ 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm,
+ 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm,
+ 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm,
+ 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm,
+ 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm,
+ 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm,
+ 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm,
+ 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm,
+ 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm,
+ 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm,
+ 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm,
+ 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm,
+ 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm,
+ 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm,
+ 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm
+
+
+
+
+ [hgcal:slope2], [hgcal:slope3], 0, 0
+
+ [hgcal:zHGCal1], [hgcal:zHGCal2], [hgcal:zHGCal3], [hgcal:zHGCal4]
+
+ [hgcal:rMaxHGCal1], [hgcal:rMaxHGCal2], [hgcal:rMaxHGCal3], [hgcal:rMaxHGCal4]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v2/hgcalHEgem.xml b/Geometry/HGCalCommonData/data/v2/hgcalHEgem.xml
new file mode 100644
index 0000000000000..ab4afeab7dfd1
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v2/hgcalHEgem.xml
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 0
+ 0.*deg, 0.*deg, 0.*deg
+
+
+
+
+ materials:H_Brass, materials:H_Brass, materials:M_Kapton_Cu,
+ materials:M_GEM_Gas,materials:M_GEM_Foil,materials:M_GEM_Gas,
+ materials:M_Rdout_Brd
+
+ HEGemAbsorber, HEGemShield, HEGemKapton, HEGem1Sensitive, HEGemFoil,
+ HEGem2Sensitive, HEGemReadout
+
+ 0, 1, -1, -1, -1, -1, -1
+
+ 34.5*mm, 9.0*mm, 2.0*mm, 3.0*mm, 0.06*mm, 1.0*mm, 1.94*mm
+
+ 5193.0*mm, 5227.5*mm, 5227.5*mm, 5229.5*mm, 5232.5*mm, 5232.56*mm,
+ 5233.56*mm
+
+ 1, 1, 1, 1, 1, 11, 1
+
+
+ 0, 2, 3, 4, 5, 6, 1, 0, 2, 3, 4, 5, 6, 1, 0, 2, 3, 4, 5, 6, 1,
+ 0, 2, 3, 4, 5, 6, 1, 0, 2, 3, 4, 5, 6, 1, 0, 2, 3, 4, 5, 6, 1,
+ 0, 2, 3, 4, 5, 6, 1, 0, 2, 3, 4, 5, 6, 1
+
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1
+
+
+
+
+ [hgcal:slope2], [hgcal:slope3], 0, 0
+
+ [hgcal:zHGCal1], [hgcal:zHGCal2], [hgcal:zHGCal3], [hgcal:zHGCal4]
+
+ [hgcal:rMaxHGCal1], [hgcal:rMaxHGCal2], [hgcal:rMaxHGCal3], [hgcal:rMaxHGCal4]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v2/hgcalHEsci.xml b/Geometry/HGCalCommonData/data/v2/hgcalHEsci.xml
new file mode 100644
index 0000000000000..d0af8a6c0465c
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v2/hgcalHEsci.xml
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 0
+ 0.*deg, 0.*deg, 0.*deg
+
+
+
+
+ materials:H_Brass, materials:H_Brass, materials:Scintillator
+
+ HEScintillatorAbsorber, HEScintillatorShield,
+ HEScintillatorSensitive
+ 0, 1, -1
+
+ 34.5*mm, 9.0*mm, 9.0*mm
+
+ 4410.0*mm, 4444.5*mm, 4444.5*mm
+ 1, 1, 1
+
+
+ 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1,
+ 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1,
+ 0, 2, 1, 0, 2, 1
+
+ 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1,
+ 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1,
+ 0, 1, 1, 0, 1, 1
+
+
+
+
+ [hgcal:slope2], [hgcal:slope3], 0, 0
+
+ [hgcal:zHGCal1], [hgcal:zHGCal2], [hgcal:zHGCal3], [hgcal:zHGCal4]
+
+ [hgcal:rMaxHGCal1], [hgcal:rMaxHGCal2], [hgcal:rMaxHGCal3], [hgcal:rMaxHGCal4]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v2/hgcalHEsil.xml b/Geometry/HGCalCommonData/data/v2/hgcalHEsil.xml
new file mode 100644
index 0000000000000..9ea2f44f0ff8c
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v2/hgcalHEsil.xml
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 0
+ 0.*deg, 0.*deg, 0.*deg
+
+
+
+
+ materials:Lead, materials:Copper, materials:Silicon,
+ materials:M_NEMA FR4 plate, materials:Air, materials:StainlessSteel
+
+ HESiliconAbsorber, HESiliconHeatShield, HESiliconSensitive, HESiliconPCB,
+ HESiliconAirGap, HESiliconSupport
+
+ 52.0*mm, 3.0*mm, 0.1*mm, 2.0*mm, 2.0*mm, 50*mm
+
+ 5,
+ 0, 1, 2, 2, 2, 3, 4, 0, 1, 2, 2, 2, 3, 4, 0, 1, 2, 2, 2, 3, 4,
+ 0, 1, 2, 2, 2, 3, 4, 0, 1, 2, 2, 2, 3, 4, 0, 1, 2, 2, 2, 3, 4,
+ 0, 1, 2, 2, 2, 3, 4, 0, 1, 2, 2, 2, 3, 4, 0, 1, 2, 2, 2, 3, 4,
+ 0, 1, 2, 2, 2, 3, 4, 0, 1, 2, 2, 2, 3, 4, 0, 1, 2, 2, 2, 3, 4
+ 0,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1
+
+ 50.0*mm,
+ 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm,
+ 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm,
+ 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm,
+ 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm,
+ 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm,
+ 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm,
+ 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm,
+ 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm,
+ 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm,
+ 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm,
+ 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm,
+ 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm
+
+
+
+
+ [hgcal:slope2], [hgcal:slope3], 0, 0
+
+ [hgcal:zHGCal1], [hgcal:zHGCal2], [hgcal:zHGCal3], [hgcal:zHGCal4]
+
+ [hgcal:rMaxHGCal1], [hgcal:rMaxHGCal2], [hgcal:rMaxHGCal3], [hgcal:rMaxHGCal4]
+
+ [hgcal:slope2], [hgcal:slope3], 0, 0
+
+ [hgcal:zHGCal1], [hgcal:zHGCal2], [hgcal:zHGCal3], [hgcal:zHGCal4]
+
+ [hgcal:rMaxHGCal1], [hgcal:rMaxHGCal2], [hgcal:rMaxHGCal3], [hgcal:rMaxHGCal4]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v3/hgcal.xml b/Geometry/HGCalCommonData/data/v3/hgcal.xml
new file mode 100644
index 0000000000000..ac0fd98ec98af
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v3/hgcal.xml
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v3/hgcalCons.xml b/Geometry/HGCalCommonData/data/v3/hgcalCons.xml
new file mode 100644
index 0000000000000..fded576fb4141
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v3/hgcalCons.xml
@@ -0,0 +1,338 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v3/hgcalHEsci.xml b/Geometry/HGCalCommonData/data/v3/hgcalHEsci.xml
new file mode 100644
index 0000000000000..0a022d3bda309
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v3/hgcalHEsci.xml
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 0
+ 0.*deg, 0.*deg, 0.*deg
+
+
+
+
+ materials:H_Brass, materials:H_Brass, materials:Scintillator
+
+ HEScintillatorAbsorber, HEScintillatorShield,
+ HEScintillatorSensitive
+ 0, 1, -1
+
+ 34.5*mm, 9.0*mm, 9.0*mm
+
+ 4366.5*mm, 4401.0*mm, 4401.0*mm
+ 1, 1, 1
+
+
+ 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1,
+ 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1,
+ 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1
+
+ 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1,
+ 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1,
+ 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1
+
+
+
+
+ [hgcal:slope2], [hgcal:slope3], 0, 0
+
+ [hgcal:zHGCal1], [hgcal:zHGCal2], [hgcal:zHGCal3], [hgcal:zHGCal4]
+
+ [hgcal:rMaxHGCal1], [hgcal:rMaxHGCal2], [hgcal:rMaxHGCal3], [hgcal:rMaxHGCal4]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v4/hgcal.xml b/Geometry/HGCalCommonData/data/v4/hgcal.xml
new file mode 100644
index 0000000000000..e785370dfb0cc
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v4/hgcal.xml
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v4/hgcalCons.xml b/Geometry/HGCalCommonData/data/v4/hgcalCons.xml
new file mode 100644
index 0000000000000..56772f078a144
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v4/hgcalCons.xml
@@ -0,0 +1,317 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v4/hgcalEE.xml b/Geometry/HGCalCommonData/data/v4/hgcalEE.xml
new file mode 100644
index 0000000000000..3c9cafca08541
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v4/hgcalEE.xml
@@ -0,0 +1,212 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 0
+ 0.*deg, 0.*deg, 0.*deg
+
+
+
+
+ materials:Lead, materials:Lead, materials:Lead, materials:Copper,
+ materials:Silicon, materials:M_NEMA FR4 plate, materials:Air
+
+ EEAbsorber1, EEAbsorber2, EEAbsorber3, EEHeatShield, EESensitive, EEPCB,
+ EEAirGap
+
+ 1.6*mm, 3.3*mm, 5.6*mm, 3.0*mm, 0.1*mm, 2.0*mm, 2.0*mm
+
+
+ 3, 4, 4, 4, 5, 6,
+ 0, 3, 4, 4, 4, 5, 6, 0, 3, 4, 4, 4, 5, 6, 0, 3, 4, 4, 4, 5, 6,
+ 0, 3, 4, 4, 4, 5, 6, 0, 3, 4, 4, 4, 5, 6, 0, 3, 4, 4, 4, 5, 6,
+ 0, 3, 4, 4, 4, 5, 6, 0, 3, 4, 4, 4, 5, 6, 0, 3, 4, 4, 4, 5, 6,
+ 0, 3, 4, 4, 4, 5, 6, 1, 3, 4, 4, 4, 5, 6, 1, 3, 4, 4, 4, 5, 6,
+ 1, 3, 4, 4, 4, 5, 6, 1, 3, 4, 4, 4, 5, 6, 1, 3, 4, 4, 4, 5, 6,
+ 1, 3, 4, 4, 4, 5, 6, 1, 3, 4, 4, 4, 5, 6, 1, 3, 4, 4, 4, 5, 6,
+ 1, 3, 4, 4, 4, 5, 6, 1, 3, 4, 4, 4, 5, 6, 2, 3, 4, 4, 4, 5, 6,
+ 2, 3, 4, 4, 4, 5, 6, 2, 3, 4, 4, 4, 5, 6, 2, 3, 4, 4, 4, 5, 6,
+ 2, 3, 4, 4, 4, 5, 6, 2, 3, 4, 4, 4, 5, 6, 2, 3, 4, 4, 4, 5, 6,
+ 2, 3, 4, 4, 4, 5, 6, 2, 3, 4, 4, 4, 5, 6, 2, 3, 4, 4, 4, 5, 6
+
+
+ 0, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1
+
+
+ 7.3*mm, 7.3*mm, 7.3*mm, 7.3*mm, 7.3*mm, 7.3*mm,
+ 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm,
+ 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm,
+ 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm,
+ 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm,
+ 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm,
+ 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm,
+ 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm,
+ 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm,
+ 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm,
+ 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm, 8.9*mm,
+ 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm,
+ 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm,
+ 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm,
+ 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm,
+ 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm,
+ 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm,
+ 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm,
+ 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm,
+ 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm,
+ 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm, 10.6*mm,
+ 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm,
+ 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm,
+ 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm,
+ 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm,
+ 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm,
+ 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm,
+ 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm,
+ 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm,
+ 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm,
+ 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm, 12.9*mm
+
+
+
+
+ [hgcal:slope2], [hgcal:slope3], 0, 0
+
+ [hgcal:zHGCal1], [hgcal:zHGCal2], [hgcal:zHGCal3], [hgcal:zHGCal4]
+
+ [hgcal:rMaxHGCal1], [hgcal:rMaxHGCal2], [hgcal:rMaxHGCal3], [hgcal:rMaxHGCal4]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v4/hgcalHEsci.xml b/Geometry/HGCalCommonData/data/v4/hgcalHEsci.xml
new file mode 100644
index 0000000000000..c6ef2884265a3
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v4/hgcalHEsci.xml
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 0
+ 0.*deg, 0.*deg, 0.*deg
+
+
+
+
+ materials:H_Brass, materials:H_Brass, materials:Scintillator
+
+ HEScintillatorAbsorber, HEScintillatorShield,
+ HEScintillatorSensitive
+ 0, 1, -1
+
+ 34.5*mm, 9.0*mm, 9.0*mm
+
+ 4366.5*mm, 4401.0*mm, 4401.0*mm
+ 1, 1, 1
+
+
+ 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1,
+ 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1,
+ 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1
+
+ 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1,
+ 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1,
+ 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1
+
+
+
+
+ [hgcal:slope2], [hgcal:slope3], 0, 0
+
+ [hgcal:zHGCal1], [hgcal:zHGCal2], [hgcal:zHGCal3], [hgcal:zHGCal4]
+
+ [hgcal:rMaxHGCal1], [hgcal:rMaxHGCal2], [hgcal:rMaxHGCal3], [hgcal:rMaxHGCal4]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v4/hgcalHEsil.xml b/Geometry/HGCalCommonData/data/v4/hgcalHEsil.xml
new file mode 100644
index 0000000000000..bebae3bdc309c
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v4/hgcalHEsil.xml
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 0
+ 0.*deg, 0.*deg, 0.*deg
+
+
+
+
+ materials:Lead, materials:Copper, materials:Silicon,
+ materials:M_NEMA FR4 plate, materials:Air, materials:StainlessSteel
+
+ HESiliconAbsorber, HESiliconHeatShield, HESiliconSensitive, HESiliconPCB,
+ HESiliconAirGap, HESiliconSupport
+
+ 52.0*mm, 3.0*mm, 0.1*mm, 2.0*mm, 2.0*mm, 50*mm
+
+ 5,
+ 0, 1, 2, 2, 2, 3, 4, 0, 1, 2, 2, 2, 3, 4, 0, 1, 2, 2, 2, 3, 4,
+ 0, 1, 2, 2, 2, 3, 4, 0, 1, 2, 2, 2, 3, 4, 0, 1, 2, 2, 2, 3, 4,
+ 0, 1, 2, 2, 2, 3, 4, 0, 1, 2, 2, 2, 3, 4, 0, 1, 2, 2, 2, 3, 4,
+ 0, 1, 2, 2, 2, 3, 4, 0, 1, 2, 2, 2, 3, 4, 0, 1, 2, 2, 2, 3, 4
+ 0,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1
+
+ 50.0*mm,
+ 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm,
+ 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm,
+ 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm,
+ 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm,
+ 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm,
+ 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm,
+ 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm,
+ 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm,
+ 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm,
+ 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm,
+ 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm,
+ 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm, 59.3*mm
+
+
+
+
+ [hgcal:slope2], [hgcal:slope3], 0, 0
+
+ [hgcal:zHGCal1], [hgcal:zHGCal2], [hgcal:zHGCal3], [hgcal:zHGCal4]
+
+ [hgcal:rMaxHGCal1], [hgcal:rMaxHGCal2], [hgcal:rMaxHGCal3], [hgcal:rMaxHGCal4]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v5/fastTimingElement.xml b/Geometry/HGCalCommonData/data/v5/fastTimingElement.xml
new file mode 100644
index 0000000000000..05dee630412ba
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v5/fastTimingElement.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v5/hgcal.xml b/Geometry/HGCalCommonData/data/v5/hgcal.xml
new file mode 100644
index 0000000000000..ce775bf4c3075
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v5/hgcal.xml
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v5/hgcalCons.xml b/Geometry/HGCalCommonData/data/v5/hgcalCons.xml
new file mode 100644
index 0000000000000..a8f3f8687d995
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v5/hgcalCons.xml
@@ -0,0 +1,319 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v5/hgcalEE.xml b/Geometry/HGCalCommonData/data/v5/hgcalEE.xml
new file mode 100644
index 0000000000000..4aaf7815ea4bb
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v5/hgcalEE.xml
@@ -0,0 +1,223 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 0
+ 0.*deg, 0.*deg, 0.*deg
+
+
+
+
+ materials:Tungsten, materials:Tungsten, materials:Tungsten, materials:Lead,
+ materials:Lead, materials:Lead, materials:Copper, materials:Copper,
+ materials:Silicon, materials:M_NEMA FR4 plate, materials:Air,
+ materials:Foam, materials:Aluminium, materials:Air
+
+ EEAbsorber1, EEAbsorber2, EEAbsorber3, EEAbsorber4, EEAbsorber5,
+ EEAbsorber6, EECuFrame, EEHeatShield, EESensitive, EEPCB,
+ EEAirGap, EEThermalScreen, EEScreenCover, EEThermalGap
+
+ 1.75*mm, 2.8*mm, 4.2*mm, 1.0*mm, 2.1*mm, 4.4*mm,
+ 0.5*mm, 3.0*mm, 0.1*mm, 1.2*mm, 2.0*mm, 16.0*mm, 2.0*mm, 10.0*mm
+
+ 12, 11, 12, 13,
+ 6, 10, 9, 8, 8, 8, 7, 3,
+ 0, 6, 10, 9, 8, 8, 8, 7, 3, 7, 8, 8, 8, 9, 10, 6,
+ 0, 6, 10, 9, 8, 8, 8, 7, 3, 7, 8, 8, 8, 9, 10, 6,
+ 0, 6, 10, 9, 8, 8, 8, 7, 3, 7, 8, 8, 8, 9, 10, 6,
+ 0, 6, 10, 9, 8, 8, 8, 7, 3, 7, 8, 8, 8, 9, 10, 6,
+ 0, 6, 10, 9, 8, 8, 8, 7, 3, 7, 8, 8, 8, 9, 10, 6,
+ 1, 6, 10, 9, 8, 8, 8, 7, 4, 7, 8, 8, 8, 9, 10, 6,
+ 1, 6, 10, 9, 8, 8, 8, 7, 4, 7, 8, 8, 8, 9, 10, 6,
+ 1, 6, 10, 9, 8, 8, 8, 7, 4, 7, 8, 8, 8, 9, 10, 6,
+ 1, 6, 10, 9, 8, 8, 8, 7, 4, 7, 8, 8, 8, 9, 10, 6,
+ 1, 6, 10, 9, 8, 8, 8, 7, 4, 7, 8, 8, 8, 9, 10, 6,
+ 2, 6, 10, 9, 8, 8, 8, 7, 5, 7, 8, 8, 8, 9, 10, 6,
+ 2, 6, 10, 9, 8, 8, 8, 7, 5, 7, 8, 8, 8, 9, 10, 6,
+ 2, 6, 10, 9, 8, 8, 8, 7, 5, 7, 8, 8, 8, 9, 10, 6,
+ 2, 6, 10, 9, 8, 8, 8, 7, 5, 7, 8, 8, 8, 9, 10, 6,
+ 2, 6, 10, 9, 8, 8, 8, 7, 3
+
+
+ 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1
+
+ 30*mm, 30*mm, 30*mm, 30*mm,
+ 8.00*mm, 8.00*mm, 8.00*mm, 8.00*mm, 8.00*mm, 8.00*mm, 8.00*mm, 8.00*mm,
+ 16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,
+ 16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,
+ 16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,
+ 16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,
+ 16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,
+ 16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,
+ 16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,
+ 16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,
+ 16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,
+ 16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,16.75*mm,
+ 18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,
+ 18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,
+ 18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,
+ 18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,
+ 18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,
+ 18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,
+ 18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,
+ 18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,
+ 18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,
+ 18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,18.90*mm,
+ 22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,
+ 22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,
+ 22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,
+ 22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,
+ 22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,
+ 22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,
+ 22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,
+ 22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,22.60*mm,
+ 12.20*mm,12.20*mm,12.20*mm,12.20*mm,12.20*mm,12.20*mm,12.20*mm,12.20*mm,
+ 12.20*mm
+
+
+
+
+ [hgcal:slope2], [hgcal:slope3], 0, 0
+
+ [hgcal:zHGCal1], [hgcal:zHGCal2], [hgcal:zHGCal3], [hgcal:zHGCal4]
+
+ [hgcal:rMaxHGCal1], [hgcal:rMaxHGCal2], [hgcal:rMaxHGCal3], [hgcal:rMaxHGCal4]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v5/hgcalHEsci.xml b/Geometry/HGCalCommonData/data/v5/hgcalHEsci.xml
new file mode 100644
index 0000000000000..5934aae54fc3f
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v5/hgcalHEsci.xml
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 0
+ 0.*deg, 0.*deg, 0.*deg
+
+
+
+
+ materials:H_Brass, materials:H_Brass, materials:Scintillator
+
+ HEScintillatorAbsorber, HEScintillatorShield,
+ HEScintillatorSensitive
+ 0, 1, -1
+
+ 34.5*mm, 9.0*mm, 9.0*mm
+
+ 4174.85*mm, 4209.35*mm, 4209.35*mm
+ 1, 1, 1
+
+
+ 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1,
+ 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1,
+ 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1
+
+ 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1,
+ 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1,
+ 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1
+
+
+
+
+ [hgcal:slope2], [hgcal:slope3], 0, 0
+
+ [hgcal:zHGCal1], [hgcal:zHGCal2], [hgcal:zHGCal3], [hgcal:zHGCal4]
+
+ [hgcal:rMaxHGCal1], [hgcal:rMaxHGCal2], [hgcal:rMaxHGCal3], [hgcal:rMaxHGCal4]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v5/hgcalHEsil.xml b/Geometry/HGCalCommonData/data/v5/hgcalHEsil.xml
new file mode 100644
index 0000000000000..2ce3e676e74af
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v5/hgcalHEsil.xml
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 0
+ 0.*deg, 0.*deg, 0.*deg
+
+
+
+
+ materials:H_Brass, materials:Lead, materials:Copper, materials:Copper,
+ materials:Silicon, materials:M_NEMA FR4 plate, materials:Air,
+ materials:StainlessSteel, materials:Foam, materials:Aluminium, materials:Air
+
+ HESiliconAbsorber1, HESiliconAbsorber2, HESiliconShield, HESiliconHeatShield,
+ HESiliconSensitive, HESiliconPCB, HESiliconAirGap, HESiliconSupport,
+ HEThermalScreen, HEScreenCover, HEThermalGap
+
+ 40.0*mm, 1.0*mm, 0.5*mm, 3.0*mm, 0.1*mm, 1.2*mm, 2.0*mm, 15*mm, 16.0*mm, 2.0*mm, 10.0*mm
+
+ 7,
+ 0, 2, 6, 5, 4, 4, 4, 3, 1, 0, 2, 6, 5, 4, 4, 4, 3, 1,
+ 0, 2, 6, 5, 4, 4, 4, 3, 1, 0, 2, 6, 5, 4, 4, 4, 3, 1,
+ 0, 2, 6, 5, 4, 4, 4, 3, 1, 0, 2, 6, 5, 4, 4, 4, 3, 1,
+ 0, 2, 6, 5, 4, 4, 4, 3, 1, 0, 2, 6, 5, 4, 4, 4, 3, 1,
+ 0, 2, 6, 5, 4, 4, 4, 3, 1, 0, 2, 6, 5, 4, 4, 4, 3, 1,
+ 0, 2, 6, 5, 4, 4, 4, 3, 1, 0, 2, 6, 5, 4, 4, 4, 3, 1, 10, 9, 8, 9
+ 0,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1
+
+ 15.0*mm,
+ 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm,
+ 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm,
+ 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm,
+ 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm,
+ 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm,
+ 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm,
+ 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm,
+ 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm,
+ 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm,
+ 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm,
+ 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm,
+ 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm,
+ 30.0*mm, 30.0*mm, 30.0*mm, 30.0*mm
+
+
+
+
+ [hgcal:slope2], [hgcal:slope3], 0, 0
+
+ [hgcal:zHGCal1], [hgcal:zHGCal2], [hgcal:zHGCal3], [hgcal:zHGCal4]
+
+ [hgcal:rMaxHGCal1], [hgcal:rMaxHGCal2], [hgcal:rMaxHGCal3], [hgcal:rMaxHGCal4]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v6/fastTimingElement.xml b/Geometry/HGCalCommonData/data/v6/fastTimingElement.xml
new file mode 100644
index 0000000000000..ba57f6662456e
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v6/fastTimingElement.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v6/hgcal.xml b/Geometry/HGCalCommonData/data/v6/hgcal.xml
new file mode 100644
index 0000000000000..de8e578cd93d2
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v6/hgcal.xml
@@ -0,0 +1,161 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v6/hgcalCons.xml b/Geometry/HGCalCommonData/data/v6/hgcalCons.xml
new file mode 100644
index 0000000000000..b8e185e9d64be
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v6/hgcalCons.xml
@@ -0,0 +1,267 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/data/v6/hgcalHEsil.xml b/Geometry/HGCalCommonData/data/v6/hgcalHEsil.xml
new file mode 100644
index 0000000000000..7e516d9cdb5fc
--- /dev/null
+++ b/Geometry/HGCalCommonData/data/v6/hgcalHEsil.xml
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0, 0, 0
+ 0.*deg, 0.*deg, 0.*deg
+
+
+
+
+ materials:H_Brass, materials:Lead, materials:Copper, materials:Copper,
+ materials:Silicon, materials:M_NEMA FR4 plate, materials:Air,
+ materials:StainlessSteel, materials:Foam, materials:Aluminium, materials:Air
+
+ HESiliconAbsorber1, HESiliconAbsorber2, HESiliconShield, HESiliconHeatShield,
+ HESiliconSensitive, HESiliconPCB, HESiliconAirGap, HESiliconSupport,
+ HEThermalScreen, HEScreenCover, HEThermalGap
+
+ 40.0*mm, 1.0*mm, 0.5*mm, 3.0*mm, 0.1*mm, 1.2*mm, 2.0*mm, 15*mm, 16.0*mm, 2.0*mm, 10.0*mm
+
+ 7,
+ 0, 2, 6, 5, 4, 4, 4, 3, 1, 0, 2, 6, 5, 4, 4, 4, 3, 1,
+ 0, 2, 6, 5, 4, 4, 4, 3, 1, 0, 2, 6, 5, 4, 4, 4, 3, 1,
+ 0, 2, 6, 5, 4, 4, 4, 3, 1, 0, 2, 6, 5, 4, 4, 4, 3, 1,
+ 0, 2, 6, 5, 4, 4, 4, 3, 1, 0, 2, 6, 5, 4, 4, 4, 3, 1,
+ 0, 2, 6, 5, 4, 4, 4, 3, 1, 0, 2, 6, 5, 4, 4, 4, 3, 1,
+ 0, 2, 6, 5, 4, 4, 4, 3, 1, 0, 2, 6, 5, 4, 4, 4, 3, 1, 10, 9, 8, 9
+ 0,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1
+
+ 15.0*mm,
+ 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm,
+ 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm,
+ 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm,
+ 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm,
+ 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm,
+ 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm,
+ 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm,
+ 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm,
+ 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm,
+ 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm,
+ 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm,
+ 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm, 48.0*mm,
+ 30.0*mm, 30.0*mm, 30.0*mm, 30.0*mm
+
+
+
+
+ [hgcal:slope2], 0, 0, 0
+
+ [hgcal:zHGCal1], [hgcal:zHGCal2], [hgcal:zHGCal3], [hgcal:zHGCal4]
+
+ [hgcal:rMaxHGCal1], [hgcal:rMaxHGCal2], [hgcal:rMaxHGCal2], [hgcal:rMaxHGCal4]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/interface/FastTimeDDDConstants.h b/Geometry/HGCalCommonData/interface/FastTimeDDDConstants.h
new file mode 100644
index 0000000000000..e157e9ab49bdc
--- /dev/null
+++ b/Geometry/HGCalCommonData/interface/FastTimeDDDConstants.h
@@ -0,0 +1,51 @@
+#ifndef HGCalCommonData_FastTimeDDDConstants_h
+#define HGCalCommonData_FastTimeDDDConstants_h
+
+/** \class FastTimeDDDConstants
+ *
+ * this class reads the constant section of
+ * the numbering xml-file for fast timer device
+ *
+ * $Date: 2014/03/20 00:06:50 $
+ * \author Sunanda Banerjee, SINP
+ *
+ */
+
+#include
+#include
+#include
+
+#include "DetectorDescription/Core/interface/DDsvalues.h"
+
+class DDCompactView;
+class DDFilteredView;
+
+class FastTimeDDDConstants {
+
+public:
+
+ FastTimeDDDConstants( const DDCompactView& cpv );
+ ~FastTimeDDDConstants();
+
+ int computeCells() const;
+ int getType() const {return cellType;}
+ std::pair getXY(int copy) const;
+ std::pair getXY(double x, double y) const;
+ int getCells() const {return 4*nCells;}
+ bool isValidXY(int ix, int iy) const;
+ bool isValidCell(int copy) const;
+ int quadrant(int ix, int iy) const;
+ int quadrant(int copy) const;
+
+private:
+ void initialize(const DDCompactView& cpv);
+ void loadSpecPars(const DDFilteredView& fv);
+ std::vector getDDDArray(const std::string &,
+ const DDsvalues_type &) const;
+
+ int nCells, nCols, nRows, cellType;
+ double rIn, rOut, cellSize;
+ std::vector firstY, lastY, firstCell, lastCell;
+};
+
+#endif
diff --git a/Geometry/HGCalCommonData/interface/HGCalDDDConstants.h b/Geometry/HGCalCommonData/interface/HGCalDDDConstants.h
new file mode 100644
index 0000000000000..f8935e01e574b
--- /dev/null
+++ b/Geometry/HGCalCommonData/interface/HGCalDDDConstants.h
@@ -0,0 +1,94 @@
+#ifndef HGCalCommonData_HGCalDDDConstants_h
+#define HGCalCommonData_HGCalDDDConstants_h
+
+/** \class HGCalDDDConstants
+ *
+ * this class reads the constant section of the numbering
+ * xml-files of the high granulairy calorimeter
+ *
+ * $Date: 2014/03/20 00:06:50 $
+ * \author Sunanda Banerjee, SINP
+ *
+ */
+
+#include
+#include
+#include
+#include
+
+#include "DetectorDescription/Core/interface/DDsvalues.h"
+
+class DDCompactView;
+class DDFilteredView;
+
+class HGCalDDDConstants {
+
+public:
+
+ struct hgtrap {
+ hgtrap(int lay0, float bl0, float tl0, float h0, float dz0, float alpha0):
+ lay(lay0),bl(bl0),tl(tl0),h(h0),dz(dz0),alpha(alpha0),cellSize(0) {}
+ int lay;
+ float bl, tl, h, dz, alpha, cellSize;
+ };
+ struct hgtrform {
+ hgtrform(int zp0, int lay0, int sec0, int subsec0): zp(zp0), lay(lay0), sec(sec0), subsec(subsec0),used(false) {}
+ int zp, lay, sec, subsec;
+ bool used;
+ CLHEP::Hep3Vector h3v;
+ CLHEP::HepRotation hr;
+ };
+
+
+ HGCalDDDConstants(const DDCompactView& cpv, std::string & name);
+ ~HGCalDDDConstants();
+
+ std::pair assignCell(float x, float y, int lay, int subSec,
+ bool reco) const;
+ std::pair assignCell(float x, float y, float h, float bl, float tl,
+ float alpha, float cellSize) const;
+ std::pair findCell(int cell, int lay, int subSec, bool reco) const;
+ std::pair findCell(int cell, float h, float bl, float tl,
+ float alpha, float cellSize) const;
+ bool isValid(int lay, int mod, int cell, bool reco) const;
+ unsigned int layers(bool reco) const {return (reco ? depthIndex.size() : layerIndex.size());}
+ std::pair locateCell(int cell, int lay, int subSec,
+ bool reco) const;
+ int maxCells(bool reco) const;
+ int maxCells(int lay, bool reco) const;
+ int maxCells(float h, float bl, float tl, float alpha,
+ float cellSize) const;
+ int maxRows(int lay, bool reco) const;
+ std::pair newCell(int cell, int layer, int sector, int subsector,
+ int incrx, int incry, bool half) const;
+ std::pair newCell(int cell, int layer, int subsector, int incrz,
+ bool half) const;
+ int newCell(int kx, int ky, int lay, int subSec) const;
+ std::vector numberCells(int lay, bool reco) const;
+ std::vector numberCells(float h, float bl, float tl, float alpha,
+ float cellSize) const;
+ int sectors() const {return nSectors;}
+ std::pair simToReco(int cell, int layer, bool half) const;
+
+ std::vector::const_iterator getFirstModule(bool reco=false) const { return (reco ? moduler_.begin() : modules_.begin()); }
+ std::vector::const_iterator getLastModule(bool reco=false) const { return (reco ? moduler_.end() : modules_.end()); }
+ std::vector::const_iterator getFirstTrForm() const { return trform_.begin(); }
+ std::vector::const_iterator getLastTrForm() const { return trform_.end(); }
+
+private:
+ void initialize(const DDCompactView& cpv, std::string name);
+ void loadGeometry(const DDFilteredView& fv, const std::string& tag);
+ void loadSpecPars(const DDFilteredView& fv);
+ std::vector getDDDArray(const std::string &,
+ const DDsvalues_type &, int &) const;
+ std::pair getIndex(int lay, bool reco) const;
+
+ int nCells, nSectors, nLayers;
+ std::vector cellSize_;
+ std::vector modules_, moduler_;
+ std::vector trform_;
+ std::vector layer_, layerIndex;
+ std::vector layerGroup_, cellFactor_, depth_, depthIndex;
+};
+
+#endif
diff --git a/Geometry/HGCalCommonData/plugins/BuildFile.xml b/Geometry/HGCalCommonData/plugins/BuildFile.xml
new file mode 100644
index 0000000000000..0be58bb4faf37
--- /dev/null
+++ b/Geometry/HGCalCommonData/plugins/BuildFile.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/plugins/DDHGCalEEAlgo.cc b/Geometry/HGCalCommonData/plugins/DDHGCalEEAlgo.cc
new file mode 100644
index 0000000000000..4380578fe7c54
--- /dev/null
+++ b/Geometry/HGCalCommonData/plugins/DDHGCalEEAlgo.cc
@@ -0,0 +1,189 @@
+///////////////////////////////////////////////////////////////////////////////
+// File: DDHGCalEEAlgo.cc
+// Description: Geometry factory class for HGCal (EE)
+///////////////////////////////////////////////////////////////////////////////
+
+#include
+#include
+
+#include "FWCore/MessageLogger/interface/MessageLogger.h"
+#include "DetectorDescription/Base/interface/DDutils.h"
+#include "DetectorDescription/Core/interface/DDLogicalPart.h"
+#include "DetectorDescription/Core/interface/DDSolid.h"
+#include "DetectorDescription/Core/interface/DDMaterial.h"
+#include "DetectorDescription/Core/interface/DDCurrentNamespace.h"
+#include "DetectorDescription/Core/interface/DDSplit.h"
+#include "Geometry/HGCalCommonData/plugins/DDHGCalEEAlgo.h"
+#include "CLHEP/Units/GlobalPhysicalConstants.h"
+#include "CLHEP/Units/GlobalSystemOfUnits.h"
+
+DDHGCalEEAlgo::DDHGCalEEAlgo() {
+ edm::LogInfo("HGCalGeom") << "DDHGCalEEAlgo info: Creating an instance";
+}
+
+DDHGCalEEAlgo::~DDHGCalEEAlgo() {}
+
+void DDHGCalEEAlgo::initialize(const DDNumericArguments & nArgs,
+ const DDVectorArguments & vArgs,
+ const DDMapArguments & ,
+ const DDStringArguments & sArgs,
+ const DDStringVectorArguments &vsArgs){
+
+ materials = vsArgs["MaterialNames"];
+ names = vsArgs["VolumeNames"];
+ thick = vArgs["Thickness"];
+ rotstr = sArgs["Rotation"];
+ layerType = dbl_to_int(vArgs["LayerType"]);
+ heightType = dbl_to_int(vArgs["HeightType"]);
+ thickBlock = vArgs["LayerThick"];
+ zMinBlock = nArgs["zMinBlock"];
+ for (unsigned int i=0; i> Constructing DDHGCalEEAlgo...";
+ constructLayers (parent(), cpv);
+ edm::LogInfo("HGCalGeom") << "<<== End of DDHGCalEEAlgo construction ...";
+}
+
+void DDHGCalEEAlgo::constructLayers(DDLogicalPart module, DDCompactView& cpv) {
+
+ edm::LogInfo("HGCalGeom") << "DDHGCalEEAlgo test: \t\tInside Layers";
+
+ ///////////////////////////////////////////////////////////////
+ //Pointers to the Rotation Matrices and to the Materials
+ DDRotation rot(DDName(DDSplit(rotstr).first, DDSplit(rotstr).second));
+
+ double zi(zMinBlock), zz(zMinBlock);
+ for (unsigned int i=0; i
+#include
+#include
+#include "DetectorDescription/Base/interface/DDTypes.h"
+#include "DetectorDescription/Algorithm/interface/DDAlgorithm.h"
+
+class DDHGCalEEAlgo : public DDAlgorithm {
+
+public:
+ //Constructor and Destructor
+ DDHGCalEEAlgo(); //const std::string & name);
+ virtual ~DDHGCalEEAlgo();
+
+ struct HGCalEEPar {
+ double yh1, bl1, tl1, yh2, bl2, tl2, alp, theta, phi, xpos, ypos, zpos;
+ HGCalEEPar(double yh1v=0, double bl1v=0, double tl1v=0, double yh2v=0,
+ double bl2v=0, double tl2v=0, double alpv=0, double thv=0,
+ double fiv=0, double x=0, double y=0, double z=0) :
+ yh1(yh1v), bl1(bl1v), tl1(tl1v), yh2(yh2v), bl2(bl2v), tl2(tl2v),
+ alp(alpv), theta(thv), phi(fiv), xpos(x), ypos(y), zpos(z) {}
+ };
+ void initialize(const DDNumericArguments & nArgs,
+ const DDVectorArguments & vArgs,
+ const DDMapArguments & mArgs,
+ const DDStringArguments & sArgs,
+ const DDStringVectorArguments & vsArgs);
+ void execute(DDCompactView& cpv);
+
+protected:
+
+ void constructLayers (DDLogicalPart, DDCompactView& cpv);
+ HGCalEEPar parameterLayer(double rinF, double routF, double rinB,
+ double routB, double zi, double zo);
+ double rMax(double z);
+
+private:
+
+ std::vector materials; //Materials
+ std::vector names; //Names
+ std::string rotstr; //Rotation matrix to place in mother
+ std::vector layerType; //Type of the layer
+ std::vector heightType; //Height to be evaluated from itself
+ std::vector copyNumber; //Copy number offsets for a section
+ std::vector thick; //Thickness of the material
+ std::vector thickBlock; //Thickness of a block of materials
+ double zMinBlock; //Starting z-value of the block
+ int sectors; //Sectors
+ double slopeB; //Slope at the lower R
+ std::vector slopeT; //Slopes at the larger R
+ std::vector zFront; //Starting Z values for the slopes
+ std::vector rMaxFront; //Corresponding rMax's
+ std::string idName; //Name of the "parent" volume.
+ std::string idNameSpace; //Namespace of this and ALL sub-parts
+};
+
+#endif
diff --git a/Geometry/HGCalCommonData/plugins/DDHGCalHEAlgo.cc b/Geometry/HGCalCommonData/plugins/DDHGCalHEAlgo.cc
new file mode 100644
index 0000000000000..946897c4c6443
--- /dev/null
+++ b/Geometry/HGCalCommonData/plugins/DDHGCalHEAlgo.cc
@@ -0,0 +1,241 @@
+///////////////////////////////////////////////////////////////////////////////
+// File: DDHGCalHEAlgo.cc
+// Description: Geometry factory class for HGCal (EE)
+///////////////////////////////////////////////////////////////////////////////
+
+#include
+#include
+
+#include "FWCore/MessageLogger/interface/MessageLogger.h"
+#include "DetectorDescription/Base/interface/DDutils.h"
+#include "DetectorDescription/Core/interface/DDLogicalPart.h"
+#include "DetectorDescription/Core/interface/DDSolid.h"
+#include "DetectorDescription/Core/interface/DDMaterial.h"
+#include "DetectorDescription/Core/interface/DDCurrentNamespace.h"
+#include "DetectorDescription/Core/interface/DDSplit.h"
+#include "Geometry/HGCalCommonData/plugins/DDHGCalHEAlgo.h"
+#include "CLHEP/Units/GlobalPhysicalConstants.h"
+#include "CLHEP/Units/GlobalSystemOfUnits.h"
+
+DDHGCalHEAlgo::DDHGCalHEAlgo() {
+ edm::LogInfo("HGCalGeom") << "DDHGCalHEAlgo info: Creating an instance";
+}
+
+DDHGCalHEAlgo::~DDHGCalHEAlgo() {}
+
+void DDHGCalHEAlgo::initialize(const DDNumericArguments & nArgs,
+ const DDVectorArguments & vArgs,
+ const DDMapArguments & ,
+ const DDStringArguments & sArgs,
+ const DDStringVectorArguments &vsArgs){
+
+ materials = vsArgs["MaterialNames"];
+ names = vsArgs["VolumeNames"];
+ thick = vArgs["Thickness"];
+ type = dbl_to_int(vArgs["Type"]);
+ copyNumber = dbl_to_int(vArgs["Offsets"]);
+ zMinBlock = vArgs["ZMinType"];
+ rotstr = sArgs["Rotation"];
+ layerType = dbl_to_int(vArgs["LayerType"]);
+ heightType = dbl_to_int(vArgs["HeightType"]);
+ thickModule = nArgs["ThickModule"];
+ edm::LogInfo("HGCalGeom") << "DDHGCalHEAlgo: " << materials.size()
+ << " volumes to be put with rotation " << rotstr
+ << " in " << layerType.size() << " layers and "
+ << "module thickness " << thickModule;
+ for (unsigned int i=0; i> Constructing DDHGCalHEAlgo...";
+ constructLayers (parent(), cpv);
+ edm::LogInfo("HGCalGeom") << "<<== End of DDHGCalHEAlgo construction ...";
+}
+
+void DDHGCalHEAlgo::constructLayers(DDLogicalPart module, DDCompactView& cpv) {
+
+ edm::LogInfo("HGCalGeom") << "DDHGCalHEAlgo test: \t\tInside Layers";
+
+ ///////////////////////////////////////////////////////////////
+ //Pointers to the Rotation Matrices and to the Materials
+ DDRotation rot(DDName(DDSplit(rotstr).first, DDSplit(rotstr).second));
+
+ double zz(zMinBlock[0]);
+ for (unsigned int i=0; i2) zlayer = zz + thickModule;
+
+ double zo = zi + thick[ii];
+ double rinF = zi * slopeB;
+ double rinB = zlayer * slopeB;
+
+ double routF = (heightType[i] == 0) ? rMax(zi) : rMax(zz);
+ if((i % 6)>2) routF = (heightType[i] == 0) ? rMax(zi-thickModule) : rMax(zz-thickModule);
+
+ double routB = rMax(zo);
+ std::string name = "HGCal"+names[ii]+dbl_to_string(copy);
+ edm::LogInfo("HGCalGeom") << "DDHGCalEEAlgo test: Layer " << i << ":"
+ << ii << ":" << ityp << " Front " << zi << ", "
+ << rinF << ", " << routF << " Back " << zo
+ << ", " << rinB << ", " << routB;
+ DDHGCalHEAlgo::HGCalHEPar parm = (ityp == 0) ?
+ parameterLayer(rinF, routF, rinB, routB, zi, zo) :
+ parameterLayer(ityp, rinF, routF, rinB, routB, zi, zo);
+ DDSolid solid = DDSolidFactory::trap(DDName(name, idNameSpace),
+ 0.5*thick[ii], parm.theta,
+ parm.phi, parm.yh1, parm.bl1,
+ parm.tl1, parm.alp, parm.yh2,
+ parm.bl2, parm.tl2, parm.alp);
+
+ DDName matName(DDSplit(materials[ii]).first,
+ DDSplit(materials[ii]).second);
+ DDMaterial matter(matName);
+ DDLogicalPart glog = DDLogicalPart(solid.ddname(), matter, solid);
+ edm::LogInfo("HGCalGeom") << "DDHGCalHEAlgo test: "
+ << solid.name() << " Trap made of " << matName
+ << " of dimensions " << 0.5*thick[ii] << ", "
+ << parm.theta/CLHEP::deg << ", "
+ << parm.phi/CLHEP::deg << ", " << parm.yh1
+ << ", " << parm.bl1 << ", " << parm.tl1
+ << ", " << parm.alp/CLHEP::deg << ", "
+ << parm.yh2 << ", " << parm.bl2 << ", "
+ << parm.tl2 << ", " << parm.alp/CLHEP::deg;
+ DDTranslation r1(parm.xpos, parm.ypos, parm.zpos);
+ cpv.position(glog, module, copy, r1, rot);
+ edm::LogInfo("HGCalGeom") << "DDHGCalHEAlgo test: " << glog.name()
+ << " number " << copy << " positioned in "
+ << module.name() << " at " << r1 << " with "
+ << rot;
+ } // End of loop on layers
+}
+
+
+DDHGCalHEAlgo::HGCalHEPar
+DDHGCalHEAlgo::parameterLayer(double rinF, double routF, double rinB,
+ double routB, double zi, double zo) {
+
+ DDHGCalHEAlgo::HGCalHEPar parm;
+ //Given rin, rout compute parameters of the trapezoid and
+ //position of the trapezoid for a standrd layer
+ double alpha = CLHEP::pi/sectors;
+ double rout = routF;
+ edm::LogInfo("HGCalGeom") << "Input: Front " << rinF << " " << routF << " "
+ << zi << " Back " << rinB << " " << routB << " "
+ << zo << " Alpha " << alpha/CLHEP::deg << " Rout "
+ << rout;
+
+ parm.yh2 = parm.yh1 = 0.5 * (rout*cos(alpha) - rinB);
+ parm.bl2 = parm.bl1 = rinB * tan(alpha);
+ parm.tl2 = parm.tl1 = rout * sin(alpha);
+ parm.xpos = 0.5*(rout*cos(alpha)+rinB);
+ parm.ypos = 0.0;
+ parm.zpos = 0.5*(zi+zo);
+ parm.alp = parm.theta = parm.phi = 0;
+ edm::LogInfo("HGCalGeom") << "Output Dimensions " << parm.yh1 << " "
+ << parm.bl1 << " " << parm.tl1 << " " << parm.yh2
+ << " " << parm.bl2 << " " << parm.tl2 << " "
+ << parm.alp/CLHEP::deg <<" "< 0) {
+ parm.ypos = -parm.ypos;
+ } else {
+ parm.alp = -parm.alp;
+ dx = -dx;
+ }
+ double r = sqrt (dx*dx + dy*dy);
+ edm::LogInfo("HGCalGeom") << "dx|dy|r " << dx << ":" << dy << ":" << r;
+ if (r > 1.0e-8) {
+ parm.theta = atan (r/(zo-zi));
+ parm.phi = atan2 (dy, dx);
+ } else {
+ parm.theta = parm.phi = 0;
+ }
+ edm::LogInfo("HGCalGeom") << "Output Dimensions " << parm.yh1 << " "
+ << parm.bl1 << " " << parm.tl1 << " " << parm.yh2
+ << " " << parm.bl2 << " " << parm.tl2 << " "
+ << parm.alp/CLHEP::deg <<" " <
+#include
+#include
+#include "DetectorDescription/Base/interface/DDTypes.h"
+#include "DetectorDescription/Algorithm/interface/DDAlgorithm.h"
+
+class DDHGCalHEAlgo : public DDAlgorithm {
+
+public:
+ //Constructor and Destructor
+ DDHGCalHEAlgo(); //const std::string & name);
+ virtual ~DDHGCalHEAlgo();
+
+ struct HGCalHEPar {
+ double yh1, bl1, tl1, yh2, bl2, tl2, alp, theta, phi, xpos, ypos, zpos;
+ HGCalHEPar(double yh1v=0, double bl1v=0, double tl1v=0, double yh2v=0,
+ double bl2v=0, double tl2v=0, double alpv=0, double thv=0,
+ double fiv=0, double x=0, double y=0, double z=0) :
+ yh1(yh1v), bl1(bl1v), tl1(tl1v), yh2(yh2v), bl2(bl2v), tl2(tl2v),
+ alp(alpv), theta(thv), phi(fiv), xpos(x), ypos(y), zpos(z) {}
+ };
+ void initialize(const DDNumericArguments & nArgs,
+ const DDVectorArguments & vArgs,
+ const DDMapArguments & mArgs,
+ const DDStringArguments & sArgs,
+ const DDStringVectorArguments & vsArgs);
+ void execute(DDCompactView& cpv);
+
+protected:
+
+ void constructLayers (DDLogicalPart, DDCompactView& cpv);
+ HGCalHEPar parameterLayer(double rinF, double routF, double rinB,
+ double routB, double zi, double zo);
+ HGCalHEPar parameterLayer(int type, double rinF, double routF, double rinB,
+ double routB, double zi, double zo);
+ double rMax(double z);
+
+private:
+
+ std::vector materials; //Materials
+ std::vector names; //Names
+ std::string rotstr; //Rotation matrix to place in mother
+ std::vector copyNumber; //Copy number offsets for a section
+ std::vector thick; //Thickness of the materials
+ std::vector type; //Type of the module
+ std::vector zMinBlock; //Starting z-value for each type
+ std::vector layerType; //Type of the layer
+ std::vector heightType; //Height to be evaluated from itself
+ double thickModule; //Thickness of a module
+ int sectors; //Sectors
+ double slopeB; //Slope at the lower R
+ std::vector slopeT; //Slopes at the larger R
+ std::vector zFront; //Starting Z values for the slopes
+ std::vector rMaxFront; //Corresponding rMax's
+
+ std::string idName; //Name of the "parent" volume.
+ std::string idNameSpace; //Namespace of this and ALL sub-parts
+};
+
+#endif
diff --git a/Geometry/HGCalCommonData/plugins/DDHGCalNoTaperEndcap.cc b/Geometry/HGCalCommonData/plugins/DDHGCalNoTaperEndcap.cc
new file mode 100644
index 0000000000000..851053cc671ee
--- /dev/null
+++ b/Geometry/HGCalCommonData/plugins/DDHGCalNoTaperEndcap.cc
@@ -0,0 +1,146 @@
+#include
+#include
+#include
+
+#include "FWCore/MessageLogger/interface/MessageLogger.h"
+#include "DetectorDescription/Base/interface/DDutils.h"
+#include "DetectorDescription/Core/interface/DDSolid.h"
+#include "DetectorDescription/Core/interface/DDMaterial.h"
+#include "DetectorDescription/Core/interface/DDCurrentNamespace.h"
+#include "DetectorDescription/Core/interface/DDSplit.h"
+#include "DetectorDescription/Core/interface/DDLogicalPart.h"
+#include "Geometry/HGCalCommonData/plugins/DDHGCalNoTaperEndcap.h"
+#include "CLHEP/Units/GlobalPhysicalConstants.h"
+#include "CLHEP/Units/GlobalSystemOfUnits.h"
+
+//#define DebugLog
+
+DDHGCalNoTaperEndcap::DDHGCalNoTaperEndcap() {
+ edm::LogInfo("HGCalGeom") << "DDHGCalNoTaperEndcap test: Creating an instance";
+}
+
+DDHGCalNoTaperEndcap::~DDHGCalNoTaperEndcap() {}
+
+void DDHGCalNoTaperEndcap::initialize(const DDNumericArguments & nArgs,
+ const DDVectorArguments & vArgs,
+ const DDMapArguments & ,
+ const DDStringArguments & sArgs,
+ const DDStringVectorArguments & ) {
+ m_tiltAngle = nArgs["tiltAngle"];
+ m_invert = int( nArgs["invert"] );
+ m_rMin = int( nArgs["rMin"] );
+ m_rMax = int( nArgs["rMax"] );
+ m_zoffset = nArgs["zoffset"];
+ m_xyoffset = nArgs["xyoffset"];
+ m_n = int( nArgs["n"] );
+ m_startCopyNo = int( nArgs["startCopyNo"] );
+ m_incrCopyNo = int( nArgs["incrCopyNo"] );
+ m_childName = sArgs["ChildName"];
+ m_idNameSpace = DDCurrentNamespace::ns();
+ edm::LogInfo("HGCalGeom") << "DDHGCalNoTaperEndcap: NameSpace " << m_idNameSpace
+ << "\tParent " << parent().name();
+}
+
+void DDHGCalNoTaperEndcap::execute( DDCompactView& cpv ) {
+ int lastCopyNo = m_startCopyNo;
+ lastCopyNo = createQuarter( cpv, 1, 1, lastCopyNo );
+ lastCopyNo = createQuarter( cpv, -1, 1, lastCopyNo );
+ lastCopyNo = createQuarter( cpv, -1, -1, lastCopyNo );
+ lastCopyNo = createQuarter( cpv, 1, -1, lastCopyNo );
+}
+
+int
+DDHGCalNoTaperEndcap::createQuarter( DDCompactView& cpv, int xQuadrant, int yQuadrant, int startCopyNo ) {
+ int copyNo = startCopyNo;
+ double tiltAngle = m_tiltAngle;
+ double xphi = xQuadrant*tiltAngle;
+ double yphi = yQuadrant*tiltAngle;
+ double theta = 90.*CLHEP::deg;
+ double phiX = 0.0;
+ double phiY = theta;
+ double phiZ = 3*theta;
+ double offsetZ = m_zoffset;
+ double offsetXY = m_xyoffset;
+
+ double offsetX = xQuadrant*0.5*offsetXY;
+ double offsetY = yQuadrant*0.5*offsetXY;
+
+#ifdef DebugLog
+ int rowmax(0), column(0);
+#endif
+ while (abs(offsetX) < m_rMax) {
+#ifdef DebugLog
+ column++;
+ int row(0);
+#endif
+ while (abs(offsetY) < m_rMax) {
+#ifdef DebugLog
+ row++;
+#endif
+ double limit1 = sqrt((offsetX+0.5*xQuadrant*offsetXY)*
+ (offsetX+0.5*xQuadrant*offsetXY) +
+ (offsetY+0.5*yQuadrant*offsetXY)*
+ (offsetY+0.5*yQuadrant*offsetXY) );
+ double limit2 = sqrt((offsetX-0.5*xQuadrant*offsetXY)*
+ (offsetX-0.5*xQuadrant*offsetXY) +
+ (offsetY-0.5*yQuadrant*offsetXY)*
+ (offsetY-0.5*yQuadrant*offsetXY) );
+ // Make sure we do not add supermodules in rMin area
+ if (limit2 > m_rMin && limit1 < m_rMax) {
+#ifdef DebugLog
+ std::cout << m_childName << " copyNo = " << copyNo << " (" << column
+ << "," << row << "): offsetX,Y = " << offsetX << ","
+ << offsetY << " limit=" << limit1 << ":" << limit2
+ << " rMin, rMax = " << m_rMin << "," << m_rMax << std::endl;
+#endif
+ DDRotation rotation;
+ std::string rotstr( "NULL" );
+
+ // Check if we've already created the rotation matrix
+ rotstr = "R";
+ rotstr += dbl_to_string(copyNo);
+ rotation = DDRotation(DDName(rotstr));
+ if (!rotation) {
+ rotation = DDrot(DDName(rotstr, m_idNameSpace),
+ new DDRotationMatrix( *DDcreateRotationMatrix( theta, phiX, theta + yphi, phiY, -yphi, phiZ )
+ * ( *DDcreateRotationMatrix( theta + xphi, phiX, 90.*CLHEP::deg, 90.*CLHEP::deg, xphi, 0.0 ))));
+ }
+
+
+ DDTranslation tran(offsetX, offsetY, offsetZ);
+ edm::LogInfo("HGCalGeom") << "Module " << copyNo << ": location = "
+ << tran << " Rotation " << rotation;
+
+ DDName parentName = parent().name();
+ cpv.position(DDName(m_childName), parentName, copyNo, tran, rotation);
+
+ copyNo += m_incrCopyNo;
+ } else {
+#ifdef DebugLog
+ std::cout << " (" << column << "," << row << "): offsetX,Y = "
+ << offsetX << "," << offsetY << " is out of limit=" << limit1
+ << ":" << limit2 << " rMin, rMax = " << m_rMin << ","
+ << m_rMax << std::endl;
+#endif
+ }
+
+ yphi += yQuadrant*2.*tiltAngle;
+ offsetY += yQuadrant*offsetXY;
+
+ }
+#ifdef DebugLog
+ if (row > rowmax) rowmax = row;
+#endif
+ xphi += xQuadrant*2.*tiltAngle;
+ yphi = yQuadrant*tiltAngle;
+ offsetY = yQuadrant*0.5*offsetXY;
+ offsetX += xQuadrant*offsetXY;
+
+ }
+#ifdef DebugLog
+ std::cout << rowmax << " rows and " << column << " columns in quadrant "
+ << xQuadrant << ":" << yQuadrant << std::endl;
+#endif
+ return copyNo;
+}
+
diff --git a/Geometry/HGCalCommonData/plugins/DDHGCalNoTaperEndcap.h b/Geometry/HGCalCommonData/plugins/DDHGCalNoTaperEndcap.h
new file mode 100644
index 0000000000000..1d86f9aa9d4a5
--- /dev/null
+++ b/Geometry/HGCalCommonData/plugins/DDHGCalNoTaperEndcap.h
@@ -0,0 +1,41 @@
+#ifndef HGCalCommonData_DDHGCalNoTaperEndcap_h
+#define HGCalCommonData_DDHGCalNoTaperEndcap_h
+
+#include
+#include
+#include "DetectorDescription/Base/interface/DDTypes.h"
+#include "DetectorDescription/Algorithm/interface/DDAlgorithm.h"
+
+class DDHGCalNoTaperEndcap : public DDAlgorithm {
+
+public:
+ DDHGCalNoTaperEndcap( void );
+ virtual ~DDHGCalNoTaperEndcap( void );
+
+ void initialize( const DDNumericArguments & nArgs,
+ const DDVectorArguments & vArgs,
+ const DDMapArguments & mArgs,
+ const DDStringArguments & sArgs,
+ const DDStringVectorArguments & vsArgs );
+
+ void execute( DDCompactView& cpv );
+
+private:
+
+ int createQuarter( DDCompactView& cpv, int xQuadrant, int yQuadrant, int startCopyNo );
+
+ double m_startAngle; // Start angle
+ double m_tiltAngle; // Tilt angle
+ int m_invert; // Inverted or forward
+ double m_rMin; // Inner radius
+ double m_rMax; // Outer radius
+ double m_zoffset; // Offset in z
+ double m_xyoffset; // Offset in x or y
+ int m_n; // Mumber of copies
+ int m_startCopyNo; // Start copy Number
+ int m_incrCopyNo; // Increment copy Number
+ std::string m_childName; // Children name
+ std::string m_idNameSpace; // Namespace of this and ALL sub-parts
+};
+
+#endif
diff --git a/Geometry/HGCalCommonData/plugins/FastTimeNumberingInitialization.cc b/Geometry/HGCalCommonData/plugins/FastTimeNumberingInitialization.cc
new file mode 100644
index 0000000000000..655f9a4333dae
--- /dev/null
+++ b/Geometry/HGCalCommonData/plugins/FastTimeNumberingInitialization.cc
@@ -0,0 +1,78 @@
+// -*- C++ -*-
+//
+// Package: FastTimeNumberingInitialization
+// Class: FastTimeNumberingInitialization
+//
+/**\class FastTimeNumberingInitialization FastTimeNumberingInitialization.h Geometry/HGCalCommonData/interface/FastTimeNumberingInitialization.h
+
+ Description:
+
+ Implementation:
+
+*/
+//
+// Original Author: Sunanda Banerjee
+// Created: Tue Mar 21 16:40:29 PDT 2013
+// $Id: FastTimeNumberingInitialization.cc,v 1.0 2014/04/24 12:47:41 sunanda Exp $
+//
+//
+
+// system include files
+#include
+#include
+
+// user include files
+#include
+#include
+#include
+
+#include
+#include
+#include
+#include
+#include
+
+//#define DebugLog
+
+class FastTimeNumberingInitialization : public edm::ESProducer {
+
+public:
+ FastTimeNumberingInitialization(const edm::ParameterSet&);
+ ~FastTimeNumberingInitialization();
+
+ typedef std::auto_ptr ReturnType;
+
+ ReturnType produce(const IdealGeometryRecord&);
+
+private:
+ FastTimeDDDConstants* fastTimeDDDConst_;
+};
+
+FastTimeNumberingInitialization::FastTimeNumberingInitialization(const edm::ParameterSet& iConfig) : fastTimeDDDConst_(0) {
+#ifdef DebugLog
+ std::cout <<"constructing FastTimeNumberingInitialization" << std::endl;
+#endif
+ setWhatProduced(this);
+}
+
+
+FastTimeNumberingInitialization::~FastTimeNumberingInitialization() {}
+
+
+// ------------ method called to produce the data ------------
+FastTimeNumberingInitialization::ReturnType
+FastTimeNumberingInitialization::produce(const IdealGeometryRecord& iRecord) {
+#ifdef DebugLog
+ std::cout << "in FastTimeNumberingInitialization::produce" << std::endl;
+#endif
+ if (fastTimeDDDConst_ == 0) {
+ edm::ESTransientHandle pDD;
+ iRecord.get(pDD);
+ fastTimeDDDConst_ = new FastTimeDDDConstants(*pDD);
+ }
+ return std::auto_ptr (fastTimeDDDConst_) ;
+}
+
+//define this as a plug-in
+DEFINE_FWK_EVENTSETUP_MODULE(FastTimeNumberingInitialization);
+
diff --git a/Geometry/HGCalCommonData/plugins/HGCalNumberingInitialization.cc b/Geometry/HGCalCommonData/plugins/HGCalNumberingInitialization.cc
new file mode 100644
index 0000000000000..5c08aff74bdce
--- /dev/null
+++ b/Geometry/HGCalCommonData/plugins/HGCalNumberingInitialization.cc
@@ -0,0 +1,81 @@
+// -*- C++ -*-
+//
+// Package: HGCalNumberingInitialization
+// Class: HGCalNumberingInitialization
+//
+/**\class HGCalNumberingInitialization HGCalNumberingInitialization.h Geometry/HGCalCommonData/interface/HGCalNumberingInitialization.h
+
+ Description:
+
+ Implementation:
+
+*/
+//
+// Original Author: Sunanda Banerjee
+// Created: Tue Mar 21 16:40:29 PDT 2013
+// $Id: HGCalNumberingInitialization.cc,v 1.0 2013/12/24 12:47:41 sunanda Exp $
+//
+//
+
+
+// system include files
+#include
+#include
+
+// user include files
+#include
+#include
+#include
+
+#include
+#include
+#include
+#include
+#include
+
+//#define DebugLog
+
+class HGCalNumberingInitialization : public edm::ESProducer {
+
+public:
+ HGCalNumberingInitialization(const edm::ParameterSet&);
+ ~HGCalNumberingInitialization();
+
+ typedef std::auto_ptr ReturnType;
+
+ ReturnType produce(const IdealGeometryRecord&);
+
+private:
+ HGCalDDDConstants* hgcalDDDConst_;
+ std::string name_;
+};
+
+HGCalNumberingInitialization::HGCalNumberingInitialization(const edm::ParameterSet& iConfig) : hgcalDDDConst_(0) {
+ name_ = iConfig.getUntrackedParameter("Name");
+#ifdef DebugLog
+ std::cout <<"constructing HGCalNumberingInitialization for " << name_ << std::endl;
+#endif
+ setWhatProduced(this, name_);
+}
+
+
+HGCalNumberingInitialization::~HGCalNumberingInitialization() {}
+
+
+// ------------ method called to produce the data ------------
+HGCalNumberingInitialization::ReturnType
+HGCalNumberingInitialization::produce(const IdealGeometryRecord& iRecord) {
+#ifdef DebugLog
+ std::cout << "in HGCalNumberingInitialization::produce" << std::endl;
+#endif
+ if (hgcalDDDConst_ == 0) {
+ edm::ESTransientHandle pDD;
+ iRecord.get(pDD);
+ hgcalDDDConst_ = new HGCalDDDConstants(*pDD, name_);
+ }
+ return std::auto_ptr (hgcalDDDConst_) ;
+}
+
+//define this as a plug-in
+DEFINE_FWK_EVENTSETUP_MODULE(HGCalNumberingInitialization);
+
diff --git a/Geometry/HGCalCommonData/plugins/module.cc b/Geometry/HGCalCommonData/plugins/module.cc
new file mode 100644
index 0000000000000..ff2506dd57bc0
--- /dev/null
+++ b/Geometry/HGCalCommonData/plugins/module.cc
@@ -0,0 +1,8 @@
+#include "Geometry/HGCalCommonData/plugins/DDHGCalEEAlgo.h"
+#include "Geometry/HGCalCommonData/plugins/DDHGCalHEAlgo.h"
+#include "Geometry/HGCalCommonData/plugins/DDHGCalNoTaperEndcap.h"
+#include "DetectorDescription/Algorithm/interface/DDAlgorithmFactory.h"
+
+DEFINE_EDM_PLUGIN (DDAlgorithmFactory, DDHGCalEEAlgo, "hgcal:DDHGCalEEAlgo");
+DEFINE_EDM_PLUGIN (DDAlgorithmFactory, DDHGCalHEAlgo, "hgcal:DDHGCalHEAlgo");
+DEFINE_EDM_PLUGIN (DDAlgorithmFactory, DDHGCalNoTaperEndcap, "hgcal:DDHGCalNoTaperEndcap");
diff --git a/Geometry/HGCalCommonData/python/ecalhcalPhaseIIGeometryXML_cfi.py b/Geometry/HGCalCommonData/python/ecalhcalPhaseIIGeometryXML_cfi.py
new file mode 100644
index 0000000000000..3c807c4278beb
--- /dev/null
+++ b/Geometry/HGCalCommonData/python/ecalhcalPhaseIIGeometryXML_cfi.py
@@ -0,0 +1,60 @@
+import FWCore.ParameterSet.Config as cms
+
+XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource",
+ geomXMLFiles = cms.vstring('Geometry/CMSCommonData/data/materials.xml',
+ 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml',
+ 'Geometry/TrackerCommonData/data/trackermaterial.xml',
+ 'Geometry/CMSCommonData/data/rotations.xml',
+ "Geometry/HcalCommonData/data/hcalrotations.xml",
+ 'Geometry/CMSCommonData/data/normal/cmsextent.xml',
+ 'Geometry/CMSCommonData/data/cms.xml',
+ 'Geometry/CMSCommonData/data/cmsMother.xml',
+ 'Geometry/CMSCommonData/data/eta3/etaMax.xml',
+ 'Geometry/CMSCommonData/data/PhaseII/caloBase.xml',
+ 'Geometry/CMSCommonData/data/cmsCalo.xml',
+ 'Geometry/CMSCommonData/data/muonBase.xml',
+ 'Geometry/CMSCommonData/data/cmsMuon.xml',
+ 'Geometry/CMSCommonData/data/mgnt.xml',
+ 'Geometry/CMSCommonData/data/muonMB.xml',
+ 'Geometry/CMSCommonData/data/muonMagnet.xml',
+ 'Geometry/EcalCommonData/data/PhaseII/eregalgo.xml',
+ 'Geometry/EcalCommonData/data/ebalgo.xml',
+ 'Geometry/EcalCommonData/data/ebcon.xml',
+ 'Geometry/EcalCommonData/data/ebrot.xml',
+ 'Geometry/EcalCommonData/data/eecon.xml',
+ 'Geometry/EcalCommonData/data/ectkcable.xml',
+ 'Geometry/EcalCommonData/data/PhaseII/esalgo.xml',
+ 'Geometry/EcalCommonData/data/PhaseII/escon.xml',
+ 'Geometry/HcalCommonData/data/hcalrotations.xml',
+ 'Geometry/HcalCommonData/data/PhaseII/HGCal/hcalalgo.xml',
+ 'Geometry/HcalCommonData/data/PhaseII/HGCal/hcalendcapalgo.xml',
+ 'Geometry/HcalCommonData/data/hcalcablealgo.xml',
+ 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml',
+ 'Geometry/HcalCommonData/data/hcalouteralgo.xml',
+ 'Geometry/HcalCommonData/data/hcalforwardalgo.xml',
+ 'Geometry/HcalCommonData/data/hcalforwardfibre.xml',
+ 'Geometry/HcalCommonData/data/hcalforwardmaterial.xml',
+ 'Geometry/HGCalCommonData/data/v6/hgcal.xml',
+ 'Geometry/HGCalCommonData/data/v5/hgcalEE.xml',
+ 'Geometry/HGCalCommonData/data/v6/hgcalHEsil.xml',
+ 'Geometry/HGCalCommonData/data/v6/hgcalCons.xml',
+ 'Geometry/ForwardCommonData/data/v2/forwardshield.xml',
+ 'Geometry/ForwardCommonData/data/forward.xml',
+ 'Geometry/HcalSimData/data/CaloUtil.xml',
+ 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml',
+ 'Geometry/HcalCommonData/data/PhaseII/HGCal/hcalsenspmf.xml',
+ 'Geometry/HcalCommonData/data/PhaseII/HGCal/hcalSimNumbering.xml',
+ 'Geometry/HcalCommonData/data/PhaseII/HGCal/hcalRecNumbering.xml',
+ 'Geometry/HcalSimData/data/hf.xml',
+ 'Geometry/HcalSimData/data/hfpmt.xml',
+ 'Geometry/HcalSimData/data/hffibrebundle.xml',
+ 'Geometry/HGCalSimData/data/hgcsensv6.xml',
+ 'Geometry/HGCalSimData/data/hgccons.xml',
+ 'Geometry/HcalSimData/data/HcalProdCuts.xml',
+ 'Geometry/EcalSimData/data/EcalProdCuts.xml',
+ 'Geometry/HGCalSimData/data/hgcProdCuts.xml',
+ 'Geometry/CMSCommonData/data/FieldParameters.xml'),
+ rootNodeName = cms.string('cms:OCMS')
+)
+
+
diff --git a/Geometry/HGCalCommonData/python/hgcalNumberingInitialization_cfi.py b/Geometry/HGCalCommonData/python/hgcalNumberingInitialization_cfi.py
new file mode 100644
index 0000000000000..200ac28750f43
--- /dev/null
+++ b/Geometry/HGCalCommonData/python/hgcalNumberingInitialization_cfi.py
@@ -0,0 +1,13 @@
+import FWCore.ParameterSet.Config as cms
+
+hgcalEENumberingInitialize = cms.ESProducer("HGCalNumberingInitialization",
+ Name = cms.untracked.string("HGCalEESensitive")
+)
+
+hgcalHESiNumberingInitialize = cms.ESProducer("HGCalNumberingInitialization",
+ Name = cms.untracked.string("HGCalHESiliconSensitive")
+)
+
+hgcalHEScNumberingInitialize = cms.ESProducer("HGCalNumberingInitialization",
+ Name = cms.untracked.string("HGCalHEScintillatorSensitive")
+)
diff --git a/Geometry/HGCalCommonData/python/hgcalV6NumberingInitialization_cfi.py b/Geometry/HGCalCommonData/python/hgcalV6NumberingInitialization_cfi.py
new file mode 100644
index 0000000000000..b99817c2caf29
--- /dev/null
+++ b/Geometry/HGCalCommonData/python/hgcalV6NumberingInitialization_cfi.py
@@ -0,0 +1,10 @@
+import FWCore.ParameterSet.Config as cms
+
+hgcalEENumberingInitialize = cms.ESProducer("HGCalNumberingInitialization",
+ Name = cms.untracked.string("HGCalEESensitive")
+)
+
+hgcalHESiNumberingInitialize = cms.ESProducer("HGCalNumberingInitialization",
+ Name = cms.untracked.string("HGCalHESiliconSensitive")
+)
+
diff --git a/Geometry/HGCalCommonData/python/testGeometryExtended_cff.py b/Geometry/HGCalCommonData/python/testGeometryExtended_cff.py
new file mode 100644
index 0000000000000..694b3ae36322d
--- /dev/null
+++ b/Geometry/HGCalCommonData/python/testGeometryExtended_cff.py
@@ -0,0 +1,5 @@
+import FWCore.ParameterSet.Config as cms
+
+from Geometry.HGCalCommonData.testHGCalXML_cfi import *
+from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import *
+from Geometry.HcalCommonData.hcalDDConstants_cff import *
diff --git a/Geometry/HGCalCommonData/python/testHGCalXML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalXML_cfi.py
new file mode 100644
index 0000000000000..ce32c079e820f
--- /dev/null
+++ b/Geometry/HGCalCommonData/python/testHGCalXML_cfi.py
@@ -0,0 +1,290 @@
+import FWCore.ParameterSet.Config as cms
+
+## 2015 + new phase 1 pixel detector
+
+XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource",
+ geomXMLFiles = cms.vstring('Geometry/CMSCommonData/data/materials.xml',
+ 'Geometry/CMSCommonData/data/rotations.xml',
+ 'Geometry/CMSCommonData/data/extend/cmsextent.xml',
+ 'Geometry/CMSCommonData/data/PhaseI/cms.xml',
+ 'Geometry/CMSCommonData/data/eta3/etaMax.xml',
+ 'Geometry/CMSCommonData/data/cmsMother.xml',
+ 'Geometry/CMSCommonData/data/cmsTracker.xml',
+ 'Geometry/CMSCommonData/data/PhaseII/caloBase.xml',
+ 'Geometry/CMSCommonData/data/cmsCalo.xml',
+ 'Geometry/CMSCommonData/data/PhaseII/muonBase.xml',
+ 'Geometry/CMSCommonData/data/cmsMuon.xml',
+ 'Geometry/CMSCommonData/data/mgnt.xml',
+ 'Geometry/CMSCommonData/data/PhaseI/beampipe.xml',
+ 'Geometry/CMSCommonData/data/cmsBeam.xml',
+ 'Geometry/CMSCommonData/data/muonMB.xml',
+ 'Geometry/CMSCommonData/data/muonMagnet.xml',
+ 'Geometry/CMSCommonData/data/cavern.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/trackerParameters.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/pixfwdMaterials.xml',
+ 'Geometry/TrackerCommonData/data/pixfwdCommon.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/pixfwdCylinder.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/pixfwd.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/pixfwdDisks.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/pixfwdInnerDisk1.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/pixfwdInnerDisk2.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/pixfwdInnerDisk3.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/pixfwdOuterDisk1.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/pixfwdOuterDisk2.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/pixfwdOuterDisk3.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/pixfwdblade1.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/pixfwdblade2.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/pixfwdblade3.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/pixbarmaterial.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/pixbarladder.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/pixbarladderfull0.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/pixbarladderfull1.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/pixbarladderfull2.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/pixbarladderfull3.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/pixbarlayer.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/pixbarlayer0.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/pixbarlayer1.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/pixbarlayer2.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/pixbarlayer3.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/pixbar.xml',
+ 'Geometry/TrackerCommonData/data/tibtidcommonmaterial.xml',
+ 'Geometry/TrackerCommonData/data/tibmaterial.xml',
+ 'Geometry/TrackerCommonData/data/tibmodpar.xml',
+ 'Geometry/TrackerCommonData/data/tibmodule0.xml',
+ 'Geometry/TrackerCommonData/data/tibmodule0a.xml',
+ 'Geometry/TrackerCommonData/data/tibmodule0b.xml',
+ 'Geometry/TrackerCommonData/data/tibmodule2.xml',
+ 'Geometry/TrackerCommonData/data/tibstringpar.xml',
+ 'Geometry/TrackerCommonData/data/tibstring0ll.xml',
+ 'Geometry/TrackerCommonData/data/tibstring0lr.xml',
+ 'Geometry/TrackerCommonData/data/tibstring0ul.xml',
+ 'Geometry/TrackerCommonData/data/tibstring0ur.xml',
+ 'Geometry/TrackerCommonData/data/tibstring0.xml',
+ 'Geometry/TrackerCommonData/data/tibstring1ll.xml',
+ 'Geometry/TrackerCommonData/data/tibstring1lr.xml',
+ 'Geometry/TrackerCommonData/data/tibstring1ul.xml',
+ 'Geometry/TrackerCommonData/data/tibstring1ur.xml',
+ 'Geometry/TrackerCommonData/data/tibstring1.xml',
+ 'Geometry/TrackerCommonData/data/tibstring2ll.xml',
+ 'Geometry/TrackerCommonData/data/tibstring2lr.xml',
+ 'Geometry/TrackerCommonData/data/tibstring2ul.xml',
+ 'Geometry/TrackerCommonData/data/tibstring2ur.xml',
+ 'Geometry/TrackerCommonData/data/tibstring2.xml',
+ 'Geometry/TrackerCommonData/data/tibstring3ll.xml',
+ 'Geometry/TrackerCommonData/data/tibstring3lr.xml',
+ 'Geometry/TrackerCommonData/data/tibstring3ul.xml',
+ 'Geometry/TrackerCommonData/data/tibstring3ur.xml',
+ 'Geometry/TrackerCommonData/data/tibstring3.xml',
+ 'Geometry/TrackerCommonData/data/tiblayerpar.xml',
+ 'Geometry/TrackerCommonData/data/tiblayer0.xml',
+ 'Geometry/TrackerCommonData/data/tiblayer1.xml',
+ 'Geometry/TrackerCommonData/data/tiblayer2.xml',
+ 'Geometry/TrackerCommonData/data/tiblayer3.xml',
+ 'Geometry/TrackerCommonData/data/tib.xml',
+ 'Geometry/TrackerCommonData/data/tidmaterial.xml',
+ 'Geometry/TrackerCommonData/data/tidmodpar.xml',
+ 'Geometry/TrackerCommonData/data/tidmodule0.xml',
+ 'Geometry/TrackerCommonData/data/tidmodule0r.xml',
+ 'Geometry/TrackerCommonData/data/tidmodule0l.xml',
+ 'Geometry/TrackerCommonData/data/tidmodule1.xml',
+ 'Geometry/TrackerCommonData/data/tidmodule1r.xml',
+ 'Geometry/TrackerCommonData/data/tidmodule1l.xml',
+ 'Geometry/TrackerCommonData/data/tidmodule2.xml',
+ 'Geometry/TrackerCommonData/data/tidringpar.xml',
+ 'Geometry/TrackerCommonData/data/tidring0.xml',
+ 'Geometry/TrackerCommonData/data/tidring0f.xml',
+ 'Geometry/TrackerCommonData/data/tidring0b.xml',
+ 'Geometry/TrackerCommonData/data/tidring1.xml',
+ 'Geometry/TrackerCommonData/data/tidring1f.xml',
+ 'Geometry/TrackerCommonData/data/tidring1b.xml',
+ 'Geometry/TrackerCommonData/data/tidring2.xml',
+ 'Geometry/TrackerCommonData/data/tid.xml',
+ 'Geometry/TrackerCommonData/data/tidf.xml',
+ 'Geometry/TrackerCommonData/data/tidb.xml',
+ 'Geometry/TrackerCommonData/data/tibtidservices.xml',
+ 'Geometry/TrackerCommonData/data/tibtidservicesf.xml',
+ 'Geometry/TrackerCommonData/data/tibtidservicesb.xml',
+ 'Geometry/TrackerCommonData/data/tobmaterial.xml',
+ 'Geometry/TrackerCommonData/data/tobmodpar.xml',
+ 'Geometry/TrackerCommonData/data/tobmodule0.xml',
+ 'Geometry/TrackerCommonData/data/tobmodule2.xml',
+ 'Geometry/TrackerCommonData/data/tobmodule4.xml',
+ 'Geometry/TrackerCommonData/data/tobrodpar.xml',
+ 'Geometry/TrackerCommonData/data/tobrod0c.xml',
+ 'Geometry/TrackerCommonData/data/tobrod0l.xml',
+ 'Geometry/TrackerCommonData/data/tobrod0h.xml',
+ 'Geometry/TrackerCommonData/data/tobrod0.xml',
+ 'Geometry/TrackerCommonData/data/tobrod1l.xml',
+ 'Geometry/TrackerCommonData/data/tobrod1h.xml',
+ 'Geometry/TrackerCommonData/data/tobrod1.xml',
+ 'Geometry/TrackerCommonData/data/tobrod2c.xml',
+ 'Geometry/TrackerCommonData/data/tobrod2l.xml',
+ 'Geometry/TrackerCommonData/data/tobrod2h.xml',
+ 'Geometry/TrackerCommonData/data/tobrod2.xml',
+ 'Geometry/TrackerCommonData/data/tobrod3l.xml',
+ 'Geometry/TrackerCommonData/data/tobrod3h.xml',
+ 'Geometry/TrackerCommonData/data/tobrod3.xml',
+ 'Geometry/TrackerCommonData/data/tobrod4c.xml',
+ 'Geometry/TrackerCommonData/data/tobrod4l.xml',
+ 'Geometry/TrackerCommonData/data/tobrod4h.xml',
+ 'Geometry/TrackerCommonData/data/tobrod4.xml',
+ 'Geometry/TrackerCommonData/data/tobrod5l.xml',
+ 'Geometry/TrackerCommonData/data/tobrod5h.xml',
+ 'Geometry/TrackerCommonData/data/tobrod5.xml',
+ 'Geometry/TrackerCommonData/data/tob.xml',
+ 'Geometry/TrackerCommonData/data/tecmaterial.xml',
+ 'Geometry/TrackerCommonData/data/tecmodpar.xml',
+ 'Geometry/TrackerCommonData/data/tecmodule0.xml',
+ 'Geometry/TrackerCommonData/data/tecmodule0r.xml',
+ 'Geometry/TrackerCommonData/data/tecmodule0s.xml',
+ 'Geometry/TrackerCommonData/data/tecmodule1.xml',
+ 'Geometry/TrackerCommonData/data/tecmodule1r.xml',
+ 'Geometry/TrackerCommonData/data/tecmodule1s.xml',
+ 'Geometry/TrackerCommonData/data/tecmodule2.xml',
+ 'Geometry/TrackerCommonData/data/tecmodule3.xml',
+ 'Geometry/TrackerCommonData/data/tecmodule4.xml',
+ 'Geometry/TrackerCommonData/data/tecmodule4r.xml',
+ 'Geometry/TrackerCommonData/data/tecmodule4s.xml',
+ 'Geometry/TrackerCommonData/data/tecmodule5.xml',
+ 'Geometry/TrackerCommonData/data/tecmodule6.xml',
+ 'Geometry/TrackerCommonData/data/tecpetpar.xml',
+ 'Geometry/TrackerCommonData/data/tecring0.xml',
+ 'Geometry/TrackerCommonData/data/tecring1.xml',
+ 'Geometry/TrackerCommonData/data/tecring2.xml',
+ 'Geometry/TrackerCommonData/data/tecring3.xml',
+ 'Geometry/TrackerCommonData/data/tecring4.xml',
+ 'Geometry/TrackerCommonData/data/tecring5.xml',
+ 'Geometry/TrackerCommonData/data/tecring6.xml',
+ 'Geometry/TrackerCommonData/data/tecring0f.xml',
+ 'Geometry/TrackerCommonData/data/tecring1f.xml',
+ 'Geometry/TrackerCommonData/data/tecring2f.xml',
+ 'Geometry/TrackerCommonData/data/tecring3f.xml',
+ 'Geometry/TrackerCommonData/data/tecring4f.xml',
+ 'Geometry/TrackerCommonData/data/tecring5f.xml',
+ 'Geometry/TrackerCommonData/data/tecring6f.xml',
+ 'Geometry/TrackerCommonData/data/tecring0b.xml',
+ 'Geometry/TrackerCommonData/data/tecring1b.xml',
+ 'Geometry/TrackerCommonData/data/tecring2b.xml',
+ 'Geometry/TrackerCommonData/data/tecring3b.xml',
+ 'Geometry/TrackerCommonData/data/tecring4b.xml',
+ 'Geometry/TrackerCommonData/data/tecring5b.xml',
+ 'Geometry/TrackerCommonData/data/tecring6b.xml',
+ 'Geometry/TrackerCommonData/data/tecpetalf.xml',
+ 'Geometry/TrackerCommonData/data/tecpetalb.xml',
+ 'Geometry/TrackerCommonData/data/tecpetal0.xml',
+ 'Geometry/TrackerCommonData/data/tecpetal0f.xml',
+ 'Geometry/TrackerCommonData/data/tecpetal0b.xml',
+ 'Geometry/TrackerCommonData/data/tecpetal3.xml',
+ 'Geometry/TrackerCommonData/data/tecpetal3f.xml',
+ 'Geometry/TrackerCommonData/data/tecpetal3b.xml',
+ 'Geometry/TrackerCommonData/data/tecpetal6f.xml',
+ 'Geometry/TrackerCommonData/data/tecpetal6b.xml',
+ 'Geometry/TrackerCommonData/data/tecpetal8f.xml',
+ 'Geometry/TrackerCommonData/data/tecpetal8b.xml',
+ 'Geometry/TrackerCommonData/data/tecwheel.xml',
+ 'Geometry/TrackerCommonData/data/tecwheela.xml',
+ 'Geometry/TrackerCommonData/data/tecwheelb.xml',
+ 'Geometry/TrackerCommonData/data/tecwheelc.xml',
+ 'Geometry/TrackerCommonData/data/tecwheeld.xml',
+ 'Geometry/TrackerCommonData/data/tecwheel6.xml',
+ 'Geometry/TrackerCommonData/data/tecservices.xml',
+ 'Geometry/TrackerCommonData/data/tecbackplate.xml',
+ 'Geometry/TrackerCommonData/data/tec.xml',
+ 'Geometry/TrackerCommonData/data/trackermaterial.xml',
+ 'Geometry/TrackerCommonData/data/tracker.xml',
+ 'Geometry/TrackerCommonData/data/trackerpixbar.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/trackerpixfwd.xml',
+ 'Geometry/TrackerCommonData/data/trackertibtidservices.xml',
+ 'Geometry/TrackerCommonData/data/trackertib.xml',
+ 'Geometry/TrackerCommonData/data/trackertid.xml',
+ 'Geometry/TrackerCommonData/data/trackertob.xml',
+ 'Geometry/TrackerCommonData/data/trackertec.xml',
+ 'Geometry/TrackerCommonData/data/trackerbulkhead.xml',
+ 'Geometry/TrackerCommonData/data/trackerother.xml',
+ 'Geometry/EcalCommonData/data/ectkcable.xml',
+ 'Geometry/EcalCommonData/data/PhaseII/eregalgo.xml',
+ 'Geometry/EcalCommonData/data/ebalgo.xml',
+ 'Geometry/EcalCommonData/data/ebcon.xml',
+ 'Geometry/EcalCommonData/data/ebrot.xml',
+ 'Geometry/EcalCommonData/data/eecon.xml',
+ 'Geometry/EcalCommonData/data/PhaseII/escon.xml',
+ 'Geometry/EcalCommonData/data/PhaseII/esalgo.xml',
+ 'Geometry/HcalCommonData/data/hcalrotations.xml',
+ 'Geometry/HcalCommonData/data/PhaseII/NoHE/hcalalgo.xml',
+ 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml',
+ 'Geometry/HcalCommonData/data/hcalouteralgo.xml',
+ 'Geometry/HcalCommonData/data/hcalforwardalgo.xml',
+ 'Geometry/HcalCommonData/data/PhaseII/NoHE/hcalSimNumbering.xml',
+ 'Geometry/HcalCommonData/data/PhaseII/NoHE/hcalRecNumbering.xml',
+ 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml',
+ 'Geometry/HGCalCommonData/data/v5/hgcal.xml',
+ 'Geometry/HGCalCommonData/data/v5/hgcalEE.xml',
+ 'Geometry/HGCalCommonData/data/v5/hgcalHEsil.xml',
+ 'Geometry/HGCalCommonData/data/v5/hgcalHEsci.xml',
+ 'Geometry/HGCalCommonData/data/v5/hgcalCons.xml',
+ 'Geometry/MuonCommonData/data/v1/mbCommon.xml',
+ 'Geometry/MuonCommonData/data/v1/mb1.xml',
+ 'Geometry/MuonCommonData/data/v1/mb2.xml',
+ 'Geometry/MuonCommonData/data/v1/mb3.xml',
+ 'Geometry/MuonCommonData/data/v1/mb4.xml',
+ 'Geometry/MuonCommonData/data/design/muonYoke.xml',
+ 'Geometry/MuonCommonData/data/PhaseII/mf.xml',
+ 'Geometry/MuonCommonData/data/PhaseII/rpcf.xml',
+ 'Geometry/MuonCommonData/data/v2/gemf.xml',
+ 'Geometry/MuonCommonData/data/v4/gem11.xml',
+ 'Geometry/MuonCommonData/data/v6/gem21.xml',
+ 'Geometry/MuonCommonData/data/v2/csc.xml',
+ 'Geometry/MuonCommonData/data/PhaseII/mfshield.xml',
+ 'Geometry/MuonCommonData/data/PhaseII/me0.xml',
+ 'Geometry/ForwardCommonData/data/forward.xml',
+ 'Geometry/ForwardCommonData/data/v2/forwardshield.xml',
+ 'Geometry/ForwardCommonData/data/brmrotations.xml',
+ 'Geometry/ForwardCommonData/data/brm.xml',
+ 'Geometry/ForwardCommonData/data/totemMaterials.xml',
+ 'Geometry/ForwardCommonData/data/totemRotations.xml',
+ 'Geometry/ForwardCommonData/data/totemt1.xml',
+ 'Geometry/ForwardCommonData/data/totemt2.xml',
+ 'Geometry/ForwardCommonData/data/ionpump.xml',
+ 'Geometry/ForwardCommonData/data/castor.xml',
+ 'Geometry/ForwardCommonData/data/zdcmaterials.xml',
+ 'Geometry/ForwardCommonData/data/lumimaterials.xml',
+ 'Geometry/ForwardCommonData/data/zdcrotations.xml',
+ 'Geometry/ForwardCommonData/data/lumirotations.xml',
+ 'Geometry/ForwardCommonData/data/zdc.xml',
+ 'Geometry/ForwardCommonData/data/zdclumi.xml',
+ 'Geometry/ForwardCommonData/data/cmszdc.xml')+cms.vstring(
+ 'Geometry/MuonCommonData/data/PhaseII/muonNumbering.xml',
+ 'Geometry/TrackerCommonData/data/PhaseI/trackerStructureTopology.xml',
+ 'Geometry/TrackerSimData/data/PhaseI/trackersens.xml',
+ 'Geometry/TrackerRecoData/data/PhaseI/trackerRecoMaterial.xml',
+ 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml',
+ 'Geometry/HcalCommonData/data/PhaseII/NoHE/hcalsenspmf.xml',
+ 'Geometry/HcalSimData/data/hf.xml',
+ 'Geometry/HcalSimData/data/hfpmt.xml',
+ 'Geometry/HcalSimData/data/hffibrebundle.xml',
+ 'Geometry/HcalSimData/data/CaloUtil.xml',
+ 'Geometry/HGCalSimData/data/hgcsens.xml',
+ 'Geometry/HGCalSimData/data/hgccons.xml',
+ 'Geometry/HGCalSimData/data/hgcProdCuts.xml',
+ 'Geometry/MuonSimData/data/PhaseII/muonSens.xml',
+ 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml',
+ 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml',
+ 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml',
+ 'Geometry/RPCGeometryBuilder/data/RPCSpecs.xml',
+ 'Geometry/GEMGeometryBuilder/data/v5/GEMSpecs.xml',
+ 'Geometry/ForwardCommonData/data/brmsens.xml',
+ 'Geometry/ForwardSimData/data/castorsens.xml',
+ 'Geometry/ForwardSimData/data/zdcsens.xml',
+ 'Geometry/HcalSimData/data/HcalProdCuts.xml',
+ 'Geometry/EcalSimData/data/EcalProdCuts.xml',
+ 'Geometry/TrackerSimData/data/PhaseI/trackerProdCuts.xml',
+ 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml',
+ 'Geometry/MuonSimData/data/PhaseII/muonProdCuts.xml',
+ 'Geometry/ForwardSimData/data/CastorProdCuts.xml',
+ 'Geometry/ForwardSimData/data/zdcProdCuts.xml',
+ 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml',
+ 'Geometry/CMSCommonData/data/FieldParameters.xml'),
+ rootNodeName = cms.string('cms:OCMS')
+)
+
+
diff --git a/Geometry/HGCalCommonData/src/FastTimeDDDConstants.cc b/Geometry/HGCalCommonData/src/FastTimeDDDConstants.cc
new file mode 100644
index 0000000000000..2f3a5475cf19a
--- /dev/null
+++ b/Geometry/HGCalCommonData/src/FastTimeDDDConstants.cc
@@ -0,0 +1,250 @@
+#include "Geometry/HGCalCommonData/interface/FastTimeDDDConstants.h"
+
+#include "FWCore/MessageLogger/interface/MessageLogger.h"
+#include "FWCore/Utilities/interface/Exception.h"
+
+#include "DetectorDescription/Base/interface/DDutils.h"
+#include "DetectorDescription/Core/interface/DDValue.h"
+#include "DetectorDescription/Core/interface/DDFilter.h"
+#include "DetectorDescription/Core/interface/DDSolid.h"
+#include "DetectorDescription/Core/interface/DDFilteredView.h"
+#include "CLHEP/Units/GlobalPhysicalConstants.h"
+#include "CLHEP/Units/GlobalSystemOfUnits.h"
+
+//#define DebugLog
+
+FastTimeDDDConstants::FastTimeDDDConstants(const DDCompactView& cpv) {
+
+#ifdef DebugLog
+ edm::LogInfo("HGCalGeom") << "FastTimeDDDConstants::FastTimeDDDConstants ( const DDCompactView& cpv ) constructor";
+#endif
+ initialize(cpv);
+
+}
+
+FastTimeDDDConstants::~FastTimeDDDConstants() {
+#ifdef DebugLog
+ std::cout << "FastTimeDDDConstants:destructed!!!" << std::endl;
+#endif
+}
+
+int FastTimeDDDConstants::computeCells() const {
+
+ int copy(0);
+#ifdef DebugLog
+ int column(0), rowmax(0);
+#endif
+ double offsetX (0), offsetY(0);
+ while (offsetX < rOut) {
+#ifdef DebugLog
+ column++;
+ int row(0);
+#endif
+ while (offsetY rIn && limit1 < rOut) copy++;
+ offsetY += cellSize;
+ }
+#ifdef DebugLog
+ if (row > rowmax) rowmax = row;
+#endif
+ offsetY = 0;
+ offsetX += cellSize;
+ }
+#ifdef DebugLog
+ std::cout << rowmax << " rows and " << column << " columns with total of "
+ << copy << " cells in a quadrant " << std::endl;
+#endif
+ return 4*copy;
+}
+
+std::pair FastTimeDDDConstants::getXY(int copy) const {
+
+ int iq = quadrant(copy);
+ if (iq != 0) {
+ int ism = copy - (iq-1)*nCells;
+ int jx(0), jy(0);
+ for (unsigned int k=0; k= firstCell[k] && ism <= lastCell[k]) {
+ jx = k + 1;
+ jy = ism - firstCell[k] + firstY[k];
+ break;
+ }
+ }
+ int ix = (iq == 1 || iq == 4) ? (jx + nCols) : (nCols+1-jx);
+ int iy = (iq == 1 || iq == 2) ? (jy + nRows) : (nRows+1-jy);
+ return std::pair(ix,iy);
+ } else {
+ return std::pair(0,0);
+ }
+}
+
+std::pair FastTimeDDDConstants::getXY(double x, double y) const {
+
+ int jx = floor(fabs(x)/cellSize);
+ int jy = floor(fabs(y)/cellSize);
+ int iq(0);
+ if (x < 0) {
+ if (y < 0) iq = 3;
+ else iq = 2;
+ } else {
+ if (y < 0) iq = 4;
+ else iq = 1;
+ }
+ int ix = (iq == 1 || iq == 4) ? (jx + nCols) : (nCols+1-jx);
+ int iy = (iq == 1 || iq == 2) ? (jy + nRows) : (nRows+1-jy);
+ if (isValidXY(ix,iy)) {
+ return std::pair(ix,iy);
+ } else {
+ return std::pair(0,0);
+ }
+}
+
+bool FastTimeDDDConstants::isValidXY(int ix, int iy) const {
+ int iq = quadrant(ix,iy);
+ if (iq != 0) {
+ int kx = (iq == 1 || iq == 4) ? (ix-nCols) : (nCols-1-ix);
+ int ky = (iq == 1 || iq == 2) ? (iy-nRows) : (nRows-1-iy);
+ bool ok = (ky+1 >= firstY[kx] && ky+1 <= lastY[kx]);
+ return ok;
+ } else {
+ return false;
+ }
+}
+
+bool FastTimeDDDConstants::isValidCell(int copy) const {
+ bool ok = (copy > 0 && copy <= getCells());
+ return ok;
+}
+
+int FastTimeDDDConstants::quadrant(int ix, int iy) const {
+ int iq(0);
+ if (ix>nCols && ix<=2*nCols) {
+ if (iy>nRows && iy<=2*nRows) iq = 1;
+ else if (iy>0 && iy<=nRows) iq = 4;
+ } else if (ix>0 && ix<=nCols) {
+ if (iy>nRows && iy<=2*nRows) iq = 2;
+ else if (iy>0 && iy<=nRows) iq = 3;
+ }
+ return iq;
+}
+
+int FastTimeDDDConstants::quadrant(int copy) const {
+ int iq(0);
+ if (copy > 4*nCells) {
+ } else if (copy > 3*nCells) {
+ iq = 4;
+ } else if (copy > 2*nCells) {
+ iq = 3;
+ } else if (copy > nCells) {
+ iq = 2;
+ } else if (copy > 0) {
+ iq = 1;
+ }
+ return iq;
+}
+
+void FastTimeDDDConstants::initialize(const DDCompactView& cpv) {
+
+ std::string attribute = "Volume";
+ std::string value = "SFBX";
+ DDValue val(attribute, value, 0.0);
+
+ DDSpecificsFilter filter;
+ filter.setCriteria(val, DDCompOp::equals);
+ DDFilteredView fv(cpv);
+ fv.addFilter(filter);
+ bool ok = fv.firstChild();
+
+ if (ok) {
+ loadSpecPars(fv);
+ } else {
+ edm::LogError("HGCalGeom") << "FastTimeDDDConstants: cannot get filtered"
+ << " view for " << attribute
+ << " not matching " << value;
+ throw cms::Exception("DDException") << "FastTimeDDDConstants: cannot match " << attribute << " to " << value;
+ }
+}
+
+void FastTimeDDDConstants::loadSpecPars(const DDFilteredView& fv) {
+
+ DDsvalues_type sv(fv.mergedSpecifics());
+
+ // First and Last Row number in each column
+ firstY = dbl_to_int(getDDDArray("firstRow",sv));
+ lastY = dbl_to_int(getDDDArray("lastRow", sv));
+ if (firstY.size() != lastY.size()) {
+ edm::LogError("HGCalGeom") << "FastTimeDDDConstants: unequal numbers "
+ << firstY.size() << ":" << lastY.size()
+ << " elements for first and last rows";
+ throw cms::Exception("DDException") << "FastTimeDDDConstants: wrong array sizes for first/last Row";
+ }
+
+ nCells = 0;
+ nCols = (int)(firstY.size());
+ nRows = 0;
+ for (int k=0; k nRows) nRows = lastY[k];
+ }
+
+#ifdef DebugLog
+ std::cout << "FastTimeDDDConstants: nCells = " << nCells << ", nRow = "
+ << 2*nRows << ", nColumns = " << 2*nCols << std::endl;
+ for (int k=0; k gpar = getDDDArray("geomPars",sv);
+ if (gpar.size() < 3) {
+ edm::LogError("HGCalGeom") << "FastTimeDDDConstants: too few "
+ << gpar.size() << " elements for gpar";
+ throw cms::Exception("DDException") << "FastTimeDDDConstants: wrong array sizes for gpar";
+ }
+ rIn = gpar[0];
+ rOut = gpar[1];
+ cellSize = gpar[2];
+#ifdef DebugLog
+ std::cout << "FastTimeDDDConstants: cellsize " << cellSize << " in region "
+ << rIn << ":" << rOut << std::endl;
+#endif
+
+ gpar = getDDDArray("geomType",sv);
+ cellType = int(gpar[0]);
+#ifdef DebugLog
+ std::cout << "FastTimeDDDConstants: cell type " << cellType << std::endl;
+#endif
+}
+
+std::vector FastTimeDDDConstants::getDDDArray(const std::string & str,
+ const DDsvalues_type & sv) const {
+
+#ifdef DebugLog
+ std::cout << "FastTimeDDDConstants:getDDDArray called for " << str << std::endl;
+#endif
+ DDValue value(str);
+ if (DDfetch(&sv,value)) {
+#ifdef DebugLog
+ std::cout << "FastTimeDDDConstants: " << value << std::endl;
+#endif
+ const std::vector & fvec = value.doubles();
+ int nval = fvec.size();
+ if (nval > 0) return fvec;
+ }
+ edm::LogError("HGCalGeom") << "FastTimeDDDConstants: cannot get array "
+ << str;
+ throw cms::Exception("DDException") << "FastTimeDDDConstants: cannot get array " << str;
+}
+
+#include "FWCore/Utilities/interface/typelookup.h"
+
+TYPELOOKUP_DATA_REG(FastTimeDDDConstants);
diff --git a/Geometry/HGCalCommonData/src/HGCalDDDConstants.cc b/Geometry/HGCalCommonData/src/HGCalDDDConstants.cc
new file mode 100644
index 0000000000000..c7e52cef5ae34
--- /dev/null
+++ b/Geometry/HGCalCommonData/src/HGCalDDDConstants.cc
@@ -0,0 +1,644 @@
+#include "Geometry/HGCalCommonData/interface/HGCalDDDConstants.h"
+
+#include "FWCore/MessageLogger/interface/MessageLogger.h"
+#include "FWCore/Utilities/interface/Exception.h"
+
+#include "DetectorDescription/Base/interface/DDutils.h"
+#include "DetectorDescription/Core/interface/DDValue.h"
+#include "DetectorDescription/Core/interface/DDFilter.h"
+#include "DetectorDescription/Core/interface/DDSolid.h"
+#include "DetectorDescription/Core/interface/DDFilteredView.h"
+#include "CLHEP/Units/GlobalPhysicalConstants.h"
+#include "CLHEP/Units/GlobalSystemOfUnits.h"
+
+//#define DebugLog
+
+const double k_ScaleFromDDD = 0.1;
+const double k_horizontalShift = 1.0;
+
+HGCalDDDConstants::HGCalDDDConstants(const DDCompactView& cpv,
+ std::string& nam) {
+ initialize(cpv, nam);
+#ifdef DebugLog
+ std::cout << "HGCalDDDConstants for " << nam << " initialized with "
+ << layers(false) << ":" << layers(true) << " layers and "
+ << sectors() << " sectors and maximum of " << maxCells(false)
+ << ":" << maxCells(true) << " cells" << std::endl;
+#endif
+}
+
+HGCalDDDConstants::~HGCalDDDConstants() {}
+
+std::pair HGCalDDDConstants::assignCell(float x, float y, int lay,
+ int subSec, bool reco) const {
+
+ std::pair index = getIndex(lay, reco);
+ int i = index.first;
+ if (i < 0) return std::pair(-1,-1);
+ float alpha, h, bl, tl;
+
+ //set default values
+ std::pair cellAssignment( (x>0)?1:0, -1 );
+ if (reco) {
+ h = moduler_[i].h;
+ bl = moduler_[i].bl;
+ tl = moduler_[i].tl;
+ alpha= moduler_[i].alpha;
+ if ((subSec>0 && alpha<0) || (subSec<=0 && alpha>0)) alpha = -alpha;
+ cellAssignment=assignCell(x, y, h, bl, tl, alpha, index.second);
+ } else {
+ h = modules_[i].h;
+ bl = modules_[i].bl;
+ tl = modules_[i].tl;
+ alpha= modules_[i].alpha;
+ cellAssignment=assignCell(x, y, h, bl, tl, alpha, index.second);
+ }
+
+ return cellAssignment;
+}
+
+std::pair HGCalDDDConstants::assignCell(float x, float y, float h,
+ float bl,float tl,float alpha,
+ float cellSize) const {
+
+ float a = (alpha==0) ? (2*h/(tl-bl)) : (h/(tl-bl));
+ float b = 2*h*bl/(tl-bl);
+
+ float x0(x);
+ int phiSector = (x0 > 0) ? 1 : 0;
+ if (alpha < 0) {x0 -= 0.5*(tl+bl); phiSector = 0;}
+ else if (alpha > 0) {x0 += 0.5*(tl+bl); phiSector = 1;}
+
+
+ //determine the i-y
+ int ky = floor((y+h)/cellSize);
+ if( ky*cellSize> y+h) ky--;
+ if(ky<0) return std::pair(-1,-1);
+ if( (ky+1)*cellSize < (y+h) ) ky++;
+ int max_ky_allowed=floor(2*h/cellSize);
+ if(ky>max_ky_allowed-1) return std::pair(-1,-1);
+
+ //determine the i-x
+ //notice we substitute y by the top of the candidate cell to reduce the dead zones
+ int kx = floor(fabs(x0)/cellSize);
+ if( kx*cellSize > fabs(x0) ) kx--;
+ if(kx<0) return std::pair(-1,-1);
+ if( (kx+1)*cellSize < fabs(x0) ) kx++;
+ int max_kx_allowed=floor( ((ky+1)*cellSize+b+k_horizontalShift*cellSize)/(a*cellSize) );
+ if(kx>max_kx_allowed-1) return std::pair(-1,-1);
+
+ //count cells summing in rows until required height
+ //notice the bottom of the cell must be used
+ int icell(0);
+ for (int iky=0; iky(phiSector,icell);
+}
+
+std::pair HGCalDDDConstants::findCell(int cell, int lay, int subSec,
+ bool reco) const {
+
+ std::pair index = getIndex(lay, reco);
+ int i = index.first;
+ if (i < 0) return std::pair(-1,-1);
+ float alpha, h, bl, tl;
+ if (reco) {
+ h = moduler_[i].h;
+ bl = moduler_[i].bl;
+ tl = moduler_[i].tl;
+ alpha= moduler_[i].alpha;
+ if ((subSec>0 && alpha<0) || (subSec<=0 && alpha>0)) alpha = -alpha;
+ } else {
+ h = modules_[i].h;
+ bl = modules_[i].bl;
+ tl = modules_[i].tl;
+ alpha= modules_[i].alpha;
+ }
+ return findCell(cell, h, bl, tl, alpha, index.second);
+}
+
+std::pair HGCalDDDConstants::findCell(int cell, float h, float bl,
+ float tl, float alpha,
+ float cellSize) const {
+
+ //check if cell number is meaningful
+ if(cell<0) return std::pair(-1,-1);
+
+ //parameterization of the boundary of the trapezoid
+ float a = (alpha==0) ? (2*h/(tl-bl)) : (h/(tl-bl));
+ float b = 2*h*bl/(tl-bl);
+ int kx(cell), ky(0);
+ int kymax( floor((2*h)/cellSize) );
+ int testCell(0);
+ for (int iky=0; iky cell) break;
+ testCell += cellsInRow;
+ ky++;
+ kx -= cellsInRow;
+ }
+
+ return std::pair(kx,ky);
+}
+
+bool HGCalDDDConstants::isValid(int lay, int mod, int cell, bool reco) const {
+
+ bool ok = ((lay > 0 && lay <= (int)(layers(reco))) &&
+ (mod > 0 && mod <= sectors()) &&
+ (cell >=0 && cell <= maxCells(lay,reco)));
+
+#ifdef DebugLog
+ if (!ok) std::cout << "HGCalDDDConstants: Layer " << lay << ":"
+ << (lay > 0 && (lay <= (int)(layers(reco)))) << " Module "
+ << mod << ":" << (mod > 0 && mod <= sectors()) << " Cell "
+ << cell << ":" << (cell >=0 && cell <= maxCells(lay,reco))
+ << ":" << maxCells(reco) << std::endl;
+#endif
+ return ok;
+}
+
+std::pair HGCalDDDConstants::locateCell(int cell, int lay,
+ int subSec, bool reco) const {
+
+ std::pair index = getIndex(lay, reco);
+ int i = index.first;
+ if (i < 0) return std::pair(999999.,999999.);
+ std::pair kxy = findCell(cell, lay, subSec, reco);
+ float alpha, h, bl, tl;
+ if (reco) {
+ h = moduler_[i].h;
+ bl = moduler_[i].bl;
+ tl = moduler_[i].tl;
+ alpha= moduler_[i].alpha;
+ if ((subSec>0 && alpha<0) || (subSec<=0 && alpha>0)) alpha = -alpha;
+ } else {
+ h = modules_[i].h;
+ bl = modules_[i].bl;
+ tl = modules_[i].tl;
+ alpha= modules_[i].alpha;
+ }
+ float cellSize = index.second;
+ float x = (kxy.first+0.5)*cellSize;
+ if (alpha < 0) x -= 0.5*(tl+bl);
+ else if (alpha > 0) x -= 0.5*(tl+bl);
+ if (subSec != 1) x = -x;
+ float y = ((kxy.second+0.5)*cellSize-h);
+ return std::pair(x,y);
+}
+
+int HGCalDDDConstants::maxCells(bool reco) const {
+
+ int cells(0);
+ for (unsigned int i = 0; i index = getIndex(lay, reco);
+ int i = index.first;
+ if (i < 0) return 0;
+ float h, bl, tl, alpha;
+ if (reco) {
+ h = moduler_[i].h;
+ bl = moduler_[i].bl;
+ tl = moduler_[i].tl;
+ alpha= moduler_[i].alpha;
+ } else {
+ h = modules_[i].h;
+ bl = modules_[i].bl;
+ tl = modules_[i].tl;
+ alpha= modules_[i].alpha;
+ }
+ return maxCells(h, bl, tl, alpha, index.second);
+}
+
+int HGCalDDDConstants::maxCells(float h, float bl, float tl, float alpha,
+ float cellSize) const {
+
+ float a = (alpha==0) ? (2*h/(tl-bl)) : (h/(tl-bl));
+ float b = 2*h*bl/(tl-bl);
+
+ int ncells(0);
+ //always use the top of the cell to maximize space
+ int kymax = floor((2*h)/cellSize);
+ for (int iky=0; iky index = getIndex(lay, reco);
+ int i = index.first;
+ if (i < 0) return 0;
+ float h = (reco) ? moduler_[i].h : modules_[i].h;
+ int kymax = floor((2*h)/index.second);
+ return kymax;
+}
+
+std::pair HGCalDDDConstants::newCell(int cell, int layer, int sector,
+ int subsector, int incrx,
+ int incry, bool half) const {
+
+ int subSec = half ? subsector : 0;
+ std::pair kxy = findCell(cell, layer, subSec, true);
+ int kx = kxy.first + incrx;
+ int ky = kxy.second + incry;
+ if (ky < 0 || ky > maxRows(layer, true)) {
+ cell = maxCells(true);
+ return std::pair(cell,sector*subsector);
+ } else if (kx < 0) {
+ kx =-kx;
+ subsector =-subsector;
+ } else if (kx > maxCells(layer, true)) {
+ kx -= maxCells(layer, true);
+ sector += subsector;
+ subsector =-subsector;
+ if (sector < 1) sector = nSectors;
+ else if (sector > nSectors) sector = 1;
+ }
+ cell = newCell(kx, ky, layer, subSec);
+ return std::pair(cell,sector*subsector);
+}
+
+std::pair HGCalDDDConstants::newCell(int cell, int lay, int subsector,
+ int incrz, bool half) const {
+
+ int layer = lay + incrz;
+ if (layer <= 0 || layer > (int)(layers(true))) return std::pair(cell,0);
+ int subSec = half ? subsector : 0;
+ std::pair xy = locateCell(cell, lay, subSec, true);
+ std::pair kcell = assignCell(xy.first, xy.second, layer, subSec,
+ true);
+ return std::pair(kcell.second,layer);
+}
+
+int HGCalDDDConstants::newCell(int kx, int ky, int lay, int subSec) const {
+
+ std::pair index = getIndex(lay, true);
+ int i = index.first;
+ if (i < 0) return maxCells(true);
+ float alpha = (subSec == 0) ? modules_[i].alpha : subSec;
+ float cellSize = index.second;
+ float a = (alpha==0) ?
+ (2*moduler_[i].h/(moduler_[i].tl-moduler_[i].bl)) :
+ (moduler_[i].h/(moduler_[i].tl-moduler_[i].bl));
+ float b = 2*moduler_[i].h*moduler_[i].bl/
+ (moduler_[i].tl-moduler_[i].bl);
+ int icell(kx);
+ for (int iky=0; iky HGCalDDDConstants::numberCells(int lay, bool reco) const {
+
+ std::pair index = getIndex(lay, reco);
+ int i = index.first;
+ if (i >= 0) {
+ float h, bl, tl, alpha;
+ if (reco) {
+ h = moduler_[i].h;
+ bl = moduler_[i].bl;
+ tl = moduler_[i].tl;
+ alpha= moduler_[i].alpha;
+ } else {
+ h = modules_[i].h;
+ bl = modules_[i].bl;
+ tl = modules_[i].tl;
+ alpha= modules_[i].alpha;
+ }
+ return numberCells(h, bl, tl, alpha, index.second);
+ } else {
+ std::vector ncell;
+ return ncell;
+ }
+}
+
+std::vector HGCalDDDConstants::numberCells(float h, float bl,
+ float tl, float alpha,
+ float cellSize) const {
+
+ float a = (alpha==0) ? (2*h/(tl-bl)) : (h/(tl-bl));
+ float b = 2*h*bl/(tl-bl);
+ int kymax = floor((2*h)/cellSize);
+ std::vector ncell;
+ for (int iky=0; iky HGCalDDDConstants::simToReco(int cell, int lay,
+ bool half) const {
+
+ std::pair index = getIndex(lay, false);
+ int i = index.first;
+ if (i < 0) return std::pair(-1,-1);
+ float h = modules_[i].h;
+ float bl = modules_[i].bl;
+ float tl = modules_[i].tl;
+ float cellSize = cellFactor_[i]*index.second;
+
+ std::pair kxy = findCell(cell, h, bl, tl, modules_[i].alpha, index.second);
+ int depth = layerGroup_[i];
+ if(depth<0) return std::pair(-1,-1);
+ int kx = kxy.first/cellFactor_[i];
+ int ky = kxy.second/cellFactor_[i];
+
+ float a = (half) ? (h/(tl-bl)) : (2*h/(tl-bl));
+ float b = 2*h*bl/(tl-bl);
+ for (int iky=0; iky trforms;
+
+ while (dodet) {
+ // DDTranslation t = fv.translation();
+ const DDSolid & sol = fv.logicalPart().solid();
+ std::string name = sol.name();
+ int isd = (name.find(sdTag) == std::string::npos) ? -1 : 1;
+ if (isd > 0) {
+ std::vector copy = fv.copyNumbers();
+ int nsiz = (int)(copy.size());
+ int lay = (nsiz > 0) ? copy[nsiz-1] : -1;
+ int sec = (nsiz > 1) ? copy[nsiz-2] : -1;
+ int zp = (nsiz > 3) ? copy[nsiz-4] : -1;
+ if (zp !=1 ) zp = -1;
+ if (first) {first = false; zpFirst = zp;}
+ const DDTrap & trp = static_cast(sol);
+ HGCalDDDConstants::hgtrap mytr(lay,trp.x1(),trp.x2(),
+ 0.5*(trp.y1()+trp.y2()),
+ trp.halfZ(),trp.alpha1());
+ int subs = (trp.alpha1()>0 ? 1 : 0);
+ if (std::find(layer_.begin(),layer_.end(),lay) == layer_.end()) {
+ for (unsigned int k=0; k 0) {
+ trform_.back().h3v /= nz;
+ }
+ }
+ }
+ }
+#ifdef DebugLog
+ std::cout << "Obtained " << trform_.size() << " transformation matrices"
+ << std::endl;
+ for (unsigned int k=0; k HGCalDDDConstants::getDDDArray(const std::string & str,
+ const DDsvalues_type & sv,
+ int & nmin) const {
+ DDValue value(str);
+ if (DDfetch(&sv,value)) {
+ const std::vector & fvec = value.doubles();
+ int nval = fvec.size();
+ if (nmin > 0) {
+ if (nval < nmin) {
+ edm::LogError("HGCalGeom") << "HGCalDDDConstants : # of " << str
+ << " bins " << nval << " < " << nmin
+ << " ==> illegal";
+ throw cms::Exception("DDException") << "HGCalDDDConstants: cannot get array " << str;
+ }
+ } else {
+ if (nval < 1 && nmin == 0) {
+ edm::LogError("HGCalGeom") << "HGCalDDDConstants : # of " << str
+ << " bins " << nval << " < 2 ==> illegal"
+ << " (nmin=" << nmin << ")";
+ throw cms::Exception("DDException") << "HGCalDDDConstants: cannot get array " << str;
+ }
+ }
+ nmin = nval;
+ return fvec;
+ } else {
+ if (nmin >= 0) {
+ edm::LogError("HGCalGeom") << "HGCalDDDConstants: cannot get array "
+ << str;
+ throw cms::Exception("DDException") << "HGCalDDDConstants: cannot get array " << str;
+ }
+ std::vector fvec;
+ nmin = 0;
+ return fvec;
+ }
+}
+
+std::pair HGCalDDDConstants::getIndex(int lay, bool reco) const {
+
+ if (lay<1 || lay>(int)(layerIndex.size())) return std::pair(-1,0);
+ if (reco && lay>(int)(depthIndex.size())) return std::pair(-1,0);
+ int i = (reco ? depthIndex[lay-1] : layerIndex[lay-1]);
+ float cell = (reco ? moduler_[i].cellSize : modules_[i].cellSize);
+ return std::pair(i,cell);
+}
+
+#include "FWCore/Utilities/interface/typelookup.h"
+
+TYPELOOKUP_DATA_REG(HGCalDDDConstants);
diff --git a/Geometry/HGCalCommonData/test/BuildFile.xml b/Geometry/HGCalCommonData/test/BuildFile.xml
new file mode 100644
index 0000000000000..d701a2cb03b3e
--- /dev/null
+++ b/Geometry/HGCalCommonData/test/BuildFile.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/test/FastTimeNumberingTester.cc b/Geometry/HGCalCommonData/test/FastTimeNumberingTester.cc
new file mode 100644
index 0000000000000..b385cd9a19fa0
--- /dev/null
+++ b/Geometry/HGCalCommonData/test/FastTimeNumberingTester.cc
@@ -0,0 +1,112 @@
+// -*- C++ -*-
+//
+// Package: FastTimeNumberingTester
+// Class: FastTimeNumberingTester
+//
+/**\class FastTimeNumberingTester FastTimeNumberingTester.cc test/FastTimeNumberingTester.cc
+
+ Description:
+
+ Implementation:
+
+*/
+//
+// Original Author: Sunanda Banerjee
+// Created: Mon 2014/04/24
+// $Id: FastTimeNumberingTester.cc,v 1.0 2014/04/24 14:06:07 sunanda Exp $
+//
+//
+
+//#define DebugLog
+
+// system include files
+#include
+#include
+#include
+
+// user include files
+#include "FWCore/Framework/interface/Frameworkfwd.h"
+#include "FWCore/Framework/interface/EDAnalyzer.h"
+
+#include "FWCore/Framework/interface/Event.h"
+#include "FWCore/Framework/interface/EventSetup.h"
+#include "FWCore/Framework/interface/ESTransientHandle.h"
+#include "FWCore/Framework/interface/ESHandle.h"
+#include "FWCore/Framework/interface/MakerMacros.h"
+
+#include "FWCore/ParameterSet/interface/ParameterSet.h"
+#include "DetectorDescription/Core/interface/DDCompactView.h"
+#include "DetectorDescription/Core/interface/DDExpandedView.h"
+#include "DetectorDescription/Core/interface/DDSpecifics.h"
+#include "Geometry/Records/interface/IdealGeometryRecord.h"
+#include "Geometry/HGCalCommonData/interface/FastTimeDDDConstants.h"
+#include "DataFormats/ForwardDetId/interface/FastTimeDetId.h"
+
+#include "CoralBase/Exception.h"
+
+//
+// class decleration
+//
+
+class FastTimeNumberingTester : public edm::EDAnalyzer {
+public:
+ explicit FastTimeNumberingTester( const edm::ParameterSet& );
+ ~FastTimeNumberingTester();
+
+
+ virtual void analyze( const edm::Event&, const edm::EventSetup& );
+private:
+ // ----------member data ---------------------------
+};
+
+//
+// constants, enums and typedefs
+//
+
+//
+// static data member definitions
+//
+
+//
+// constructors and destructor
+//
+FastTimeNumberingTester::FastTimeNumberingTester(const edm::ParameterSet& ) {}
+
+
+FastTimeNumberingTester::~FastTimeNumberingTester() {}
+
+
+//
+// member functions
+//
+
+// ------------ method called to produce the data ------------
+void FastTimeNumberingTester::analyze( const edm::Event& iEvent, const edm::EventSetup& iSetup ) {
+
+ edm::ESHandle pFTNDC;
+
+ iSetup.get().get(pFTNDC);
+ const FastTimeDDDConstants fTnDC(*pFTNDC);
+ std::cout << "Fast timing device with " << fTnDC.getCells() << ":"
+ << fTnDC.computeCells() << " cells" << " for detector type "
+ << fTnDC.getType() << std::endl;
+ for (unsigned int ix=0; ix<400; ++ix) {
+ for (unsigned int iy=0; iy<400; ++iy) {
+ if (fTnDC.isValidXY(ix,iy)) {
+ FastTimeDetId id1(ix,iy,1), id2(ix,iy,-1);
+ std::cout << "Valid ID " << id1 << " and " << id2 << std::endl;
+ } else {
+#ifdef DebugLog
+ std::cout << "ix = " << ix << ", iy = " << iy << " is not valid for "
+ << "FastTime" << std::endl;
+#endif
+ }
+ iy += 9;
+ }
+ ix += 9;
+ }
+}
+
+
+//define this as a plug-in
+DEFINE_FWK_MODULE(FastTimeNumberingTester);
diff --git a/Geometry/HGCalCommonData/test/HGCGeometryTester.cc b/Geometry/HGCalCommonData/test/HGCGeometryTester.cc
new file mode 100644
index 0000000000000..2aeae9f90837e
--- /dev/null
+++ b/Geometry/HGCalCommonData/test/HGCGeometryTester.cc
@@ -0,0 +1,113 @@
+// -*- C++ -*-
+//
+// Package: HGCGeometryTester
+// Class: HGCGeometryTester
+//
+/**\class HGCGeometryTester HGCGeometryTester.cc test/HGCGeometryTester.cc
+
+ Description:
+
+ Implementation:
+
+*/
+//
+// Original Author: Sunanda Banerjee
+// Created: Mon 2014/02/07
+// $Id: HGCGeometryTester.cc,v 1.0 2014/02/07 14:06:07 sunanda Exp $
+//
+//
+
+
+// system include files
+#include
+#include
+#include
+
+// user include files
+#include "FWCore/Framework/interface/Frameworkfwd.h"
+#include "FWCore/Framework/interface/EDAnalyzer.h"
+
+#include "FWCore/Framework/interface/Event.h"
+#include "FWCore/Framework/interface/EventSetup.h"
+#include "FWCore/Framework/interface/ESTransientHandle.h"
+#include "FWCore/Framework/interface/ESHandle.h"
+#include "FWCore/Framework/interface/MakerMacros.h"
+
+#include "FWCore/ParameterSet/interface/ParameterSet.h"
+#include "DetectorDescription/Core/interface/DDCompactView.h"
+#include "DetectorDescription/Core/interface/DDExpandedView.h"
+#include "DetectorDescription/Core/interface/DDSpecifics.h"
+#include "DetectorDescription/Core/interface/DDSolid.h"
+#include "Geometry/Records/interface/IdealGeometryRecord.h"
+
+#include "CoralBase/Exception.h"
+//
+// class decleration
+//
+
+class HGCGeometryTester : public edm::EDAnalyzer {
+public:
+ explicit HGCGeometryTester( const edm::ParameterSet& );
+ ~HGCGeometryTester();
+
+
+ virtual void analyze( const edm::Event&, const edm::EventSetup& );
+private:
+ // ----------member data ---------------------------
+};
+
+//
+// constants, enums and typedefs
+//
+
+//
+// static data member definitions
+//
+//
+// constructors and destructor
+//
+HGCGeometryTester::HGCGeometryTester(const edm::ParameterSet& ) {}
+
+
+HGCGeometryTester::~HGCGeometryTester() {}
+
+
+//
+// member functions
+//
+
+// ------------ method called to produce the data ------------
+void HGCGeometryTester::analyze( const edm::Event& iEvent,
+ const edm::EventSetup& iSetup ) {
+
+ edm::ESTransientHandle pDD;
+ iSetup.get().get( pDD );
+
+ //parse the DD for sensitive volumes
+ DDExpandedView eview(*pDD);
+ std::map > svPars;
+ do {
+ const DDLogicalPart &logPart=eview.logicalPart();
+ std::string name=logPart.name();
+
+ //only EE sensitive volumes for the moment
+ if ((name.find("HGCal") != std::string::npos) &&
+ (name.find("Sensitive") != std::string::npos)) {
+
+ size_t pos=name.find("Sensitive")+9;
+ int layer=atoi(name.substr(pos,name.size()-1).c_str());
+ if (svPars.find(name) == svPars.end()) {
+ //print half height and widths for the trapezoid
+ std::vector solidPar=eview.logicalPart().solid().parameters();
+ svPars[name] = std::pair(solidPar[3],
+ 0.5*(solidPar[4]+solidPar[5]));
+ std::cout << name << " Layer " << layer << " " << solidPar[3]
+ << " " << solidPar[4] << " " << solidPar[5] << std::endl;
+ }
+ }
+ }while(eview.next() );
+}
+
+
+//define this as a plug-in
+DEFINE_FWK_MODULE(HGCGeometryTester);
diff --git a/Geometry/HGCalCommonData/test/HGCalNumberingTester.cc b/Geometry/HGCalCommonData/test/HGCalNumberingTester.cc
new file mode 100644
index 0000000000000..cb0400c4b036d
--- /dev/null
+++ b/Geometry/HGCalCommonData/test/HGCalNumberingTester.cc
@@ -0,0 +1,194 @@
+// -*- C++ -*-
+//
+// Package: HGCalNumberingTester
+// Class: HGCalNumberingTester
+//
+/**\class HGCalNumberingTester HGCalNumberingTester.cc test/HGCalNumberingTester.cc
+
+ Description:
+
+ Implementation:
+
+*/
+//
+// Original Author: Sunanda Banerjee
+// Created: Mon 2014/03/21
+// $Id: HGCalNumberingTester.cc,v 1.0 2014/032/21 14:06:07 sunanda Exp $
+//
+//
+
+
+// system include files
+#include
+#include
+#include
+
+// user include files
+#include "FWCore/Framework/interface/Frameworkfwd.h"
+#include "FWCore/Framework/interface/EDAnalyzer.h"
+
+#include "FWCore/Framework/interface/Event.h"
+#include "FWCore/Framework/interface/EventSetup.h"
+#include "FWCore/Framework/interface/ESTransientHandle.h"
+#include "FWCore/Framework/interface/ESHandle.h"
+#include "FWCore/Framework/interface/MakerMacros.h"
+
+#include "FWCore/ParameterSet/interface/ParameterSet.h"
+#include "DetectorDescription/Core/interface/DDCompactView.h"
+#include "DetectorDescription/Core/interface/DDExpandedView.h"
+#include "DetectorDescription/Core/interface/DDSpecifics.h"
+#include "Geometry/Records/interface/IdealGeometryRecord.h"
+#include "Geometry/HGCalCommonData/interface/HGCalDDDConstants.h"
+
+#include "CoralBase/Exception.h"
+
+//
+// class decleration
+//
+
+class HGCalNumberingTester : public edm::EDAnalyzer {
+public:
+ explicit HGCalNumberingTester( const edm::ParameterSet& );
+ ~HGCalNumberingTester();
+
+
+ virtual void analyze( const edm::Event&, const edm::EventSetup& );
+private:
+ // ----------member data ---------------------------
+};
+
+//
+// constants, enums and typedefs
+//
+
+//
+// static data member definitions
+//
+
+//
+// constructors and destructor
+//
+HGCalNumberingTester::HGCalNumberingTester(const edm::ParameterSet& ) {}
+
+
+HGCalNumberingTester::~HGCalNumberingTester() {}
+
+
+//
+// member functions
+//
+
+// ------------ method called to produce the data ------------
+void HGCalNumberingTester::analyze( const edm::Event& iEvent, const edm::EventSetup& iSetup ) {
+
+ edm::ESHandle pHGNDC;
+
+ iSetup.get().get("HGCalEESensitive",pHGNDC);
+ const HGCalDDDConstants hgeedc(*pHGNDC);
+ std::cout << "EE Layers = " << hgeedc.layers(false) << " Sectors = "
+ << hgeedc.sectors() << std::endl;
+ std::pair kxy, lxy;
+ std::pair xy;
+ float localx(5.0), localy(5.0);
+ for (unsigned int i=0; i ncells = hgeedc.numberCells(i+1,false);
+ std::cout << "Layer " << i+1 << " with " << ncells.size() << " rows\n";
+ int ntot(0);
+ for (unsigned int k=0; k().get("HGCalHESiliconSensitive",pHGNDC);
+ const HGCalDDDConstants hghesidc(*pHGNDC);
+ std::cout << "HE Silicon Layers = " << hghesidc.layers(false)
+ << " Sectors = " << hghesidc.sectors() << std::endl;
+ for (unsigned int i=0; i ncells = hghesidc.numberCells(i+1,false);
+ std::cout << "Layer " << i+1 << " with " << ncells.size() << " rows\n";
+ int ntot(0);
+ for (unsigned int k=0; k().get("HGCalHEScintillatorSensitive",pHGNDC);
+ const HGCalDDDConstants hghescdc(*pHGNDC);
+ std::cout << "HE Scintillator Layers = " << hghescdc.layers(false)
+ << " Sectors = " << hghescdc.sectors() << std::endl;
+ std::vector::const_iterator itr = hghescdc.getFirstModule(false);
+ int subsec = ((itr->alpha) > 0) ? 1 : 0;
+ for (unsigned int i=0; i ncells = hghescdc.numberCells(i+1,false);
+ std::cout << "Layer " << i+1 << " with " << ncells.size() << " rows\n";
+ int ntot(0);
+ for (unsigned int k=0; k
+
+
+ 2
+
+
+ 0
+
+
+ 1
+
+
+ 0
+
+
+ 50
+
+
+ 90
+
+
+ 1032
+
+
+ 1033
+
+
+ 1026
+
+
+ 1017
+
+
+ 1025
+
+
+ 1022
+
+
+ 1
+
+
+ 50
+
+
+ 3
+
+
+ 1
+
+
+
+ 200
+
+
+ 100
+
+
+ 100
+
+
+
+
+ 100
+
+
+ 100
+
+
+ 200
+
+
+
+
+ 255
+
+
+ 220
+
+
+ 220
+
+
+
+
+ 200
+
+
+ 200
+
+
+ 255
+
+
+
+
+
+
+ edm::SortedCollection<CaloTower,edm::StrictWeakOrdering<CaloTower> >
+
+
+ towerMaker
+
+
+
+
+
+
+
+
+ $.emEt()>0.2
+
+
+ 1008
+
+
+ t
+
+
+ 2
+
+
+ ECal
+
+
+ 0
+
+
+
+
+
+
+ edm::SortedCollection<CaloTower,edm::StrictWeakOrdering<CaloTower> >
+
+
+ towerMaker
+
+
+
+
+
+
+
+
+ $.hadEt()+$.outerEt()>0.2
+
+
+ 1005
+
+
+ t
+
+
+ 2
+
+
+ HCal
+
+
+ 0
+
+
+
+
+
+
+ std::vector<reco::PFJet>
+
+
+ ak5PFJets
+
+
+
+
+
+
+
+
+ $.pt()>20
+
+
+ 1000
+
+
+ t
+
+
+ 3
+
+
+ Jets
+
+
+ 0
+
+
+
+
+ 0
+
+
+ 0
+
+
+ 2.1
+
+
+
+
+
+
+ std::vector<reco::Track>
+
+
+ generalTracks
+
+
+
+
+
+
+
+
+ $.pt()>1
+
+
+ 1009
+
+
+ t
+
+
+ 1
+
+
+ Tracks
+
+
+ 0
+
+
+
+
+
+
+ std::vector<reco::Muon>
+
+
+ muons
+
+
+
+
+
+
+
+
+ $.isStandAloneMuon()
+
+
+ 1008
+
+
+ t
+
+
+ 5
+
+
+ Muons
+
+
+ 0
+
+
+
+
+
+
+ std::vector<reco::GsfElectron>
+
+
+ gsfElectrons
+
+
+
+
+
+
+
+
+ $.hadronicOverEm()<0.05
+
+
+ 1007
+
+
+ t
+
+
+ 3
+
+
+ Electrons
+
+
+ 0
+
+
+
+
+
+
+ std::vector<reco::Vertex>
+
+
+ offlinePrimaryVertices
+
+
+
+
+
+
+
+
+
+
+
+ 1000
+
+
+ t
+
+
+ 10
+
+
+ Vertices
+
+
+ 0
+
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 2
+
+
+ 6
+
+
+
+
+
+
+ reco::BeamSpot
+
+
+ offlineBeamSpot
+
+
+
+
+
+
+
+
+
+
+
+ 1002
+
+
+ t
+
+
+ 12
+
+
+ Beam Spot
+
+
+ 0
+
+
+
+
+
+
+ edm::RangeMap<DTChamberId,edm::OwnVector<DTRecSegment4D,edm::ClonePolicy<DTRecSegment4D> >,edm::ClonePolicy<DTRecSegment4D> >
+
+
+ dt4DSegments
+
+
+
+
+
+
+
+
+
+
+
+ 1005
+
+
+ t
+
+
+ 1
+
+
+ DT-segments
+
+
+ 0
+
+
+
+
+
+
+ edm::RangeMap<CSCDetId,edm::OwnVector<CSCSegment,edm::ClonePolicy<CSCSegment> >,edm::ClonePolicy<CSCSegment> >
+
+
+ cscSegments
+
+
+
+
+
+
+
+
+
+
+
+ 1005
+
+
+ t
+
+
+ 1
+
+
+ CSC-segments
+
+
+ 0
+
+
+
+
+
+
+ std::vector<reco::Photon>
+
+
+ photons
+
+
+
+
+
+
+
+
+ hadronicOverEm < 0.2
+
+
+ 1009
+
+
+ t
+
+
+ 1
+
+
+ Photons
+
+
+ 0
+
+
+
+
+
+
+ std::vector<reco::MET>
+
+
+ tcMet
+
+
+
+
+
+
+
+
+ et()>20
+
+
+ 1008
+
+
+ t
+
+
+ 11
+
+
+ recoMET
+
+
+ 0
+
+
+
+
+
+
+ std::vector<reco::Conversion>
+
+
+ conversions
+
+
+
+
+
+
+
+
+
+
+
+ 1016
+
+
+ t
+
+
+ 13
+
+
+ Conversions
+
+
+ 0
+
+
+
+
+
+
+
+
+
+ $Tracks.pt()>1
+
+
+ 1
+
+
+
+
+
+
+
+ $Jets.pt()>100
+
+
+ 0
+
+
+
+
+
+
+
+ $Muons@.size()>3
+
+
+ 0
+
+
+
+
+
+
+
+ HLT_Mu9
+
+
+ 0
+
+
+
+
+
+ HLT
+
+
+
+
+ 1
+
+
+ 0
+
+
+
+
+
+ 8
+
+
+ 22
+
+
+ 1342
+
+
+ 770
+
+
+ 8.26607
+
+
+ 1.02799
+
+
+ 0.972018
+
+
+
+
+
+ 1
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 1
+
+
+ 0
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 0
+
+
+ 1
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 138.4
+
+
+ 1
+
+
+ 0.2
+
+
+ 0
+
+
+ 0.015
+
+
+ 0
+
+
+ 1
+
+
+ 1
+
+
+ 0.03
+
+
+ 0.05
+
+
+ 0.95
+
+
+ 0.2
+
+
+ 0.02
+
+
+ 0.98
+
+
+ 1
+
+
+ 50
+
+
+ 3
+
+
+ 1
+
+
+ 1.86325
+
+
+ 1
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 1
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 1
+
+
+ 0
+
+
+ 2337.41
+
+
+ 0
+
+
+ 0
+
+
+ 1
+
+
+
+
+ 1
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 1
+
+
+ 0
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 0
+
+
+ 1
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0.03
+
+
+ 0.05
+
+
+ 0.95
+
+
+ 0.2
+
+
+ 0.02
+
+
+ 0.98
+
+
+ 1
+
+
+ 50
+
+
+ 3
+
+
+ 1
+
+
+ 1
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 1
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 1
+
+
+ 0
+
+
+ 1055.58
+
+
+ 91.0029
+
+
+ 0
+
+
+ 1
+
+
+ -1
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ -0
+
+
+ 1
+
+
+ 0
+
+
+ 0
+
+
+ 1
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 1
+
+
+ 56.2535
+
+
+
+
+ -1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 1
+
+
+ 90
+
+
+ 0
+
+
+ 0
+
+
+ 1
+
+
+ 3
+
+
+ hgcal
+
+
+ 2
+
+
+ 1
+
+
+ 0
+
+
+ 10
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+ 1.02799
+
+
+ 0
+
+
+
+
+ 1
+
+
+ 0
+
+
+
+
+ 1
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+ id
+ detid.rawId
+ 0
+ energy
+ energy
+ 3
+ time
+ time
+ 3
+ flags
+ flags
+ 0
+
+
+ emEt
+ emEt
+ 1
+ hadEt
+ hadEt
+ 1
+ et
+ et
+ 1
+ eta
+ eta
+ 3
+ phi
+ phi
+ 3
+
+
+ number of segments
+ size
+ 0
+
+
+ number of segments
+ size
+ 0
+
+
+ Pt
+ pt
+ 1
+ eta
+ eta
+ 3
+ phi
+ phi
+ 3
+ ECAL
+ p4().E() * emEnergyFraction()
+ 1
+ HCAL
+ p4().E() * energyFractionHadronic()
+ 1
+ emf
+ emEnergyFraction()
+ 3
+ size_eta
+ sqrt(etaetaMoment)
+ 3
+ size_phi
+ sqrt(phiphiMoment)
+ 3
+
+
+ pT
+ pt
+ 1
+ eta
+ eta
+ 3
+ phi
+ phi
+ 3
+ status
+ status
+ 0
+ pdgId
+ pdgId
+ 0
+
+
+ pT
+ pt
+ 1
+ eta
+ eta
+ 3
+ phi
+ phi
+ 3
+ E/p
+ eSuperClusterOverP
+ 3
+ H/E
+ hadronicOverEm
+ 3
+ fbrem
+ (trackMomentumAtVtx().R() - trackMomentumOut().R()) / trackMomentumAtVtx().R()
+ 3
+ dei
+ deltaEtaSuperClusterTrackAtVtx()
+ 3
+ dpi
+ deltaPhiSuperClusterTrackAtVtx()
+ 3
+ charge
+ charge
+ 0
+
+
+ pT
+ pt
+ 1
+ eta
+ eta
+ 3
+ phi
+ phi
+ 3
+
+
+ MET
+ et
+ 1
+ phi
+ phi
+ 3
+ sumEt
+ sumEt
+ 1
+ mEtSig
+ mEtSig
+ 3
+
+
+ pT
+ pt
+ 1
+ global
+ isGlobalMuon
+ -2
+ tracker
+ isTrackerMuon
+ -2
+ SA
+ isStandAloneMuon
+ -2
+ calo
+ isCaloMuon
+ -2
+ tr pt
+ track().pt()
+ 1
+ eta
+ eta
+ 3
+ phi
+ phi
+ 3
+ matches
+ numberOfMatches('SegmentArbitration')
+ 0
+ d0
+ track().d0()
+ 3
+ d0 / d0Err
+ track().d0() / track().d0Error()
+ 3
+ charge
+ charge
+ 0
+
+
+ pT
+ pt
+ 1
+ eta
+ eta
+ 3
+ phi
+ phi
+ 3
+ H/E
+ hadronicOverEm
+ 3
+
+
+ pT
+ pt
+ 1
+ eta
+ eta
+ 3
+ phi
+ phi
+ 3
+ d0
+ d0
+ 5
+ d0Err
+ d0Error
+ 5
+ dz
+ dz
+ 5
+ dzErr
+ dzError
+ 5
+ vx
+ vx
+ 5
+ vy
+ vy
+ 5
+ vz
+ vz
+ 5
+ pixel hits
+ hitPattern().numberOfValidPixelHits()
+ 0
+ strip hits
+ hitPattern().numberOfValidStripHits()
+ 0
+ chi2
+ chi2
+ 3
+ ndof
+ ndof
+ 0
+ charge
+ charge
+ 0
+
+
+ x
+ x
+ 5
+ xError
+ xError
+ 5
+ y
+ y
+ 5
+ yError
+ yError
+ 5
+ z
+ z
+ 5
+ zError
+ zError
+ 5
+ tracks
+ tracksSize
+ 0
+ chi2
+ chi2
+ 3
+ ndof
+ ndof
+ 3
+
+
+ CaloRecHit
+ CaloTower
+ edm::RangeMap<CSCDetId,edm::OwnVector<CSCSegment,edm::ClonePolicy<CSCSegment> >,edm::ClonePolicy<CSCSegment> >
+ edm::RangeMap<DTChamberId,edm::OwnVector<DTRecSegment4D,edm::ClonePolicy<DTRecSegment4D> >,edm::ClonePolicy<DTRecSegment4D> >
+ reco::CaloJet
+ reco::GenParticle
+ reco::GsfElectron
+ reco::Jet
+ reco::MET
+ reco::Muon
+ reco::Photon
+ reco::Track
+ reco::Vertex
+
+
+
+
+
diff --git a/Geometry/HGCalCommonData/test/testFastTimeNumbering_cfg.py b/Geometry/HGCalCommonData/test/testFastTimeNumbering_cfg.py
new file mode 100644
index 0000000000000..b9c13053a152e
--- /dev/null
+++ b/Geometry/HGCalCommonData/test/testFastTimeNumbering_cfg.py
@@ -0,0 +1,49 @@
+import FWCore.ParameterSet.Config as cms
+
+process = cms.Process("PROD")
+process.load("SimGeneral.HepPDTESSource.pdt_cfi")
+process.load("Geometry.HGCalCommonData.testFastTimeXML_cfi")
+process.load("Geometry.HGCalCommonData.fastTimeNumberingInitialization_cfi")
+
+process.MessageLogger = cms.Service("MessageLogger",
+ destinations = cms.untracked.vstring('cout'),
+ categories = cms.untracked.vstring('HGCalGeom'),
+ debugModules = cms.untracked.vstring('*'),
+ cout = cms.untracked.PSet(
+ threshold = cms.untracked.string('DEBUG'),
+ default = cms.untracked.PSet(
+ limit = cms.untracked.int32(0)
+ ),
+ HGCalGeom = cms.untracked.PSet(
+ limit = cms.untracked.int32(0)
+ )
+ ),
+)
+
+process.load("IOMC.RandomEngine.IOMC_cff")
+process.RandomNumberGeneratorService.generator.initialSeed = 456789
+
+process.source = cms.Source("EmptySource")
+
+process.generator = cms.EDProducer("FlatRandomEGunProducer",
+ PGunParameters = cms.PSet(
+ PartID = cms.vint32(14),
+ MinEta = cms.double(-3.5),
+ MaxEta = cms.double(3.5),
+ MinPhi = cms.double(-3.14159265359),
+ MaxPhi = cms.double(3.14159265359),
+ MinE = cms.double(9.99),
+ MaxE = cms.double(10.01)
+ ),
+ AddAntiParticle = cms.bool(False),
+ Verbosity = cms.untracked.int32(0),
+ firstRun = cms.untracked.uint32(1)
+)
+
+process.maxEvents = cms.untracked.PSet(
+ input = cms.untracked.int32(1)
+)
+
+process.prod = cms.EDAnalyzer("FastTimeNumberingTester")
+
+process.p1 = cms.Path(process.generator*process.prod)
diff --git a/Geometry/HGCalCommonData/test/testHGCGeometry_cfg.py b/Geometry/HGCalCommonData/test/testHGCGeometry_cfg.py
new file mode 100644
index 0000000000000..68c347d9da8c3
--- /dev/null
+++ b/Geometry/HGCalCommonData/test/testHGCGeometry_cfg.py
@@ -0,0 +1,52 @@
+import FWCore.ParameterSet.Config as cms
+
+process = cms.Process("PROD")
+process.load("SimGeneral.HepPDTESSource.pdt_cfi")
+
+process.load("Geometry.HGCalCommonData.testHGCalXML_cfi")
+process.load("Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi")
+process.load("Geometry.MuonNumbering.muonNumberingInitialization_cfi")
+process.load("Geometry.HcalCommonData.hcalSimNumberingInitialization_cfi")
+
+process.MessageLogger = cms.Service("MessageLogger",
+ destinations = cms.untracked.vstring('cout'),
+ categories = cms.untracked.vstring('HGCalGeom'),
+ debugModules = cms.untracked.vstring('*'),
+ cout = cms.untracked.PSet(
+ threshold = cms.untracked.string('DEBUG'),
+ default = cms.untracked.PSet(
+ limit = cms.untracked.int32(0)
+ ),
+ HGCalGeom = cms.untracked.PSet(
+ limit = cms.untracked.int32(-1)
+ )
+ ),
+ )
+
+process.load("IOMC.RandomEngine.IOMC_cff")
+process.RandomNumberGeneratorService.generator.initialSeed = 456789
+
+process.source = cms.Source("EmptySource")
+
+process.generator = cms.EDProducer("FlatRandomEGunProducer",
+ PGunParameters = cms.PSet(
+ PartID = cms.vint32(14),
+ MinEta = cms.double(-3.5),
+ MaxEta = cms.double(3.5),
+ MinPhi = cms.double(-3.14159265359),
+ MaxPhi = cms.double(3.14159265359),
+ MinE = cms.double(9.99),
+ MaxE = cms.double(10.01)
+ ),
+ AddAntiParticle = cms.bool(False),
+ Verbosity = cms.untracked.int32(0),
+ firstRun = cms.untracked.uint32(1)
+ )
+
+process.maxEvents = cms.untracked.PSet(
+ input = cms.untracked.int32(1)
+ )
+
+process.prod = cms.EDAnalyzer("HGCGeometryTester")
+
+process.p1 = cms.Path(process.generator*process.prod)
diff --git a/Geometry/HGCalCommonData/test/testHGCalNumbering_cfg.py b/Geometry/HGCalCommonData/test/testHGCalNumbering_cfg.py
new file mode 100644
index 0000000000000..1673924dc5041
--- /dev/null
+++ b/Geometry/HGCalCommonData/test/testHGCalNumbering_cfg.py
@@ -0,0 +1,49 @@
+import FWCore.ParameterSet.Config as cms
+
+process = cms.Process("PROD")
+process.load("SimGeneral.HepPDTESSource.pdt_cfi")
+process.load("Geometry.HGCalCommonData.testHGCalXML_cfi")
+process.load("Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi")
+
+process.MessageLogger = cms.Service("MessageLogger",
+ destinations = cms.untracked.vstring('cout'),
+ categories = cms.untracked.vstring('HGCalGeom'),
+ debugModules = cms.untracked.vstring('*'),
+ cout = cms.untracked.PSet(
+ threshold = cms.untracked.string('DEBUG'),
+ default = cms.untracked.PSet(
+ limit = cms.untracked.int32(0)
+ ),
+ HGCalGeom = cms.untracked.PSet(
+ limit = cms.untracked.int32(0)
+ )
+ ),
+)
+
+process.load("IOMC.RandomEngine.IOMC_cff")
+process.RandomNumberGeneratorService.generator.initialSeed = 456789
+
+process.source = cms.Source("EmptySource")
+
+process.generator = cms.EDProducer("FlatRandomEGunProducer",
+ PGunParameters = cms.PSet(
+ PartID = cms.vint32(14),
+ MinEta = cms.double(-3.5),
+ MaxEta = cms.double(3.5),
+ MinPhi = cms.double(-3.14159265359),
+ MaxPhi = cms.double(3.14159265359),
+ MinE = cms.double(9.99),
+ MaxE = cms.double(10.01)
+ ),
+ AddAntiParticle = cms.bool(False),
+ Verbosity = cms.untracked.int32(0),
+ firstRun = cms.untracked.uint32(1)
+)
+
+process.maxEvents = cms.untracked.PSet(
+ input = cms.untracked.int32(1)
+)
+
+process.prod = cms.EDAnalyzer("HGCalNumberingTester")
+
+process.p1 = cms.Path(process.generator*process.prod)
diff --git a/Geometry/HGCalSimData/data/fasttimeProdCuts.xml b/Geometry/HGCalSimData/data/fasttimeProdCuts.xml
new file mode 100644
index 0000000000000..693abcce86fd3
--- /dev/null
+++ b/Geometry/HGCalSimData/data/fasttimeProdCuts.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalSimData/data/fasttimesens.xml b/Geometry/HGCalSimData/data/fasttimesens.xml
new file mode 100644
index 0000000000000..8194a650e42b1
--- /dev/null
+++ b/Geometry/HGCalSimData/data/fasttimesens.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalSimData/data/hgcProdCuts.xml b/Geometry/HGCalSimData/data/hgcProdCuts.xml
new file mode 100644
index 0000000000000..8772bc09b8742
--- /dev/null
+++ b/Geometry/HGCalSimData/data/hgcProdCuts.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalSimData/data/hgccons.xml b/Geometry/HGCalSimData/data/hgccons.xml
new file mode 100644
index 0000000000000..8758e324969e7
--- /dev/null
+++ b/Geometry/HGCalSimData/data/hgccons.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalSimData/data/hgcsens.xml b/Geometry/HGCalSimData/data/hgcsens.xml
new file mode 100644
index 0000000000000..5199c9a868896
--- /dev/null
+++ b/Geometry/HGCalSimData/data/hgcsens.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Geometry/HGCalSimData/data/hgcsensv6.xml b/Geometry/HGCalSimData/data/hgcsensv6.xml
new file mode 100644
index 0000000000000..c48e24844914e
--- /dev/null
+++ b/Geometry/HGCalSimData/data/hgcsensv6.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+