From b79265e8c2fd0eb59c3ad50973f19fdd883c6ff9 Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Wed, 18 Aug 2021 23:02:17 +0300 Subject: [PATCH 01/19] WIP Root object model --- build.gradle.kts | 8 +- cern-root-loader/build.gradle.kts | 19 +++ .../kotlin/ru/mipt/npm/root/RootModel.kt | 25 ++++ .../kotlin/ru/mipt/npm/root/TGeoHMatrix.kt | 33 ++++++ .../kotlin/ru/mipt/npm/root/TGeoManager.kt | 30 +++++ .../kotlin/ru/mipt/npm/root/TGeoMaterial.kt | 9 ++ .../kotlin/ru/mipt/npm/root/TGeoMedium.kt | 10 ++ .../kotlin/ru/mipt/npm/root/TGeoNode.kt | 17 +++ .../kotlin/ru/mipt/npm/root/TGeoShape.kt | 80 +++++++++++++ .../kotlin/ru/mipt/npm/root/TGeoVolume.kt | 22 ++++ .../kotlin/ru/mipt/npm/root/TObject.kt | 22 ++++ .../src/main/kotlin/gravityDemo.kt | 6 +- .../src/main/kotlin/markupComponent.kt | 2 +- settings.gradle.kts | 1 + .../ThreeViewWithControls.kt | 8 +- visionforge-gdml/build.gradle.kts | 1 - .../visionforge/gdml/GdmlLoaderOptions.kt | 95 +++++++++++++++ .../{GdmlTransformer.kt => gdmlLoader.kt} | 110 ++---------------- .../kscience/visionforge/gdml/gdmlJVM.kt | 2 +- 19 files changed, 390 insertions(+), 110 deletions(-) create mode 100644 cern-root-loader/build.gradle.kts create mode 100644 cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/RootModel.kt create mode 100644 cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoHMatrix.kt create mode 100644 cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt create mode 100644 cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMaterial.kt create mode 100644 cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMedium.kt create mode 100644 cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoNode.kt create mode 100644 cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoShape.kt create mode 100644 cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoVolume.kt create mode 100644 cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObject.kt create mode 100644 visionforge-gdml/src/commonMain/kotlin/space/kscience/visionforge/gdml/GdmlLoaderOptions.kt rename visionforge-gdml/src/commonMain/kotlin/space/kscience/visionforge/gdml/{GdmlTransformer.kt => gdmlLoader.kt} (80%) diff --git a/build.gradle.kts b/build.gradle.kts index 5b093e09..505c349c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -36,7 +36,9 @@ apiValidation { ignoredPackages.add("info.laht.threekt") } -//workaround for https://youtrack.jetbrains.com/issue/KT-48273 -rootProject.plugins.withType(org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin::class.java) { - rootProject.the().versions.webpackDevServer.version = "4.0.0-rc.0" + +afterEvaluate { + extensions.configure { + versions.webpackDevServer.version = "4.0.0" + } } \ No newline at end of file diff --git a/cern-root-loader/build.gradle.kts b/cern-root-loader/build.gradle.kts new file mode 100644 index 00000000..fa26fab5 --- /dev/null +++ b/cern-root-loader/build.gradle.kts @@ -0,0 +1,19 @@ +plugins { + id("ru.mipt.npm.gradle.mpp") +} + +kscience{ + useSerialization { + json() + } +} + +kotlin { + sourceSets { + val commonMain by getting { + dependencies { + api(project(":visionforge-solid")) + } + } + } +} \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/RootModel.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/RootModel.kt new file mode 100644 index 00000000..8f53d71f --- /dev/null +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/RootModel.kt @@ -0,0 +1,25 @@ +package ru.mipt.npm.root + +import kotlin.properties.PropertyDelegateProvider +import kotlin.reflect.KType +import kotlin.reflect.typeOf + +public interface RootValueProvider { + /** + * Provide a member cast or reinterpreted to given type. + * Returns null if member with given name/type could not be resolved. + */ + public fun provideOrNull(name: String, type: KType): T? +} + +public interface RootModel { + public val provider: RootValueProvider +} + +public inline fun RootValueProvider.provide(name: String): T = + provideOrNull(name, typeOf()) ?: error("A member with type ${T::class} and name $name could not be resolved") + +public inline fun RootModel.member(name: String? = null): PropertyDelegateProvider> = + PropertyDelegateProvider { _, property -> + lazy { provider.provide(name ?: property.name) } + } diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoHMatrix.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoHMatrix.kt new file mode 100644 index 00000000..f70e9a24 --- /dev/null +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoHMatrix.kt @@ -0,0 +1,33 @@ +package ru.mipt.npm.root + +import kotlinx.serialization.Serializable + + +@Serializable +public sealed class TGeoMatrix : TNamed() + +@Serializable +public class TGeoIdentity : TGeoMatrix() + +@Serializable +public class TGeoHMatrix( + public val fTranslation: DoubleArray, + public val fRotationMatrix: DoubleArray, + public val fScale: DoubleArray +) : TGeoMatrix() + +@Serializable +public class TGeoTranslation( + public val fTranslation: DoubleArray +) : TGeoMatrix() + +@Serializable +public class TGeoRotation( + public val fRotationMatrix: DoubleArray +): TGeoMatrix() + +@Serializable +public class TGeoCombiTrans( + public val fTranslation: DoubleArray, + public val fRotation: TGeoRotation? = null, +): TGeoMatrix() \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt new file mode 100644 index 00000000..2dcf5598 --- /dev/null +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt @@ -0,0 +1,30 @@ +package ru.mipt.npm.root + +import kotlinx.serialization.Serializable +import kotlinx.serialization.json.Json +import kotlinx.serialization.json.JsonObject + +@Serializable +public class TGeoManager : TNamed() { + + public val fMatrices: TObjArray = TObjArray.empty + public val fShapes: TObjArray = TObjArray.empty + public val fVolumes: TObjArray = TObjArray.empty + + + companion object { + public val rootJson: Json = Json { + encodeDefaults = true + ignoreUnknownKeys = true + classDiscriminator = "_typename" + } + + + /** + * Load Json encoded TGeoManager + */ + public fun decodeFromJson(jsonObject: JsonObject): TGeoManager = TODO() + } +} + + diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMaterial.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMaterial.kt new file mode 100644 index 00000000..9094d721 --- /dev/null +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMaterial.kt @@ -0,0 +1,9 @@ +package ru.mipt.npm.root + +import kotlinx.serialization.Serializable + +@Serializable +public open class TGeoMaterial: TNamed() + +@Serializable +public class TGeoMixture: TGeoMaterial() \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMedium.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMedium.kt new file mode 100644 index 00000000..196c209c --- /dev/null +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMedium.kt @@ -0,0 +1,10 @@ +package ru.mipt.npm.root + +import kotlinx.serialization.Serializable + +@Serializable +public class TGeoMedium( + public val fId : Int, + public val fMaterial: TGeoMaterial, + public val fParams: DoubleArray +): TNamed() \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoNode.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoNode.kt new file mode 100644 index 00000000..2793773f --- /dev/null +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoNode.kt @@ -0,0 +1,17 @@ +package ru.mipt.npm.root + +import kotlinx.serialization.Serializable + +@Serializable +public class TGeoNode : TNamed() { + //val fGeoAtt: UInt + public val fVolume: TGeoVolume? = null + public val fMother: TGeoVolume? = null + public val fNumber: Int = 0 + public val fNovlp: Int = 0 + public val fOverlaps: IntArray = intArrayOf() +} + +public class TGeoNodeMatrix : TGeoMatrix() { + public val fMatrix: TGeoMatrix? = null +} \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoShape.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoShape.kt new file mode 100644 index 00000000..344f5e6f --- /dev/null +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoShape.kt @@ -0,0 +1,80 @@ +package ru.mipt.npm.root + +import kotlinx.serialization.Serializable + +@Serializable +public abstract class TGeoShape : TNamed() { + public val fShapeBits: UInt = 0u + public val fShapeId: Int = 0 +} + +@Serializable +public open class TGeoBBox : TGeoShape() { + public val fDX: Double = 0.0 + public val fDY: Double = 0.0 + public val fDZ: Double = 0.0 + public val fOrigin: DoubleArray = doubleArrayOf(0.0, 0.0, 0.0) +} + +@Serializable +public sealed class TGeoBoolNode : TObject() { + public abstract val fLeft: TGeoShape + public abstract val fLeftMat: TGeoMatrix + public abstract val fRight: TGeoShape + public abstract val fRightMat: TGeoMatrix +} + +@Serializable +public class TGeoUnion( + override val fLeft: TGeoShape, + override val fLeftMat: TGeoMatrix, + override val fRight: TGeoShape, + override val fRightMat: TGeoMatrix +) : TGeoBoolNode() + +@Serializable +public class TGeoSubtraction( + override val fLeft: TGeoShape, + override val fLeftMat: TGeoMatrix, + override val fRight: TGeoShape, + override val fRightMat: TGeoMatrix +) : TGeoBoolNode() + +@Serializable +public class TGeoIntersection( + override val fLeft: TGeoShape, + override val fLeftMat: TGeoMatrix, + override val fRight: TGeoShape, + override val fRightMat: TGeoMatrix +) : TGeoBoolNode() + + +@Serializable +public class TGeoCompositeShape(public val fNode: TGeoBoolNode) : TGeoBBox() + +@Serializable +public class TGeoXtru( + public val fNvert: Int, + public val fNz: Int, + public val fZcurrent: Double, + public val fX: DoubleArray, + public val fY: DoubleArray, + public val fZ: DoubleArray, + public val fScale: DoubleArray, + public val fX0: DoubleArray, + public val fY0: DoubleArray +) : TGeoBBox() + + +@Serializable +public class TGeoTube( + public val fRmin: Double, + public val fRmax: Double, + public val fDz: Double, +) : TGeoBBox() + +@Serializable +public class TGeoShapeAssembly( + public val fVolume: TGeoVolumeAssembly, + public val fBBoxOK: Boolean = true +): TGeoBBox() \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoVolume.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoVolume.kt new file mode 100644 index 00000000..1bd12cbf --- /dev/null +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoVolume.kt @@ -0,0 +1,22 @@ +package ru.mipt.npm.root + +import kotlinx.serialization.Serializable + +@Serializable +public open class TGeoVolume : TNamed(){ + // "fGeoAtt" : 3084, +// "fLineColor" : 3, +// "fLineStyle" : 1, +// "fLineWidth" : 1, +// "fFillColor" : 19, +// "fFillStyle" : 1001, + public lateinit var fNodes: TObjArray + public lateinit var fShape: TGeoShape + public lateinit var fMedium: TGeoMedium + public val fNumber: Int = 1 + public val fNtotal: Int = 1 + public val fRefCount: Int = 1 +} + +@Serializable +public class TGeoVolumeAssembly : TGeoVolume() \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObject.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObject.kt new file mode 100644 index 00000000..fb17d8ac --- /dev/null +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObject.kt @@ -0,0 +1,22 @@ +package ru.mipt.npm.root + +import kotlinx.serialization.Serializable + +@Serializable +public abstract class TObject { + public val fUniqueID: UInt = 0u + public val fBits: UInt = 0u +} + +@Serializable +public abstract class TNamed : TObject() { + public val fName: String = "" + public val fTitle: String = "" +} + +@Serializable +public class TObjArray(public val arr: List){ + public companion object{ + public val empty = TObjArray(emptyList()) + } +} \ No newline at end of file diff --git a/demo/js-playground/src/main/kotlin/gravityDemo.kt b/demo/js-playground/src/main/kotlin/gravityDemo.kt index e8ea5856..eec16afe 100644 --- a/demo/js-playground/src/main/kotlin/gravityDemo.kt +++ b/demo/js-playground/src/main/kotlin/gravityDemo.kt @@ -6,6 +6,7 @@ import react.RProps import react.child import react.functionalComponent import space.kscience.dataforge.context.Context +import space.kscience.plotly.layout import space.kscience.plotly.models.Trace import space.kscience.visionforge.markup.VisionOfMarkup import space.kscience.visionforge.react.flexRow @@ -91,7 +92,10 @@ val GravityDemo = functionalComponent { props -> height = 50.vh - 50.pt } plotly { - traces(velocityTrace) + traces(velocityTrace,energyTrace) + layout { + xaxis.title = "time" + } } Markup { attrs { diff --git a/demo/js-playground/src/main/kotlin/markupComponent.kt b/demo/js-playground/src/main/kotlin/markupComponent.kt index 5a5f6df2..879ab3df 100644 --- a/demo/js-playground/src/main/kotlin/markupComponent.kt +++ b/demo/js-playground/src/main/kotlin/markupComponent.kt @@ -32,7 +32,7 @@ val Markup = functionalComponent("Markup") { props -> //TODO add new formats via plugins else -> error("Format ${vision.format} not recognized") } - vision.useProperty(VisionOfMarkup::content) { content -> + vision.useProperty(VisionOfMarkup::content) { content: String? -> element.clear() element.append { markdown(flavour) { content ?: "" } diff --git a/settings.gradle.kts b/settings.gradle.kts index d4616ea7..7303d884 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -32,6 +32,7 @@ include( ":visionforge-threejs", ":visionforge-threejs:visionforge-threejs-server", ":visionforge-gdml", + ":cern-root-loader", ":visionforge-server", ":visionforge-plotly", ":visionforge-markdown", diff --git a/ui/ring/src/main/kotlin/space.kscience.visionforge.ring/ThreeViewWithControls.kt b/ui/ring/src/main/kotlin/space.kscience.visionforge.ring/ThreeViewWithControls.kt index e69b04c9..94f02fdd 100644 --- a/ui/ring/src/main/kotlin/space.kscience.visionforge.ring/ThreeViewWithControls.kt +++ b/ui/ring/src/main/kotlin/space.kscience.visionforge.ring/ThreeViewWithControls.kt @@ -13,9 +13,7 @@ import space.kscience.dataforge.names.Name import space.kscience.dataforge.names.NameToken import space.kscience.dataforge.names.isEmpty import space.kscience.dataforge.names.length -import space.kscience.visionforge.Vision -import space.kscience.visionforge.VisionGroup -import space.kscience.visionforge.computeProperties +import space.kscience.visionforge.* import space.kscience.visionforge.react.ThreeCanvasComponent import space.kscience.visionforge.react.flexColumn import space.kscience.visionforge.react.flexRow @@ -85,7 +83,9 @@ public val ThreeCanvasWithControls: FunctionComponent Action = { Action.PROTOTYPE } + public var volumeAction: (GdmlGroup) -> Action = { Action.PROTOTYPE } + + internal val styleCache = HashMap() + + public fun Solid.registerAndUseStyle(name: String, builder: MutableMeta.() -> Unit) { + styleCache.getOrPut(Name.parse(name)) { + Meta(builder) + } + useStyle(name) + } + + public fun Solid.transparent() { + registerAndUseStyle("transparent") { + SolidMaterial.MATERIAL_OPACITY_KEY put 0.3 + "edges.enabled" put true + } + } + + /** + * Configure paint for given solid with given [GdmlMaterial] + */ + public var configurePaint: SolidMaterial.(material: GdmlMaterial, solid: GdmlSolid) -> Unit = + { material, _ -> color(randomColor(material)) } + private set + + public fun paint(block: SolidMaterial.(material: GdmlMaterial, solid: GdmlSolid) -> Unit) { + configurePaint = block + } + + /** + * Configure given solid + */ + public var configureSolid: Solid.(parent: GdmlVolume, solid: GdmlSolid, material: GdmlMaterial) -> Unit = + { parent, solid, material -> + val styleName = "materials.${material.name}" + + if (parent.physVolumes.isNotEmpty()) transparent() + + registerAndUseStyle(styleName) { + val vfMaterial = SolidMaterial().apply { + configurePaint(material, solid) + } + SolidMaterial.MATERIAL_KEY put vfMaterial.toMeta() + "Gdml.material" put material.name + } + } + private set + + public fun configure(block: Solid.(parent: GdmlVolume, solid: GdmlSolid, material: GdmlMaterial) -> Unit) { + val oldConfigure = configureSolid + configureSolid = { parent: GdmlVolume, solid: GdmlSolid, material: GdmlMaterial -> + oldConfigure(parent, solid, material) + block(parent, solid, material) + } + } + + + public companion object { + private val random: Random = Random(222) + + private val colorCache = HashMap() + + /** + * Use random color and cache it based on the material. Meaning that colors are random, but always the same for the + * same material. + */ + public fun randomColor(material: GdmlMaterial): Int { + return colorCache.getOrPut(material) { random.nextInt(16777216) } + } + } +} \ No newline at end of file diff --git a/visionforge-gdml/src/commonMain/kotlin/space/kscience/visionforge/gdml/GdmlTransformer.kt b/visionforge-gdml/src/commonMain/kotlin/space/kscience/visionforge/gdml/gdmlLoader.kt similarity index 80% rename from visionforge-gdml/src/commonMain/kotlin/space/kscience/visionforge/gdml/GdmlTransformer.kt rename to visionforge-gdml/src/commonMain/kotlin/space/kscience/visionforge/gdml/gdmlLoader.kt index 284d80cf..8eca342c 100644 --- a/visionforge-gdml/src/commonMain/kotlin/space/kscience/visionforge/gdml/GdmlTransformer.kt +++ b/visionforge-gdml/src/commonMain/kotlin/space/kscience/visionforge/gdml/gdmlLoader.kt @@ -1,7 +1,5 @@ package space.kscience.visionforge.gdml -import space.kscience.dataforge.meta.Meta -import space.kscience.dataforge.meta.MutableMeta import space.kscience.dataforge.misc.DFExperimental import space.kscience.dataforge.names.Name import space.kscience.dataforge.names.asName @@ -11,10 +9,8 @@ import space.kscience.gdml.* import space.kscience.visionforge.* import space.kscience.visionforge.html.VisionOutput import space.kscience.visionforge.solid.* -import space.kscience.visionforge.solid.SolidMaterial.Companion.MATERIAL_KEY import kotlin.math.cos import kotlin.math.sin -import kotlin.random.Random private val solidsName = "solids".asName() private val volumesName = "volumes".asName() @@ -25,91 +21,7 @@ private inline operator fun Number.times(d: Double) = toDouble() * d @Suppress("NOTHING_TO_INLINE") private inline operator fun Number.times(f: Float) = toFloat() * f -public class GdmlTransformer { - - public enum class Action { - ADD, - REJECT, - PROTOTYPE - } - - public var lUnit: LUnit = LUnit.MM - public var aUnit: AUnit = AUnit.RADIAN - - public var solidAction: (GdmlSolid) -> Action = { Action.PROTOTYPE } - public var volumeAction: (GdmlGroup) -> Action = { Action.PROTOTYPE } - - internal val styleCache = HashMap() - - public fun Solid.registerAndUseStyle(name: String, builder: MutableMeta.() -> Unit) { - styleCache.getOrPut(Name.parse(name)) { - Meta(builder) - } - useStyle(name) - } - - public fun Solid.transparent() { - registerAndUseStyle("transparent") { - SolidMaterial.MATERIAL_OPACITY_KEY put 0.3 - "edges.enabled" put true - } - } - - /** - * Configure paint for given solid with given [GdmlMaterial] - */ - public var configurePaint: SolidMaterial.(material: GdmlMaterial, solid: GdmlSolid) -> Unit = - { material, _ -> color(randomColor(material)) } - private set - - public fun paint(block: SolidMaterial.(material: GdmlMaterial, solid: GdmlSolid) -> Unit) { - configurePaint = block - } - - /** - * Configure given solid - */ - public var configureSolid: Solid.(parent: GdmlVolume, solid: GdmlSolid, material: GdmlMaterial) -> Unit = - { parent, solid, material -> - val styleName = "materials.${material.name}" - - if (parent.physVolumes.isNotEmpty()) transparent() - - registerAndUseStyle(styleName) { - val vfMaterial = SolidMaterial().apply { - configurePaint(material, solid) - } - MATERIAL_KEY put vfMaterial.toMeta() - "Gdml.material" put material.name - } - } - private set - - public fun configure(block: Solid.(parent: GdmlVolume, solid: GdmlSolid, material: GdmlMaterial) -> Unit) { - val oldConfigure = configureSolid - configureSolid = { parent: GdmlVolume, solid: GdmlSolid, material: GdmlMaterial -> - oldConfigure(parent, solid, material) - block(parent, solid, material) - } - } - - - public companion object { - private val random: Random = Random(222) - - private val colorCache = HashMap() - - /** - * Use random color and cache it based on the material. Meaning that colors are random, but always the same for the - * same material. - */ - public fun randomColor(material: GdmlMaterial): Int { - return colorCache.getOrPut(material) { random.nextInt(16777216) } - } - } -} - -private class GdmlTransformerEnv(val settings: GdmlTransformer) { +private class GdmlLoader(val settings: GdmlLoaderOptions) { //private val materialCache = HashMap() /** @@ -356,13 +268,13 @@ private class GdmlTransformerEnv(val settings: GdmlTransformer) { ): Solid? { require(name != "") { "Can't use empty solid name. Use null instead." } return when (settings.solidAction(solid)) { - GdmlTransformer.Action.ADD -> { + GdmlLoaderOptions.Action.ADD -> { addSolid(root, solid, name) } - GdmlTransformer.Action.PROTOTYPE -> { + GdmlLoaderOptions.Action.PROTOTYPE -> { proxySolid(root, this, solid, name ?: solid.name) } - GdmlTransformer.Action.REJECT -> { + GdmlLoaderOptions.Action.REJECT -> { //ignore null } @@ -388,14 +300,14 @@ private class GdmlTransformerEnv(val settings: GdmlTransformer) { } when (settings.volumeAction(volume)) { - GdmlTransformer.Action.ADD -> { + GdmlLoaderOptions.Action.ADD -> { val group: SolidGroup = volume(root, volume) this[physVolume.name] = group.withPosition(root, physVolume) } - GdmlTransformer.Action.PROTOTYPE -> { + GdmlLoaderOptions.Action.PROTOTYPE -> { proxyVolume(root, this, physVolume, volume) } - GdmlTransformer.Action.REJECT -> { + GdmlLoaderOptions.Action.REJECT -> { //ignore } } @@ -460,16 +372,16 @@ private class GdmlTransformerEnv(val settings: GdmlTransformer) { } -public fun Gdml.toVision(block: GdmlTransformer.() -> Unit = {}): SolidGroup { - val settings = GdmlTransformer().apply(block) - val context = GdmlTransformerEnv(settings) +public fun Gdml.toVision(block: GdmlLoaderOptions.() -> Unit = {}): SolidGroup { + val settings = GdmlLoaderOptions().apply(block) + val context = GdmlLoader(settings) return context.transform(this) } /** * Append Gdml node to the group */ -public fun SolidGroup.gdml(gdml: Gdml, key: String? = null, transformer: GdmlTransformer.() -> Unit = {}) { +public fun SolidGroup.gdml(gdml: Gdml, key: String? = null, transformer: GdmlLoaderOptions.() -> Unit = {}) { val visual = gdml.toVision(transformer) //println(Visual3DPlugin.json.stringify(VisualGroup3D.serializer(), visual)) set(key, visual) diff --git a/visionforge-gdml/src/jvmMain/kotlin/space/kscience/visionforge/gdml/gdmlJVM.kt b/visionforge-gdml/src/jvmMain/kotlin/space/kscience/visionforge/gdml/gdmlJVM.kt index b67e231e..ed854100 100644 --- a/visionforge-gdml/src/jvmMain/kotlin/space/kscience/visionforge/gdml/gdmlJVM.kt +++ b/visionforge-gdml/src/jvmMain/kotlin/space/kscience/visionforge/gdml/gdmlJVM.kt @@ -9,7 +9,7 @@ public fun SolidGroup.gdml( file: Path, key: String = "", usePreprocessor: Boolean = false, - transformer: GdmlTransformer.() -> Unit = {}, + transformer: GdmlLoaderOptions.() -> Unit = {}, ) { val gdml = Gdml.decodeFromFile(file, usePreprocessor) gdml(gdml, key, transformer) -- 2.34.1 From 6ff3a0427822d8aab113e07caf6e563de35c64b8 Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Thu, 19 Aug 2021 09:56:20 +0300 Subject: [PATCH 02/19] WIP Root object model --- .../kotlin/ru/mipt/npm/root/TGeoManager.kt | 49 +- .../src/commonTest/resources/BM@N.root.json | 26920 ++++++++++++++++ 2 files changed, 26961 insertions(+), 8 deletions(-) create mode 100644 cern-root-loader/src/commonTest/resources/BM@N.root.json diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt index 2dcf5598..26517477 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt @@ -1,8 +1,9 @@ package ru.mipt.npm.root -import kotlinx.serialization.Serializable +import kotlinx.serialization.* import kotlinx.serialization.json.Json import kotlinx.serialization.json.JsonObject +import kotlinx.serialization.modules.SerializersModule @Serializable public class TGeoManager : TNamed() { @@ -10,14 +11,9 @@ public class TGeoManager : TNamed() { public val fMatrices: TObjArray = TObjArray.empty public val fShapes: TObjArray = TObjArray.empty public val fVolumes: TObjArray = TObjArray.empty - - companion object { - public val rootJson: Json = Json { - encodeDefaults = true - ignoreUnknownKeys = true - classDiscriminator = "_typename" - } + + public companion object { /** @@ -27,4 +23,41 @@ public class TGeoManager : TNamed() { } } +@OptIn(ExperimentalSerializationApi::class) +private class RootJsonSerialFormat : StringFormat { + override val serializersModule: SerializersModule get() = json.serializersModule + + private val refCache: HashMap = HashMap() + + override fun decodeFromString(deserializer: DeserializationStrategy, string: String): T { + val match = refRegex.matchEntire(string) + return if (match != null) { + //Do unref + val ref = match.value.toUIntOrNull() ?: error("Ref value is not a number") + val refValue = refCache[ref] ?: error("Reference $ref unresolved") + refValue as T //TODO research means to make it safe + } else { + val res = json.decodeFromString(deserializer, string) + val uid = (res as? TObject)?.fUniqueID + if (uid != null && refCache[uid] == null) { + refCache[uid] = res + } + res + } + } + + override fun encodeToString(serializer: SerializationStrategy, value: T): String = + json.encodeToString(serializer, value) + + companion object { + val refRegex = """\{\s*"${"\\$"}ref"\s*:\s*(\d*)}""".toRegex() + + val json: Json = Json { + encodeDefaults = true + ignoreUnknownKeys = true + classDiscriminator = "_typename" + } + } + +} diff --git a/cern-root-loader/src/commonTest/resources/BM@N.root.json b/cern-root-loader/src/commonTest/resources/BM@N.root.json new file mode 100644 index 00000000..9058d156 --- /dev/null +++ b/cern-root-loader/src/commonTest/resources/BM@N.root.json @@ -0,0 +1,26920 @@ +{ + "_typename" : "TGeoManager", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "FAIRGeom", + "fTitle" : "FAIR geometry", + "fNNodes" : 413815, + "fVisDensity" : 0, + "fExplodedView" : 0, + "fVisOption" : 1, + "fVisLevel" : 3, + "fNsegments" : 20, + "fNtracks" : 0, + "fMaxVisNodes" : 10000, + "fNpdg" : 257, + "fPdgId" : [1, -1, 2, -2, 3, -3, 4, -4, 5, -5, 6, -6, 7, -7, 8, -8, 11, -11, 12, -12, 13, -13, 14, -14, 15, -15, 16, -16, 17, -17, 18, -18, 21, 22, 23, 24, -24, 25, 28, 29, 32, 33, 34, -34, 35, 36, 37, -37, 38, 39, -39, 40, -40, 51, 52, -52, 53, 54, 55, -55, 56, 61, -61, 62, -62, 63, -63, 64, -64, 65, -65, 66, -66, 81, 82, -82, 83, 84, -84, 85, -85, 91, 92, 93, 94, 95, 96, 97, 98, 99, 110, 111, 113, 115, 130, 210, -210, 211, -211, 213, -213, 215, -215, 220, 221, 223, 225, 310, 311, -311, 313, -313, 315, -315, 321, -321, 323, -323, 325, -325, 330, 331, 333, 335, 411, -411, 413, -413, 415, -415, 421, -421, 423, -423, 425, -425, 431, -431, 433, -433, 435, -435, 440, 441, 443, 445, 511, -511, 513, -513, 515, -515, 521, -521, 523, -523, 525, -525, 531, -531, 533, -533, 535, -535, 541, -541, 543, -543, 545, -545, 551, 553, 555, 1103, -1103, 1114, -1114, 2101, -2101, 2103, -2103, 2110, -2110, 2112, -2112, 2114, -2114, 2203, -2203, 2210, -2210, 2212, -2212, 2214, -2214, 2224, -2224, 3101, -3101, 3103, -3103, 3112, -3112, 3114, -3114, 3122, -3122, 3201, -3201, 3203, -3203, 3212, -3212, 3214, -3214, 3222, -3222, 3224, -3224, 3303, -3303, 3312, -3312, 3314, -3314, 3322, -3322, 3324, -3324, 3334, -3334, 4101, -4101, 4103, -4103, 4112, -4112, 4114, -4114, 4122, -4122, 4132, -4132, 4201, -4201, 4203, -4203, 4212, -4212, 4214, -4214, 4222, -4222, 4224, -4224, 4232, -4232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "fStreamVoxels" : false, + "fPhiCut" : false, + "fTimeCut" : false, + "fMatrices" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoIdentity", + "fUniqueID" : 1, + "fBits" : 52428800, + "fName" : "Identity", + "fTitle" : "" + }, { + "_typename" : "TGeoHMatrix", + "fUniqueID" : 2, + "fBits" : 52428800, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 0], + "fRotationMatrix" : [1, 0, 0, 0, 1, 0, 0, 0, 1], + "fScale" : [1, 1, 1] + }, { + "_typename" : "TGeoIdentity", + "fUniqueID" : 3, + "fBits" : 52428800, + "fName" : "Identity", + "fTitle" : "" + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 4, + "fBits" : 52559872, + "fName" : "t5", + "fTitle" : "", + "fTranslation" : [0, -7.13984375, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 5, + "fBits" : 52559872, + "fName" : "t9", + "fTitle" : "", + "fTranslation" : [0, -4.7421875, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 6, + "fBits" : 52559872, + "fName" : "GlassLayer1PosTOF2_trans", + "fTitle" : "", + "fTranslation" : [0, 0, -0.475] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 7, + "fBits" : 52559872, + "fName" : "GlassLayer2PosTOF2_trans", + "fTitle" : "", + "fTranslation" : [0, 0, 0.219] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 8, + "fBits" : 52559872, + "fName" : "G10LayerPosTOF2_trans", + "fTitle" : "", + "fTranslation" : [0, 0, 0.642] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 9, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [45, 0, 1052.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 10, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [7.2, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 11, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [3.65, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 12, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -50.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 13, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 50.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 14, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -50.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 15, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 50.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 16, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -49.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 17, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [7.2, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 18, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -48.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 19, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [7.2, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 20, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -49.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 21, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [3.55, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 22, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -48.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 23, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -47.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 24, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -47] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 25, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -47.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 26, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -47] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 27, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -46.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 28, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -45.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 29, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -46.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 30, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -45.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 31, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -44.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 32, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -44] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 33, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -44.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 34, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -44] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 35, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -43.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 36, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -42.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 37, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -43.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 38, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -42.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 39, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -41.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 40, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -41] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 41, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -41.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 42, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -41] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 43, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -40.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 44, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -39.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 45, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -40.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 46, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -39.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 47, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -38.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 48, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -38] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 49, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -38.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 50, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -38] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 51, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -37.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 52, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -36.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 53, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -37.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 54, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -36.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 55, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -35.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 56, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -35] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 57, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -35.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 58, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -35] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 59, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -34.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 60, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -33.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 61, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -34.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 62, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -33.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 63, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -32.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 64, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -32] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 65, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -32.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 66, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -32] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 67, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -31.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 68, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -30.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 69, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -31.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 70, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -30.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 71, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -29.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 72, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -29] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 73, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -29.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 74, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -29] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 75, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -28.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 76, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -27.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 77, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -28.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 78, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -27.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 79, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -26.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 80, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -26] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 81, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -26.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 82, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -26] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 83, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -25.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 84, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -24.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 85, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -25.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 86, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -24.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 87, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -23.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 88, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -23] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 89, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -23.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 90, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -23] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 91, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -22.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 92, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -21.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 93, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -22.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 94, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -21.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 95, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -20.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 96, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -20] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 97, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -20.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 98, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -20] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 99, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -19.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 100, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -18.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 101, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -19.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 102, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -18.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 103, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -17.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 104, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -17] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 105, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -17.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 106, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -17] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 107, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -16.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 108, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -15.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 109, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -16.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 110, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -15.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 111, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -14.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 112, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -14] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 113, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -14.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 114, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -14] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 115, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -13.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 116, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -12.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 117, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -13.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 118, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -12.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 119, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -11.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 120, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -11] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 121, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -11.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 122, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -11] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 123, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -10.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 124, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -9.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 125, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -10.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 126, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -9.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 127, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -8.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 128, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -8] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 129, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -8.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 130, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -8] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 131, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -7.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 132, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -6.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 133, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -7.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 134, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -6.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 135, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -5.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 136, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 137, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -5.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 138, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 139, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -4.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 140, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -3.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 141, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -4.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 142, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -3.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 143, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -2.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 144, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -2] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 145, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -2.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 146, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -2] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 147, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -1.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 148, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -0.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 149, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -1.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 150, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -0.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 151, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 0.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 152, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 1] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 153, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 0.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 154, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 1] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 155, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 1.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 156, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 2.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 157, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 1.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 158, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 2.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 159, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 3.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 160, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 4] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 161, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 3.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 162, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 4] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 163, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 4.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 164, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 5.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 165, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 4.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 166, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 5.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 167, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 6.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 168, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 7] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 169, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 6.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 170, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 7] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 171, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 7.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 172, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 8.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 173, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 7.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 174, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 8.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 175, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 9.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 176, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 10] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 177, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 9.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 178, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 10] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 179, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 10.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 180, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 11.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 181, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 10.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 182, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 11.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 183, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 12.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 184, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 13] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 185, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 12.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 186, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 13] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 187, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 13.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 188, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 14.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 189, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 13.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 190, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 14.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 191, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 15.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 192, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 16] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 193, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 15.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 194, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 16] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 195, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 16.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 196, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 17.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 197, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 16.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 198, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 17.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 199, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 18.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 200, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 19] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 201, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 18.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 202, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 19] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 203, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 19.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 204, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 20.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 205, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 19.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 206, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 20.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 207, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 21.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 208, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 22] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 209, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 21.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 210, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 22] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 211, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 22.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 212, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 23.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 213, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 22.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 214, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 23.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 215, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 24.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 216, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 217, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 24.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 218, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 219, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 25.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 220, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 26.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 221, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 25.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 222, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 26.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 223, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 27.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 224, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 28] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 225, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 27.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 226, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 28] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 227, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 28.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 228, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 29.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 229, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 28.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 230, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 29.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 231, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 30.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 232, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 31] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 233, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 30.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 234, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 31] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 235, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 31.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 236, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 32.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 237, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 31.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 238, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 32.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 239, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 33.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 240, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 34] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 241, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 33.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 242, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 34] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 243, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 34.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 244, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 35.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 245, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 34.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 246, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 35.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 247, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 36.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 248, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 37] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 249, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 36.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 250, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 37] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 251, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 37.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 252, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 38.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 253, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 37.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 254, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 38.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 255, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 39.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 256, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 40] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 257, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 39.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 258, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 40] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 259, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 40.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 260, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 41.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 261, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 40.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 262, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 41.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 263, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 42.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 264, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 43] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 265, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 42.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 266, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 43] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 267, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 43.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 268, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 44.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 269, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 43.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 270, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 44.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 271, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 45.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 272, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 46] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 273, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 45.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 274, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 46] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 275, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 46.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 276, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 47.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 277, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 46.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 278, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 47.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 279, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 48.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 280, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 49] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 281, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 48.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 282, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 49] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 283, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-75, -45, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 284, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-60, -45, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 285, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-45, -45, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 286, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-30, -45, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 287, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-15, -45, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 288, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, -45, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 289, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [15, -45, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 290, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [30, -45, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 291, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [45, -45, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 292, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [60, -45, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 293, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [75, -45, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 294, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-75, -30, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 295, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-60, -30, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 296, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-45, -30, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 297, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-30, -30, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 298, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-15, -30, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 299, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, -30, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 300, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [15, -30, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 301, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [30, -30, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 302, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [45, -30, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 303, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [60, -30, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 304, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [75, -30, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 305, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-75, -15, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 306, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-60, -15, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 307, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-45, -15, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 308, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-30, -15, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 309, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-18.75, -18.75, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 310, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-11.25, -18.75, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 311, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-18.75, -11.25, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 312, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-11.25, -11.25, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 313, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-3.75, -18.75, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 314, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [3.75, -18.75, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 315, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-3.75, -11.25, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 316, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [3.75, -11.25, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 317, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [11.25, -18.75, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 318, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [18.75, -18.75, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 319, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [11.25, -11.25, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 320, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [18.75, -11.25, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 321, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [30, -15, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 322, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [45, -15, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 323, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [60, -15, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 324, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [75, -15, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 325, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-75, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 326, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-60, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 327, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-45, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 328, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-30, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 329, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-18.75, -3.75, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 330, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-11.25, -3.75, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 331, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-18.75, 3.75, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 332, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-11.25, 3.75, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 333, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-3.75, -3.75, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 334, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-3.75, 3.75, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 335, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [18.75, -3.75, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 336, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [18.75, 3.75, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 337, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [30, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 338, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [45, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 339, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [60, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 340, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [75, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 341, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-75, 15, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 342, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-60, 15, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 343, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-45, 15, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 344, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-30, 15, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 345, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-18.75, 11.25, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 346, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-11.25, 11.25, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 347, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-18.75, 18.75, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 348, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-11.25, 18.75, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 349, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-3.75, 11.25, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 350, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [3.75, 11.25, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 351, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-3.75, 18.75, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 352, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [3.75, 18.75, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 353, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [11.25, 11.25, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 354, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [18.75, 11.25, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 355, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [11.25, 18.75, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 356, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [18.75, 18.75, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 357, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [30, 15, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 358, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [45, 15, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 359, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [60, 15, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 360, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [75, 15, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 361, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-75, 30, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 362, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-60, 30, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 363, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-45, 30, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 364, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-30, 30, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 365, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-15, 30, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 366, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 30, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 367, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [15, 30, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 368, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [30, 30, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 369, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [45, 30, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 370, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [60, 30, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 371, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [75, 30, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 372, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-75, 45, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 373, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-60, 45, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 374, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-45, 45, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 375, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-30, 45, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 376, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-15, 45, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 377, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 45, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 378, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [15, 45, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 379, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [30, 45, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 380, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [45, 45, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 381, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [60, 45, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 382, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [75, 45, 0] + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 383, + "fBits" : 52559872, + "fName" : "t383", + "fTitle" : "", + "fTranslation" : [35.5, 0, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 384, + "fBits" : 52559872, + "fName" : "t383", + "fTitle" : "", + "fTranslation" : [-35.5, 0, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 385, + "fBits" : 52559872, + "fName" : "t383", + "fTitle" : "", + "fTranslation" : [0, 22.375, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 386, + "fBits" : 52559872, + "fName" : "t383", + "fTitle" : "", + "fTranslation" : [0, -22.375, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 387, + "fBits" : 52559872, + "fName" : "t383", + "fTitle" : "", + "fTranslation" : [0, 0, 0.45], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 388, + "fBits" : 52559872, + "fName" : "t383", + "fTitle" : "", + "fTranslation" : [0, 0, 0.45], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 389, + "fBits" : 52559872, + "fName" : "t389", + "fTitle" : "", + "fTranslation" : [35.5, 0, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 390, + "fBits" : 52559872, + "fName" : "t389", + "fTitle" : "", + "fTranslation" : [-35.5, 0, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 391, + "fBits" : 52559872, + "fName" : "t389", + "fTitle" : "", + "fTranslation" : [0, 22.375, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 392, + "fBits" : 52559872, + "fName" : "t389", + "fTitle" : "", + "fTranslation" : [0, -22.375, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 393, + "fBits" : 52559872, + "fName" : "t389", + "fTitle" : "", + "fTranslation" : [0, 0, 0.45], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 394, + "fBits" : 52559872, + "fName" : "t389", + "fTitle" : "", + "fTranslation" : [0, 0, 0.45], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 395, + "fBits" : 52559872, + "fName" : "t395", + "fTitle" : "", + "fTranslation" : [35.5, 0, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 396, + "fBits" : 52559872, + "fName" : "t395", + "fTitle" : "", + "fTranslation" : [-35.5, 0, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 397, + "fBits" : 52559872, + "fName" : "t395", + "fTitle" : "", + "fTranslation" : [0, 22.375, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 398, + "fBits" : 52559872, + "fName" : "t395", + "fTitle" : "", + "fTranslation" : [0, -22.375, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 399, + "fBits" : 52559872, + "fName" : "t395", + "fTitle" : "", + "fTranslation" : [0, 0, 0.45], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 400, + "fBits" : 52559872, + "fName" : "t395", + "fTitle" : "", + "fTranslation" : [0, 0, 0.45], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 401, + "fBits" : 52559872, + "fName" : "t401", + "fTitle" : "", + "fTranslation" : [35.5, 0, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 402, + "fBits" : 52559872, + "fName" : "t401", + "fTitle" : "", + "fTranslation" : [-35.5, 0, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 403, + "fBits" : 52559872, + "fName" : "t401", + "fTitle" : "", + "fTranslation" : [0, 22.375, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 404, + "fBits" : 52559872, + "fName" : "t401", + "fTitle" : "", + "fTranslation" : [0, -22.375, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 405, + "fBits" : 52559872, + "fName" : "t405", + "fTitle" : "", + "fTranslation" : [35.5, 0, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 406, + "fBits" : 52559872, + "fName" : "t405", + "fTitle" : "", + "fTranslation" : [-35.5, 0, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 407, + "fBits" : 52559872, + "fName" : "t405", + "fTitle" : "", + "fTranslation" : [0, 22.375, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 408, + "fBits" : 52559872, + "fName" : "t405", + "fTitle" : "", + "fTranslation" : [0, -22.375, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 409, + "fBits" : 52559872, + "fName" : "t401", + "fTitle" : "", + "fTranslation" : [27.7, 0, 0.55], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 410, + "fBits" : 52559872, + "fName" : "t401", + "fTitle" : "", + "fTranslation" : [-34.7, 0.2, 2.95], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 411, + "fBits" : 52559872, + "fName" : "t401", + "fTitle" : "", + "fTranslation" : [27.7, 0, 0.55], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 412, + "fBits" : 52559872, + "fName" : "t405", + "fTitle" : "", + "fTranslation" : [-34.7, 0.2, 2.95], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 413, + "fBits" : 52559872, + "fName" : "t413", + "fTitle" : "", + "fTranslation" : [43.3, 0, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 414, + "fBits" : 52559872, + "fName" : "t413", + "fTitle" : "", + "fTranslation" : [0, 24.375, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 415, + "fBits" : 52559872, + "fName" : "t413", + "fTitle" : "", + "fTranslation" : [2.875, -24.375, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 416, + "fBits" : 52559872, + "fName" : "t416", + "fTitle" : "", + "fTranslation" : [43.3, 0, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 417, + "fBits" : 52559872, + "fName" : "t416", + "fTitle" : "", + "fTranslation" : [0, 24.375, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 418, + "fBits" : 52559872, + "fName" : "t416", + "fTitle" : "", + "fTranslation" : [2.875, -24.375, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 419, + "fBits" : 52559872, + "fName" : "t413", + "fTitle" : "", + "fTranslation" : [40.8, 0, 0.45], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 420, + "fBits" : 62259200, + "fName" : "c413", + "fTitle" : "", + "fTranslation" : [-40.8, 0, 0.45], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 53739520, + "fName" : "", + "fTitle" : "", + "fRotationMatrix" : [-1, -0, -0, 0, 1, 0, 0, 0, 1] + } + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 421, + "fBits" : 52559872, + "fName" : "t413", + "fTitle" : "", + "fTranslation" : [40.8, 0, 0.45], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 422, + "fBits" : 62259200, + "fName" : "c416", + "fTitle" : "", + "fTranslation" : [-40.8, 0, 0.45], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 53739520, + "fName" : "", + "fTitle" : "", + "fRotationMatrix" : [-1, -0, -0, 0, 1, 0, 0, 0, 1] + } + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 423, + "fBits" : 52559872, + "fName" : "t423", + "fTitle" : "", + "fTranslation" : [43.3, 0, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 424, + "fBits" : 52559872, + "fName" : "t423", + "fTitle" : "", + "fTranslation" : [0, 24.375, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 425, + "fBits" : 52559872, + "fName" : "t423", + "fTitle" : "", + "fTranslation" : [2.875, -24.375, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 426, + "fBits" : 52559872, + "fName" : "t426", + "fTitle" : "", + "fTranslation" : [43.3, 0, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 427, + "fBits" : 52559872, + "fName" : "t426", + "fTitle" : "", + "fTranslation" : [0, 24.375, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 428, + "fBits" : 52559872, + "fName" : "t426", + "fTitle" : "", + "fTranslation" : [2.875, -24.375, 0], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 429, + "fBits" : 52559872, + "fName" : "t423", + "fTitle" : "", + "fTranslation" : [40.8, 0, 0.45], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 430, + "fBits" : 62259200, + "fName" : "c423", + "fTitle" : "", + "fTranslation" : [-40.8, 0, 0.45], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 53739520, + "fName" : "", + "fTitle" : "", + "fRotationMatrix" : [-1, -0, -0, 0, 1, 0, 0, 0, 1] + } + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 431, + "fBits" : 52559872, + "fName" : "t423", + "fTitle" : "", + "fTranslation" : [40.8, 0, 0.45], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 432, + "fBits" : 62259200, + "fName" : "c426", + "fTitle" : "", + "fTranslation" : [-40.8, 0, 0.45], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 53739520, + "fName" : "", + "fTitle" : "", + "fRotationMatrix" : [-1, -0, -0, 0, 1, 0, 0, 0, 1] + } + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 433, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [-29.375, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 434, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [-28.125, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 435, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [-26.875, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 436, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [-25.625, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 437, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [-24.375, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 438, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [-23.125, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 439, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [-21.875, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 440, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [-20.625, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 441, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [-19.375, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 442, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [-18.125, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 443, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [-16.875, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 444, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [-15.625, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 445, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [-14.375, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 446, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [-13.125, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 447, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [-11.875, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 448, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [-10.625, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 449, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [-9.375, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 450, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [-8.125, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 451, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [-6.875, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 452, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [-5.625, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 453, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [-4.375, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 454, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [-3.125, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 455, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [-1.875, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 456, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [-0.625, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 457, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [0.625, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 458, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [1.875, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 459, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [3.125, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 460, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [4.375, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 461, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [5.625, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 462, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [6.875, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 463, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [8.125, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 464, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [9.375, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 465, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [10.625, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 466, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [11.875, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 467, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [13.125, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 468, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [14.375, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 469, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [15.625, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 470, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [16.875, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 471, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [18.125, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 472, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [19.375, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 473, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [20.625, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 474, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [21.875, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 475, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [23.125, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 476, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [24.375, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 477, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [25.625, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 478, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [26.875, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 479, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [28.125, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 480, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [29.375, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 481, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [0, 0, -0.304499998688698] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 482, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [0, 0, 0.304499998688698] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 483, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [0, 0, -1.34000000357628] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 484, + "fBits" : 52559872, + "fName" : "t433", + "fTitle" : "", + "fTranslation" : [0, 0, 1.34000000357628] + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 485, + "fBits" : 52559872, + "fName" : "t485", + "fTitle" : "", + "fTranslation" : [0, 0, -11.59375], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 486, + "fBits" : 52559872, + "fName" : "t485", + "fTitle" : "", + "fTranslation" : [0, 0, -8.28125], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 487, + "fBits" : 52559872, + "fName" : "t485", + "fTitle" : "", + "fTranslation" : [0, 0, -4.96875], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 488, + "fBits" : 52559872, + "fName" : "t485", + "fTitle" : "", + "fTranslation" : [0, 0, -1.65625], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 489, + "fBits" : 52559872, + "fName" : "t485", + "fTitle" : "", + "fTranslation" : [0, 0, 1.65625], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 490, + "fBits" : 52559872, + "fName" : "t485", + "fTitle" : "", + "fTranslation" : [0, 0, 4.96875], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 491, + "fBits" : 52559872, + "fName" : "t485", + "fTitle" : "", + "fTranslation" : [0, 0, 8.28125], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 492, + "fBits" : 52559872, + "fName" : "t485", + "fTitle" : "", + "fTranslation" : [0, 0, 11.59375], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 493, + "fBits" : 52559872, + "fName" : "t493", + "fTitle" : "", + "fTranslation" : [0, 0, -2.50375], + "fRotation" : null + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 494, + "fBits" : 61210624, + "fName" : "c493", + "fTitle" : "", + "fTranslation" : [0, 0, -1.50225], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 52690944, + "fName" : "r0", + "fTitle" : "", + "fRotationMatrix" : [0.5, -0.866025403784439, 0, 0.866025403784439, 0.5, -0, 0, 0, 1] + } + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 495, + "fBits" : 61210624, + "fName" : "c493", + "fTitle" : "", + "fTranslation" : [0, 0, -0.50075], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 52690944, + "fName" : "r0", + "fTitle" : "", + "fRotationMatrix" : [-0.5, -0.866025403784439, 0, 0.866025403784439, -0.5, -0, 0, -0, 1] + } + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 496, + "fBits" : 61210624, + "fName" : "c493", + "fTitle" : "", + "fTranslation" : [0, 0, 0.50075], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 52690944, + "fName" : "r0", + "fTitle" : "", + "fRotationMatrix" : [-1, -1.22464679914735e-16, 0, 1.22464679914735e-16, -1, -0, 0, -0, 1] + } + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 497, + "fBits" : 61210624, + "fName" : "c493", + "fTitle" : "", + "fTranslation" : [0, 0, 1.50225], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 52690944, + "fName" : "r0", + "fTitle" : "", + "fRotationMatrix" : [-0.5, 0.866025403784438, 0, -0.866025403784438, -0.5, -0, -0, -0, 1] + } + }, { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 498, + "fBits" : 61210624, + "fName" : "c493", + "fTitle" : "", + "fTranslation" : [0, 0, 2.50375], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 52690944, + "fName" : "r0", + "fTitle" : "", + "fRotationMatrix" : [0.5, 0.866025403784439, 0, -0.866025403784439, 0.5, -0, -0, 0, 1] + } + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 499, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-48, 0, 800] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 500, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [42, 54, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 501, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -19.9] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 502, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -19.71] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 503, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -0.075] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 504, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [4, 4, 0.015] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 505, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [4, 0, 0.015] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 506, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [4, -4, 0.015] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 507, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 4, 0.015] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 508, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 0.015] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 509, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, -4, 0.015] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 510, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-4, 4, 0.015] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 511, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-4, 0, 0.015] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 512, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-4, -4, 0.015] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 513, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -19.53] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 514, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -19.35] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 515, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -19.17] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 516, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -18.99] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 517, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -18.81] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 518, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -18.63] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 519, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -18.45] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 520, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -18.27] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 521, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -18.09] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 522, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -17.91] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 523, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -17.73] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 524, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -17.55] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 525, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -17.37] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 526, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -17.19] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 527, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -17.01] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 528, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -16.83] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 529, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -16.65] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 530, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -16.47] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 531, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -16.29] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 532, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -16.11] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 533, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -15.93] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 534, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -15.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 535, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -15.57] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 536, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -15.39] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 537, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -15.21] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 538, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -15.03] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 539, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -14.85] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 540, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -14.67] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 541, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -14.49] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 542, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -14.31] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 543, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -14.13] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 544, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -13.95] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 545, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -13.77] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 546, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -13.59] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 547, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -13.41] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 548, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -13.23] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 549, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -13.05] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 550, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -12.87] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 551, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -12.69] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 552, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -12.51] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 553, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -12.33] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 554, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -12.15] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 555, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -11.97] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 556, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -11.79] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 557, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -11.61] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 558, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -11.43] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 559, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -11.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 560, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -11.07] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 561, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -10.89] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 562, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -10.71] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 563, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -10.53] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 564, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -10.35] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 565, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -10.17] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 566, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -9.99] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 567, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -9.81] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 568, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -9.63] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 569, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -9.45] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 570, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -9.27] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 571, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -9.09] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 572, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -8.91] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 573, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -8.73] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 574, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -8.55] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 575, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -8.37] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 576, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -8.19] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 577, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -8.01] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 578, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -7.83] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 579, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -7.65] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 580, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -7.47] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 581, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -7.29] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 582, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -7.11] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 583, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -6.93] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 584, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -6.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 585, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -6.57] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 586, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -6.39] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 587, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -6.21] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 588, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -6.03] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 589, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -5.85] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 590, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -5.67] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 591, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -5.49] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 592, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -5.31] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 593, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -5.13] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 594, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -4.95] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 595, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -4.77] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 596, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -4.59] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 597, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -4.41] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 598, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -4.23] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 599, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -4.05] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 600, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -3.87] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 601, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -3.69] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 602, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -3.51] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 603, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -3.33] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 604, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -3.15] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 605, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -2.97] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 606, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -2.79] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 607, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -2.61] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 608, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -2.43] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 609, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -2.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 610, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -2.07] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 611, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -1.89] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 612, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -1.71] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 613, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -1.53] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 614, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -1.35] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 615, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -1.17] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 616, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -0.99] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 617, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -0.81] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 618, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -0.63] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 619, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -0.45] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 620, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -0.27] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 621, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, -0.09] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 622, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 0.09] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 623, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 0.27] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 624, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 0.45] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 625, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 0.63] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 626, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 0.81] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 627, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 0.99] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 628, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 1.17] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 629, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 1.35] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 630, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 1.53] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 631, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 1.71] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 632, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 1.89] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 633, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 2.07] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 634, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 2.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 635, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 2.43] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 636, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 2.61] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 637, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 2.79] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 638, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 2.97] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 639, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 3.15] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 640, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 3.33] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 641, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 3.51] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 642, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 3.69] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 643, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 3.87] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 644, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 4.05] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 645, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 4.23] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 646, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 4.41] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 647, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 4.59] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 648, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 4.77] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 649, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 4.95] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 650, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 5.13] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 651, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 5.31] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 652, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 5.49] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 653, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 5.67] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 654, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 5.85] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 655, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 6.03] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 656, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 6.21] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 657, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 6.39] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 658, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 6.57] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 659, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 6.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 660, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 6.93] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 661, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 7.11] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 662, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 7.29] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 663, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 7.47] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 664, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 7.65] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 665, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 7.83] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 666, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 8.01] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 667, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 8.19] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 668, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 8.37] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 669, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 8.55] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 670, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 8.73] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 671, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 8.91] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 672, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 9.09] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 673, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 9.27] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 674, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 9.45] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 675, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 9.63] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 676, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 9.81] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 677, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 9.99] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 678, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 10.17] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 679, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 10.35] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 680, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 10.53] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 681, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 10.71] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 682, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 10.89] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 683, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 11.07] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 684, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 11.25] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 685, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 11.43] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 686, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 11.61] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 687, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 11.79] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 688, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 11.97] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 689, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 12.15] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 690, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 12.33] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 691, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 12.51] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 692, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 12.69] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 693, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 12.87] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 694, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 13.05] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 695, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 13.23] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 696, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 13.41] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 697, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 13.59] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 698, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 13.77] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 699, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 13.95] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 700, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 14.13] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 701, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 14.31] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 702, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 14.49] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 703, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 14.67] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 704, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 14.85] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 705, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 15.03] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 706, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 15.21] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 707, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 15.39] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 708, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 15.57] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 709, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 15.75] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 710, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 15.93] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 711, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 16.11] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 712, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 16.29] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 713, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 16.47] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 714, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 16.65] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 715, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 16.83] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 716, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 17.01] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 717, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 17.19] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 718, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 17.37] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 719, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 17.55] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 720, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 17.73] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 721, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 17.91] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 722, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 18.09] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 723, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 18.27] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 724, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 18.45] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 725, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 18.63] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 726, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 18.81] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 727, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 18.99] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 728, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 19.17] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 729, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 19.35] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 730, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 19.53] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 731, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 19.71] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 732, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [42, 42, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 733, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [42, 30, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 734, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [42, 18, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 735, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [42, 6, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 736, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [42, -6, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 737, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [42, -18, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 738, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [42, -30, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 739, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [42, -42, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 740, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [42, -54, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 741, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [30, 54, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 742, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [30, 42, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 743, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [30, 30, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 744, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [30, 18, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 745, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [30, 6, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 746, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [30, -6, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 747, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [30, -18, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 748, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [30, -30, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 749, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [30, -42, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 750, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [30, -54, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 751, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [18, 54, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 752, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [18, 42, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 753, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [18, 30, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 754, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [18, 18, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 755, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [18, 6, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 756, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [18, -6, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 757, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [18, -18, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 758, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [18, -30, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 759, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [18, -42, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 760, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [18, -54, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 761, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [6, 54, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 762, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [6, 42, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 763, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [6, 30, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 764, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [6, 18, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 765, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [6, 6, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 766, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [6, -6, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 767, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [6, -18, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 768, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [6, -30, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 769, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [6, -42, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 770, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [6, -54, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 771, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-6, 54, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 772, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-6, 42, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 773, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-6, 30, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 774, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-6, 18, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 775, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-6, 6, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 776, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-6, -6, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 777, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-6, -18, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 778, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-6, -30, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 779, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-6, -42, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 780, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-6, -54, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 781, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-18, 54, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 782, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-18, 42, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 783, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-18, 30, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 784, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-18, 18, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 785, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-18, 6, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 786, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-18, -6, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 787, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-18, -18, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 788, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-18, -30, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 789, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-18, -42, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 790, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-18, -54, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 791, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-30, 54, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 792, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-30, 42, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 793, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-30, 30, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 794, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-30, 18, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 795, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-30, 6, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 796, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-30, -6, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 797, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-30, -18, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 798, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-30, -30, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 799, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-30, -42, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 800, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-30, -54, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 801, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-42, 54, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 802, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-42, 42, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 803, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-42, 30, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 804, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-42, 18, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 805, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-42, 6, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 806, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-42, -6, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 807, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-42, -18, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 808, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-42, -30, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 809, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-42, -42, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 810, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [-42, -54, -7.5] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 811, + "fBits" : 52559872, + "fName" : "", + "fTitle" : "", + "fTranslation" : [108, 0, 800] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t812", + "fTitle" : "", + "fTranslation" : [0, 3.15175, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t812", + "fTitle" : "", + "fTranslation" : [0, -3.15175, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t814", + "fTitle" : "", + "fTranslation" : [0, 3.15175, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t814", + "fTitle" : "", + "fTranslation" : [0, -3.15175, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t816", + "fTitle" : "", + "fTranslation" : [0, 3.15175, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t816", + "fTitle" : "", + "fTranslation" : [0, -3.15175, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t818", + "fTitle" : "", + "fTranslation" : [0, 3.15175, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t818", + "fTitle" : "", + "fTranslation" : [0, -3.15175, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t820", + "fTitle" : "", + "fTranslation" : [0, 3.15175, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t820", + "fTitle" : "", + "fTranslation" : [0, -3.15175, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t822", + "fTitle" : "", + "fTranslation" : [0, 3.15175, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t822", + "fTitle" : "", + "fTranslation" : [0, -3.15175, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t824", + "fTitle" : "", + "fTranslation" : [0, 3.15175, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t824", + "fTitle" : "", + "fTranslation" : [0, -3.15175, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t826", + "fTitle" : "", + "fTranslation" : [0, 3.15175, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t826", + "fTitle" : "", + "fTranslation" : [0, -3.15175, 0] + }, { + "_typename" : "TGeoIdentity", + "fUniqueID" : 0, + "fBits" : 52428800, + "fName" : "Identity", + "fTitle" : "" + }, { + "_typename" : "TGeoIdentity", + "fUniqueID" : 0, + "fBits" : 52428800, + "fName" : "Identity", + "fTitle" : "" + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52428800, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 0] + }, { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52428800, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 0] + }, { + "_typename" : "TGeoIdentity", + "fUniqueID" : 0, + "fBits" : 52428800, + "fName" : "Identity", + "fTitle" : "" + }, { + "_typename" : "TGeoIdentity", + "fUniqueID" : 0, + "fBits" : 52428800, + "fName" : "Identity", + "fTitle" : "" + }, { + "_typename" : "TGeoIdentity", + "fUniqueID" : 0, + "fBits" : 52428800, + "fName" : "Identity", + "fTitle" : "" + }, { + "_typename" : "TGeoHMatrix", + "fUniqueID" : 1, + "fBits" : 52428800, + "fName" : "Identity", + "fTitle" : "", + "fTranslation" : [0, 0, 0], + "fRotationMatrix" : [1, 0, 0, 0, 1, 0, 0, 0, 1], + "fScale" : [1, 1, 1] + }, { + "_typename" : "TGeoHMatrix", + "fUniqueID" : 0, + "fBits" : 52428800, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 0], + "fRotationMatrix" : [1, 0, 0, 0, 1, 0, 0, 0, 1], + "fScale" : [1, 1, 1] + }] + }, + "fShapes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoBBox", + "fUniqueID" : 1, + "fBits" : 50331648, + "fName" : "cave", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 2000, + "fDY" : 2000, + "fDZ" : 2000, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 2, + "fBits" : 50331648, + "fName" : "CoilTS", + "fTitle" : "CoilCornerS:combitran_CoilCorner1+CoilCornerS:combitran_CoilCorner2+CoilCornerS:combitran_CoilCorner3+CoilCornerS:combitran_CoilCorner4+CoilShortSideS:tran_CoilShortSide1+CoilShortSideS:tran_CoilShortSide2+CoilLongSideS:tran_CoilLongSide1+CoilLongSideS:tran_CoilLongSide2", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 214.6, + "fDY" : 25, + "fDZ" : 257.1, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoUnion", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 3, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "CoilCornerS:combitran_CoilCorner1+CoilCornerS:combitran_CoilCorner2+CoilCornerS:combitran_CoilCorner3+CoilCornerS:combitran_CoilCorner4+CoilShortSideS:tran_CoilShortSide1+CoilShortSideS:tran_CoilShortSide2+CoilLongSideS:tran_CoilLongSide1", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 214.6, + "fDY" : 25, + "fDZ" : 257.1, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoUnion", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 4, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "CoilCornerS:combitran_CoilCorner1+CoilCornerS:combitran_CoilCorner2+CoilCornerS:combitran_CoilCorner3+CoilCornerS:combitran_CoilCorner4+CoilShortSideS:tran_CoilShortSide1+CoilShortSideS:tran_CoilShortSide2", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 214.6, + "fDY" : 25, + "fDZ" : 257.1, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoUnion", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 5, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "CoilCornerS:combitran_CoilCorner1+CoilCornerS:combitran_CoilCorner2+CoilCornerS:combitran_CoilCorner3+CoilCornerS:combitran_CoilCorner4+CoilShortSideS:tran_CoilShortSide1", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 214.6, + "fDY" : 25, + "fDZ" : 257.1, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoUnion", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 6, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "CoilCornerS:combitran_CoilCorner1+CoilCornerS:combitran_CoilCorner2+CoilCornerS:combitran_CoilCorner3+CoilCornerS:combitran_CoilCorner4", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 214.6, + "fDY" : 25, + "fDZ" : 257.1, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoUnion", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 7, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "CoilCornerS:combitran_CoilCorner1+CoilCornerS:combitran_CoilCorner2+CoilCornerS:combitran_CoilCorner3", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 214.6, + "fDY" : 25, + "fDZ" : 257.1, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoUnion", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 8, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "CoilCornerS:combitran_CoilCorner1+CoilCornerS:combitran_CoilCorner2", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 214.6, + "fDY" : 25, + "fDZ" : 67.5, + "fOrigin" : [0, 0, -189.6], + "fNode" : { + "_typename" : "TGeoUnion", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : { + "_typename" : "TGeoTubeSeg", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "CoilCornerS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 25600, + "fDX" : 67.5, + "fDY" : 67.5, + "fDZ" : 25, + "fOrigin" : [67.5, 67.5, 0], + "fRmin" : 25, + "fRmax" : 135, + "fDz" : 25, + "fPhi1" : 0, + "fPhi2" : 90, + "fS1" : 0, + "fC1" : 1, + "fS2" : 1, + "fC2" : 6.12323399573677e-17, + "fSm" : 0.707106781186547, + "fCm" : 0.707106781186548, + "fCdfi" : 0.707106781186548 + }, + "fRight" : {"$ref":863}, + "fLeftMat" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 61210624, + "fName" : "combitran_CoilCorner1", + "fTitle" : "", + "fTranslation" : [79.6, 0, -122.1], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 52690944, + "fName" : "", + "fTitle" : "", + "fRotationMatrix" : [1, 0, 0, 0, 0, 1, 0, -1, 0] + } + }, + "fRightMat" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 61210624, + "fName" : "combitran_CoilCorner2", + "fTitle" : "", + "fTranslation" : [-79.6, 0, -122.1], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 52690944, + "fName" : "", + "fTitle" : "", + "fRotationMatrix" : [-1, 0, 0, 0, 0, -1, 0, -1, 0] + } + } + } + }, + "fRight" : {"$ref":863}, + "fLeftMat" : {"$ref":4}, + "fRightMat" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 61210624, + "fName" : "combitran_CoilCorner3", + "fTitle" : "", + "fTranslation" : [-79.6, 0, 122.1], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 52690944, + "fName" : "", + "fTitle" : "", + "fRotationMatrix" : [-1, 0, 0, 0, 0, 1, 0, 1, 0] + } + } + } + }, + "fRight" : {"$ref":863}, + "fLeftMat" : {"$ref":4}, + "fRightMat" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 61210624, + "fName" : "combitran_CoilCorner4", + "fTitle" : "", + "fTranslation" : [79.6, 0, 122.1], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 52690944, + "fName" : "", + "fTitle" : "", + "fRotationMatrix" : [1, 0, 0, 0, 0, -1, 0, 1, 0] + } + } + } + }, + "fRight" : { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "CoilShortSideS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 79.6, + "fDY" : 25, + "fDZ" : 55, + "fOrigin" : [0, 0, 0] + }, + "fLeftMat" : {"$ref":4}, + "fRightMat" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "tran_CoilShortSide1", + "fTitle" : "", + "fTranslation" : [0, 0, -202.1] + } + } + }, + "fRight" : {"$ref":872}, + "fLeftMat" : {"$ref":4}, + "fRightMat" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "tran_CoilShortSide2", + "fTitle" : "", + "fTranslation" : [0, 0, 202.1] + } + } + }, + "fRight" : { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "CoilLongSideS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 55, + "fDY" : 25, + "fDZ" : 122.1, + "fOrigin" : [0, 0, 0] + }, + "fLeftMat" : {"$ref":4}, + "fRightMat" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "tran_CoilLongSide1", + "fTitle" : "", + "fTranslation" : [-159.6, 0, 0] + } + } + }, + "fRight" : {"$ref":875}, + "fLeftMat" : {"$ref":4}, + "fRightMat" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "tran_CoilLongSide2", + "fTitle" : "", + "fTranslation" : [159.6, 0, 0] + } + } + }, {"$ref":851}, {"$ref":853}, {"$ref":855}, {"$ref":857}, {"$ref":859}, {"$ref":861}, { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 9, + "fBits" : 50331648, + "fName" : "YokeS", + "fTitle" : "YokeContainerS-InnerSpaceInYokeS", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 350, + "fDY" : 224, + "fDZ" : 130, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoSubtraction", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : { + "_typename" : "TGeoXtru", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "YokeContainerS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 134218752, + "fDX" : 350, + "fDY" : 224, + "fDZ" : 130, + "fOrigin" : [0, 0, 0], + "fNvert" : 8, + "fNz" : 2, + "fZcurrent" : 0, + "fX" : [-303.81197846483, -350, -350, -303.81197846483, 303.81197846483, 350, 350, 303.81197846483], + "fY" : [-224, -144, 144, 224, 224, 144, -144, -224], + "fZ" : [-130, 130], + "fScale" : [1, 1], + "fX0" : [0, 0], + "fY0" : [0, 0] + }, + "fRight" : { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "InnerSpaceInYokeS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 230, + "fDY" : 115, + "fDZ" : 130.005, + "fOrigin" : [0, 0, 0] + }, + "fLeftMat" : {"$ref":4}, + "fRightMat" : {"$ref":4} + } + }, { + "_typename" : "TGeoXtru", + "fUniqueID" : 10, + "fBits" : 50331648, + "fName" : "PoleS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 134218752, + "fDX" : 84, + "fDY" : 124.5, + "fDZ" : 30.75, + "fOrigin" : [0, 0, 0], + "fNvert" : 8, + "fNz" : 2, + "fZcurrent" : 0, + "fX" : [-54, -84, -84, -54, 54, 84, 84, 54], + "fY" : [-124.5, -94.5, 94.5, 124.5, 124.5, 94.5, -94.5, -124.5], + "fZ" : [-30.75, 30.75], + "fScale" : [1, 1], + "fX0" : [0, 0], + "fY0" : [0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 11, + "fBits" : 50331648, + "fName" : "TOF2GlassVolumeS0", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 8, + "fDY" : 17.575, + "fDZ" : 0.215, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 12, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 8, + "fDY" : 0.54921875, + "fDZ" : 0.132, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 13, + "fBits" : 50331648, + "fName" : "TOF2ActiveGasVolumeS0", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 8, + "fDY" : 17.575, + "fDZ" : 0.132, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 14, + "fBits" : 50331648, + "fName" : "TOF2G10VolumeS0", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 8, + "fDY" : 17.575, + "fDZ" : 0.208, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 15, + "fBits" : 50331648, + "fName" : "TOF2ChamberS0", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 9.501, + "fDY" : 19.076, + "fDZ" : 0.841, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 16, + "fBits" : 50331648, + "fName" : "TOF2GlassVolumeS1", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 28, + "fDY" : 15.175, + "fDZ" : 0.215, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 17, + "fBits" : 50331648, + "fName" : "TOF2ActiveGasVolumeS1", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 28, + "fDY" : 15.175, + "fDZ" : 0.132, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 18, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 28, + "fDY" : 0.9484375, + "fDZ" : 0.132, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 19, + "fBits" : 50331648, + "fName" : "TOF2G10VolumeS1", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 28, + "fDY" : 15.175, + "fDZ" : 0.208, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 20, + "fBits" : 50331648, + "fName" : "TOF2ChamberS1", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 29.501, + "fDY" : 16.676, + "fDZ" : 0.841, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 21, + "fBits" : 50331648, + "fName" : "VETO", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 83.5, + "fDY" : 53.5, + "fDZ" : 52.5, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 22, + "fBits" : 50331648, + "fName" : "VMDL", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 7.5, + "fDY" : 7.5, + "fDZ" : 52, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 23, + "fBits" : 50331648, + "fName" : "VFEL", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 7.3, + "fDY" : 7.3, + "fDZ" : 1, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 24, + "fBits" : 50331648, + "fName" : "VPBL", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 7.3, + "fDY" : 7.3, + "fDZ" : 0.5, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 25, + "fBits" : 50331648, + "fName" : "VSCL", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 7.3, + "fDY" : 7.3, + "fDZ" : 0.25, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 26, + "fBits" : 50331648, + "fName" : "VRFL", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 0.2, + "fDY" : 7.3, + "fDZ" : 1, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 27, + "fBits" : 50331648, + "fName" : "VRPL", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 0.2, + "fDY" : 7.3, + "fDZ" : 0.5, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 28, + "fBits" : 50331648, + "fName" : "VRSL", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 0.2, + "fDY" : 7.3, + "fDZ" : 0.25, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 29, + "fBits" : 50331648, + "fName" : "UMDL", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.75, + "fDY" : 3.75, + "fDZ" : 52, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 30, + "fBits" : 50331648, + "fName" : "USCL", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.65, + "fDY" : 3.65, + "fDZ" : 0.25, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 31, + "fBits" : 50331648, + "fName" : "URSL", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 0.1, + "fDY" : 3.65, + "fDZ" : 0.25, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 32, + "fBits" : 50331648, + "fName" : "UPBL", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.65, + "fDY" : 3.65, + "fDZ" : 0.5, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 33, + "fBits" : 50331648, + "fName" : "UFEL", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.65, + "fDY" : 3.65, + "fDZ" : 1, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 34, + "fBits" : 50331648, + "fName" : "URFL", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 0.1, + "fDY" : 3.65, + "fDZ" : 1, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 35, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "module_partS - holeS:hole_module_trans_6051", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 40.8, + "fDY" : 22.5, + "fDZ" : 0.45, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoSubtraction", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "module_partS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 40.8, + "fDY" : 22.5, + "fDZ" : 0.45, + "fOrigin" : [0, 0, 0] + }, + "fRight" : { + "_typename" : "TGeoTube", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "holeS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 9216, + "fDX" : 5.75, + "fDY" : 5.75, + "fDZ" : 0.46, + "fOrigin" : [0, 0, 0], + "fRmin" : 0, + "fRmax" : 5.75, + "fDz" : 0.46 + }, + "fLeftMat" : {"$ref":838}, + "fRightMat" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "hole_module_trans_6051", + "fTitle" : "", + "fTranslation" : [-40.8, -22.5, 0] + } + } + }, { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 36, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "module_partS - holeS:hole_module_trans_9663", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 40.8, + "fDY" : 22.5, + "fDZ" : 0.45, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoSubtraction", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : {"$ref":909}, + "fRight" : {"$ref":910}, + "fLeftMat" : {"$ref":838}, + "fRightMat" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "hole_module_trans_9663", + "fTitle" : "", + "fTranslation" : [-40.8, -22.5, 0] + } + } + }, { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 37, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "module_partS - holeS:hole_module_trans_3220", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 40.8, + "fDY" : 22.5, + "fDZ" : 0.45, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoSubtraction", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : {"$ref":909}, + "fRight" : {"$ref":910}, + "fLeftMat" : {"$ref":838}, + "fRightMat" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "hole_module_trans_3220", + "fTitle" : "", + "fTranslation" : [-40.8, -22.5, 0] + } + } + }, { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 38, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "module_partS - holeS:hole_module_trans_9357", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 40.8, + "fDY" : 22.5, + "fDZ" : 0.45, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoSubtraction", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : {"$ref":909}, + "fRight" : {"$ref":910}, + "fLeftMat" : {"$ref":838}, + "fRightMat" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "hole_module_trans_9357", + "fTitle" : "", + "fTranslation" : [-40.8, -22.5, 0] + } + } + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 39, + "fBits" : 50331648, + "fName" : "moduleS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 33, + "fDY" : 20.5, + "fDZ" : 0.45, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 40, + "fBits" : 50331648, + "fName" : "vertical_frameS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 2.5, + "fDY" : 24.25, + "fDZ" : 1.15, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 41, + "fBits" : 50331648, + "fName" : "horizontal_frameS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 33, + "fDY" : 1.875, + "fDZ" : 1.15, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoShapeAssembly", + "fUniqueID" : 42, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fShapeId" : 0, + "fShapeBits" : 1024, + "fDX" : 38, + "fDY" : 24.25, + "fDZ" : 1.15, + "fOrigin" : [0, 0, 0], + "fVolume" : { + "_typename" : "TGeoVolumeAssembly", + "fUniqueID" : 0, + "fBits" : 59768832, + "fName" : "frame0_station0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 1, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station0_vertical_frameV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58736640, + "fName" : "frame0_station0_vertical_frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":922}, + "fMedium" : { + "_typename" : "TGeoMedium", + "fUniqueID" : 12, + "fBits" : 50331648, + "fName" : "HE_GAS", + "fTitle" : "", + "fId" : 12, + "fParams" : [0, 1, 0.19, 0.25, -1, -1, 0.001, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "fMaterial" : { + "_typename" : "TGeoMaterial", + "fUniqueID" : 14, + "fBits" : 50331648, + "fName" : "HE_GAS", + "fTitle" : "", + "fFillColor" : 19, + "fFillStyle" : 1001, + "fIndex" : 13, + "fA" : 4, + "fZ" : 2, + "fDensity" : 1.78e-4, + "fRadLen" : 479968.980732484, + "fIntLen" : 312331.95325677, + "fTemperature" : 273.15, + "fPressure" : 632420000, + "fState" : 0, + "fShader" : null, + "fCerenkov" : null, + "fElement" : null + } + }, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 32, + "fNtotal" : 1, + "fRefCount" : 2 + }, + "fMother" : {"$ref":925}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":384} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station0_vertical_frameV_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":928}, + "fMother" : {"$ref":925}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":385} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station0_horizontal_frameV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58736640, + "fName" : "frame0_station0_horizontal_frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":923}, + "fMedium" : { + "_typename" : "TGeoMedium", + "fUniqueID" : 18, + "fBits" : 50331648, + "fName" : "carbon", + "fTitle" : "", + "fId" : 18, + "fParams" : [0, 1, 20, -1, -1, -1, 0.001, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "fMaterial" : { + "_typename" : "TGeoMaterial", + "fUniqueID" : 18, + "fBits" : 50331648, + "fName" : "carbon", + "fTitle" : "", + "fFillColor" : 19, + "fFillStyle" : 1001, + "fIndex" : 17, + "fA" : 12.011, + "fZ" : 6, + "fDensity" : 2.265, + "fRadLen" : 18.7627684755763, + "fIntLen" : 35.4089682265511, + "fTemperature" : 273.15, + "fPressure" : 632420000, + "fState" : 0, + "fShader" : null, + "fCerenkov" : null, + "fElement" : null + } + }, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 33, + "fNtotal" : 1, + "fRefCount" : 2 + }, + "fMother" : {"$ref":925}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":386} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station0_horizontal_frameV_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":933}, + "fMother" : {"$ref":925}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":387} + }] + }, + "fShape" : {"$ref":924}, + "fMedium" : { + "_typename" : "TGeoMedium", + "fUniqueID" : 1, + "fBits" : 50331648, + "fName" : "air", + "fTitle" : "", + "fId" : 1, + "fParams" : [0, 1, 20, -1, -1, -1, 0.001, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "fMaterial" : { + "_typename" : "TGeoMixture", + "fUniqueID" : 1, + "fBits" : 50462720, + "fName" : "air", + "fTitle" : "", + "fFillColor" : 19, + "fFillStyle" : 1001, + "fIndex" : 0, + "fA" : 14.6873, + "fZ" : 7.32, + "fDensity" : 0.001205, + "fRadLen" : 30422.5122009781, + "fIntLen" : 70886.8082068035, + "fTemperature" : 273.15, + "fPressure" : 632420000, + "fState" : 0, + "fShader" : null, + "fCerenkov" : null, + "fElement" : null, + "fNelements" : 3, + "fZmixture" : [7, 8, 18], + "fAmixture" : [14.01, 16, 39.95], + "fWeights" : [0.78, 0.21, 0.01], + "fNatoms" : [], + "fVecNbOfAtomsPerVolume" : [], + "fElements" : null + } + }, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 34, + "fNtotal" : 5, + "fRefCount" : 5 + }, + "fBBoxOK" : true + }, { + "_typename" : "TGeoShapeAssembly", + "fUniqueID" : 43, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fShapeId" : 0, + "fShapeBits" : 1024, + "fDX" : 38, + "fDY" : 24.25, + "fDZ" : 1.15, + "fOrigin" : [0, 0, 0.45], + "fVolume" : { + "_typename" : "TGeoVolumeAssembly", + "fUniqueID" : 0, + "fBits" : 59768832, + "fName" : "station0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 1, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sensor_module0_station0_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "Sensor_module0_station0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 7, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":921}, + "fMedium" : { + "_typename" : "TGeoMedium", + "fUniqueID" : 11, + "fBits" : 50331648, + "fName" : "IRON", + "fTitle" : "", + "fId" : 11, + "fParams" : [0, 1, 0.19, 1, -1, -1, 0.1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "fMaterial" : { + "_typename" : "TGeoMaterial", + "fUniqueID" : 9, + "fBits" : 50462720, + "fName" : "IRON", + "fTitle" : "", + "fFillColor" : 19, + "fFillStyle" : 1001, + "fIndex" : 8, + "fA" : 55.85, + "fZ" : 26, + "fDensity" : 7.87, + "fRadLen" : 1.75771664360148, + "fIntLen" : 16.9675125483994, + "fTemperature" : 273.15, + "fPressure" : 632420000, + "fState" : 0, + "fShader" : null, + "fCerenkov" : null, + "fElement" : null + } + }, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 31, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":940}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":388} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station0_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":925}, + "fMother" : {"$ref":940}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":389} + }] + }, + "fShape" : {"$ref":939}, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 35, + "fNtotal" : 7, + "fRefCount" : 3 + }, + "fBBoxOK" : true + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 44, + "fBits" : 50331648, + "fName" : "moduleS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 33, + "fDY" : 20.5, + "fDZ" : 0.45, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 45, + "fBits" : 50331648, + "fName" : "vertical_frameS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 2.5, + "fDY" : 24.25, + "fDZ" : 1.15, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 46, + "fBits" : 50331648, + "fName" : "horizontal_frameS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 33, + "fDY" : 1.875, + "fDZ" : 1.15, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoShapeAssembly", + "fUniqueID" : 47, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fShapeId" : 0, + "fShapeBits" : 1024, + "fDX" : 38, + "fDY" : 24.25, + "fDZ" : 1.15, + "fOrigin" : [0, 0, 0], + "fVolume" : { + "_typename" : "TGeoVolumeAssembly", + "fUniqueID" : 0, + "fBits" : 59768832, + "fName" : "frame0_station1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 1, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station1_vertical_frameV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58736640, + "fName" : "frame0_station1_vertical_frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":948}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 37, + "fNtotal" : 1, + "fRefCount" : 2 + }, + "fMother" : {"$ref":951}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":390} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station1_vertical_frameV_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":954}, + "fMother" : {"$ref":951}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":391} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station1_horizontal_frameV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58736640, + "fName" : "frame0_station1_horizontal_frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":949}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 38, + "fNtotal" : 1, + "fRefCount" : 2 + }, + "fMother" : {"$ref":951}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":392} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station1_horizontal_frameV_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":957}, + "fMother" : {"$ref":951}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":393} + }] + }, + "fShape" : {"$ref":950}, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 39, + "fNtotal" : 5, + "fRefCount" : 5 + }, + "fBBoxOK" : true + }, { + "_typename" : "TGeoShapeAssembly", + "fUniqueID" : 48, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fShapeId" : 0, + "fShapeBits" : 1024, + "fDX" : 38, + "fDY" : 24.25, + "fDZ" : 1.15, + "fOrigin" : [0, 0, 0.45], + "fVolume" : { + "_typename" : "TGeoVolumeAssembly", + "fUniqueID" : 0, + "fBits" : 59768832, + "fName" : "station1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 1, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sensor_module0_station1_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "Sensor_module0_station1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 7, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":947}, + "fMedium" : { + "_typename" : "TGeoMedium", + "fUniqueID" : 17, + "fBits" : 50331648, + "fName" : "arco27030", + "fTitle" : "", + "fId" : 17, + "fParams" : [1, 1, 20, -1, -1, -1, 0.001, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "fMaterial" : { + "_typename" : "TGeoMixture", + "fUniqueID" : 17, + "fBits" : 50331648, + "fName" : "arco27030", + "fTitle" : "", + "fFillColor" : 19, + "fFillStyle" : 1001, + "fIndex" : 16, + "fA" : 36.5434594614837, + "fZ" : 16.5659958077497, + "fDensity" : 0.0019, + "fRadLen" : 10960.19206385, + "fIntLen" : 59730.4440787846, + "fTemperature" : 273.15, + "fPressure" : 632420000, + "fState" : 0, + "fShader" : null, + "fCerenkov" : null, + "fElement" : null, + "fNelements" : 3, + "fZmixture" : [18, 6, 8], + "fAmixture" : [39.948, 12.01, 15.9994], + "fWeights" : [0.864021297422359, 0.0371085832369314, 0.0988701193407093], + "fNatoms" : [], + "fVecNbOfAtomsPerVolume" : [], + "fElements" : null + } + }, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 36, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":960}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":394} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station1_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":951}, + "fMother" : {"$ref":960}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":395} + }] + }, + "fShape" : {"$ref":959}, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 40, + "fNtotal" : 7, + "fRefCount" : 3 + }, + "fBBoxOK" : true + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 49, + "fBits" : 50331648, + "fName" : "moduleS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 33, + "fDY" : 20.5, + "fDZ" : 0.45, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 50, + "fBits" : 50331648, + "fName" : "vertical_frameS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 2.5, + "fDY" : 24.25, + "fDZ" : 1.15, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 51, + "fBits" : 50331648, + "fName" : "horizontal_frameS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 33, + "fDY" : 1.875, + "fDZ" : 1.15, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoShapeAssembly", + "fUniqueID" : 52, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fShapeId" : 0, + "fShapeBits" : 1024, + "fDX" : 38, + "fDY" : 24.25, + "fDZ" : 1.15, + "fOrigin" : [0, 0, 0], + "fVolume" : { + "_typename" : "TGeoVolumeAssembly", + "fUniqueID" : 0, + "fBits" : 59768832, + "fName" : "frame0_station2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 1, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station2_vertical_frameV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58736640, + "fName" : "frame0_station2_vertical_frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":968}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 42, + "fNtotal" : 1, + "fRefCount" : 2 + }, + "fMother" : {"$ref":971}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":396} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station2_vertical_frameV_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":974}, + "fMother" : {"$ref":971}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":397} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station2_horizontal_frameV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58736640, + "fName" : "frame0_station2_horizontal_frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":969}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 43, + "fNtotal" : 1, + "fRefCount" : 2 + }, + "fMother" : {"$ref":971}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":398} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station2_horizontal_frameV_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":977}, + "fMother" : {"$ref":971}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":399} + }] + }, + "fShape" : {"$ref":970}, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 44, + "fNtotal" : 5, + "fRefCount" : 5 + }, + "fBBoxOK" : true + }, { + "_typename" : "TGeoShapeAssembly", + "fUniqueID" : 53, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fShapeId" : 0, + "fShapeBits" : 1024, + "fDX" : 38, + "fDY" : 24.25, + "fDZ" : 1.15, + "fOrigin" : [0, 0, 0.45], + "fVolume" : { + "_typename" : "TGeoVolumeAssembly", + "fUniqueID" : 0, + "fBits" : 59768832, + "fName" : "station2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 1, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sensor_module0_station2_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "Sensor_module0_station2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 7, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":967}, + "fMedium" : {"$ref":964}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 41, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":980}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":400} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station2_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":971}, + "fMother" : {"$ref":980}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":401} + }] + }, + "fShape" : {"$ref":979}, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 45, + "fNtotal" : 7, + "fRefCount" : 3 + }, + "fBBoxOK" : true + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 54, + "fBits" : 50331648, + "fName" : "moduleS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 33, + "fDY" : 20.5, + "fDZ" : 0.55, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 55, + "fBits" : 50331648, + "fName" : "moduleS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 33, + "fDY" : 20.5, + "fDZ" : 0.45, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 56, + "fBits" : 50331648, + "fName" : "vertical_frameS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 2.5, + "fDY" : 24.25, + "fDZ" : 1.25, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 57, + "fBits" : 50331648, + "fName" : "horizontal_frameS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 33, + "fDY" : 1.875, + "fDZ" : 1.25, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoShapeAssembly", + "fUniqueID" : 58, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fShapeId" : 0, + "fShapeBits" : 1024, + "fDX" : 38, + "fDY" : 24.25, + "fDZ" : 1.25, + "fOrigin" : [0, 0, 0], + "fVolume" : { + "_typename" : "TGeoVolumeAssembly", + "fUniqueID" : 0, + "fBits" : 59768832, + "fName" : "frame0_station3", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 1, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station3_vertical_frameV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58736640, + "fName" : "frame0_station3_vertical_frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":987}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 48, + "fNtotal" : 1, + "fRefCount" : 2 + }, + "fMother" : {"$ref":990}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":402} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station3_vertical_frameV_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":993}, + "fMother" : {"$ref":990}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":403} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station3_horizontal_frameV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58736640, + "fName" : "frame0_station3_horizontal_frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":988}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 49, + "fNtotal" : 1, + "fRefCount" : 2 + }, + "fMother" : {"$ref":990}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":404} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station3_horizontal_frameV_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":996}, + "fMother" : {"$ref":990}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":405} + }] + }, + "fShape" : {"$ref":989}, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 50, + "fNtotal" : 5, + "fRefCount" : 5 + }, + "fBBoxOK" : true + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 59, + "fBits" : 50331648, + "fName" : "vertical_frameS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 2.5, + "fDY" : 24.25, + "fDZ" : 1.15, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 60, + "fBits" : 50331648, + "fName" : "horizontal_frameS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 33, + "fDY" : 1.875, + "fDZ" : 1.15, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoShapeAssembly", + "fUniqueID" : 61, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fShapeId" : 0, + "fShapeBits" : 1024, + "fDX" : 38, + "fDY" : 24.25, + "fDZ" : 1.15, + "fOrigin" : [0, 0, 0], + "fVolume" : { + "_typename" : "TGeoVolumeAssembly", + "fUniqueID" : 0, + "fBits" : 59768832, + "fName" : "frame1_station3", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 1, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame1_station3_vertical_frameV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58736640, + "fName" : "frame1_station3_vertical_frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":998}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 51, + "fNtotal" : 1, + "fRefCount" : 2 + }, + "fMother" : {"$ref":1001}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":406} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame1_station3_vertical_frameV_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1004}, + "fMother" : {"$ref":1001}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":407} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame1_station3_horizontal_frameV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58736640, + "fName" : "frame1_station3_horizontal_frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":999}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 52, + "fNtotal" : 1, + "fRefCount" : 2 + }, + "fMother" : {"$ref":1001}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":408} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame1_station3_horizontal_frameV_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1007}, + "fMother" : {"$ref":1001}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":409} + }] + }, + "fShape" : {"$ref":1000}, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 53, + "fNtotal" : 5, + "fRefCount" : 5 + }, + "fBBoxOK" : true + }, { + "_typename" : "TGeoShapeAssembly", + "fUniqueID" : 62, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fShapeId" : 0, + "fShapeBits" : 1024, + "fDX" : 69.2, + "fDY" : 24.35, + "fDZ" : 2.4, + "fOrigin" : [-3.5, 0.0999999999999996, 1.7], + "fVolume" : { + "_typename" : "TGeoVolumeAssembly", + "fUniqueID" : 0, + "fBits" : 59768832, + "fName" : "station3", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 1, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sensor_module0_station3_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "Sensor_module0_station3", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 7, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":985}, + "fMedium" : {"$ref":964}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 46, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1010}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":410} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sensor_module1_station3_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "Sensor_module1_station3", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 7, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":986}, + "fMedium" : {"$ref":964}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 47, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1010}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":411} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station3_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":990}, + "fMother" : {"$ref":1010}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":412} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame1_station3_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1001}, + "fMother" : {"$ref":1010}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":413} + }] + }, + "fShape" : {"$ref":1009}, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 54, + "fNtotal" : 13, + "fRefCount" : 5 + }, + "fBBoxOK" : true + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 63, + "fBits" : 50331648, + "fName" : "vertical_frameS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 2.5, + "fDY" : 26.25, + "fDZ" : 1.95, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 64, + "fBits" : 50331648, + "fName" : "horizontal_upper_frameS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 40.8, + "fDY" : 1.875, + "fDZ" : 1.95, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 65, + "fBits" : 50331648, + "fName" : "horizontal_upper_frameS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 37.925, + "fDY" : 1.875, + "fDZ" : 1.95, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoShapeAssembly", + "fUniqueID" : 66, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fShapeId" : 0, + "fShapeBits" : 1024, + "fDX" : 43.3, + "fDY" : 26.25, + "fDZ" : 1.95, + "fOrigin" : [2.5, 0, 0], + "fVolume" : { + "_typename" : "TGeoVolumeAssembly", + "fUniqueID" : 0, + "fBits" : 59768832, + "fName" : "frame0_station4", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 1, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station4_vertical_frameV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "frame0_station4_vertical_frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1018}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 57, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1022}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":414} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station4_horizontal_upper_frameV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "frame0_station4_horizontal_upper_frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1019}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 58, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1022}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":415} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station4_horizontal_bottom_frameV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "frame0_station4_horizontal_bottom_frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1020}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 59, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1022}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":416} + }] + }, + "fShape" : {"$ref":1021}, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 60, + "fNtotal" : 4, + "fRefCount" : 4 + }, + "fBBoxOK" : true + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 67, + "fBits" : 50331648, + "fName" : "vertical_frameS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 2.5, + "fDY" : 26.25, + "fDZ" : 1.95, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 68, + "fBits" : 50331648, + "fName" : "horizontal_upper_frameS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 40.8, + "fDY" : 1.875, + "fDZ" : 1.95, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 69, + "fBits" : 50331648, + "fName" : "horizontal_upper_frameS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 37.925, + "fDY" : 1.875, + "fDZ" : 1.95, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoShapeAssembly", + "fUniqueID" : 70, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fShapeId" : 0, + "fShapeBits" : 1024, + "fDX" : 43.3, + "fDY" : 26.25, + "fDZ" : 1.95, + "fOrigin" : [2.5, 0, 0], + "fVolume" : { + "_typename" : "TGeoVolumeAssembly", + "fUniqueID" : 0, + "fBits" : 59768832, + "fName" : "frame1_station4", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 1, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame1_station4_vertical_frameV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "frame1_station4_vertical_frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1030}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 61, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1034}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":417} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame1_station4_horizontal_upper_frameV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "frame1_station4_horizontal_upper_frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1031}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 62, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1034}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":418} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame1_station4_horizontal_bottom_frameV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "frame1_station4_horizontal_bottom_frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1032}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 63, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1034}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":419} + }] + }, + "fShape" : {"$ref":1033}, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 64, + "fNtotal" : 4, + "fRefCount" : 4 + }, + "fBBoxOK" : true + }, { + "_typename" : "TGeoShapeAssembly", + "fUniqueID" : 71, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fShapeId" : 0, + "fShapeBits" : 1024, + "fDX" : 86.6, + "fDY" : 26.25, + "fDZ" : 1.95, + "fOrigin" : [0, 0, 0.45], + "fVolume" : { + "_typename" : "TGeoVolumeAssembly", + "fUniqueID" : 0, + "fBits" : 59768832, + "fName" : "station4", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 1, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sensor_module0_station4_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "Sensor_module0_station4", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 7, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":907}, + "fMedium" : {"$ref":964}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 55, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1043}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":420} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sensor_module1_station4_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "Sensor_module1_station4", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 7, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":912}, + "fMedium" : {"$ref":964}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 56, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1043}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":421} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station4_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1022}, + "fMother" : {"$ref":1043}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":423} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame1_station4_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1034}, + "fMother" : {"$ref":1043}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":424} + }] + }, + "fShape" : {"$ref":1042}, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 65, + "fNtotal" : 11, + "fRefCount" : 5 + }, + "fBBoxOK" : true + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 72, + "fBits" : 50331648, + "fName" : "vertical_frameS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 2.5, + "fDY" : 26.25, + "fDZ" : 1.95, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 73, + "fBits" : 50331648, + "fName" : "horizontal_upper_frameS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 40.8, + "fDY" : 1.875, + "fDZ" : 1.95, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 74, + "fBits" : 50331648, + "fName" : "horizontal_upper_frameS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 37.925, + "fDY" : 1.875, + "fDZ" : 1.95, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoShapeAssembly", + "fUniqueID" : 75, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fShapeId" : 0, + "fShapeBits" : 1024, + "fDX" : 43.3, + "fDY" : 26.25, + "fDZ" : 1.95, + "fOrigin" : [2.5, 0, 0], + "fVolume" : { + "_typename" : "TGeoVolumeAssembly", + "fUniqueID" : 0, + "fBits" : 59768832, + "fName" : "frame0_station5", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 1, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station5_vertical_frameV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "frame0_station5_vertical_frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1051}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 68, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1055}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":426} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station5_horizontal_upper_frameV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "frame0_station5_horizontal_upper_frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1052}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 69, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1055}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":427} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station5_horizontal_bottom_frameV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "frame0_station5_horizontal_bottom_frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1053}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 70, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1055}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":428} + }] + }, + "fShape" : {"$ref":1054}, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 71, + "fNtotal" : 4, + "fRefCount" : 4 + }, + "fBBoxOK" : true + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 76, + "fBits" : 50331648, + "fName" : "vertical_frameS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 2.5, + "fDY" : 26.25, + "fDZ" : 1.95, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 77, + "fBits" : 50331648, + "fName" : "horizontal_upper_frameS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 40.8, + "fDY" : 1.875, + "fDZ" : 1.95, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 78, + "fBits" : 50331648, + "fName" : "horizontal_upper_frameS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 37.925, + "fDY" : 1.875, + "fDZ" : 1.95, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoShapeAssembly", + "fUniqueID" : 79, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fShapeId" : 0, + "fShapeBits" : 1024, + "fDX" : 43.3, + "fDY" : 26.25, + "fDZ" : 1.95, + "fOrigin" : [2.5, 0, 0], + "fVolume" : { + "_typename" : "TGeoVolumeAssembly", + "fUniqueID" : 0, + "fBits" : 59768832, + "fName" : "frame1_station5", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 1, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame1_station5_vertical_frameV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "frame1_station5_vertical_frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1063}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 72, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1067}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":429} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame1_station5_horizontal_upper_frameV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "frame1_station5_horizontal_upper_frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1064}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 73, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1067}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":430} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame1_station5_horizontal_bottom_frameV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "frame1_station5_horizontal_bottom_frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1065}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 74, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1067}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":431} + }] + }, + "fShape" : {"$ref":1066}, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 75, + "fNtotal" : 4, + "fRefCount" : 4 + }, + "fBBoxOK" : true + }, { + "_typename" : "TGeoShapeAssembly", + "fUniqueID" : 80, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fShapeId" : 0, + "fShapeBits" : 1024, + "fDX" : 86.6, + "fDY" : 26.25, + "fDZ" : 1.95, + "fOrigin" : [0, 0, 0.45], + "fVolume" : { + "_typename" : "TGeoVolumeAssembly", + "fUniqueID" : 0, + "fBits" : 59768832, + "fName" : "station5", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 1, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sensor_module0_station5_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "Sensor_module0_station5", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 7, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":915}, + "fMedium" : {"$ref":964}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 66, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1076}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":432} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sensor_module1_station5_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "Sensor_module1_station5", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 7, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":918}, + "fMedium" : {"$ref":964}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 67, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1076}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":433} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame0_station5_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1055}, + "fMother" : {"$ref":1076}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":435} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frame1_station5_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1067}, + "fMother" : {"$ref":1076}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":436} + }] + }, + "fShape" : {"$ref":1075}, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 76, + "fNtotal" : 11, + "fRefCount" : 5 + }, + "fBBoxOK" : true + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 81, + "fBits" : 50331648, + "fName" : "StripGas", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 0.5, + "fDY" : 15, + "fDZ" : 0.150000005960464, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 82, + "fBits" : 50331648, + "fName" : "DetectorGlass", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 30, + "fDY" : 15, + "fDZ" : 0.154499992728233, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 83, + "fBits" : 50331648, + "fName" : "DetectorPlate", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 30, + "fDY" : 15, + "fDZ" : 0.159999996423721, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoShapeAssembly", + "fUniqueID" : 84, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fShapeId" : 0, + "fShapeBits" : 1024, + "fDX" : 30, + "fDY" : 15, + "fDZ" : 1.5, + "fOrigin" : [0, 0, 0], + "fVolume" : { + "_typename" : "TGeoVolumeAssembly", + "fUniqueID" : 0, + "fBits" : 59785216, + "fName" : "tof1Detector", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 1, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58736640, + "fName" : "tof1StripActiveGasV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1084}, + "fMedium" : { + "_typename" : "TGeoMedium", + "fUniqueID" : 6, + "fBits" : 50331648, + "fName" : "RPCgas", + "fTitle" : "", + "fId" : 6, + "fParams" : [1, 1, 20, -1, -1, -1, 0.001, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "fMaterial" : { + "_typename" : "TGeoMixture", + "fUniqueID" : 6, + "fBits" : 50331648, + "fName" : "RPCgas", + "fTitle" : "", + "fFillColor" : 19, + "fFillStyle" : 1001, + "fIndex" : 5, + "fA" : 13.134094, + "fZ" : 6.433, + "fDensity" : 0.00375, + "fRadLen" : 10290.7323640963, + "fIntLen" : 17251.1264038771, + "fTemperature" : 273.15, + "fPressure" : 632420000, + "fState" : 0, + "fShader" : null, + "fCerenkov" : null, + "fElement" : null, + "fNelements" : 4, + "fZmixture" : [6, 1, 9, 16], + "fAmixture" : [12.01, 1.008, 19, 32.06], + "fWeights" : [0.227, 0.248, 0.511, 0.014], + "fNatoms" : [], + "fVecNbOfAtomsPerVolume" : [], + "fElements" : null + } + }, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 78, + "fNtotal" : 1, + "fRefCount" : 48 + }, + "fMother" : {"$ref":1088}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":438} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":439} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_3", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 3, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":440} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_4", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 4, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":441} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_5", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 5, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":442} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_6", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 6, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":443} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_7", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 7, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":444} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_8", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 8, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":445} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_9", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 9, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":446} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_10", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 10, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":447} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_11", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 11, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":448} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_12", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 12, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":449} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_13", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 13, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":450} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_14", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 14, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":451} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_15", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 15, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":452} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_16", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 16, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":453} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_17", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 17, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":454} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_18", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 18, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":455} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_19", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 19, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":456} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_20", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 20, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":457} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_21", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 21, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":458} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_22", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 22, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":459} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_23", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 23, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":460} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_24", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 24, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":461} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_25", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 25, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":462} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_26", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 26, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":463} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_27", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 27, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":464} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_28", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 28, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":465} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_29", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 29, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":466} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_30", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 30, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":467} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_31", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 31, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":468} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_32", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 32, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":469} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_33", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 33, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":470} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_34", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 34, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":471} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_35", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 35, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":472} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_36", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 36, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":473} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_37", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 37, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":474} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_38", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 38, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":475} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_39", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 39, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":476} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_40", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 40, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":477} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_41", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 41, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":478} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_42", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 42, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":479} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_43", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 43, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":480} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_44", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 44, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":481} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_45", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 45, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":482} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_46", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 46, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":483} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_47", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 47, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":484} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1StripActiveGasV_48", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1091}, + "fMother" : {"$ref":1088}, + "fNumber" : 48, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":485} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1DetGlassV_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58736640, + "fName" : "tof1DetGlassV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 7, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1085}, + "fMedium" : { + "_typename" : "TGeoMedium", + "fUniqueID" : 5, + "fBits" : 50331648, + "fName" : "RPCglass", + "fTitle" : "", + "fId" : 5, + "fParams" : [0, 1, 20, -1, -1, -1, 0.001, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "fMaterial" : { + "_typename" : "TGeoMixture", + "fUniqueID" : 5, + "fBits" : 50331648, + "fName" : "RPCglass", + "fTitle" : "", + "fFillColor" : 19, + "fFillStyle" : 1001, + "fIndex" : 4, + "fA" : 21.6516575137294, + "fZ" : 10.8047928107838, + "fDensity" : 2.55, + "fRadLen" : 10.5807291507198, + "fIntLen" : 37.6225717576057, + "fTemperature" : 273.15, + "fPressure" : 632420000, + "fState" : 0, + "fShader" : null, + "fCerenkov" : null, + "fElement" : null, + "fNelements" : 2, + "fZmixture" : [14, 8], + "fAmixture" : [28.09, 16], + "fWeights" : [0.467465468463971, 0.532534531536029], + "fNatoms" : [], + "fVecNbOfAtomsPerVolume" : [], + "fElements" : null + } + }, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 79, + "fNtotal" : 1, + "fRefCount" : 2 + }, + "fMother" : {"$ref":1088}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":486} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1DetGlassV_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1142}, + "fMother" : {"$ref":1088}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":487} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1DetPlateV_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58736640, + "fName" : "tof1DetPlateV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 3, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1086}, + "fMedium" : { + "_typename" : "TGeoMedium", + "fUniqueID" : 7, + "fBits" : 50331648, + "fName" : "G10", + "fTitle" : "", + "fId" : 7, + "fParams" : [0, 1, 20, -1, -1, -1, 0.001, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "fMaterial" : { + "_typename" : "TGeoMixture", + "fUniqueID" : 7, + "fBits" : 50331648, + "fName" : "G10", + "fTitle" : "", + "fFillColor" : 19, + "fFillStyle" : 1001, + "fIndex" : 6, + "fA" : 13.127344, + "fZ" : 6.696, + "fDensity" : 1.7, + "fRadLen" : 21.1963817958332, + "fIntLen" : 36.4724641224032, + "fTemperature" : 273.15, + "fPressure" : 632420000, + "fState" : 0, + "fShader" : null, + "fCerenkov" : null, + "fElement" : null, + "fNelements" : 4, + "fZmixture" : [6, 1, 8, 14], + "fAmixture" : [12.01, 1.008, 16, 28.09], + "fWeights" : [0.259, 0.288, 0.248, 0.205], + "fNatoms" : [], + "fVecNbOfAtomsPerVolume" : [], + "fElements" : null + } + }, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 80, + "fNtotal" : 1, + "fRefCount" : 2 + }, + "fMother" : {"$ref":1088}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":488} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1DetPlateV_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1147}, + "fMother" : {"$ref":1088}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":489} + }] + }, + "fShape" : {"$ref":1087}, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 81, + "fNtotal" : 53, + "fRefCount" : 62 + }, + "fBBoxOK" : true + }, { + "_typename" : "TGeoPgon", + "fUniqueID" : 85, + "fBits" : 50331648, + "fName" : "OctagonActivePlaneS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 67503104, + "fDX" : 156.77368629035, + "fDY" : 156.77368629035, + "fDZ" : 0.05, + "fOrigin" : [0, 0, 0], + "fNz" : 2, + "fPhi1" : 0, + "fDphi" : 360, + "fRmin" : [12, 12], + "fRmax" : [144.84, 144.84], + "fZ" : [-0.05, 0.05], + "fNedges" : 8 + }, { + "_typename" : "TGeoPgon", + "fUniqueID" : 86, + "fBits" : 50331648, + "fName" : "OctagonS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 67503104, + "fDX" : 156.77368629035, + "fDY" : 156.77368629035, + "fDZ" : 13.25, + "fOrigin" : [0, 0, 0], + "fNz" : 2, + "fPhi1" : 0, + "fDphi" : 360, + "fRmin" : [12, 12], + "fRmax" : [144.84, 144.84], + "fZ" : [-13.25, 13.25], + "fNedges" : 8 + }, { + "_typename" : "TGeoPgon", + "fUniqueID" : 87, + "fBits" : 50331648, + "fName" : "MWPCContainerS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 67503104, + "fDX" : 26.15396719429, + "fDY" : 26.15396719429, + "fDZ" : 3.5045, + "fOrigin" : [0, 0, 0], + "fNz" : 2, + "fPhi1" : 0, + "fDphi" : 360, + "fRmin" : [0, 0], + "fRmax" : [22.65, 22.65], + "fZ" : [-3.5045, 3.5045], + "fNedges" : 6 + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 88, + "fBits" : 50331648, + "fName" : "MWPCActivePlaneS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 12, + "fDY" : 21.65, + "fDZ" : 0.1, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 89, + "fBits" : 50331648, + "fName" : "ecal01", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 48, + "fDY" : 60, + "fDZ" : 27.5, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 90, + "fBits" : 50331648, + "fName" : "ecal01mod", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 6, + "fDY" : 6, + "fDZ" : 20, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 91, + "fBits" : 50331648, + "fName" : "ecal01front", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 6, + "fDY" : 6, + "fDZ" : 0.1, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 92, + "fBits" : 50331648, + "fName" : "ecal01lay", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 6, + "fDY" : 6, + "fDZ" : 0.09, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 93, + "fBits" : 50331648, + "fName" : "ecal01lead", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 6, + "fDY" : 6, + "fDZ" : 0.015, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 94, + "fBits" : 50331648, + "fName" : "ecal01scint", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 2, + "fDY" : 2, + "fDZ" : 0.075, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 95, + "fBits" : 50331648, + "fName" : "frame_with_windowsS", + "fTitle" : "(frameS0-upper_window_frameS0:upper_window_frame_pos0)-lower_window_rect_frameS0:lower_window_rect_frame_pos0", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 0, + "fDY" : 0, + "fDZ" : 0, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoSubtraction", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 96, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "frameS0-upper_window_frameS0:upper_window_frame_pos0", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 3.15, + "fDY" : 6.30175, + "fDZ" : 0.09, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoSubtraction", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frameS0", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.15, + "fDY" : 6.30175, + "fDZ" : 0.09, + "fOrigin" : [0, 0, 0] + }, + "fRight" : { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "upper_window_frameS0", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.0905, + "fOrigin" : [0, 0, 0] + }, + "fLeftMat" : {"$ref":839}, + "fRightMat" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "upper_window_frame_pos0", + "fTitle" : "", + "fTranslation" : [0, 3.15175, 0] + } + } + }, + "fRight" : { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "lower_window_rect_frameS0", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.0905, + "fOrigin" : [0, 0, 0] + }, + "fLeftMat" : {"$ref":839}, + "fRightMat" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "lower_window_rect_frame_pos0", + "fTitle" : "", + "fTranslation" : [0, -3.15175, 0] + } + } + }, {"$ref":1163}, { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 97, + "fBits" : 50331648, + "fName" : "frame_with_windowsS", + "fTitle" : "(frameS1-upper_window_frameS1:upper_window_frame_pos1)-lower_window_bevel_frameS1:lower_window_bevel_frame_pos1", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 0, + "fDY" : 0, + "fDZ" : 0, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoSubtraction", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 98, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "frameS1-upper_window_frameS1:upper_window_frame_pos1", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 3.15, + "fDY" : 6.30175, + "fDZ" : 0.09, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoSubtraction", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : { + "_typename" : "TGeoXtru", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frameS1", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 134218752, + "fDX" : 3.15, + "fDY" : 6.30175, + "fDZ" : 0.09, + "fOrigin" : [0, 0, 0], + "fNvert" : 5, + "fNz" : 2, + "fZcurrent" : 0, + "fX" : [3.15, -3.15, -3.15, -0.67, 3.15], + "fY" : [6.30175, 6.30175, -6.30175, -6.30175, -2.48175], + "fZ" : [-0.09, 0.09], + "fScale" : [1, 1], + "fX0" : [0, 0], + "fY0" : [0, 0] + }, + "fRight" : { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "upper_window_frameS1", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.0905, + "fOrigin" : [0, 0, 0] + }, + "fLeftMat" : {"$ref":839}, + "fRightMat" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "upper_window_frame_pos1", + "fTitle" : "", + "fTranslation" : [0, 3.15175, 0] + } + } + }, + "fRight" : { + "_typename" : "TGeoXtru", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "lower_window_bevel_frameS1", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 134218752, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.0905, + "fOrigin" : [0, 0, 0], + "fNvert" : 5, + "fNz" : 2, + "fZcurrent" : 0, + "fX" : [3.05, -3.05, -3.05, -0.711421356237309, 3.05], + "fY" : [3.05, 3.05, -3.05, -3.05, 0.71142135623731], + "fZ" : [-0.0905, 0.0905], + "fScale" : [1, 1], + "fX0" : [0, 0], + "fY0" : [0, 0] + }, + "fLeftMat" : {"$ref":839}, + "fRightMat" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "lower_window_bevel_frame_pos1", + "fTitle" : "", + "fTranslation" : [0, -3.15175, 0] + } + } + }, {"$ref":1172}, { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 99, + "fBits" : 50331648, + "fName" : "frame_with_windowsS", + "fTitle" : "(frameS2-upper_window_frameS2:upper_window_frame_pos2)-lower_window_bevel_frameS2:lower_window_bevel_frame_pos2", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 0, + "fDY" : 0, + "fDZ" : 0, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoSubtraction", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 100, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "frameS2-upper_window_frameS2:upper_window_frame_pos2", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 3.15, + "fDY" : 6.30175, + "fDZ" : 0.09, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoSubtraction", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : { + "_typename" : "TGeoXtru", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frameS2", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 134218752, + "fDX" : 3.15, + "fDY" : 6.30175, + "fDZ" : 0.09, + "fOrigin" : [0, 0, 0], + "fNvert" : 5, + "fNz" : 2, + "fZcurrent" : 0, + "fX" : [3.15, -3.15, -3.15, -0.67, 3.15], + "fY" : [6.30175, 6.30175, -6.30175, -6.30175, -2.48175], + "fZ" : [-0.09, 0.09], + "fScale" : [1, 1], + "fX0" : [0, 0], + "fY0" : [0, 0] + }, + "fRight" : { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "upper_window_frameS2", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.0905, + "fOrigin" : [0, 0, 0] + }, + "fLeftMat" : {"$ref":839}, + "fRightMat" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "upper_window_frame_pos2", + "fTitle" : "", + "fTranslation" : [0, 3.15175, 0] + } + } + }, + "fRight" : { + "_typename" : "TGeoXtru", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "lower_window_bevel_frameS2", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 134218752, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.0905, + "fOrigin" : [0, 0, 0], + "fNvert" : 5, + "fNz" : 2, + "fZcurrent" : 0, + "fX" : [3.05, -3.05, -3.05, -0.711421356237309, 3.05], + "fY" : [3.05, 3.05, -3.05, -3.05, 0.71142135623731], + "fZ" : [-0.0905, 0.0905], + "fScale" : [1, 1], + "fX0" : [0, 0], + "fY0" : [0, 0] + }, + "fLeftMat" : {"$ref":839}, + "fRightMat" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "lower_window_bevel_frame_pos2", + "fTitle" : "", + "fTranslation" : [0, -3.15175, 0] + } + } + }, {"$ref":1181}, { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 101, + "fBits" : 50331648, + "fName" : "frame_with_windowsS", + "fTitle" : "(frameS3-upper_window_frameS3:upper_window_frame_pos3)-lower_window_rect_frameS3:lower_window_rect_frame_pos3", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 0, + "fDY" : 0, + "fDZ" : 0, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoSubtraction", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 102, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "frameS3-upper_window_frameS3:upper_window_frame_pos3", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 3.15, + "fDY" : 6.30175, + "fDZ" : 0.09, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoSubtraction", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frameS3", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.15, + "fDY" : 6.30175, + "fDZ" : 0.09, + "fOrigin" : [0, 0, 0] + }, + "fRight" : { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "upper_window_frameS3", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.0905, + "fOrigin" : [0, 0, 0] + }, + "fLeftMat" : {"$ref":839}, + "fRightMat" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "upper_window_frame_pos3", + "fTitle" : "", + "fTranslation" : [0, 3.15175, 0] + } + } + }, + "fRight" : { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "lower_window_rect_frameS3", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.0905, + "fOrigin" : [0, 0, 0] + }, + "fLeftMat" : {"$ref":839}, + "fRightMat" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "lower_window_rect_frame_pos3", + "fTitle" : "", + "fTranslation" : [0, -3.15175, 0] + } + } + }, {"$ref":1190}, { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 103, + "fBits" : 50331648, + "fName" : "frame_with_windowsS", + "fTitle" : "(frameS4-upper_window_frameS4:upper_window_frame_pos4)-lower_window_rect_frameS4:lower_window_rect_frame_pos4", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 0, + "fDY" : 0, + "fDZ" : 0, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoSubtraction", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 104, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "frameS4-upper_window_frameS4:upper_window_frame_pos4", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 3.15, + "fDY" : 6.30175, + "fDZ" : 0.09, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoSubtraction", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frameS4", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.15, + "fDY" : 6.30175, + "fDZ" : 0.09, + "fOrigin" : [0, 0, 0] + }, + "fRight" : { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "upper_window_frameS4", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.0905, + "fOrigin" : [0, 0, 0] + }, + "fLeftMat" : {"$ref":839}, + "fRightMat" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "upper_window_frame_pos4", + "fTitle" : "", + "fTranslation" : [0, 3.15175, 0] + } + } + }, + "fRight" : { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "lower_window_rect_frameS4", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.0905, + "fOrigin" : [0, 0, 0] + }, + "fLeftMat" : {"$ref":839}, + "fRightMat" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "lower_window_rect_frame_pos4", + "fTitle" : "", + "fTranslation" : [0, -3.15175, 0] + } + } + }, {"$ref":1199}, { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 105, + "fBits" : 50331648, + "fName" : "frame_with_windowsS", + "fTitle" : "(frameS5-upper_window_frameS5:upper_window_frame_pos5)-lower_window_bevel_frameS5:lower_window_bevel_frame_pos5", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 0, + "fDY" : 0, + "fDZ" : 0, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoSubtraction", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 106, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "frameS5-upper_window_frameS5:upper_window_frame_pos5", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 3.15, + "fDY" : 6.30175, + "fDZ" : 0.09, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoSubtraction", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : { + "_typename" : "TGeoXtru", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frameS5", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 134218752, + "fDX" : 3.15, + "fDY" : 6.30175, + "fDZ" : 0.09, + "fOrigin" : [0, 0, 0], + "fNvert" : 5, + "fNz" : 2, + "fZcurrent" : 0, + "fX" : [3.15, -3.15, -3.15, -0.67, 3.15], + "fY" : [6.30175, 6.30175, -6.30175, -6.30175, -2.48175], + "fZ" : [-0.09, 0.09], + "fScale" : [1, 1], + "fX0" : [0, 0], + "fY0" : [0, 0] + }, + "fRight" : { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "upper_window_frameS5", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.0905, + "fOrigin" : [0, 0, 0] + }, + "fLeftMat" : {"$ref":839}, + "fRightMat" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "upper_window_frame_pos5", + "fTitle" : "", + "fTranslation" : [0, 3.15175, 0] + } + } + }, + "fRight" : { + "_typename" : "TGeoXtru", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "lower_window_bevel_frameS5", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 134218752, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.0905, + "fOrigin" : [0, 0, 0], + "fNvert" : 5, + "fNz" : 2, + "fZcurrent" : 0, + "fX" : [3.05, -3.05, -3.05, -0.711421356237309, 3.05], + "fY" : [3.05, 3.05, -3.05, -3.05, 0.71142135623731], + "fZ" : [-0.0905, 0.0905], + "fScale" : [1, 1], + "fX0" : [0, 0], + "fY0" : [0, 0] + }, + "fLeftMat" : {"$ref":839}, + "fRightMat" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "lower_window_bevel_frame_pos5", + "fTitle" : "", + "fTranslation" : [0, -3.15175, 0] + } + } + }, {"$ref":1208}, { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 107, + "fBits" : 50331648, + "fName" : "frame_with_windowsS", + "fTitle" : "(frameS6-upper_window_frameS6:upper_window_frame_pos6)-lower_window_bevel_frameS6:lower_window_bevel_frame_pos6", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 0, + "fDY" : 0, + "fDZ" : 0, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoSubtraction", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 108, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "frameS6-upper_window_frameS6:upper_window_frame_pos6", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 3.15, + "fDY" : 6.30175, + "fDZ" : 0.09, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoSubtraction", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : { + "_typename" : "TGeoXtru", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frameS6", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 134218752, + "fDX" : 3.15, + "fDY" : 6.30175, + "fDZ" : 0.09, + "fOrigin" : [0, 0, 0], + "fNvert" : 5, + "fNz" : 2, + "fZcurrent" : 0, + "fX" : [3.15, -3.15, -3.15, -0.67, 3.15], + "fY" : [6.30175, 6.30175, -6.30175, -6.30175, -2.48175], + "fZ" : [-0.09, 0.09], + "fScale" : [1, 1], + "fX0" : [0, 0], + "fY0" : [0, 0] + }, + "fRight" : { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "upper_window_frameS6", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.0905, + "fOrigin" : [0, 0, 0] + }, + "fLeftMat" : {"$ref":839}, + "fRightMat" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "upper_window_frame_pos6", + "fTitle" : "", + "fTranslation" : [0, 3.15175, 0] + } + } + }, + "fRight" : { + "_typename" : "TGeoXtru", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "lower_window_bevel_frameS6", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 134218752, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.0905, + "fOrigin" : [0, 0, 0], + "fNvert" : 5, + "fNz" : 2, + "fZcurrent" : 0, + "fX" : [3.05, -3.05, -3.05, -0.711421356237309, 3.05], + "fY" : [3.05, 3.05, -3.05, -3.05, 0.71142135623731], + "fZ" : [-0.0905, 0.0905], + "fScale" : [1, 1], + "fX0" : [0, 0], + "fY0" : [0, 0] + }, + "fLeftMat" : {"$ref":839}, + "fRightMat" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "lower_window_bevel_frame_pos6", + "fTitle" : "", + "fTranslation" : [0, -3.15175, 0] + } + } + }, {"$ref":1217}, { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 109, + "fBits" : 50331648, + "fName" : "frame_with_windowsS", + "fTitle" : "(frameS7-upper_window_frameS7:upper_window_frame_pos7)-lower_window_rect_frameS7:lower_window_rect_frame_pos7", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 0, + "fDY" : 0, + "fDZ" : 0, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoSubtraction", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : { + "_typename" : "TGeoCompositeShape", + "fUniqueID" : 110, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "frameS7-upper_window_frameS7:upper_window_frame_pos7", + "fShapeId" : 256, + "fShapeBits" : 33555456, + "fDX" : 3.15, + "fDY" : 6.30175, + "fDZ" : 0.09, + "fOrigin" : [0, 0, 0], + "fNode" : { + "_typename" : "TGeoSubtraction", + "fUniqueID" : 0, + "fBits" : 50331648, + "fLeft" : { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frameS7", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.15, + "fDY" : 6.30175, + "fDZ" : 0.09, + "fOrigin" : [0, 0, 0] + }, + "fRight" : { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "upper_window_frameS7", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.0905, + "fOrigin" : [0, 0, 0] + }, + "fLeftMat" : {"$ref":839}, + "fRightMat" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "upper_window_frame_pos7", + "fTitle" : "", + "fTranslation" : [0, 3.15175, 0] + } + } + }, + "fRight" : { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "lower_window_rect_frameS7", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.0905, + "fOrigin" : [0, 0, 0] + }, + "fLeftMat" : {"$ref":839}, + "fRightMat" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "lower_window_rect_frame_pos7", + "fTitle" : "", + "fTranslation" : [0, -3.15175, 0] + } + } + }, {"$ref":1226}, { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "sensor_zone_upper_partS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.015, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "sensor_zone_lower_part_rectS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.015, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "moduleS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.15, + "fDY" : 6.30175, + "fDZ" : 0.015, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoXtru", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "sensor_zone_lower_part_bevelS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 134218752, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.015, + "fOrigin" : [0, 0, 0], + "fNvert" : 5, + "fNz" : 2, + "fZcurrent" : 0, + "fX" : [3.05, -3.05, -3.05, -0.711421356237309, 3.05], + "fY" : [3.05, 3.05, -3.05, -3.05, 0.71142135623731], + "fZ" : [-0.015, 0.015], + "fScale" : [1, 1], + "fX0" : [0, 0], + "fY0" : [0, 0] + }, { + "_typename" : "TGeoXtru", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "moduleS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 134218752, + "fDX" : 3.15, + "fDY" : 6.30175, + "fDZ" : 0.015, + "fOrigin" : [0, 0, 0], + "fNvert" : 5, + "fNz" : 2, + "fZcurrent" : 0, + "fX" : [3.15, -3.15, -3.15, -0.67, 3.15], + "fY" : [6.30175, 6.30175, -6.30175, -6.30175, -2.48175], + "fZ" : [-0.015, 0.015], + "fScale" : [1, 1], + "fX0" : [0, 0], + "fY0" : [0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "sensor_zone_upper_partS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.015, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoXtru", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "moduleS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 134218752, + "fDX" : 3.15, + "fDY" : 6.30175, + "fDZ" : 0.015, + "fOrigin" : [0, 0, 0], + "fNvert" : 5, + "fNz" : 2, + "fZcurrent" : 0, + "fX" : [3.15, -3.15, -3.15, -0.67, 3.15], + "fY" : [6.30175, 6.30175, -6.30175, -6.30175, -2.48175], + "fZ" : [-0.015, 0.015], + "fScale" : [1, 1], + "fX0" : [0, 0], + "fY0" : [0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "sensor_zone_upper_partS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.015, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoXtru", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "sensor_zone_lower_part_bevelS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 134218752, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.015, + "fOrigin" : [0, 0, 0], + "fNvert" : 5, + "fNz" : 2, + "fZcurrent" : 0, + "fX" : [3.05, -3.05, -3.05, -0.711421356237309, 3.05], + "fY" : [3.05, 3.05, -3.05, -3.05, 0.71142135623731], + "fZ" : [-0.015, 0.015], + "fScale" : [1, 1], + "fX0" : [0, 0], + "fY0" : [0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "moduleS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.15, + "fDY" : 6.30175, + "fDZ" : 0.015, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "sensor_zone_upper_partS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.015, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "sensor_zone_lower_part_rectS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.015, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "moduleS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.15, + "fDY" : 6.30175, + "fDZ" : 0.015, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "sensor_zone_upper_partS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.015, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "sensor_zone_lower_part_rectS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.015, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoXtru", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "moduleS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 134218752, + "fDX" : 3.15, + "fDY" : 6.30175, + "fDZ" : 0.015, + "fOrigin" : [0, 0, 0], + "fNvert" : 5, + "fNz" : 2, + "fZcurrent" : 0, + "fX" : [3.15, -3.15, -3.15, -0.67, 3.15], + "fY" : [6.30175, 6.30175, -6.30175, -6.30175, -2.48175], + "fZ" : [-0.015, 0.015], + "fScale" : [1, 1], + "fX0" : [0, 0], + "fY0" : [0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "sensor_zone_upper_partS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.015, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoXtru", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "sensor_zone_lower_part_bevelS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 134218752, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.015, + "fOrigin" : [0, 0, 0], + "fNvert" : 5, + "fNz" : 2, + "fZcurrent" : 0, + "fX" : [3.05, -3.05, -3.05, -0.711421356237309, 3.05], + "fY" : [3.05, 3.05, -3.05, -3.05, 0.71142135623731], + "fZ" : [-0.015, 0.015], + "fScale" : [1, 1], + "fX0" : [0, 0], + "fY0" : [0, 0] + }, { + "_typename" : "TGeoXtru", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "moduleS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 134218752, + "fDX" : 3.15, + "fDY" : 6.30175, + "fDZ" : 0.015, + "fOrigin" : [0, 0, 0], + "fNvert" : 5, + "fNz" : 2, + "fZcurrent" : 0, + "fX" : [3.15, -3.15, -3.15, -0.67, 3.15], + "fY" : [6.30175, 6.30175, -6.30175, -6.30175, -2.48175], + "fZ" : [-0.015, 0.015], + "fScale" : [1, 1], + "fX0" : [0, 0], + "fY0" : [0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "sensor_zone_upper_partS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.015, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoXtru", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "sensor_zone_lower_part_bevelS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 134218752, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.015, + "fOrigin" : [0, 0, 0], + "fNvert" : 5, + "fNz" : 2, + "fZcurrent" : 0, + "fX" : [3.05, -3.05, -3.05, -0.711421356237309, 3.05], + "fY" : [3.05, 3.05, -3.05, -3.05, 0.71142135623731], + "fZ" : [-0.015, 0.015], + "fScale" : [1, 1], + "fX0" : [0, 0], + "fY0" : [0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "moduleS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.15, + "fDY" : 6.30175, + "fDZ" : 0.015, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "sensor_zone_upper_partS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.015, + "fOrigin" : [0, 0, 0] + }, { + "_typename" : "TGeoBBox", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "sensor_zone_lower_part_rectS", + "fTitle" : "", + "fShapeId" : 256, + "fShapeBits" : 1024, + "fDX" : 3.05, + "fDY" : 3.05, + "fDZ" : 0.015, + "fOrigin" : [0, 0, 0] + }] + }, + "fVolumes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 59785216, + "fName" : "cave", + "fTitle" : "Top volume", + "fGeoAtt" : 3084, + "fLineColor" : 3, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Magnet_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolumeAssembly", + "fUniqueID" : 0, + "fBits" : 59785216, + "fName" : "Magnet", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 1, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Coil_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58736640, + "fName" : "Coil", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 4, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":849}, + "fMedium" : { + "_typename" : "TGeoMedium", + "fUniqueID" : 2, + "fBits" : 50331648, + "fName" : "copper", + "fTitle" : "", + "fId" : 2, + "fParams" : [0, 1, 20, -1, -1, -1, 0.001, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "fMaterial" : { + "_typename" : "TGeoMaterial", + "fUniqueID" : 2, + "fBits" : 50331648, + "fName" : "copper", + "fTitle" : "", + "fFillColor" : 19, + "fFillStyle" : 1001, + "fIndex" : 1, + "fA" : 63.54, + "fZ" : 29, + "fDensity" : 8.96, + "fRadLen" : 1.43502863740006, + "fIntLen" : 15.5141335257514, + "fTemperature" : 273.15, + "fPressure" : 632420000, + "fState" : 0, + "fShader" : null, + "fCerenkov" : null, + "fElement" : null + } + }, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 3, + "fNtotal" : 1, + "fRefCount" : 2 + }, + "fMother" : {"$ref":1261}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t3", + "fTitle" : "", + "fTranslation" : [0, -85, 0] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Coil_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1264}, + "fMother" : {"$ref":1261}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t3", + "fTitle" : "", + "fTranslation" : [0, 85, 0] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Pole_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58736640, + "fName" : "Pole", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":882}, + "fMedium" : { + "_typename" : "TGeoMedium", + "fUniqueID" : 3, + "fBits" : 50331648, + "fName" : "iron", + "fTitle" : "", + "fId" : 3, + "fParams" : [1, 1, 20, -1, -1, -1, 0.001, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "fMaterial" : { + "_typename" : "TGeoMaterial", + "fUniqueID" : 3, + "fBits" : 50331648, + "fName" : "iron", + "fTitle" : "", + "fFillColor" : 19, + "fFillStyle" : 1001, + "fIndex" : 2, + "fA" : 55.847, + "fZ" : 26, + "fDensity" : 7.87, + "fRadLen" : 1.75762222730907, + "fIntLen" : 16.9675125483994, + "fTemperature" : 273.15, + "fPressure" : 632420000, + "fState" : 0, + "fShader" : null, + "fCerenkov" : null, + "fElement" : null + } + }, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 4, + "fNtotal" : 1, + "fRefCount" : 2 + }, + "fMother" : {"$ref":1261}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 52822016, + "fName" : "c3", + "fTitle" : "", + "fTranslation" : [0, -84.25, 0], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 52690944, + "fName" : "", + "fTitle" : "", + "fRotationMatrix" : [1, 0, 0, 0, 0, 1, 0, -1, 0] + } + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Pole_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1271}, + "fMother" : {"$ref":1261}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 52822016, + "fName" : "c3", + "fTitle" : "", + "fTranslation" : [0, 84.25, 0], + "fRotation" : {"$ref":1275} + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Yoke_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "Yoke", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 6, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":878}, + "fMedium" : { + "_typename" : "TGeoMedium", + "fUniqueID" : 4, + "fBits" : 50331648, + "fName" : "steel", + "fTitle" : "", + "fId" : 4, + "fParams" : [0, 1, 30, -1, -1, -1, 0.001, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "fMaterial" : { + "_typename" : "TGeoMixture", + "fUniqueID" : 4, + "fBits" : 50462720, + "fName" : "steel", + "fTitle" : "", + "fFillColor" : 19, + "fFillStyle" : 1001, + "fIndex" : 3, + "fA" : 55.3021846147983, + "fZ" : 25.7733568999496, + "fDensity" : 8.02, + "fRadLen" : 1.73601610180003, + "fIntLen" : 16.5874229502559, + "fTemperature" : 273.15, + "fPressure" : 632420000, + "fState" : 0, + "fShader" : null, + "fCerenkov" : null, + "fElement" : null, + "fNelements" : 5, + "fZmixture" : [25, 14, 24, 28, 26], + "fAmixture" : [54.938, 28.09, 51.996, 58.693, 55.85], + "fWeights" : [0.0199389542374542, 0.00509743005324265, 0.179276379064425, 0.106508886477384, 0.689178350167495], + "fNatoms" : [], + "fVecNbOfAtomsPerVolume" : [], + "fElements" : null + } + }, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 5, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1261}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":4} + }] + }, + "fShape" : { + "_typename" : "TGeoShapeAssembly", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fShapeId" : 0, + "fShapeBits" : 1024, + "fDX" : 350, + "fDY" : 224, + "fDZ" : 257.1, + "fOrigin" : [0, 0, 0], + "fVolume" : {"$ref":1261}, + "fBBoxOK" : true + }, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 2, + "fNtotal" : 6, + "fRefCount" : 7 + }, + "fMother" : {"$ref":1258}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t3", + "fTitle" : "", + "fTranslation" : [0, 0, 124.5] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof700_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolumeAssembly", + "fUniqueID" : 0, + "fBits" : 59785216, + "fName" : "tof700", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 1, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2ChamberV0_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 59785216, + "fName" : "TOF2ChamberV0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 4, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2GlassVolumeV0_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58736640, + "fName" : "TOF2GlassVolumeV0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 7, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":883}, + "fMedium" : {"$ref":1143}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 7, + "fNtotal" : 1, + "fRefCount" : 2 + }, + "fMother" : {"$ref":1288}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":7} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2ActiveGasVolumeV0_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "TOF2ActiveGasVolumeV0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 1, + "fBits" : 58736640, + "fName" : "ActiveGasStrip", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":884}, + "fMedium" : {"$ref":1092}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 8, + "fNtotal" : 1, + "fRefCount" : 32 + }, + "fMother" : {"$ref":1293}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : -17.02578125, + "fIndex" : 0, + "fFinder" : { + "_typename" : "TGeoPatternY", + "fUniqueID" : 0, + "fBits" : 50331648, + "fStep" : 1.0984375, + "fStart" : -17.575, + "fEnd" : 17.575, + "fNdivisions" : 32, + "fDivIndex" : 0, + "fVolume" : {"$ref":1293} + } + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : -15.92734375, + "fIndex" : 1, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_3", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 3, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : -14.82890625, + "fIndex" : 2, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_4", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 4, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : -13.73046875, + "fIndex" : 3, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_5", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 5, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : -12.63203125, + "fIndex" : 4, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_6", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 6, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : -11.53359375, + "fIndex" : 5, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_7", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 7, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : -10.43515625, + "fIndex" : 6, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_8", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 8, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : -9.33671875, + "fIndex" : 7, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_9", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 9, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : -8.23828125, + "fIndex" : 8, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_10", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 10, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : -7.13984375, + "fIndex" : 9, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_11", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 11, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : -6.04140625, + "fIndex" : 10, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_12", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 12, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : -4.94296875, + "fIndex" : 11, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_13", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 13, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : -3.84453125, + "fIndex" : 12, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_14", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 14, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : -2.74609375, + "fIndex" : 13, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_15", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 15, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : -1.64765625, + "fIndex" : 14, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_16", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 16, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : -0.549218749999998, + "fIndex" : 15, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_17", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 17, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : 0.549218750000001, + "fIndex" : 16, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_18", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 18, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : 1.64765625, + "fIndex" : 17, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_19", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 19, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : 2.74609375, + "fIndex" : 18, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_20", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 20, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : 3.84453125, + "fIndex" : 19, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_21", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 21, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : 4.94296875, + "fIndex" : 20, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_22", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 22, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : 6.04140625, + "fIndex" : 21, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_23", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 23, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : 7.13984375, + "fIndex" : 22, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_24", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 24, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : 8.23828125, + "fIndex" : 23, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_25", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 25, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : 9.33671875, + "fIndex" : 24, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_26", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 26, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : 10.43515625, + "fIndex" : 25, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_27", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 27, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : 11.53359375, + "fIndex" : 26, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_28", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 28, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : 12.63203125, + "fIndex" : 27, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_29", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 29, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : 13.73046875, + "fIndex" : 28, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_30", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 30, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : 14.82890625, + "fIndex" : 29, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_31", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 31, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : 15.92734375, + "fIndex" : 30, + "fFinder" : {"$ref":1297} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_32", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1296}, + "fMother" : {"$ref":1293}, + "fNumber" : 32, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : 17.02578125, + "fIndex" : 31, + "fFinder" : {"$ref":1297} + }] + }, + "fShape" : {"$ref":885}, + "fMedium" : {"$ref":1092}, + "fFinder" : {"$ref":1297}, + "fVoxels" : null, + "fNumber" : 9, + "fNtotal" : 33, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1288}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "GasLayerPosTOF2_trans", + "fTitle" : "", + "fTranslation" : [0, 0, -0.128] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2GlassVolumeV0_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1291}, + "fMother" : {"$ref":1288}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":8} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2G10VolumeV0_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "TOF2G10VolumeV0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 3, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":886}, + "fMedium" : {"$ref":1148}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 10, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1288}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":9} + }] + }, + "fShape" : {"$ref":887}, + "fMedium" : { + "_typename" : "TGeoMedium", + "fUniqueID" : 8, + "fBits" : 50331648, + "fName" : "aluminium", + "fTitle" : "", + "fId" : 8, + "fParams" : [0, 1, 20, -1, -1, -1, 0.001, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "fMaterial" : { + "_typename" : "TGeoMaterial", + "fUniqueID" : 8, + "fBits" : 50331648, + "fName" : "aluminium", + "fTitle" : "", + "fFillColor" : 19, + "fFillStyle" : 1001, + "fIndex" : 7, + "fA" : 26.98, + "fZ" : 13, + "fDensity" : 2.7, + "fRadLen" : 8.87510465963777, + "fIntLen" : 38.8622319406182, + "fTemperature" : 273.15, + "fPressure" : 632420000, + "fState" : 0, + "fShader" : null, + "fCerenkov" : null, + "fElement" : null + } + }, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 11, + "fNtotal" : 37, + "fRefCount" : 25 + }, + "fMother" : {"$ref":1285}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "Module_1_PosTOF2_trans", + "fTitle" : "", + "fTranslation" : [86.1, 29.65, 605.9] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2ChamberV0_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1288}, + "fMother" : {"$ref":1285}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "Module_2_PosTOF2_trans", + "fTitle" : "", + "fTranslation" : [71.9, 29.65, 597.1] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2ChamberV0_3", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1288}, + "fMother" : {"$ref":1285}, + "fNumber" : 3, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "Module_3_PosTOF2_trans", + "fTitle" : "", + "fTranslation" : [55.8, 29.65, 605.9] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2ChamberV0_4", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1288}, + "fMother" : {"$ref":1285}, + "fNumber" : 4, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "Module_4_PosTOF2_trans", + "fTitle" : "", + "fTranslation" : [42.1, 29.65, 597.1] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2ChamberV0_5", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1288}, + "fMother" : {"$ref":1285}, + "fNumber" : 5, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "Module_5_PosTOF2_trans", + "fTitle" : "", + "fTranslation" : [25.7, 29.65, 605.9] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2ChamberV0_6", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1288}, + "fMother" : {"$ref":1285}, + "fNumber" : 6, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "Module_6_PosTOF2_trans", + "fTitle" : "", + "fTranslation" : [12.3, 29.65, 597.1] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2ChamberV0_7", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1288}, + "fMother" : {"$ref":1285}, + "fNumber" : 7, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "Module_7_PosTOF2_trans", + "fTitle" : "", + "fTranslation" : [-4.5, 27.15, 605.9] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2ChamberV0_8", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1288}, + "fMother" : {"$ref":1285}, + "fNumber" : 8, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "Module_8_PosTOF2_trans", + "fTitle" : "", + "fTranslation" : [88.2, -3.55, 635.9] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2ChamberV0_9", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1288}, + "fMother" : {"$ref":1285}, + "fNumber" : 9, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "Module_9_PosTOF2_trans", + "fTitle" : "", + "fTranslation" : [72.1, -4.35, 627.1] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2ChamberV0_10", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1288}, + "fMother" : {"$ref":1285}, + "fNumber" : 10, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "Module_10_PosTOF2_trans", + "fTitle" : "", + "fTranslation" : [58, -3.55, 635.9] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2ChamberV0_11", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1288}, + "fMother" : {"$ref":1285}, + "fNumber" : 11, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "Module_11_PosTOF2_trans", + "fTitle" : "", + "fTranslation" : [42.3, -4.35, 627.1] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2ChamberV0_12", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1288}, + "fMother" : {"$ref":1285}, + "fNumber" : 12, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "Module_12_PosTOF2_trans", + "fTitle" : "", + "fTranslation" : [27.8, -3.55, 635.9] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2ChamberV0_13", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1288}, + "fMother" : {"$ref":1285}, + "fNumber" : 13, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "Module_13_PosTOF2_trans", + "fTitle" : "", + "fTranslation" : [27.8, -3.55, 647] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2ChamberV0_14", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1288}, + "fMother" : {"$ref":1285}, + "fNumber" : 14, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "Module_14_PosTOF2_trans", + "fTitle" : "", + "fTranslation" : [12.5, -4.35, 627.1] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2ChamberV0_15", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1288}, + "fMother" : {"$ref":1285}, + "fNumber" : 15, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "Module_15_PosTOF2_trans", + "fTitle" : "", + "fTranslation" : [86, -36.45, 605.9] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2ChamberV0_16", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1288}, + "fMother" : {"$ref":1285}, + "fNumber" : 16, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "Module_16_PosTOF2_trans", + "fTitle" : "", + "fTranslation" : [71.9, -36.45, 597.1] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2ChamberV0_17", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1288}, + "fMother" : {"$ref":1285}, + "fNumber" : 17, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "Module_17_PosTOF2_trans", + "fTitle" : "", + "fTranslation" : [55.8, -36.45, 605.9] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2ChamberV0_18", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1288}, + "fMother" : {"$ref":1285}, + "fNumber" : 18, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "Module_18_PosTOF2_trans", + "fTitle" : "", + "fTranslation" : [42.1, -36.45, 597.1] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2ChamberV0_19", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1288}, + "fMother" : {"$ref":1285}, + "fNumber" : 19, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "Module_19_PosTOF2_trans", + "fTitle" : "", + "fTranslation" : [25.7, -36.45, 605.9] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2ChamberV0_20", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1288}, + "fMother" : {"$ref":1285}, + "fNumber" : 20, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "Module_20_PosTOF2_trans", + "fTitle" : "", + "fTranslation" : [12.3, -36.45, 597.1] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2ChamberV0_21", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1288}, + "fMother" : {"$ref":1285}, + "fNumber" : 21, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "Module_21_PosTOF2_trans", + "fTitle" : "", + "fTranslation" : [-4.5, -34.15, 605.9] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2ChamberV1_22", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 59785216, + "fName" : "TOF2ChamberV1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 4, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2GlassVolumeV1_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58736640, + "fName" : "TOF2GlassVolumeV1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 7, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":888}, + "fMedium" : {"$ref":1143}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 12, + "fNtotal" : 1, + "fRefCount" : 2 + }, + "fMother" : {"$ref":1377}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":7} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2ActiveGasVolumeV1_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "TOF2ActiveGasVolumeV1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 1, + "fBits" : 58736640, + "fName" : "ActiveGasStrip", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":890}, + "fMedium" : {"$ref":1092}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 8, + "fNtotal" : 1, + "fRefCount" : 16 + }, + "fMother" : {"$ref":1382}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : -14.2265625, + "fIndex" : 0, + "fFinder" : { + "_typename" : "TGeoPatternY", + "fUniqueID" : 0, + "fBits" : 50331648, + "fStep" : 1.896875, + "fStart" : -15.175, + "fEnd" : 15.175, + "fNdivisions" : 16, + "fDivIndex" : 0, + "fVolume" : {"$ref":1382} + } + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1385}, + "fMother" : {"$ref":1382}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : -12.3296875, + "fIndex" : 1, + "fFinder" : {"$ref":1386} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_3", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1385}, + "fMother" : {"$ref":1382}, + "fNumber" : 3, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : -10.4328125, + "fIndex" : 2, + "fFinder" : {"$ref":1386} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_4", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1385}, + "fMother" : {"$ref":1382}, + "fNumber" : 4, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : -8.5359375, + "fIndex" : 3, + "fFinder" : {"$ref":1386} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_5", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1385}, + "fMother" : {"$ref":1382}, + "fNumber" : 5, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : -6.6390625, + "fIndex" : 4, + "fFinder" : {"$ref":1386} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_6", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1385}, + "fMother" : {"$ref":1382}, + "fNumber" : 6, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : -4.7421875, + "fIndex" : 5, + "fFinder" : {"$ref":1386} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_7", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1385}, + "fMother" : {"$ref":1382}, + "fNumber" : 7, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : -2.8453125, + "fIndex" : 6, + "fFinder" : {"$ref":1386} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_8", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1385}, + "fMother" : {"$ref":1382}, + "fNumber" : 8, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : -0.948437499999999, + "fIndex" : 7, + "fFinder" : {"$ref":1386} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_9", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1385}, + "fMother" : {"$ref":1382}, + "fNumber" : 9, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : 0.948437500000001, + "fIndex" : 8, + "fFinder" : {"$ref":1386} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_10", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1385}, + "fMother" : {"$ref":1382}, + "fNumber" : 10, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : 2.8453125, + "fIndex" : 9, + "fFinder" : {"$ref":1386} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_11", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1385}, + "fMother" : {"$ref":1382}, + "fNumber" : 11, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : 4.7421875, + "fIndex" : 10, + "fFinder" : {"$ref":1386} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_12", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1385}, + "fMother" : {"$ref":1382}, + "fNumber" : 12, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : 6.6390625, + "fIndex" : 11, + "fFinder" : {"$ref":1386} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_13", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1385}, + "fMother" : {"$ref":1382}, + "fNumber" : 13, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : 8.5359375, + "fIndex" : 12, + "fFinder" : {"$ref":1386} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_14", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1385}, + "fMother" : {"$ref":1382}, + "fNumber" : 14, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : 10.4328125, + "fIndex" : 13, + "fFinder" : {"$ref":1386} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_15", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1385}, + "fMother" : {"$ref":1382}, + "fNumber" : 15, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : 12.3296875, + "fIndex" : 14, + "fFinder" : {"$ref":1386} + }, { + "_typename" : "TGeoNodeOffset", + "fUniqueID" : 0, + "fBits" : 50364416, + "fName" : "ActiveGasStrip_16", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1385}, + "fMother" : {"$ref":1382}, + "fNumber" : 16, + "fNovlp" : 0, + "fOverlaps" : [], + "fOffset" : 14.2265625, + "fIndex" : 15, + "fFinder" : {"$ref":1386} + }] + }, + "fShape" : {"$ref":889}, + "fMedium" : {"$ref":1092}, + "fFinder" : {"$ref":1386}, + "fVoxels" : null, + "fNumber" : 13, + "fNtotal" : 17, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1377}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":1329} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2GlassVolumeV1_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1380}, + "fMother" : {"$ref":1377}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":8} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2G10VolumeV1_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "TOF2G10VolumeV1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 3, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":891}, + "fMedium" : {"$ref":1148}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 14, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1377}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":9} + }] + }, + "fShape" : {"$ref":892}, + "fMedium" : {"$ref":1333}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 15, + "fNtotal" : 21, + "fRefCount" : 7 + }, + "fMother" : {"$ref":1285}, + "fNumber" : 22, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "Module_22_PosTOF2_trans", + "fTitle" : "", + "fTranslation" : [120.3, 25.15, 597.1] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2ChamberV1_23", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1377}, + "fMother" : {"$ref":1285}, + "fNumber" : 23, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "Module_23_PosTOF2_trans", + "fTitle" : "", + "fTranslation" : [120.5, -4.25, 627.1] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF2ChamberV1_24", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1377}, + "fMother" : {"$ref":1285}, + "fNumber" : 24, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "Module_24_PosTOF2_trans", + "fTitle" : "", + "fTranslation" : [120.3, -31.95, 597.1] + } + }] + }, + "fShape" : { + "_typename" : "TGeoShapeAssembly", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fShapeId" : 0, + "fShapeBits" : 1024, + "fDX" : 82.001, + "fDY" : 52.126, + "fDZ" : 25.791, + "fOrigin" : [68, -3.4, 622.05], + "fVolume" : {"$ref":1285}, + "fBBoxOK" : true + }, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 6, + "fNtotal" : 841, + "fRefCount" : 26 + }, + "fMother" : {"$ref":1258}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":842} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VETO_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 59768832, + "fName" : "VETO", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 59785216, + "fName" : "VMDL", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 7, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VFEL_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 59785216, + "fName" : "VFEL", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 7, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VRFL_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "VRFL", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":898}, + "fMedium" : { + "_typename" : "TGeoMedium", + "fUniqueID" : 15, + "fBits" : 50331648, + "fName" : "PLASTIC", + "fTitle" : "", + "fId" : 15, + "fParams" : [0, 1, 0.19, 1, -1, -1, 0.001, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "fMaterial" : { + "_typename" : "TGeoMixture", + "fUniqueID" : 15, + "fBits" : 50462720, + "fName" : "PLASTIC", + "fTitle" : "", + "fFillColor" : 19, + "fFillStyle" : 1001, + "fIndex" : 14, + "fA" : 11.158100787, + "fZ" : 5.61284345, + "fDensity" : 1.032, + "fRadLen" : 42.0401716084694, + "fIntLen" : 70.7393809758668, + "fTemperature" : 273.15, + "fPressure" : 632420000, + "fState" : 0, + "fShader" : null, + "fCerenkov" : null, + "fElement" : null, + "fNelements" : 2, + "fZmixture" : [6, 1], + "fAmixture" : [12.01, 1.008], + "fWeights" : [0.9225687, 0.07743125], + "fNatoms" : [], + "fVecNbOfAtomsPerVolume" : [], + "fElements" : null + } + }, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 21, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1418}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":11} + }] + }, + "fShape" : {"$ref":895}, + "fMedium" : {"$ref":944}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 18, + "fNtotal" : 2, + "fRefCount" : 3 + }, + "fMother" : {"$ref":1415}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":13} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VFEL_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1418}, + "fMother" : {"$ref":1415}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":14} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 59785216, + "fName" : "VSCL", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 3, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VRSL_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "VRSL", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":900}, + "fMedium" : {"$ref":1422}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 23, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1426}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":18} + }] + }, + "fShape" : {"$ref":897}, + "fMedium" : { + "_typename" : "TGeoMedium", + "fUniqueID" : 13, + "fBits" : 50331648, + "fName" : "PLASTIC", + "fTitle" : "", + "fId" : 13, + "fParams" : [1, 0, 0, 1, -1, -1, 0.001, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "fMaterial" : {"$ref":1423} + }, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 20, + "fNtotal" : 2, + "fRefCount" : 67 + }, + "fMother" : {"$ref":1415}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":17} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 59785216, + "fName" : "VPBL", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 4, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VRPL_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "VRPL", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":899}, + "fMedium" : {"$ref":1422}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 22, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1432}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":20} + }] + }, + "fShape" : {"$ref":896}, + "fMedium" : { + "_typename" : "TGeoMedium", + "fUniqueID" : 14, + "fBits" : 50331648, + "fName" : "LEAD", + "fTitle" : "", + "fId" : 14, + "fParams" : [0, 0, 0, 1, -1, -1, 0.001, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "fMaterial" : { + "_typename" : "TGeoMaterial", + "fUniqueID" : 10, + "fBits" : 50462720, + "fName" : "LEAD", + "fTitle" : "", + "fFillColor" : 19, + "fFillStyle" : 1001, + "fIndex" : 9, + "fA" : 207.19, + "fZ" : 82, + "fDensity" : 11.35, + "fRadLen" : 0.561704911574565, + "fIntLen" : 18.2591661751475, + "fTemperature" : 273.15, + "fPressure" : 632420000, + "fState" : 0, + "fShader" : null, + "fCerenkov" : null, + "fElement" : null + } + }, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 19, + "fNtotal" : 2, + "fRefCount" : 67 + }, + "fMother" : {"$ref":1415}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":19} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":24} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":25} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_3", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 3, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":28} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_3", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 3, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":29} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_4", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 4, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":32} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_4", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 4, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":33} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_5", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 5, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":36} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_5", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 5, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":37} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_6", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 6, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":40} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_6", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 6, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":41} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_7", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 7, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":44} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_7", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 7, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":45} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_8", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 8, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":48} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_8", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 8, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":49} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_9", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 9, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":52} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_9", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 9, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":53} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_10", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 10, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":56} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_10", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 10, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":57} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_11", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 11, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":60} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_11", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 11, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":61} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_12", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 12, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":64} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_12", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 12, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":65} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_13", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 13, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":68} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_13", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 13, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":69} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_14", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 14, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":72} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_14", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 14, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":73} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_15", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 15, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":76} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_15", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 15, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":77} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_16", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 16, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":80} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_16", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 16, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":81} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_17", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 17, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":84} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_17", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 17, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":85} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_18", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 18, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":88} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_18", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 18, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":89} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_19", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 19, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":92} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_19", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 19, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":93} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_20", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 20, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":96} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_20", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 20, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":97} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_21", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 21, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":100} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_21", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 21, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":101} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_22", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 22, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":104} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_22", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 22, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":105} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_23", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 23, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":108} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_23", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 23, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":109} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_24", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 24, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":112} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_24", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 24, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":113} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_25", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 25, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":116} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_25", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 25, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":117} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_26", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 26, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":120} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_26", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 26, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":121} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_27", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 27, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":124} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_27", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 27, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":125} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_28", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 28, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":128} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_28", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 28, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":129} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_29", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 29, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":132} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_29", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 29, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":133} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_30", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 30, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":136} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_30", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 30, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":137} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_31", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 31, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":140} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_31", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 31, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":141} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_32", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 32, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":144} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_32", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 32, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":145} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_33", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 33, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":148} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_33", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 33, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":149} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_34", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 34, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":152} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_34", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 34, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":153} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_35", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 35, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":156} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_35", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 35, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":157} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_36", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 36, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":160} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_36", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 36, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":161} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_37", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 37, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":164} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_37", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 37, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":165} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_38", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 38, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":168} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_38", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 38, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":169} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_39", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 39, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":172} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_39", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 39, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":173} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_40", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 40, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":176} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_40", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 40, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":177} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_41", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 41, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":180} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_41", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 41, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":181} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_42", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 42, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":184} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_42", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 42, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":185} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_43", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 43, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":188} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_43", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 43, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":189} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_44", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 44, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":192} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_44", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 44, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":193} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_45", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 45, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":196} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_45", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 45, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":197} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_46", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 46, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":200} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_46", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 46, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":201} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_47", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 47, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":204} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_47", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 47, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":205} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_48", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 48, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":208} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_48", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 48, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":209} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_49", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 49, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":212} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_49", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 49, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":213} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_50", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 50, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":216} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_50", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 50, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":217} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_51", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 51, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":220} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_51", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 51, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":221} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_52", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 52, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":224} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_52", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 52, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":225} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_53", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 53, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":228} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_53", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 53, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":229} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_54", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 54, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":232} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_54", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 54, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":233} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_55", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 55, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":236} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_55", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 55, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":237} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_56", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 56, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":240} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_56", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 56, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":241} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_57", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 57, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":244} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_57", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 57, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":245} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_58", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 58, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":248} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_58", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 58, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":249} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_59", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 59, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":252} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_59", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 59, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":253} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_60", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 60, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":256} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_60", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 60, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":257} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_61", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 61, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":260} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_61", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 61, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":261} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_62", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 62, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":264} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_62", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 62, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":265} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_63", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 63, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":268} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_63", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 63, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":269} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_64", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 64, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":272} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_64", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 64, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":273} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_65", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 65, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":276} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_65", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 65, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":277} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VSCL_66", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1426}, + "fMother" : {"$ref":1415}, + "fNumber" : 66, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":280} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VPBL_66", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1432}, + "fMother" : {"$ref":1415}, + "fNumber" : 66, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":281} + }] + }, + "fShape" : {"$ref":894}, + "fMedium" : {"$ref":944}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 17, + "fNtotal" : 269, + "fRefCount" : 202 + }, + "fMother" : {"$ref":1412}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":284} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":285} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_3", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 3, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":286} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_4", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 4, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":287} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_5", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 5, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":288} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_6", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 6, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":289} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_7", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 7, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":290} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_8", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 8, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":291} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_9", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 9, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":292} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_10", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 10, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":293} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_11", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 11, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":294} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_12", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 12, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":295} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_13", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 13, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":296} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_14", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 14, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":297} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_15", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 15, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":298} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_16", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 16, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":299} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_17", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 17, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":300} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_18", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 18, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":301} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_19", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 19, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":302} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_20", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 20, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":303} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_21", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 21, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":304} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_22", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 22, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":305} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_23", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 23, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":306} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_24", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 24, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":307} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_25", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 25, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":308} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_26", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 26, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":309} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 59785216, + "fName" : "UMDL", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 7, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UFEL_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 59785216, + "fName" : "UFEL", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 7, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "URFL_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "URFL", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":906}, + "fMedium" : {"$ref":1422}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 29, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1597}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":12} + }] + }, + "fShape" : {"$ref":905}, + "fMedium" : {"$ref":944}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 28, + "fNtotal" : 2, + "fRefCount" : 3 + }, + "fMother" : {"$ref":1594}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":15} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UFEL_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1597}, + "fMother" : {"$ref":1594}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":16} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 59785216, + "fName" : "USCL", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 3, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "URSL_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "URSL", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":903}, + "fMedium" : {"$ref":1422}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 26, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1603}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":22} + }] + }, + "fShape" : {"$ref":902}, + "fMedium" : {"$ref":1430}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 25, + "fNtotal" : 2, + "fRefCount" : 67 + }, + "fMother" : {"$ref":1594}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":21} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58736640, + "fName" : "UPBL", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 4, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":904}, + "fMedium" : {"$ref":1436}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 27, + "fNtotal" : 1, + "fRefCount" : 66 + }, + "fMother" : {"$ref":1594}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":23} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":26} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":27} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_3", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 3, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":30} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_3", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 3, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":31} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_4", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 4, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":34} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_4", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 4, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":35} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_5", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 5, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":38} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_5", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 5, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":39} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_6", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 6, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":42} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_6", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 6, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":43} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_7", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 7, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":46} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_7", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 7, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":47} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_8", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 8, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":50} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_8", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 8, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":51} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_9", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 9, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":54} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_9", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 9, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":55} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_10", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 10, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":58} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_10", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 10, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":59} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_11", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 11, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":62} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_11", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 11, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":63} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_12", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 12, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":66} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_12", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 12, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":67} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_13", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 13, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":70} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_13", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 13, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":71} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_14", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 14, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":74} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_14", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 14, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":75} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_15", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 15, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":78} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_15", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 15, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":79} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_16", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 16, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":82} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_16", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 16, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":83} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_17", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 17, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":86} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_17", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 17, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":87} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_18", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 18, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":90} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_18", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 18, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":91} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_19", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 19, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":94} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_19", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 19, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":95} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_20", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 20, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":98} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_20", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 20, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":99} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_21", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 21, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":102} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_21", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 21, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":103} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_22", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 22, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":106} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_22", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 22, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":107} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_23", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 23, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":110} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_23", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 23, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":111} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_24", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 24, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":114} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_24", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 24, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":115} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_25", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 25, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":118} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_25", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 25, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":119} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_26", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 26, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":122} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_26", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 26, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":123} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_27", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 27, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":126} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_27", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 27, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":127} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_28", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 28, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":130} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_28", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 28, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":131} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_29", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 29, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":134} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_29", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 29, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":135} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_30", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 30, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":138} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_30", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 30, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":139} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_31", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 31, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":142} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_31", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 31, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":143} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_32", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 32, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":146} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_32", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 32, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":147} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_33", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 33, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":150} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_33", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 33, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":151} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_34", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 34, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":154} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_34", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 34, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":155} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_35", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 35, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":158} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_35", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 35, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":159} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_36", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 36, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":162} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_36", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 36, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":163} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_37", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 37, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":166} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_37", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 37, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":167} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_38", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 38, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":170} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_38", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 38, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":171} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_39", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 39, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":174} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_39", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 39, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":175} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_40", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 40, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":178} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_40", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 40, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":179} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_41", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 41, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":182} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_41", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 41, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":183} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_42", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 42, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":186} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_42", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 42, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":187} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_43", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 43, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":190} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_43", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 43, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":191} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_44", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 44, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":194} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_44", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 44, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":195} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_45", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 45, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":198} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_45", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 45, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":199} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_46", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 46, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":202} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_46", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 46, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":203} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_47", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 47, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":206} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_47", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 47, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":207} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_48", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 48, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":210} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_48", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 48, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":211} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_49", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 49, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":214} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_49", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 49, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":215} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_50", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 50, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":218} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_50", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 50, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":219} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_51", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 51, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":222} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_51", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 51, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":223} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_52", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 52, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":226} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_52", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 52, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":227} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_53", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 53, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":230} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_53", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 53, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":231} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_54", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 54, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":234} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_54", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 54, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":235} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_55", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 55, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":238} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_55", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 55, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":239} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_56", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 56, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":242} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_56", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 56, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":243} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_57", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 57, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":246} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_57", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 57, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":247} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_58", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 58, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":250} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_58", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 58, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":251} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_59", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 59, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":254} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_59", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 59, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":255} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_60", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 60, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":258} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_60", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 60, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":259} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_61", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 61, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":262} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_61", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 61, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":263} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_62", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 62, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":266} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_62", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 62, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":267} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_63", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 63, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":270} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_63", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 63, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":271} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_64", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 64, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":274} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_64", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 64, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":275} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_65", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 65, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":278} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_65", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 65, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":279} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "USCL_66", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1603}, + "fMother" : {"$ref":1594}, + "fNumber" : 66, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":282} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UPBL_66", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1608}, + "fMother" : {"$ref":1594}, + "fNumber" : 66, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":283} + }] + }, + "fShape" : {"$ref":901}, + "fMedium" : {"$ref":944}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 24, + "fNtotal" : 203, + "fRefCount" : 166 + }, + "fMother" : {"$ref":1412}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":310} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":311} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_3", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 3, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":312} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_4", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 4, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":313} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_5", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 5, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":314} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_6", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 6, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":315} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_7", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 7, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":316} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_8", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 8, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":317} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_9", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 9, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":318} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_10", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 10, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":319} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_11", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 11, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":320} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_12", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 12, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":321} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_27", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 27, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":322} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_28", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 28, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":323} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_29", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 29, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":324} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_30", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 30, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":325} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_31", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 31, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":326} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_32", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 32, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":327} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_33", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 33, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":328} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_34", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 34, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":329} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_13", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 13, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":330} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_14", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 14, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":331} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_15", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 15, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":332} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_16", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 16, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":333} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_17", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 17, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":334} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_19", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 19, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":335} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_22", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 22, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":336} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_24", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 24, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":337} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_35", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 35, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":338} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_36", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 36, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":339} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_37", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 37, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":340} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_38", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 38, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":341} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_39", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 39, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":342} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_40", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 40, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":343} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_41", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 41, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":344} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_42", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 42, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":345} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_25", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 25, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":346} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_26", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 26, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":347} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_27", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 27, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":348} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_28", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 28, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":349} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_29", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 29, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":350} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_30", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 30, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":351} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_31", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 31, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":352} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_32", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 32, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":353} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_33", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 33, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":354} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_34", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 34, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":355} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_35", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 35, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":356} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "UMDL_36", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1594}, + "fMother" : {"$ref":1412}, + "fNumber" : 36, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":357} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_43", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 43, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":358} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_44", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 44, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":359} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_45", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 45, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":360} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_46", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 46, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":361} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_47", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 47, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":362} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_48", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 48, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":363} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_49", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 49, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":364} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_50", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 50, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":365} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_51", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 51, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":366} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_52", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 52, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":367} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_53", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 53, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":368} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_54", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 54, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":369} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_55", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 55, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":370} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_56", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 56, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":371} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_57", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 57, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":372} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_58", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 58, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":373} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_59", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 59, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":374} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_60", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 60, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":375} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_61", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 61, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":376} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_62", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 62, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":377} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_63", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 63, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":378} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_64", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 64, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":379} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_65", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 65, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":380} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_66", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 66, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":381} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_67", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 67, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":382} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "VMDL_68", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1415}, + "fMother" : {"$ref":1412}, + "fNumber" : 68, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":383} + }] + }, + "fShape" : {"$ref":893}, + "fMedium" : { + "_typename" : "TGeoMedium", + "fUniqueID" : 9, + "fBits" : 50331648, + "fName" : "AIR", + "fTitle" : "", + "fId" : 9, + "fParams" : [0, 1, 0.19, 0.25, -1, -1, 0.001, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "fMaterial" : { + "_typename" : "TGeoMaterial", + "fUniqueID" : 11, + "fBits" : 50462720, + "fName" : "AIR", + "fTitle" : "", + "fFillColor" : 19, + "fFillStyle" : 1001, + "fIndex" : 10, + "fA" : 14.61, + "fZ" : 7.3, + "fDensity" : 0.001205, + "fRadLen" : 30412.608512906, + "fIntLen" : 70037.7174700344, + "fTemperature" : 273.15, + "fPressure" : 632420000, + "fState" : 0, + "fShader" : null, + "fCerenkov" : null, + "fElement" : null + } + }, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 16, + "fNtotal" : 24789, + "fRefCount" : 101 + }, + "fMother" : {"$ref":1258}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":10} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "GEMS_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolumeAssembly", + "fUniqueID" : 0, + "fBits" : 59785216, + "fName" : "GEMS", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 1, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "station0_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":940}, + "fMother" : {"$ref":1815}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t383", + "fTitle" : "", + "fTranslation" : [-1.5, -4.5, 32.7], + "fRotation" : null + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "station1_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":960}, + "fMother" : {"$ref":1815}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t389", + "fTitle" : "", + "fTranslation" : [-1.5, -4.5, 64.5], + "fRotation" : null + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "station2_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":980}, + "fMother" : {"$ref":1815}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t395", + "fTitle" : "", + "fTranslation" : [-1.5, -4.5, 96.5], + "fRotation" : null + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "station3_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1010}, + "fMother" : {"$ref":1815}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t401", + "fTitle" : "", + "fTranslation" : [0, -4.5, 128.5], + "fRotation" : null + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "station4_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1043}, + "fMother" : {"$ref":1815}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t413", + "fTitle" : "", + "fTranslation" : [0, -6.9, 161.1], + "fRotation" : null + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "station5_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1076}, + "fMother" : {"$ref":1815}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t423", + "fTitle" : "", + "fTranslation" : [0, -6.9, 193.1], + "fRotation" : null + } + }] + }, + "fShape" : { + "_typename" : "TGeoShapeAssembly", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fShapeId" : 0, + "fShapeBits" : 1024, + "fDX" : 86.6, + "fDY" : 26.55, + "fDZ" : 81.75, + "fOrigin" : [0, -6.6, 113.75], + "fVolume" : {"$ref":1815}, + "fBBoxOK" : true + }, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 30, + "fNtotal" : 57, + "fRefCount" : 8 + }, + "fMother" : {"$ref":1258}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":838} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "TOF400_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolumeAssembly", + "fUniqueID" : 0, + "fBits" : 59785216, + "fName" : "TOF400", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 1, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1Detector_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1088}, + "fMother" : {"$ref":1831}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t1", + "fTitle" : "", + "fTranslation" : [54.4, 54, 458.66] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1Detector_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1088}, + "fMother" : {"$ref":1831}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t1", + "fTitle" : "", + "fTranslation" : [54.4, 27, 454.8] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1Detector_3", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1088}, + "fMother" : {"$ref":1831}, + "fNumber" : 3, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t1", + "fTitle" : "", + "fTranslation" : [54.4, 0, 458.66] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1Detector_4", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1088}, + "fMother" : {"$ref":1831}, + "fNumber" : 4, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t1", + "fTitle" : "", + "fTranslation" : [54.4, -27, 454.8] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1Detector_5", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1088}, + "fMother" : {"$ref":1831}, + "fNumber" : 5, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t1", + "fTitle" : "", + "fTranslation" : [54.4, -54, 458.66] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1Detector_6", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1088}, + "fMother" : {"$ref":1831}, + "fNumber" : 6, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t1", + "fTitle" : "", + "fTranslation" : [54.4, 54, 446.46] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1Detector_7", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1088}, + "fMother" : {"$ref":1831}, + "fNumber" : 7, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t1", + "fTitle" : "", + "fTranslation" : [54.4, 27, 442.6] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1Detector_8", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1088}, + "fMother" : {"$ref":1831}, + "fNumber" : 8, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t1", + "fTitle" : "", + "fTranslation" : [54.4, 0, 446.46] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1Detector_9", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1088}, + "fMother" : {"$ref":1831}, + "fNumber" : 9, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t1", + "fTitle" : "", + "fTranslation" : [54.4, -27, 442.6] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tof1Detector_10", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1088}, + "fMother" : {"$ref":1831}, + "fNumber" : 10, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t1", + "fTitle" : "", + "fTranslation" : [54.4, -54, 446.46] + } + }] + }, + "fShape" : { + "_typename" : "TGeoShapeAssembly", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fShapeId" : 0, + "fShapeBits" : 1024, + "fDX" : 30, + "fDY" : 69, + "fDZ" : 9.53, + "fOrigin" : [54.4, 0, 450.63], + "fVolume" : {"$ref":1831}, + "fBBoxOK" : true + }, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 77, + "fNtotal" : 531, + "fRefCount" : 12 + }, + "fMother" : {"$ref":1258}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52428800, + "fName" : "tw", + "fTitle" : "", + "fTranslation" : [0, 0, 0] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "DCH_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolumeAssembly", + "fUniqueID" : 0, + "fBits" : 59785216, + "fName" : "DCH", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 1, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "DCHDetV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 59785216, + "fName" : "DCHDetV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 3, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "DCHActivePlaneV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58736640, + "fName" : "DCHActivePlaneV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 7, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1151}, + "fMedium" : {"$ref":964}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 83, + "fNtotal" : 1, + "fRefCount" : 8 + }, + "fMother" : {"$ref":1859}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":490} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "DCHActivePlaneV_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1862}, + "fMother" : {"$ref":1859}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":491} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "DCHActivePlaneV_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1862}, + "fMother" : {"$ref":1859}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":492} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "DCHActivePlaneV_3", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1862}, + "fMother" : {"$ref":1859}, + "fNumber" : 3, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":493} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "DCHActivePlaneV_4", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1862}, + "fMother" : {"$ref":1859}, + "fNumber" : 4, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":494} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "DCHActivePlaneV_5", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1862}, + "fMother" : {"$ref":1859}, + "fNumber" : 5, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":495} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "DCHActivePlaneV_6", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1862}, + "fMother" : {"$ref":1859}, + "fNumber" : 6, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":496} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "DCHActivePlaneV_7", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1862}, + "fMother" : {"$ref":1859}, + "fNumber" : 7, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":497} + }] + }, + "fShape" : {"$ref":1152}, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 84, + "fNtotal" : 9, + "fRefCount" : 10 + }, + "fMother" : {"$ref":1856}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 52822016, + "fName" : "c485", + "fTitle" : "", + "fTranslation" : [0, 0, 514], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 52690944, + "fName" : "rot", + "fTitle" : "", + "fRotationMatrix" : [0.923879532511287, -0.38268343236509, 0, 0.38268343236509, 0.923879532511287, -0, 0, 0, 1] + } + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "DCHDetV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1859}, + "fMother" : {"$ref":1856}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 52822016, + "fName" : "c493", + "fTitle" : "", + "fTranslation" : [0, 0, 713], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 52690944, + "fName" : "rot", + "fTitle" : "", + "fRotationMatrix" : [0.923879532511287, -0.38268343236509, 0, 0.38268343236509, 0.923879532511287, -0, 0, 0, 1] + } + } + }] + }, + "fShape" : { + "_typename" : "TGeoShapeAssembly", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fShapeId" : 0, + "fShapeBits" : 1024, + "fDX" : 204.834692374119, + "fDY" : 204.834692374119, + "fDZ" : 112.75, + "fOrigin" : [0, 0, 613.5], + "fVolume" : {"$ref":1856}, + "fBBoxOK" : true + }, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 82, + "fNtotal" : 19, + "fRefCount" : 4 + }, + "fMother" : {"$ref":1258}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":843} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "MWPC_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolumeAssembly", + "fUniqueID" : 0, + "fBits" : 59785216, + "fName" : "MWPC", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 1, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "MWPCContainerV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 59785216, + "fName" : "MWPCContainerV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 3, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "MWPCActivePlaneV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58736640, + "fName" : "MWPCActivePlaneV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 7, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1154}, + "fMedium" : {"$ref":964}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 86, + "fNtotal" : 1, + "fRefCount" : 6 + }, + "fMother" : {"$ref":1880}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":498} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "MWPCActivePlaneV_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1883}, + "fMother" : {"$ref":1880}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":499} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "MWPCActivePlaneV_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1883}, + "fMother" : {"$ref":1880}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":501} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "MWPCActivePlaneV_3", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1883}, + "fMother" : {"$ref":1880}, + "fNumber" : 3, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":503} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "MWPCActivePlaneV_4", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1883}, + "fMother" : {"$ref":1880}, + "fNumber" : 4, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":505} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "MWPCActivePlaneV_5", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1883}, + "fMother" : {"$ref":1880}, + "fNumber" : 5, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":507} + }] + }, + "fShape" : {"$ref":1153}, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 87, + "fNtotal" : 7, + "fRefCount" : 8 + }, + "fMother" : {"$ref":1877}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "DetPos0_trans", + "fTitle" : "", + "fTranslation" : [0, 0, -362.41265] + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "MWPCContainerV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1880}, + "fMother" : {"$ref":1877}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "DetPos1_trans", + "fTitle" : "", + "fTranslation" : [0, 0, -212.63755] + } + }] + }, + "fShape" : { + "_typename" : "TGeoShapeAssembly", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fShapeId" : 0, + "fShapeBits" : 1024, + "fDX" : 26.15396719429, + "fDY" : 26.15396719429, + "fDZ" : 78.39205, + "fOrigin" : [0, 0, -287.5251], + "fVolume" : {"$ref":1877}, + "fBBoxOK" : true + }, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 85, + "fNtotal" : 15, + "fRefCount" : 4 + }, + "fMother" : {"$ref":1258}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":844} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 59785216, + "fName" : "ecal01", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 3, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 59785216, + "fName" : "ecal01mod", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 3, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01front_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "ecal01front", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 6, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1157}, + "fMedium" : {"$ref":1280}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 90, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1897}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":511} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 59785216, + "fName" : "ecal01lay", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 3, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lead_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "ecal01lead", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 3, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1159}, + "fMedium" : {"$ref":1430}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 92, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":1902}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":513} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01scint_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58736640, + "fName" : "ecal01scint", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 4, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1160}, + "fMedium" : { + "_typename" : "TGeoMedium", + "fUniqueID" : 20, + "fBits" : 50331648, + "fName" : "FscScint", + "fTitle" : "", + "fId" : 20, + "fParams" : [1, 1, 20, -1, -1, -1, 1e-4, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "fMaterial" : { + "_typename" : "TGeoMixture", + "fUniqueID" : 20, + "fBits" : 50462720, + "fName" : "FscScint", + "fTitle" : "", + "fFillColor" : 19, + "fFillStyle" : 1001, + "fIndex" : 19, + "fA" : 11.0715201827875, + "fZ" : 5.57349581111957, + "fDensity" : 1.032, + "fRadLen" : 42.1299811568047, + "fIntLen" : 70.0999370078305, + "fTemperature" : 273.15, + "fPressure" : 632420000, + "fState" : 0, + "fShader" : null, + "fCerenkov" : null, + "fElement" : null, + "fNelements" : 2, + "fZmixture" : [6, 1], + "fAmixture" : [12.01, 1.008], + "fWeights" : [0.914699162223915, 0.0853008377760853], + "fNatoms" : [], + "fVecNbOfAtomsPerVolume" : [], + "fElements" : null + } + }, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 93, + "fNtotal" : 1, + "fRefCount" : 9 + }, + "fMother" : {"$ref":1902}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":514} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01scint_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1907}, + "fMother" : {"$ref":1902}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":515} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01scint_3", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1907}, + "fMother" : {"$ref":1902}, + "fNumber" : 3, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":516} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01scint_4", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1907}, + "fMother" : {"$ref":1902}, + "fNumber" : 4, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":517} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01scint_5", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1907}, + "fMother" : {"$ref":1902}, + "fNumber" : 5, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":518} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01scint_6", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1907}, + "fMother" : {"$ref":1902}, + "fNumber" : 6, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":519} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01scint_7", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1907}, + "fMother" : {"$ref":1902}, + "fNumber" : 7, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":520} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01scint_8", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1907}, + "fMother" : {"$ref":1902}, + "fNumber" : 8, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":521} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01scint_9", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1907}, + "fMother" : {"$ref":1902}, + "fNumber" : 9, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":522} + }] + }, + "fShape" : {"$ref":1158}, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 91, + "fNtotal" : 11, + "fRefCount" : 230 + }, + "fMother" : {"$ref":1897}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":512} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":523} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_3", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 3, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":524} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_4", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 4, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":525} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_5", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 5, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":526} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_6", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 6, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":527} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_7", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 7, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":528} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_8", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 8, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":529} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_9", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 9, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":530} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_10", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 10, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":531} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_11", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 11, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":532} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_12", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 12, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":533} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_13", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 13, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":534} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_14", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 14, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":535} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_15", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 15, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":536} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_16", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 16, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":537} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_17", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 17, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":538} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_18", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 18, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":539} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_19", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 19, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":540} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_20", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 20, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":541} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_21", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 21, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":542} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_22", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 22, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":543} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_23", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 23, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":544} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_24", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 24, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":545} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_25", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 25, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":546} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_26", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 26, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":547} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_27", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 27, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":548} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_28", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 28, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":549} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_29", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 29, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":550} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_30", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 30, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":551} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_31", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 31, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":552} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_32", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 32, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":553} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_33", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 33, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":554} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_34", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 34, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":555} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_35", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 35, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":556} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_36", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 36, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":557} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_37", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 37, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":558} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_38", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 38, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":559} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_39", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 39, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":560} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_40", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 40, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":561} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_41", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 41, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":562} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_42", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 42, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":563} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_43", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 43, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":564} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_44", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 44, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":565} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_45", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 45, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":566} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_46", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 46, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":567} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_47", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 47, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":568} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_48", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 48, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":569} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_49", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 49, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":570} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_50", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 50, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":571} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_51", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 51, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":572} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_52", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 52, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":573} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_53", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 53, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":574} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_54", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 54, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":575} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_55", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 55, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":576} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_56", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 56, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":577} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_57", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 57, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":578} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_58", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 58, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":579} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_59", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 59, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":580} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_60", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 60, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":581} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_61", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 61, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":582} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_62", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 62, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":583} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_63", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 63, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":584} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_64", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 64, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":585} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_65", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 65, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":586} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_66", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 66, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":587} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_67", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 67, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":588} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_68", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 68, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":589} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_69", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 69, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":590} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_70", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 70, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":591} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_71", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 71, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":592} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_72", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 72, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":593} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_73", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 73, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":594} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_74", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 74, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":595} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_75", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 75, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":596} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_76", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 76, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":597} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_77", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 77, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":598} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_78", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 78, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":599} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_79", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 79, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":600} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_80", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 80, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":601} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_81", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 81, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":602} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_82", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 82, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":603} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_83", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 83, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":604} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_84", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 84, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":605} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_85", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 85, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":606} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_86", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 86, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":607} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_87", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 87, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":608} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_88", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 88, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":609} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_89", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 89, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":610} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_90", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 90, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":611} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_91", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 91, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":612} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_92", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 92, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":613} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_93", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 93, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":614} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_94", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 94, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":615} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_95", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 95, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":616} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_96", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 96, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":617} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_97", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 97, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":618} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_98", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 98, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":619} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_99", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 99, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":620} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_100", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 100, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":621} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_101", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 101, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":622} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_102", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 102, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":623} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_103", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 103, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":624} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_104", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 104, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":625} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_105", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 105, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":626} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_106", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 106, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":627} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_107", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 107, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":628} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_108", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 108, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":629} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_109", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 109, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":630} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_110", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 110, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":631} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_111", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 111, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":632} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_112", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 112, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":633} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_113", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 113, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":634} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_114", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 114, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":635} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_115", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 115, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":636} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_116", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 116, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":637} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_117", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 117, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":638} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_118", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 118, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":639} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_119", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 119, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":640} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_120", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 120, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":641} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_121", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 121, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":642} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_122", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 122, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":643} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_123", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 123, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":644} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_124", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 124, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":645} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_125", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 125, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":646} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_126", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 126, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":647} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_127", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 127, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":648} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_128", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 128, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":649} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_129", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 129, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":650} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_130", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 130, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":651} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_131", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 131, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":652} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_132", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 132, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":653} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_133", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 133, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":654} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_134", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 134, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":655} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_135", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 135, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":656} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_136", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 136, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":657} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_137", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 137, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":658} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_138", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 138, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":659} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_139", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 139, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":660} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_140", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 140, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":661} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_141", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 141, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":662} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_142", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 142, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":663} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_143", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 143, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":664} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_144", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 144, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":665} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_145", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 145, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":666} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_146", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 146, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":667} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_147", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 147, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":668} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_148", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 148, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":669} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_149", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 149, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":670} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_150", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 150, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":671} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_151", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 151, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":672} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_152", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 152, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":673} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_153", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 153, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":674} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_154", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 154, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":675} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_155", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 155, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":676} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_156", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 156, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":677} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_157", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 157, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":678} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_158", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 158, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":679} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_159", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 159, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":680} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_160", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 160, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":681} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_161", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 161, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":682} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_162", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 162, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":683} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_163", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 163, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":684} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_164", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 164, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":685} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_165", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 165, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":686} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_166", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 166, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":687} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_167", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 167, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":688} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_168", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 168, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":689} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_169", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 169, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":690} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_170", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 170, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":691} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_171", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 171, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":692} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_172", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 172, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":693} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_173", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 173, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":694} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_174", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 174, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":695} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_175", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 175, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":696} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_176", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 176, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":697} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_177", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 177, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":698} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_178", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 178, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":699} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_179", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 179, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":700} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_180", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 180, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":701} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_181", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 181, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":702} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_182", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 182, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":703} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_183", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 183, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":704} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_184", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 184, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":705} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_185", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 185, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":706} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_186", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 186, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":707} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_187", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 187, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":708} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_188", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 188, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":709} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_189", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 189, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":710} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_190", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 190, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":711} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_191", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 191, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":712} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_192", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 192, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":713} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_193", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 193, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":714} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_194", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 194, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":715} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_195", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 195, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":716} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_196", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 196, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":717} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_197", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 197, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":718} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_198", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 198, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":719} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_199", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 199, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":720} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_200", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 200, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":721} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_201", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 201, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":722} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_202", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 202, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":723} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_203", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 203, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":724} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_204", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 204, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":725} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_205", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 205, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":726} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_206", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 206, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":727} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_207", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 207, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":728} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_208", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 208, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":729} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_209", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 209, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":730} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_210", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 210, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":731} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_211", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 211, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":732} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_212", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 212, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":733} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_213", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 213, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":734} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_214", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 214, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":735} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_215", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 215, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":736} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_216", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 216, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":737} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_217", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 217, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":738} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_218", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 218, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":739} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_219", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 219, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":740} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01lay_220", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1902}, + "fMother" : {"$ref":1897}, + "fNumber" : 220, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":741} + }] + }, + "fShape" : {"$ref":1156}, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 89, + "fNtotal" : 2422, + "fRefCount" : 301 + }, + "fMother" : {"$ref":1894}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":510} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":742} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_3", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 3, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":743} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_4", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 4, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":744} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_5", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 5, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":745} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_6", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 6, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":746} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_7", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 7, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":747} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_8", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 8, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":748} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_9", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 9, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":749} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_10", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 10, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":750} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_11", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 11, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":751} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_12", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 12, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":752} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_13", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 13, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":753} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_14", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 14, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":754} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_15", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 15, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":755} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_16", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 16, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":756} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_17", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 17, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":757} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_18", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 18, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":758} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_19", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 19, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":759} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_20", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 20, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":760} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_21", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 21, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":761} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_22", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 22, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":762} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_23", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 23, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":763} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_24", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 24, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":764} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_25", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 25, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":765} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_26", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 26, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":766} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_27", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 27, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":767} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_28", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 28, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":768} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_29", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 29, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":769} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_30", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 30, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":770} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_31", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 31, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":771} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_32", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 32, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":772} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_33", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 33, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":773} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_34", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 34, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":774} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_35", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 35, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":775} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_36", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 36, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":776} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_37", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 37, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":777} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_38", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 38, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":778} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_39", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 39, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":779} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_40", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 40, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":780} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_41", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 41, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":781} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_42", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 42, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":782} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_43", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 43, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":783} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_44", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 44, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":784} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_45", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 45, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":785} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_46", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 46, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":786} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_47", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 47, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":787} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_48", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 48, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":788} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_49", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 49, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":789} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_50", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 50, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":790} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_51", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 51, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":791} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_52", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 52, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":792} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_53", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 53, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":793} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_54", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 54, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":794} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_55", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 55, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":795} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_56", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 56, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":796} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_57", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 57, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":797} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_58", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 58, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":798} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_59", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 59, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":799} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_60", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 60, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":800} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_61", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 61, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":801} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_62", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 62, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":802} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_63", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 63, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":803} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_64", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 64, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":804} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_65", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 65, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":805} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_66", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 66, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":806} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_67", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 67, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":807} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_68", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 68, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":808} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_69", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 69, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":809} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_70", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 70, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":810} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_71", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 71, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":811} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_72", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 72, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":812} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_73", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 73, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":813} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_74", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 74, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":814} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_75", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 75, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":815} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_76", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 76, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":816} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_77", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 77, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":817} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_78", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 78, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":818} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_79", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 79, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":819} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01mod_80", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1897}, + "fMother" : {"$ref":1894}, + "fNumber" : 80, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":820} + }] + }, + "fShape" : {"$ref":1155}, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 88, + "fNtotal" : 193761, + "fRefCount" : 82 + }, + "fMother" : {"$ref":1258}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":509} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ecal01_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1894}, + "fMother" : {"$ref":1258}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":821} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Silicon_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolumeAssembly", + "fUniqueID" : 0, + "fBits" : 59785216, + "fName" : "Silicon", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 1, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "station0_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolumeAssembly", + "fUniqueID" : 0, + "fBits" : 59768832, + "fName" : "station0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 1, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "moduleV_0_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 59768832, + "fName" : "moduleV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sensor_zone_upper_partV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "Sensor_zone_upper_partV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1233}, + "fMedium" : { + "_typename" : "TGeoMedium", + "fUniqueID" : 21, + "fBits" : 50331648, + "fName" : "silicon", + "fTitle" : "", + "fId" : 21, + "fParams" : [1, 1, 20, -1, -1, -1, 0.001, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "fMaterial" : { + "_typename" : "TGeoMaterial", + "fUniqueID" : 21, + "fBits" : 50331648, + "fName" : "silicon", + "fTitle" : "", + "fFillColor" : 19, + "fFillStyle" : 1001, + "fIndex" : 20, + "fA" : 28.0855, + "fZ" : 14, + "fDensity" : 2.33, + "fRadLen" : 9.34960746942193, + "fIntLen" : 45.753205754866, + "fTemperature" : 273.15, + "fPressure" : 632420000, + "fState" : 0, + "fShader" : null, + "fCerenkov" : null, + "fElement" : null + } + }, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 95, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":2224}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":822} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sensor_zone_lower_part_rectV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "Sensor_zone_lower_part_rectV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1234}, + "fMedium" : {"$ref":2228}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 96, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":2224}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":823} + }] + }, + "fShape" : {"$ref":1235}, + "fMedium" : {"$ref":2228}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 97, + "fNtotal" : 3, + "fRefCount" : 3 + }, + "fMother" : {"$ref":2221}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 61210624, + "fName" : "c812", + "fTitle" : "", + "fTranslation" : [9, 6.15175, 3.325], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 52690944, + "fName" : "", + "fTitle" : "", + "fRotationMatrix" : [-1, 0, 1.22464679914735e-16, 0, 1, 0, -1.22464679914735e-16, -0, -1] + } + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frameV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 2, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1161}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 98, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":2221}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 61210624, + "fName" : "c814", + "fTitle" : "", + "fTranslation" : [9, 6.15175, 3.22], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 52690944, + "fName" : "", + "fTitle" : "", + "fRotationMatrix" : [-1, 0, 1.22464679914735e-16, 0, 1, 0, -1.22464679914735e-16, -0, -1] + } + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "moduleV_1_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 59768832, + "fName" : "moduleV_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sensor_zone_upper_partV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "Sensor_zone_upper_partV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1238}, + "fMedium" : {"$ref":2228}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 95, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":2239}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":824} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sensor_zone_lower_part_bevelV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "Sensor_zone_lower_part_bevelV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1236}, + "fMedium" : {"$ref":2228}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 99, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":2239}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":825} + }] + }, + "fShape" : {"$ref":1237}, + "fMedium" : {"$ref":2228}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 100, + "fNtotal" : 3, + "fRefCount" : 3 + }, + "fMother" : {"$ref":2221}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 61210624, + "fName" : "c814", + "fTitle" : "", + "fTranslation" : [3, 6.15175, 1.795], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 52690944, + "fName" : "", + "fTitle" : "", + "fRotationMatrix" : [-1, 0, 1.22464679914735e-16, 0, 1, 0, -1.22464679914735e-16, -0, -1] + } + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frameV_1", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 17, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1170}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 8, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":2221}, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 61210624, + "fName" : "c816", + "fTitle" : "", + "fTranslation" : [3, 6.15175, 1.69], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 52690944, + "fName" : "", + "fTitle" : "", + "fRotationMatrix" : [-1, 0, 1.22464679914735e-16, 0, 1, 0, -1.22464679914735e-16, -0, -1] + } + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "moduleV_2_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 59768832, + "fName" : "moduleV_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sensor_zone_upper_partV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "Sensor_zone_upper_partV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1240}, + "fMedium" : {"$ref":2228}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 95, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":2252}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":826} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sensor_zone_lower_part_bevelV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "Sensor_zone_lower_part_bevelV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1241}, + "fMedium" : {"$ref":2228}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 99, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":2252}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":827} + }] + }, + "fShape" : {"$ref":1239}, + "fMedium" : {"$ref":2228}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 101, + "fNtotal" : 3, + "fRefCount" : 3 + }, + "fMother" : {"$ref":2221}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t816", + "fTitle" : "", + "fTranslation" : [-3, 6.15175, 3.105], + "fRotation" : null + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frameV_2", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 17, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1179}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 8, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":2221}, + "fNumber" : 2, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t818", + "fTitle" : "", + "fTranslation" : [-3, 6.15175, 3.21], + "fRotation" : null + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "moduleV_3_3", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 59768832, + "fName" : "moduleV_3", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sensor_zone_upper_partV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "Sensor_zone_upper_partV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1243}, + "fMedium" : {"$ref":2228}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 95, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":2263}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":828} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sensor_zone_lower_part_rectV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "Sensor_zone_lower_part_rectV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1244}, + "fMedium" : {"$ref":2228}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 96, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":2263}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":829} + }] + }, + "fShape" : {"$ref":1242}, + "fMedium" : {"$ref":2228}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 102, + "fNtotal" : 3, + "fRefCount" : 3 + }, + "fMother" : {"$ref":2221}, + "fNumber" : 3, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t818", + "fTitle" : "", + "fTranslation" : [-9, 6.15175, 1.575], + "fRotation" : null + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frameV_3", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 17, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1188}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 8, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":2221}, + "fNumber" : 3, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t820", + "fTitle" : "", + "fTranslation" : [-9, 6.15175, 1.68], + "fRotation" : null + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "moduleV_4_4", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 59768832, + "fName" : "moduleV_4", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sensor_zone_upper_partV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "Sensor_zone_upper_partV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1246}, + "fMedium" : {"$ref":2228}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 95, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":2274}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":830} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sensor_zone_lower_part_rectV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "Sensor_zone_lower_part_rectV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1247}, + "fMedium" : {"$ref":2228}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 96, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":2274}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":831} + }] + }, + "fShape" : {"$ref":1245}, + "fMedium" : {"$ref":2228}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 103, + "fNtotal" : 3, + "fRefCount" : 3 + }, + "fMother" : {"$ref":2221}, + "fNumber" : 4, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 61210624, + "fName" : "c820", + "fTitle" : "", + "fTranslation" : [9, -6.15175, 2.065], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 52690944, + "fName" : "", + "fTitle" : "", + "fRotationMatrix" : [-1, 0, 1.22464679914735e-16, 1.49975978266186e-32, -1, 1.22464679914735e-16, 1.22464679914735e-16, 1.22464679914735e-16, 1] + } + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frameV_4", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 17, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1197}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 8, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":2221}, + "fNumber" : 4, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 61210624, + "fName" : "c822", + "fTitle" : "", + "fTranslation" : [9, -6.15175, 2.17], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 52690944, + "fName" : "", + "fTitle" : "", + "fRotationMatrix" : [-1, 0, 1.22464679914735e-16, 1.49975978266186e-32, -1, 1.22464679914735e-16, 1.22464679914735e-16, 1.22464679914735e-16, 1] + } + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "moduleV_5_5", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 59768832, + "fName" : "moduleV_5", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sensor_zone_upper_partV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "Sensor_zone_upper_partV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1249}, + "fMedium" : {"$ref":2228}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 95, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":2287}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":832} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sensor_zone_lower_part_bevelV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "Sensor_zone_lower_part_bevelV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1250}, + "fMedium" : {"$ref":2228}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 99, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":2287}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":833} + }] + }, + "fShape" : {"$ref":1248}, + "fMedium" : {"$ref":2228}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 104, + "fNtotal" : 3, + "fRefCount" : 3 + }, + "fMother" : {"$ref":2221}, + "fNumber" : 5, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 61210624, + "fName" : "c822", + "fTitle" : "", + "fTranslation" : [3, -6.15175, 3.595], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 52690944, + "fName" : "", + "fTitle" : "", + "fRotationMatrix" : [-1, 0, 1.22464679914735e-16, 1.49975978266186e-32, -1, 1.22464679914735e-16, 1.22464679914735e-16, 1.22464679914735e-16, 1] + } + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frameV_5", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 17, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1206}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 8, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":2221}, + "fNumber" : 5, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 61210624, + "fName" : "c824", + "fTitle" : "", + "fTranslation" : [3, -6.15175, 3.7], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 52690944, + "fName" : "", + "fTitle" : "", + "fRotationMatrix" : [-1, 0, 1.22464679914735e-16, 1.49975978266186e-32, -1, 1.22464679914735e-16, 1.22464679914735e-16, 1.22464679914735e-16, 1] + } + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "moduleV_6_6", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 59768832, + "fName" : "moduleV_6", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sensor_zone_upper_partV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "Sensor_zone_upper_partV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1252}, + "fMedium" : {"$ref":2228}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 95, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":2300}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":834} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sensor_zone_lower_part_bevelV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "Sensor_zone_lower_part_bevelV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1253}, + "fMedium" : {"$ref":2228}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 99, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":2300}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":835} + }] + }, + "fShape" : {"$ref":1251}, + "fMedium" : {"$ref":2228}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 105, + "fNtotal" : 3, + "fRefCount" : 3 + }, + "fMother" : {"$ref":2221}, + "fNumber" : 6, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 61210624, + "fName" : "c824", + "fTitle" : "", + "fTranslation" : [-3, -6.15175, 2.285], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 52690944, + "fName" : "", + "fTitle" : "", + "fRotationMatrix" : [1, 0, 0, -0, -1, -1.22464679914735e-16, 0, 1.22464679914735e-16, -1] + } + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frameV_6", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 17, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1215}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 8, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":2221}, + "fNumber" : 6, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 61210624, + "fName" : "c826", + "fTitle" : "", + "fTranslation" : [-3, -6.15175, 2.18], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 52690944, + "fName" : "", + "fTitle" : "", + "fRotationMatrix" : [1, 0, 0, -0, -1, -1.22464679914735e-16, 0, 1.22464679914735e-16, -1] + } + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "moduleV_7_7", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 59768832, + "fName" : "moduleV_7", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sensor_zone_upper_partV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "Sensor_zone_upper_partV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1255}, + "fMedium" : {"$ref":2228}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 95, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":2313}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":836} + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sensor_zone_lower_part_rectV_0", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "Sensor_zone_lower_part_rectV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 5, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1256}, + "fMedium" : {"$ref":2228}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 96, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":2313}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":837} + }] + }, + "fShape" : {"$ref":1254}, + "fMedium" : {"$ref":2228}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 106, + "fNtotal" : 3, + "fRefCount" : 3 + }, + "fMother" : {"$ref":2221}, + "fNumber" : 7, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 61210624, + "fName" : "c826", + "fTitle" : "", + "fTranslation" : [-9, -6.15175, 3.815], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 52690944, + "fName" : "", + "fTitle" : "", + "fRotationMatrix" : [1, 0, 0, -0, -1, -1.22464679914735e-16, 0, 1.22464679914735e-16, -1] + } + } + }, { + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "frameV_7", + "fTitle" : "", + "fGeoAtt" : 3084, + "fVolume" : { + "_typename" : "TGeoVolume", + "fUniqueID" : 0, + "fBits" : 58720256, + "fName" : "frameV", + "fTitle" : "", + "fGeoAtt" : 3084, + "fLineColor" : 17, + "fLineStyle" : 1, + "fLineWidth" : 1, + "fFillColor" : 19, + "fFillStyle" : 1001, + "fNodes" : null, + "fShape" : {"$ref":1224}, + "fMedium" : {"$ref":934}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 8, + "fNtotal" : 1, + "fRefCount" : 1 + }, + "fMother" : {"$ref":2221}, + "fNumber" : 7, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoCombiTrans", + "fUniqueID" : 0, + "fBits" : 61210624, + "fName" : "c828", + "fTitle" : "", + "fTranslation" : [-9, -6.15175, 3.71], + "fRotation" : { + "_typename" : "TGeoRotation", + "fUniqueID" : 0, + "fBits" : 52690944, + "fName" : "", + "fTitle" : "", + "fRotationMatrix" : [1, 0, 0, -0, -1, -1.22464679914735e-16, 0, 1.22464679914735e-16, -1] + } + } + }] + }, + "fShape" : { + "_typename" : "TGeoShapeAssembly", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fShapeId" : 0, + "fShapeBits" : 1024, + "fDX" : 12.15, + "fDY" : 12.4535, + "fDZ" : 1.135, + "fOrigin" : [0, 0, 2.695], + "fVolume" : {"$ref":2221}, + "fBBoxOK" : true + }, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 3, + "fNtotal" : 33, + "fRefCount" : 17 + }, + "fMother" : {"$ref":2218}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : { + "_typename" : "TGeoTranslation", + "fUniqueID" : 0, + "fBits" : 52559872, + "fName" : "t812", + "fTitle" : "", + "fTranslation" : [0, -4.5, 0] + } + }] + }, + "fShape" : { + "_typename" : "TGeoShapeAssembly", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fShapeId" : 0, + "fShapeBits" : 1024, + "fDX" : 12.15, + "fDY" : 12.4535, + "fDZ" : 1.135, + "fOrigin" : [0, -4.5, 2.695], + "fVolume" : {"$ref":2218}, + "fBBoxOK" : true + }, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 94, + "fNtotal" : 34, + "fRefCount" : 3 + }, + "fMother" : {"$ref":1258}, + "fNumber" : 0, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":839} + }] + }, + "fShape" : {"$ref":848}, + "fMedium" : {"$ref":937}, + "fFinder" : null, + "fVoxels" : null, + "fNumber" : 1, + "fNtotal" : 413815, + "fRefCount" : 10 + }, {"$ref":1261}, {"$ref":1264}, {"$ref":1271}, {"$ref":1279}, {"$ref":1285}, {"$ref":1291}, {"$ref":1296}, {"$ref":1293}, {"$ref":1332}, {"$ref":1288}, {"$ref":1380}, {"$ref":1382}, {"$ref":1385}, {"$ref":1404}, {"$ref":1377}, {"$ref":1412}, {"$ref":1415}, {"$ref":1418}, {"$ref":1432}, {"$ref":1426}, {"$ref":1421}, {"$ref":1435}, {"$ref":1429}, {"$ref":1594}, {"$ref":1603}, {"$ref":1606}, {"$ref":1608}, {"$ref":1597}, {"$ref":1600}, {"$ref":1815}, {"$ref":943}, {"$ref":928}, {"$ref":933}, {"$ref":925}, {"$ref":940}, {"$ref":963}, {"$ref":954}, {"$ref":957}, {"$ref":951}, {"$ref":960}, {"$ref":983}, {"$ref":974}, {"$ref":977}, {"$ref":971}, {"$ref":980}, {"$ref":1013}, {"$ref":1015}, {"$ref":993}, {"$ref":996}, {"$ref":990}, {"$ref":1004}, {"$ref":1007}, {"$ref":1001}, {"$ref":1010}, {"$ref":1046}, {"$ref":1048}, {"$ref":1025}, {"$ref":1027}, {"$ref":1029}, {"$ref":1022}, {"$ref":1037}, {"$ref":1039}, {"$ref":1041}, {"$ref":1034}, {"$ref":1043}, {"$ref":1079}, {"$ref":1081}, {"$ref":1058}, {"$ref":1060}, {"$ref":1062}, {"$ref":1055}, {"$ref":1070}, {"$ref":1072}, {"$ref":1074}, {"$ref":1067}, {"$ref":1076}, {"$ref":1831}, {"$ref":1091}, {"$ref":1142}, {"$ref":1147}, {"$ref":1088}, {"$ref":1856}, {"$ref":1862}, {"$ref":1859}, {"$ref":1877}, {"$ref":1883}, {"$ref":1880}, {"$ref":1894}, {"$ref":1897}, {"$ref":1900}, {"$ref":1902}, {"$ref":1905}, {"$ref":1907}, {"$ref":2218}, {"$ref":2227}, {"$ref":2231}, {"$ref":2224}, {"$ref":2235}, {"$ref":2244}, {"$ref":2239}, {"$ref":2242}, {"$ref":2252}, {"$ref":2255}, {"$ref":2257}, {"$ref":2263}, {"$ref":2266}, {"$ref":2268}, {"$ref":2274}, {"$ref":2277}, {"$ref":2279}, {"$ref":2287}, {"$ref":2290}, {"$ref":2292}, {"$ref":2300}, {"$ref":2303}, {"$ref":2305}, {"$ref":2313}, {"$ref":2316}, {"$ref":2318}] + }, + "fPhysicalNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [] + }, + "fTracks" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [] + }, + "fPdgNames" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "d", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "d_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "u", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "u_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "s", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "s_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "c", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "c_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "b", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "b_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "t", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "t_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "b'", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "b'_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "t'", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "t'_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "e-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "e+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "nu_e", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "nu_e_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "mu-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "mu+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "nu_mu", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "nu_mu_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tau-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tau+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "nu_tau", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "nu_tau_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tau'-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "tau'+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "nu'_tau", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "nu'_tau_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "g", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "gamma", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Z0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "W+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "W-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "h0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "reggeon", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "pomeron", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Z'0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Z\"0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "W'+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "W'-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "H0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "A0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "H+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "H-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "eta_tech0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "LQ_ue", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "LQ_ue_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "R0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "R0_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "pi_tech0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "pi_tech+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "pi_tech-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "pi'_tech0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "rho_tech0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "rho_tech+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "rho_tech-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "omega_tech", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "H_L++", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "H_L--", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "H_R++", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "H_R--", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "W_R+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "W_R-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "nu_Re", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "nu_Re_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "nu_Rmu", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "nu_Rmu_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "nu_Rtau", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "nu_Rtau_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "specflav", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "rndmflav", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "rndmflav_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "phasespa", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "c-hadron", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "c-hadron_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "b-hadron", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "b-hadron_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "cluster", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "string", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "indep.", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "CMshower", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "SPHEaxis", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "THRUaxis", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "CLUSjet", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "CELLjet", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "table", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "rho_diff0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "pi0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "rho0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "a_20", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "K_L0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "pi_diffr+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "pi_diffr-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "pi+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "pi-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "rho+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "rho-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "a_2+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "a_2-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "omega_di", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "eta", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "omega", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "f_2", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "K_S0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "K0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "K0_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "K*0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "K*0_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "K*_20", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "K*_20_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "K+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "K-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "K*+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "K*-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "K*_2+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "K*_2-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "phi_diff", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "eta'", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "phi", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "f'_2", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "D+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "D-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "D*+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "D*-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "D*_2+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "D*_2-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "D0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "D0_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "D*0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "D*0_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "D*_20", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "D*_20_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "D_s+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "D_s-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "D*_s+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "D*_s-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "D*_2s+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "D*_2s-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "J\/psi_di", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "eta_c", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "J\/psi", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "chi_2c", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "B0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "B0_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "B*0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "B*0_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "B*_20", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "B*_20_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "B+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "B-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "B*+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "B*-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "B*_2+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "B*_2-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "B_s0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "B_s0_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "B*_s0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "B*_s0_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "B*_2s0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "B*_2s0_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "B_c+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "B_c-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "B*_c+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "B*_c-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "B*_2c+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "B*_2c-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "eta_b", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Upsilon", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "chi_2b", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "dd_1", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "dd_1_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Delta-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Delta-_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ud_0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ud_0_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ud_1", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ud_1_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "n_diffr0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "n_diffr0_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "neutron", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "antineutron", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Delta0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Delta0_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "uu_1", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "uu_1_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "p_diffr+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "p_diffr+_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "proton", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "antiproton", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Delta+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Delta+_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Delta++", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Delta--", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "sd_0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "sd_0_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "sd_1", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "sd_1_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sigma-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sigma-_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sigma*-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sigma*-_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Lambda0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Lambda0_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "su_0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "su_0_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "su_1", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "su_1_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sigma0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sigma0_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sigma*0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sigma*0_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sigma+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sigma+_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sigma*+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sigma*+_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ss_1", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "ss_1_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Xi-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Xi-_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Xi*-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Xi*+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Xi0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Xi0_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Xi*0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Xi*0_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Omega-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Omega+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "cd_0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "cd_0_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "cd_1", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "cd_1_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sigma_c0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sigma_c0_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sigma*_c0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sigma*_c0_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Lambda_c+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Lambda_c-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Xi_c0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Xi_c0_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "cu_0", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "cu_0_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "cu_1", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "cu_1_bar", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sigma_c+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sigma_c-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sigma*_c+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sigma*_c-", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sigma_c++", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sigma_c--", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sigma*_c++", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Sigma*_c--", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Xi_c+", + "fTitle" : "" + }, { + "_typename" : "TNamed", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "Xi_c-", + "fTitle" : "" + }] + }, + "fMaterials" : { + "_typename" : "TList", + "name" : "THashList", + "arr" : [{"$ref":938}, {"$ref":1266}, {"$ref":1273}, {"$ref":1281}, {"$ref":1144}, {"$ref":1093}, {"$ref":1149}, {"$ref":1334}, {"$ref":945}, {"$ref":1437}, {"$ref":1813}, { + "_typename" : "TGeoMaterial", + "fUniqueID" : 12, + "fBits" : 50331648, + "fName" : "VACUUM", + "fTitle" : "", + "fFillColor" : 19, + "fFillStyle" : 1001, + "fIndex" : 11, + "fA" : 0, + "fZ" : 0, + "fDensity" : 0, + "fRadLen" : 1e30, + "fIntLen" : 1e30, + "fTemperature" : 273.15, + "fPressure" : 632420000, + "fState" : 0, + "fShader" : null, + "fCerenkov" : null, + "fElement" : null + }, { + "_typename" : "TGeoMaterial", + "fUniqueID" : 13, + "fBits" : 50331648, + "fName" : "SILICON", + "fTitle" : "", + "fFillColor" : 19, + "fFillStyle" : 1001, + "fIndex" : 12, + "fA" : 28.09, + "fZ" : 14, + "fDensity" : 2.33, + "fRadLen" : 9.35110551053256, + "fIntLen" : 45.753205754866, + "fTemperature" : 273.15, + "fPressure" : 632420000, + "fState" : 0, + "fShader" : null, + "fCerenkov" : null, + "fElement" : null + }, {"$ref":930}, {"$ref":1423}, { + "_typename" : "TGeoMixture", + "fUniqueID" : 16, + "fBits" : 50331648, + "fName" : "TYVEC", + "fTitle" : "", + "fFillColor" : 19, + "fFillStyle" : 1001, + "fIndex" : 15, + "fA" : 10.4296180316, + "fZ" : 5.281386, + "fDensity" : 0.93, + "fRadLen" : 47.5076063184073, + "fIntLen" : 72.8965033104632, + "fTemperature" : 273.15, + "fPressure" : 632420000, + "fState" : 0, + "fShader" : null, + "fCerenkov" : null, + "fElement" : null, + "fNelements" : 2, + "fZmixture" : [6, 1], + "fAmixture" : [12.011, 1.008], + "fWeights" : [0.8562772, 0.1437228], + "fNatoms" : [], + "fVecNbOfAtomsPerVolume" : [], + "fElements" : null + }, {"$ref":965}, {"$ref":935}, { + "_typename" : "TGeoMaterial", + "fUniqueID" : 19, + "fBits" : 50331648, + "fName" : "lead", + "fTitle" : "", + "fFillColor" : 19, + "fFillStyle" : 1001, + "fIndex" : 18, + "fA" : 207.1, + "fZ" : 82, + "fDensity" : 11.34, + "fRadLen" : 0.561956031451292, + "fIntLen" : 18.2752677326212, + "fTemperature" : 273.15, + "fPressure" : 632420000, + "fState" : 0, + "fShader" : null, + "fCerenkov" : null, + "fElement" : null + }, {"$ref":1909}, {"$ref":2229}], + "opt" : ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""] + }, + "fMedia" : { + "_typename" : "TList", + "name" : "THashList", + "arr" : [{"$ref":937}, {"$ref":1265}, {"$ref":1272}, {"$ref":1280}, {"$ref":1143}, {"$ref":1092}, {"$ref":1148}, {"$ref":1333}, {"$ref":1812}, { + "_typename" : "TGeoMedium", + "fUniqueID" : 10, + "fBits" : 50331648, + "fName" : "VACUUM", + "fTitle" : "", + "fId" : 10, + "fParams" : [0, 1, 0.19, 0.25, -1, -1, 0.001, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "fMaterial" : {"$ref":2589} + }, {"$ref":944}, {"$ref":929}, {"$ref":1430}, {"$ref":1436}, {"$ref":1422}, { + "_typename" : "TGeoMedium", + "fUniqueID" : 16, + "fBits" : 50331648, + "fName" : "TYVEC", + "fTitle" : "", + "fId" : 16, + "fParams" : [0, 0, 0, 1, -1, -1, 0.001, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "fMaterial" : {"$ref":2591} + }, {"$ref":964}, {"$ref":934}, { + "_typename" : "TGeoMedium", + "fUniqueID" : 19, + "fBits" : 50331648, + "fName" : "lead", + "fTitle" : "", + "fId" : 19, + "fParams" : [0, 1, 20, -1, -1, -1, 0.001, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "fMaterial" : {"$ref":2592} + }, {"$ref":1908}, {"$ref":2228}], + "opt" : ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""] + }, + "fNodes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{ + "_typename" : "TGeoNodeMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "cave_1", + "fTitle" : "Top logical node", + "fGeoAtt" : 3084, + "fVolume" : {"$ref":1258}, + "fMother" : null, + "fNumber" : 1, + "fNovlp" : 0, + "fOverlaps" : [], + "fMatrix" : {"$ref":2} + }] + }, + "fOverlaps" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [] + }, + "fRegions" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [] + }, + "fMasterVolume" : {"$ref":1258}, + "fGLMatrix" : { + "_typename" : "TGeoHMatrix", + "fUniqueID" : 0, + "fBits" : 50331648, + "fName" : "", + "fTitle" : "", + "fTranslation" : [0, 0, 0], + "fRotationMatrix" : [1, 0, 0, 0, 1, 0, 0, 0, 1], + "fScale" : [1, 1, 1] + }, + "fUniqueVolumes" : { + "_typename" : "TObjArray", + "name" : "TObjArray", + "arr" : [{"$ref":1258}, {"$ref":1258}, {"$ref":1261}, {"$ref":1264}, {"$ref":1271}, {"$ref":1279}, {"$ref":1285}, {"$ref":1291}, {"$ref":1296}, {"$ref":1293}, {"$ref":1332}, {"$ref":1288}, {"$ref":1380}, {"$ref":1382}, {"$ref":1404}, {"$ref":1377}, {"$ref":1412}, {"$ref":1415}, {"$ref":1418}, {"$ref":1432}, {"$ref":1426}, {"$ref":1421}, {"$ref":1435}, {"$ref":1429}, {"$ref":1594}, {"$ref":1603}, {"$ref":1606}, {"$ref":1608}, {"$ref":1597}, {"$ref":1600}, {"$ref":1815}, {"$ref":943}, {"$ref":928}, {"$ref":933}, {"$ref":925}, {"$ref":940}, {"$ref":963}, {"$ref":954}, {"$ref":957}, {"$ref":951}, {"$ref":960}, {"$ref":983}, {"$ref":974}, {"$ref":977}, {"$ref":971}, {"$ref":980}, {"$ref":1013}, {"$ref":1015}, {"$ref":993}, {"$ref":996}, {"$ref":990}, {"$ref":1004}, {"$ref":1007}, {"$ref":1001}, {"$ref":1010}, {"$ref":1046}, {"$ref":1048}, {"$ref":1025}, {"$ref":1027}, {"$ref":1029}, {"$ref":1022}, {"$ref":1037}, {"$ref":1039}, {"$ref":1041}, {"$ref":1034}, {"$ref":1043}, {"$ref":1079}, {"$ref":1081}, {"$ref":1058}, {"$ref":1060}, {"$ref":1062}, {"$ref":1055}, {"$ref":1070}, {"$ref":1072}, {"$ref":1074}, {"$ref":1067}, {"$ref":1076}, {"$ref":1831}, {"$ref":1091}, {"$ref":1142}, {"$ref":1147}, {"$ref":1088}, {"$ref":1856}, {"$ref":1862}, {"$ref":1859}, {"$ref":1877}, {"$ref":1883}, {"$ref":1880}, {"$ref":1894}, {"$ref":1897}, {"$ref":1900}, {"$ref":1902}, {"$ref":1905}, {"$ref":1907}, {"$ref":2218}, {"$ref":2227}, {"$ref":2231}, {"$ref":2224}, {"$ref":2235}, {"$ref":2244}, {"$ref":2239}, {"$ref":2252}, {"$ref":2263}, {"$ref":2274}, {"$ref":2287}, {"$ref":2300}, {"$ref":2313}] + }, + "fNLevel" : 100, + "fHashPNE" : { + "_typename" : "THashList", + "name" : "THashList", + "arr" : [], + "opt" : [] + }, + "fSizePNEId" : 0, + "fNPNEId" : 0, + "fKeyPNEId" : [], + "fValuePNEId" : [], + "fUsePWNav" : false, + "fParallelWorld" : null +} \ No newline at end of file -- 2.34.1 From f2120aedf32629eaf67eaa4674f71299f1a4eb79 Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Thu, 19 Aug 2021 10:02:26 +0300 Subject: [PATCH 03/19] WIP Root object model --- .../src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt index 26517477..557783ae 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt @@ -20,6 +20,9 @@ public class TGeoManager : TNamed() { * Load Json encoded TGeoManager */ public fun decodeFromJson(jsonObject: JsonObject): TGeoManager = TODO() + + public fun decodeFromString(string: String): TGeoManager = + RootJsonSerialFormat().decodeFromString(serializer(), string) } } -- 2.34.1 From a748282d63fe547830260697d6c4017ecd399d79 Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Fri, 20 Aug 2021 20:24:41 +0300 Subject: [PATCH 04/19] Fix Jupyter Kapt problem --- demo/jupyter-playground/build.gradle.kts | 4 ++-- .../VisionForgePlayGroundForJupyter.kt | 4 ++-- demo/playground/build.gradle.kts | 18 +++++++++--------- gradle.properties | 2 ++ 4 files changed, 15 insertions(+), 13 deletions(-) rename demo/jupyter-playground/src/main/kotlin/{hep/dataforge/playground => }/VisionForgePlayGroundForJupyter.kt (96%) diff --git a/demo/jupyter-playground/build.gradle.kts b/demo/jupyter-playground/build.gradle.kts index 903b991b..62f92348 100644 --- a/demo/jupyter-playground/build.gradle.kts +++ b/demo/jupyter-playground/build.gradle.kts @@ -5,6 +5,7 @@ plugins { } repositories { + jcenter() mavenCentral() maven("https://repo.kotlin.link") } @@ -15,7 +16,6 @@ dependencies { tasks.withType { kotlinOptions { - useIR = true jvmTarget = ru.mipt.npm.gradle.KScienceVersions.JVM_TARGET.toString() } } @@ -29,7 +29,7 @@ tasks.withType { } tasks.processJupyterApiResources { - libraryProducers = listOf("space.kscience.dataforge.playground.VisionForgePlayGroundForJupyter") + libraryProducers = listOf("playground.VisionForgePlayGroundForJupyter") } tasks.findByName("shadowJar")?.dependsOn("processJupyterApiResources") \ No newline at end of file diff --git a/demo/jupyter-playground/src/main/kotlin/hep/dataforge/playground/VisionForgePlayGroundForJupyter.kt b/demo/jupyter-playground/src/main/kotlin/VisionForgePlayGroundForJupyter.kt similarity index 96% rename from demo/jupyter-playground/src/main/kotlin/hep/dataforge/playground/VisionForgePlayGroundForJupyter.kt rename to demo/jupyter-playground/src/main/kotlin/VisionForgePlayGroundForJupyter.kt index 88e4effb..12426672 100644 --- a/demo/jupyter-playground/src/main/kotlin/hep/dataforge/playground/VisionForgePlayGroundForJupyter.kt +++ b/demo/jupyter-playground/src/main/kotlin/VisionForgePlayGroundForJupyter.kt @@ -1,4 +1,4 @@ -package space.kscience.dataforge.playground +package playground import kotlinx.html.div import kotlinx.html.id @@ -24,7 +24,7 @@ import space.kscience.visionforge.visionManager @JupyterLibrary @DFExperimental -internal class VisionForgePlayGroundForJupyter : JupyterIntegration() { +public class VisionForgePlayGroundForJupyter : JupyterIntegration() { private val context = Context("VisionForge") { plugin(Solids) diff --git a/demo/playground/build.gradle.kts b/demo/playground/build.gradle.kts index a89fe123..515cb165 100644 --- a/demo/playground/build.gradle.kts +++ b/demo/playground/build.gradle.kts @@ -51,25 +51,25 @@ kotlin { sourceSets { val commonMain by getting { dependencies { - implementation(project(":visionforge-solid")) - implementation(project(":visionforge-gdml")) - implementation(project(":visionforge-plotly")) - implementation(projects.visionforge.visionforgeMarkdown) + api(project(":visionforge-solid")) + api(project(":visionforge-gdml")) + api(project(":visionforge-plotly")) + api(projects.visionforge.visionforgeMarkdown) } } val jsMain by getting{ dependencies { - implementation(project(":ui:ring")) - implementation(project(":visionforge-threejs")) + api(project(":ui:ring")) + api(project(":visionforge-threejs")) } } val jvmMain by getting{ dependencies { - implementation(project(":visionforge-server")) - implementation("ch.qos.logback:logback-classic:1.2.3") - implementation("com.github.Ricky12Awesome:json-schema-serialization:0.6.6") + api(project(":visionforge-server")) + api("ch.qos.logback:logback-classic:1.2.3") + api("com.github.Ricky12Awesome:json-schema-serialization:0.6.6") } } } diff --git a/gradle.properties b/gradle.properties index 2ffacd8f..511d4130 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,5 +3,7 @@ kotlin.mpp.enableGranularSourceSetsMetadata=true kotlin.mpp.stability.nowarn=true kotlin.native.enableDependencyPropagation=false +kotlin.jupyter.add.scanner=false + org.gradle.jvmargs=-XX:MaxMetaspaceSize=1G org.gradle.parallel=true \ No newline at end of file -- 2.34.1 From 5d2c853cbec6138bb53fc5580ada6eb76ca50e4b Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Fri, 20 Aug 2021 20:25:19 +0300 Subject: [PATCH 05/19] WIP ROOT json serialization --- build.gradle.kts | 7 +- .../kotlin/ru/mipt/npm/root/RootModel.kt | 25 ------ .../kotlin/ru/mipt/npm/root/TGeoHMatrix.kt | 7 ++ .../kotlin/ru/mipt/npm/root/TGeoManager.kt | 88 +++++++++++++++++-- .../kotlin/ru/mipt/npm/root/TGeoMaterial.kt | 3 + .../kotlin/ru/mipt/npm/root/TGeoMedium.kt | 2 + .../kotlin/ru/mipt/npm/root/TGeoNode.kt | 8 +- .../kotlin/ru/mipt/npm/root/TGeoShape.kt | 34 ++++++- .../kotlin/ru/mipt/npm/root/TGeoVolume.kt | 3 + .../kotlin/ru/mipt/npm/root/TObject.kt | 2 + .../kotlin/ru/mipt/npm/root/loadBM@N.kt | 7 ++ 11 files changed, 144 insertions(+), 42 deletions(-) delete mode 100644 cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/RootModel.kt create mode 100644 cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBM@N.kt diff --git a/build.gradle.kts b/build.gradle.kts index 505c349c..cd6ece5d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -37,8 +37,7 @@ apiValidation { } -afterEvaluate { - extensions.configure { - versions.webpackDevServer.version = "4.0.0" - } +//workaround for https://youtrack.jetbrains.com/issue/KT-48273 +rootProject.plugins.withType(org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin::class.java) { + rootProject.the().versions.webpackDevServer.version = "4.0.0" } \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/RootModel.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/RootModel.kt deleted file mode 100644 index 8f53d71f..00000000 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/RootModel.kt +++ /dev/null @@ -1,25 +0,0 @@ -package ru.mipt.npm.root - -import kotlin.properties.PropertyDelegateProvider -import kotlin.reflect.KType -import kotlin.reflect.typeOf - -public interface RootValueProvider { - /** - * Provide a member cast or reinterpreted to given type. - * Returns null if member with given name/type could not be resolved. - */ - public fun provideOrNull(name: String, type: KType): T? -} - -public interface RootModel { - public val provider: RootValueProvider -} - -public inline fun RootValueProvider.provide(name: String): T = - provideOrNull(name, typeOf()) ?: error("A member with type ${T::class} and name $name could not be resolved") - -public inline fun RootModel.member(name: String? = null): PropertyDelegateProvider> = - PropertyDelegateProvider { _, property -> - lazy { provider.provide(name ?: property.name) } - } diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoHMatrix.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoHMatrix.kt index f70e9a24..3e1362f8 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoHMatrix.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoHMatrix.kt @@ -1,15 +1,19 @@ package ru.mipt.npm.root +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @Serializable +@SerialName("TGeoMatrix") public sealed class TGeoMatrix : TNamed() @Serializable +@SerialName("TGeoIdentity") public class TGeoIdentity : TGeoMatrix() @Serializable +@SerialName("TGeoHMatrix") public class TGeoHMatrix( public val fTranslation: DoubleArray, public val fRotationMatrix: DoubleArray, @@ -17,16 +21,19 @@ public class TGeoHMatrix( ) : TGeoMatrix() @Serializable +@SerialName("TGeoTranslation") public class TGeoTranslation( public val fTranslation: DoubleArray ) : TGeoMatrix() @Serializable +@SerialName("TGeoRotation") public class TGeoRotation( public val fRotationMatrix: DoubleArray ): TGeoMatrix() @Serializable +@SerialName("TGeoCombiTrans") public class TGeoCombiTrans( public val fTranslation: DoubleArray, public val fRotation: TGeoRotation? = null, diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt index 557783ae..acf4d712 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt @@ -1,11 +1,18 @@ package ru.mipt.npm.root import kotlinx.serialization.* +import kotlinx.serialization.descriptors.SerialDescriptor +import kotlinx.serialization.encoding.Decoder +import kotlinx.serialization.encoding.Encoder import kotlinx.serialization.json.Json +import kotlinx.serialization.json.JsonDecoder import kotlinx.serialization.json.JsonObject import kotlinx.serialization.modules.SerializersModule +import kotlinx.serialization.modules.polymorphic +import kotlinx.serialization.modules.subclass @Serializable +@SerialName("TGeoManager") public class TGeoManager : TNamed() { public val fMatrices: TObjArray = TObjArray.empty @@ -20,19 +27,31 @@ public class TGeoManager : TNamed() { * Load Json encoded TGeoManager */ public fun decodeFromJson(jsonObject: JsonObject): TGeoManager = TODO() - + public fun decodeFromString(string: String): TGeoManager = - RootJsonSerialFormat().decodeFromString(serializer(), string) + Root().decodeFromString(serializer(), string) } } @OptIn(ExperimentalSerializationApi::class) -private class RootJsonSerialFormat : StringFormat { - - override val serializersModule: SerializersModule get() = json.serializersModule +private class RootJsonSerializer(private val tSerializer: KSerializer) : KSerializer { private val refCache: HashMap = HashMap() + + override val descriptor: SerialDescriptor get() = tSerializer.descriptor + + + override fun deserialize(decoder: Decoder): T { + val input = decoder as JsonDecoder + val element = input.decodeJsonElement() + return input.json.decodeFromJsonElement(tSerializer, transformDeserialize(element)) + } + + override fun serialize(encoder: Encoder, value: T) { + tSerializer.serialize(encoder, value) + } + override fun decodeFromString(deserializer: DeserializationStrategy, string: String): T { val match = refRegex.matchEntire(string) return if (match != null) { @@ -41,7 +60,7 @@ private class RootJsonSerialFormat : StringFormat { val refValue = refCache[ref] ?: error("Reference $ref unresolved") refValue as T //TODO research means to make it safe } else { - val res = json.decodeFromString(deserializer, string) + val res = rootJson.decodeFromString(deserializer, string) val uid = (res as? TObject)?.fUniqueID if (uid != null && refCache[uid] == null) { refCache[uid] = res @@ -50,17 +69,70 @@ private class RootJsonSerialFormat : StringFormat { } } + override fun encodeToString(serializer: SerializationStrategy, value: T): String = - json.encodeToString(serializer, value) + rootJson.encodeToString(serializer, value) companion object { val refRegex = """\{\s*"${"\\$"}ref"\s*:\s*(\d*)}""".toRegex() - val json: Json = Json { + val rootSerializersModule = SerializersModule { + polymorphic(TGeoShape::class) { + subclass(TGeoBBox.serializer()) + subclass(TGeoCompositeShape.serializer()) + subclass(TGeoXtru.serializer()) + subclass(TGeoTube.serializer()) + subclass(TGeoTubeSeg.serializer()) + subclass(TGeoShapeAssembly.serializer()) + } + + polymorphic(TGeoMatrix::class) { + subclass(TGeoIdentity.serializer()) + subclass(TGeoHMatrix.serializer()) + subclass(TGeoTranslation.serializer()) + subclass(TGeoRotation.serializer()) + subclass(TGeoCombiTrans.serializer()) + } + + polymorphic(TObject::class) { + subclass(TGeoBBox.serializer()) + subclass(TGeoCompositeShape.serializer()) + subclass(TGeoXtru.serializer()) + subclass(TGeoTube.serializer()) + subclass(TGeoTubeSeg.serializer()) + subclass(TGeoShapeAssembly.serializer()) + + subclass(TGeoIdentity.serializer()) + subclass(TGeoHMatrix.serializer()) + subclass(TGeoTranslation.serializer()) + subclass(TGeoRotation.serializer()) + subclass(TGeoCombiTrans.serializer()) + + subclass(TGeoMaterial.serializer()) + subclass(TGeoMixture.serializer()) + + subclass(TGeoMedium.serializer()) + + subclass(TGeoNode.serializer()) + subclass(TGeoNodeMatrix.serializer()) + subclass(TGeoVolume.serializer()) + subclass(TGeoVolumeAssembly.serializer()) + } + polymorphic(TGeoNode::class, TGeoNode.serializer()) { + subclass(TGeoNodeMatrix.serializer()) + } + polymorphic(TGeoVolume::class, TGeoVolume.serializer()) { + subclass(TGeoVolumeAssembly.serializer()) + } + } + + val rootJson: Json = Json { encodeDefaults = true ignoreUnknownKeys = true classDiscriminator = "_typename" + serializersModule = rootSerializersModule } + } } diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMaterial.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMaterial.kt index 9094d721..f4883e0e 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMaterial.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMaterial.kt @@ -1,9 +1,12 @@ package ru.mipt.npm.root +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @Serializable +@SerialName("TGeoMaterial") public open class TGeoMaterial: TNamed() @Serializable +@SerialName("TGeoMixture") public class TGeoMixture: TGeoMaterial() \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMedium.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMedium.kt index 196c209c..3e598753 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMedium.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMedium.kt @@ -1,8 +1,10 @@ package ru.mipt.npm.root +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @Serializable +@SerialName("TGeoMedium") public class TGeoMedium( public val fId : Int, public val fMaterial: TGeoMaterial, diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoNode.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoNode.kt index 2793773f..5805f3ea 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoNode.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoNode.kt @@ -1,9 +1,11 @@ package ru.mipt.npm.root +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @Serializable -public class TGeoNode : TNamed() { +@SerialName("TGeoNode") +public open class TGeoNode : TNamed() { //val fGeoAtt: UInt public val fVolume: TGeoVolume? = null public val fMother: TGeoVolume? = null @@ -12,6 +14,8 @@ public class TGeoNode : TNamed() { public val fOverlaps: IntArray = intArrayOf() } -public class TGeoNodeMatrix : TGeoMatrix() { +@Serializable +@SerialName("TGeoNodeMatrix") +public class TGeoNodeMatrix : TGeoNode() { public val fMatrix: TGeoMatrix? = null } \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoShape.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoShape.kt index 344f5e6f..f26261da 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoShape.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoShape.kt @@ -1,14 +1,17 @@ package ru.mipt.npm.root +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @Serializable -public abstract class TGeoShape : TNamed() { +@SerialName("TGeoShape") +public sealed class TGeoShape : TNamed() { public val fShapeBits: UInt = 0u public val fShapeId: Int = 0 } @Serializable +@SerialName("TGeoBBox") public open class TGeoBBox : TGeoShape() { public val fDX: Double = 0.0 public val fDY: Double = 0.0 @@ -17,6 +20,7 @@ public open class TGeoBBox : TGeoShape() { } @Serializable +@SerialName("TGeoBoolNode") public sealed class TGeoBoolNode : TObject() { public abstract val fLeft: TGeoShape public abstract val fLeftMat: TGeoMatrix @@ -25,6 +29,7 @@ public sealed class TGeoBoolNode : TObject() { } @Serializable +@SerialName("TGeoUnion") public class TGeoUnion( override val fLeft: TGeoShape, override val fLeftMat: TGeoMatrix, @@ -33,6 +38,7 @@ public class TGeoUnion( ) : TGeoBoolNode() @Serializable +@SerialName("TGeoSubtraction") public class TGeoSubtraction( override val fLeft: TGeoShape, override val fLeftMat: TGeoMatrix, @@ -41,6 +47,7 @@ public class TGeoSubtraction( ) : TGeoBoolNode() @Serializable +@SerialName("TGeoIntersection") public class TGeoIntersection( override val fLeft: TGeoShape, override val fLeftMat: TGeoMatrix, @@ -50,9 +57,11 @@ public class TGeoIntersection( @Serializable +@SerialName("TGeoCompositeShape") public class TGeoCompositeShape(public val fNode: TGeoBoolNode) : TGeoBBox() @Serializable +@SerialName("TGeoXtru") public class TGeoXtru( public val fNvert: Int, public val fNz: Int, @@ -67,14 +76,33 @@ public class TGeoXtru( @Serializable -public class TGeoTube( +@SerialName("TGeoTube") +public open class TGeoTube( public val fRmin: Double, public val fRmax: Double, public val fDz: Double, ) : TGeoBBox() @Serializable +@SerialName("TGeoTubeSeg") +public class TGeoTubeSeg( + public val fRmin: Double, + public val fRmax: Double, + public val fDz: Double, + public val fPhi1: Double, + public val fPhi2: Double, + public val fS1: Double, + public val fC1: Double, + public val fS2: Double, + public val fC2: Double, + public val fSm: Double, + public val fCm: Double, + public val fCdfi: Double, +) : TGeoBBox() + +@Serializable +@SerialName("TGeoShapeAssembly") public class TGeoShapeAssembly( public val fVolume: TGeoVolumeAssembly, public val fBBoxOK: Boolean = true -): TGeoBBox() \ No newline at end of file +) : TGeoBBox() \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoVolume.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoVolume.kt index 1bd12cbf..dc986729 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoVolume.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoVolume.kt @@ -1,8 +1,10 @@ package ru.mipt.npm.root +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @Serializable +@SerialName("TGeoVolume") public open class TGeoVolume : TNamed(){ // "fGeoAtt" : 3084, // "fLineColor" : 3, @@ -19,4 +21,5 @@ public open class TGeoVolume : TNamed(){ } @Serializable +@SerialName("TGeoVolumeAssembly") public class TGeoVolumeAssembly : TGeoVolume() \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObject.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObject.kt index fb17d8ac..bf528e6f 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObject.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObject.kt @@ -1,5 +1,6 @@ package ru.mipt.npm.root +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @Serializable @@ -15,6 +16,7 @@ public abstract class TNamed : TObject() { } @Serializable +@SerialName("TObjArray") public class TObjArray(public val arr: List){ public companion object{ public val empty = TObjArray(emptyList()) diff --git a/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBM@N.kt b/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBM@N.kt new file mode 100644 index 00000000..5d3a03af --- /dev/null +++ b/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBM@N.kt @@ -0,0 +1,7 @@ +package ru.mipt.npm.root + +fun main() { + val string = TGeoManager::class.java.getResourceAsStream("/BM@N.root.json")!! + .readAllBytes().decodeToString() + val geo = TGeoManager.decodeFromString(string) +} \ No newline at end of file -- 2.34.1 From 1b2d61008f4d8602d0ca4735fdfed89591702376 Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Sat, 21 Aug 2021 10:53:36 +0300 Subject: [PATCH 06/19] WIP root unref --- .../kotlin/ru/mipt/npm/root/TGeoManager.kt | 123 +----------------- .../kotlin/ru/mipt/npm/root/rootJson.kt | 107 +++++++++++++++ 2 files changed, 114 insertions(+), 116 deletions(-) create mode 100644 cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootJson.kt diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt index acf4d712..3b3eecf5 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt @@ -1,15 +1,9 @@ package ru.mipt.npm.root -import kotlinx.serialization.* -import kotlinx.serialization.descriptors.SerialDescriptor -import kotlinx.serialization.encoding.Decoder -import kotlinx.serialization.encoding.Encoder -import kotlinx.serialization.json.Json -import kotlinx.serialization.json.JsonDecoder -import kotlinx.serialization.json.JsonObject -import kotlinx.serialization.modules.SerializersModule -import kotlinx.serialization.modules.polymorphic -import kotlinx.serialization.modules.subclass +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.json.JsonElement +import kotlinx.serialization.json.decodeFromJsonElement @Serializable @SerialName("TGeoManager") @@ -26,113 +20,10 @@ public class TGeoManager : TNamed() { /** * Load Json encoded TGeoManager */ - public fun decodeFromJson(jsonObject: JsonObject): TGeoManager = TODO() + public fun decodeFromJson(jsonElement: JsonElement): TGeoManager = + rootJson().decodeFromJsonElement(jsonElement) public fun decodeFromString(string: String): TGeoManager = - Root().decodeFromString(serializer(), string) + rootJson().decodeFromString(serializer(), string) } } - -@OptIn(ExperimentalSerializationApi::class) -private class RootJsonSerializer(private val tSerializer: KSerializer) : KSerializer { - - private val refCache: HashMap = HashMap() - - - override val descriptor: SerialDescriptor get() = tSerializer.descriptor - - - override fun deserialize(decoder: Decoder): T { - val input = decoder as JsonDecoder - val element = input.decodeJsonElement() - return input.json.decodeFromJsonElement(tSerializer, transformDeserialize(element)) - } - - override fun serialize(encoder: Encoder, value: T) { - tSerializer.serialize(encoder, value) - } - - override fun decodeFromString(deserializer: DeserializationStrategy, string: String): T { - val match = refRegex.matchEntire(string) - return if (match != null) { - //Do unref - val ref = match.value.toUIntOrNull() ?: error("Ref value is not a number") - val refValue = refCache[ref] ?: error("Reference $ref unresolved") - refValue as T //TODO research means to make it safe - } else { - val res = rootJson.decodeFromString(deserializer, string) - val uid = (res as? TObject)?.fUniqueID - if (uid != null && refCache[uid] == null) { - refCache[uid] = res - } - res - } - } - - - override fun encodeToString(serializer: SerializationStrategy, value: T): String = - rootJson.encodeToString(serializer, value) - - companion object { - val refRegex = """\{\s*"${"\\$"}ref"\s*:\s*(\d*)}""".toRegex() - - val rootSerializersModule = SerializersModule { - polymorphic(TGeoShape::class) { - subclass(TGeoBBox.serializer()) - subclass(TGeoCompositeShape.serializer()) - subclass(TGeoXtru.serializer()) - subclass(TGeoTube.serializer()) - subclass(TGeoTubeSeg.serializer()) - subclass(TGeoShapeAssembly.serializer()) - } - - polymorphic(TGeoMatrix::class) { - subclass(TGeoIdentity.serializer()) - subclass(TGeoHMatrix.serializer()) - subclass(TGeoTranslation.serializer()) - subclass(TGeoRotation.serializer()) - subclass(TGeoCombiTrans.serializer()) - } - - polymorphic(TObject::class) { - subclass(TGeoBBox.serializer()) - subclass(TGeoCompositeShape.serializer()) - subclass(TGeoXtru.serializer()) - subclass(TGeoTube.serializer()) - subclass(TGeoTubeSeg.serializer()) - subclass(TGeoShapeAssembly.serializer()) - - subclass(TGeoIdentity.serializer()) - subclass(TGeoHMatrix.serializer()) - subclass(TGeoTranslation.serializer()) - subclass(TGeoRotation.serializer()) - subclass(TGeoCombiTrans.serializer()) - - subclass(TGeoMaterial.serializer()) - subclass(TGeoMixture.serializer()) - - subclass(TGeoMedium.serializer()) - - subclass(TGeoNode.serializer()) - subclass(TGeoNodeMatrix.serializer()) - subclass(TGeoVolume.serializer()) - subclass(TGeoVolumeAssembly.serializer()) - } - polymorphic(TGeoNode::class, TGeoNode.serializer()) { - subclass(TGeoNodeMatrix.serializer()) - } - polymorphic(TGeoVolume::class, TGeoVolume.serializer()) { - subclass(TGeoVolumeAssembly.serializer()) - } - } - - val rootJson: Json = Json { - encodeDefaults = true - ignoreUnknownKeys = true - classDiscriminator = "_typename" - serializersModule = rootSerializersModule - } - - } - -} diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootJson.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootJson.kt new file mode 100644 index 00000000..f0b25d18 --- /dev/null +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootJson.kt @@ -0,0 +1,107 @@ +package ru.mipt.npm.root + +import kotlinx.serialization.KSerializer +import kotlinx.serialization.descriptors.SerialDescriptor +import kotlinx.serialization.encoding.Decoder +import kotlinx.serialization.encoding.Encoder +import kotlinx.serialization.json.* +import kotlinx.serialization.modules.PolymorphicModuleBuilder +import kotlinx.serialization.modules.SerializersModule +import kotlinx.serialization.modules.polymorphic +import kotlinx.serialization.modules.subclass + + +private typealias RefCache = MutableList + +private class RootJsonSerializer( + private val refCache: RefCache, + private val tSerializer: KSerializer +) : KSerializer { + + override val descriptor: SerialDescriptor get() = tSerializer.descriptor + + override fun deserialize(decoder: Decoder): T { + val input = decoder as JsonDecoder + val element = input.decodeJsonElement() + val refId = (element as? JsonObject)?.get("\$ref")?.jsonPrimitive?.int + return if (refId != null) { + //Do unref + val refValue = refCache[refId] + refValue as T //TODO research means to make it safe + } else { + val res = input.json.decodeFromJsonElement(tSerializer, element) + //val uid = res.fUniqueID + refCache.add(res) + res + } + } + + override fun serialize(encoder: Encoder, value: T) { + tSerializer.serialize(encoder, value) + } + +} + +private fun KSerializer.unref(refCache: RefCache): RootJsonSerializer = + RootJsonSerializer(refCache, this) + + +private fun PolymorphicModuleBuilder.shapes(refCache: RefCache) { + subclass(TGeoBBox.serializer().unref(refCache)) + subclass(TGeoCompositeShape.serializer().unref(refCache)) + subclass(TGeoXtru.serializer().unref(refCache)) + subclass(TGeoTube.serializer().unref(refCache)) + subclass(TGeoTubeSeg.serializer().unref(refCache)) + subclass(TGeoShapeAssembly.serializer().unref(refCache)) +} + +private fun PolymorphicModuleBuilder.matrices(refCache: RefCache) { + subclass(TGeoIdentity.serializer().unref(refCache)) + subclass(TGeoHMatrix.serializer().unref(refCache)) + subclass(TGeoTranslation.serializer().unref(refCache)) + subclass(TGeoRotation.serializer().unref(refCache)) + subclass(TGeoCombiTrans.serializer().unref(refCache)) +} + +/** + * Create an instance of Json with unfolding Root references. This instance could not be reused because of the cache. + */ +internal fun rootJson(): Json { + val refCache = ArrayList(4096) + return Json { + encodeDefaults = true + ignoreUnknownKeys = true + classDiscriminator = "_typename" + serializersModule = SerializersModule { + polymorphic(TGeoShape::class) { + default { TGeoBBox.serializer().unref(refCache) } + shapes(refCache) + } + + polymorphic(TGeoMatrix::class) { + matrices(refCache) + } + + polymorphic(TObject::class) { + shapes(refCache) + matrices(refCache) + + subclass(TGeoMaterial.serializer().unref(refCache)) + subclass(TGeoMixture.serializer().unref(refCache)) + + subclass(TGeoMedium.serializer().unref(refCache)) + + subclass(TGeoNode.serializer().unref(refCache)) + subclass(TGeoNodeMatrix.serializer().unref(refCache)) + subclass(TGeoVolume.serializer().unref(refCache)) + subclass(TGeoVolumeAssembly.serializer().unref(refCache)) + } + polymorphic(TGeoNode::class, TGeoNode.serializer().unref(refCache)) { + subclass(TGeoNodeMatrix.serializer().unref(refCache)) + } + polymorphic(TGeoVolume::class, TGeoVolume.serializer().unref(refCache)) { + subclass(TGeoVolumeAssembly.serializer().unref(refCache)) + } + } + } +} \ No newline at end of file -- 2.34.1 From 64e084dc533e49be886385b06edd8366ce341565 Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Sun, 22 Aug 2021 22:39:47 +0300 Subject: [PATCH 07/19] WIP root unref --- .../kotlin/ru/mipt/npm/root/TGeoManager.kt | 22 +- .../root/{TGeoHMatrix.kt => TGeoMatrix.kt} | 6 +- .../kotlin/ru/mipt/npm/root/TGeoMedium.kt | 6 +- .../kotlin/ru/mipt/npm/root/TGeoNode.kt | 5 + .../kotlin/ru/mipt/npm/root/TGeoShape.kt | 21 ++ .../kotlin/ru/mipt/npm/root/TGeoVolume.kt | 12 +- .../kotlin/ru/mipt/npm/root/TObject.kt | 16 +- .../kotlin/ru/mipt/npm/root/rootJson.kt | 280 +++++++++++++----- .../kotlin/ru/mipt/npm/root/loadBM@N.kt | 26 +- 9 files changed, 286 insertions(+), 108 deletions(-) rename cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/{TGeoHMatrix.kt => TGeoMatrix.kt} (90%) diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt index 3b3eecf5..96b02768 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt @@ -1,29 +1,19 @@ package ru.mipt.npm.root +import kotlinx.serialization.Contextual import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable -import kotlinx.serialization.json.JsonElement -import kotlinx.serialization.json.decodeFromJsonElement @Serializable @SerialName("TGeoManager") public class TGeoManager : TNamed() { + @Contextual public val fMatrices: TObjArray = TObjArray.empty + + @Contextual public val fShapes: TObjArray = TObjArray.empty + + @Contextual public val fVolumes: TObjArray = TObjArray.empty - - - public companion object { - - - /** - * Load Json encoded TGeoManager - */ - public fun decodeFromJson(jsonElement: JsonElement): TGeoManager = - rootJson().decodeFromJsonElement(jsonElement) - - public fun decodeFromString(string: String): TGeoManager = - rootJson().decodeFromString(serializer(), string) - } } diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoHMatrix.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMatrix.kt similarity index 90% rename from cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoHMatrix.kt rename to cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMatrix.kt index 3e1362f8..0c6ec7ab 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoHMatrix.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMatrix.kt @@ -1,5 +1,6 @@ package ru.mipt.npm.root +import kotlinx.serialization.Contextual import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @@ -30,11 +31,12 @@ public class TGeoTranslation( @SerialName("TGeoRotation") public class TGeoRotation( public val fRotationMatrix: DoubleArray -): TGeoMatrix() +) : TGeoMatrix() @Serializable @SerialName("TGeoCombiTrans") public class TGeoCombiTrans( public val fTranslation: DoubleArray, + @Contextual public val fRotation: TGeoRotation? = null, -): TGeoMatrix() \ No newline at end of file +) : TGeoMatrix() \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMedium.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMedium.kt index 3e598753..72b72c4c 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMedium.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMedium.kt @@ -1,12 +1,14 @@ package ru.mipt.npm.root +import kotlinx.serialization.Contextual import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @Serializable @SerialName("TGeoMedium") public class TGeoMedium( - public val fId : Int, + public val fId: Int, + @Contextual public val fMaterial: TGeoMaterial, public val fParams: DoubleArray -): TNamed() \ No newline at end of file +) : TNamed() \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoNode.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoNode.kt index 5805f3ea..f507aeb2 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoNode.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoNode.kt @@ -1,5 +1,6 @@ package ru.mipt.npm.root +import kotlinx.serialization.Contextual import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @@ -7,7 +8,10 @@ import kotlinx.serialization.Serializable @SerialName("TGeoNode") public open class TGeoNode : TNamed() { //val fGeoAtt: UInt + @Contextual public val fVolume: TGeoVolume? = null + + @Contextual public val fMother: TGeoVolume? = null public val fNumber: Int = 0 public val fNovlp: Int = 0 @@ -17,5 +21,6 @@ public open class TGeoNode : TNamed() { @Serializable @SerialName("TGeoNodeMatrix") public class TGeoNodeMatrix : TGeoNode() { + @Contextual public val fMatrix: TGeoMatrix? = null } \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoShape.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoShape.kt index f26261da..c986f899 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoShape.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoShape.kt @@ -1,5 +1,6 @@ package ru.mipt.npm.root +import kotlinx.serialization.Contextual import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @@ -22,36 +23,55 @@ public open class TGeoBBox : TGeoShape() { @Serializable @SerialName("TGeoBoolNode") public sealed class TGeoBoolNode : TObject() { + @Contextual public abstract val fLeft: TGeoShape + + @Contextual public abstract val fLeftMat: TGeoMatrix + + @Contextual public abstract val fRight: TGeoShape + + @Contextual public abstract val fRightMat: TGeoMatrix } @Serializable @SerialName("TGeoUnion") public class TGeoUnion( + @Contextual override val fLeft: TGeoShape, + @Contextual override val fLeftMat: TGeoMatrix, + @Contextual override val fRight: TGeoShape, + @Contextual override val fRightMat: TGeoMatrix ) : TGeoBoolNode() @Serializable @SerialName("TGeoSubtraction") public class TGeoSubtraction( + @Contextual override val fLeft: TGeoShape, + @Contextual override val fLeftMat: TGeoMatrix, + @Contextual override val fRight: TGeoShape, + @Contextual override val fRightMat: TGeoMatrix ) : TGeoBoolNode() @Serializable @SerialName("TGeoIntersection") public class TGeoIntersection( + @Contextual override val fLeft: TGeoShape, + @Contextual override val fLeftMat: TGeoMatrix, + @Contextual override val fRight: TGeoShape, + @Contextual override val fRightMat: TGeoMatrix ) : TGeoBoolNode() @@ -103,6 +123,7 @@ public class TGeoTubeSeg( @Serializable @SerialName("TGeoShapeAssembly") public class TGeoShapeAssembly( + @Contextual public val fVolume: TGeoVolumeAssembly, public val fBBoxOK: Boolean = true ) : TGeoBBox() \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoVolume.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoVolume.kt index dc986729..afa7c7d9 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoVolume.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoVolume.kt @@ -1,20 +1,30 @@ package ru.mipt.npm.root +import kotlinx.serialization.Contextual import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @Serializable @SerialName("TGeoVolume") -public open class TGeoVolume : TNamed(){ +public open class TGeoVolume : TNamed() { // "fGeoAtt" : 3084, // "fLineColor" : 3, // "fLineStyle" : 1, // "fLineWidth" : 1, // "fFillColor" : 19, // "fFillStyle" : 1001, + @Contextual public lateinit var fNodes: TObjArray + internal set + + @Contextual public lateinit var fShape: TGeoShape + internal set + + @Contextual public lateinit var fMedium: TGeoMedium + internal set + public val fNumber: Int = 1 public val fNtotal: Int = 1 public val fRefCount: Int = 1 diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObject.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObject.kt index bf528e6f..f70cc589 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObject.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObject.kt @@ -10,15 +10,23 @@ public abstract class TObject { } @Serializable -public abstract class TNamed : TObject() { +public open class TNamed : TObject() { public val fName: String = "" public val fTitle: String = "" } @Serializable @SerialName("TObjArray") -public class TObjArray(public val arr: List){ +public class TObjArray(public val arr: List): TObject() { public companion object{ - public val empty = TObjArray(emptyList()) + public val empty: TObjArray = TObjArray(emptyList()) } -} \ No newline at end of file +} + +@Serializable +@SerialName("TList") +public class TList(public val arr: List): TObject() + +@Serializable +@SerialName("THashList") +public class THashList(public val arr: List): TObject() \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootJson.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootJson.kt index f0b25d18..33b8b6c2 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootJson.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootJson.kt @@ -1,107 +1,223 @@ package ru.mipt.npm.root +import kotlinx.serialization.DeserializationStrategy +import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.KSerializer -import kotlinx.serialization.descriptors.SerialDescriptor import kotlinx.serialization.encoding.Decoder -import kotlinx.serialization.encoding.Encoder import kotlinx.serialization.json.* -import kotlinx.serialization.modules.PolymorphicModuleBuilder -import kotlinx.serialization.modules.SerializersModule -import kotlinx.serialization.modules.polymorphic -import kotlinx.serialization.modules.subclass +import kotlinx.serialization.modules.* +import kotlin.reflect.KClass -private typealias RefCache = MutableList +/** + * Load Json encoded TObject + */ +public fun TObject.Companion.decodeFromJson(serializer: KSerializer, jsonElement: JsonElement): TObject = + RootDecoder.decode(serializer, jsonElement) -private class RootJsonSerializer( - private val refCache: RefCache, - private val tSerializer: KSerializer -) : KSerializer { +public fun TObject.Companion.decodeFromString(serializer: KSerializer, string: String): TObject { + val json = RootDecoder.json.parseToJsonElement(string) + return RootDecoder.decode(serializer, json) +} - override val descriptor: SerialDescriptor get() = tSerializer.descriptor +private object RootDecoder { - override fun deserialize(decoder: Decoder): T { - val input = decoder as JsonDecoder - val element = input.decodeJsonElement() - val refId = (element as? JsonObject)?.get("\$ref")?.jsonPrimitive?.int - return if (refId != null) { - //Do unref - val refValue = refCache[refId] - refValue as T //TODO research means to make it safe - } else { - val res = input.json.decodeFromJsonElement(tSerializer, element) - //val uid = res.fUniqueID - refCache.add(res) - res + private class RootUnrefSerializer( + private val tSerializer: KSerializer, + private val refCache: MutableList,// = ArrayList(4096) + private val counter: ReferenceCounter + ) : KSerializer by tSerializer { + + override fun deserialize(decoder: Decoder): T { + val input = decoder as JsonDecoder + val element = input.decodeJsonElement() + val refId = (element as? JsonObject)?.get("\$ref")?.jsonPrimitive?.int + val ref = if (refId != null) { + //Do unref + refCache[refId] + } else { + refCache[counter.value].also { + counter.increment() + } + } + return ref.value(tSerializer) as T //TODO research means to make it safe } } - override fun serialize(encoder: Encoder, value: T) { - tSerializer.serialize(encoder, value) + private fun KSerializer.unref(refCache: MutableList, counter: ReferenceCounter): KSerializer = + RootUnrefSerializer(this, refCache, counter) + + @OptIn(ExperimentalSerializationApi::class) + fun unrefSerializersModule( + refCache: MutableList, counter: ReferenceCounter + ): SerializersModule = SerializersModule { + val collector = this + val unrefCollector = object : SerializersModuleCollector { + + override fun contextual( + kClass: KClass, + provider: (typeArgumentsSerializers: List>) -> KSerializer<*> + ) { + collector.contextual(kClass) { provider(it).unref(refCache, counter) } + } + + override fun polymorphic( + baseClass: KClass, + actualClass: KClass, + actualSerializer: KSerializer + ) { + collector.polymorphic(baseClass, actualClass, actualSerializer.unref(refCache, counter)) + } + + override fun polymorphicDefault( + baseClass: KClass, + defaultSerializerProvider: (className: String?) -> DeserializationStrategy? + ) { + collector.polymorphicDefault(baseClass) { + (defaultSerializerProvider(it) as KSerializer).unref(refCache, counter) + } + } + } + serializersModule.dumpTo(unrefCollector) } -} - -private fun KSerializer.unref(refCache: RefCache): RootJsonSerializer = - RootJsonSerializer(refCache, this) - - -private fun PolymorphicModuleBuilder.shapes(refCache: RefCache) { - subclass(TGeoBBox.serializer().unref(refCache)) - subclass(TGeoCompositeShape.serializer().unref(refCache)) - subclass(TGeoXtru.serializer().unref(refCache)) - subclass(TGeoTube.serializer().unref(refCache)) - subclass(TGeoTubeSeg.serializer().unref(refCache)) - subclass(TGeoShapeAssembly.serializer().unref(refCache)) -} - -private fun PolymorphicModuleBuilder.matrices(refCache: RefCache) { - subclass(TGeoIdentity.serializer().unref(refCache)) - subclass(TGeoHMatrix.serializer().unref(refCache)) - subclass(TGeoTranslation.serializer().unref(refCache)) - subclass(TGeoRotation.serializer().unref(refCache)) - subclass(TGeoCombiTrans.serializer().unref(refCache)) -} - -/** - * Create an instance of Json with unfolding Root references. This instance could not be reused because of the cache. - */ -internal fun rootJson(): Json { - val refCache = ArrayList(4096) - return Json { + /** + * Create an instance of Json with unfolding Root references. This instance could not be reused because of the cache. + */ + private fun unrefJson(refCache: MutableList, counter: ReferenceCounter): Json = Json { encodeDefaults = true ignoreUnknownKeys = true classDiscriminator = "_typename" - serializersModule = SerializersModule { - polymorphic(TGeoShape::class) { - default { TGeoBBox.serializer().unref(refCache) } - shapes(refCache) - } + serializersModule = unrefSerializersModule(refCache, counter) + } - polymorphic(TGeoMatrix::class) { - matrices(refCache) - } - polymorphic(TObject::class) { - shapes(refCache) - matrices(refCache) + fun decode(sourceDeserializer: KSerializer, source: JsonElement): TObject { + val counter = ReferenceCounter() + val refCache = ArrayList() - subclass(TGeoMaterial.serializer().unref(refCache)) - subclass(TGeoMixture.serializer().unref(refCache)) - - subclass(TGeoMedium.serializer().unref(refCache)) - - subclass(TGeoNode.serializer().unref(refCache)) - subclass(TGeoNodeMatrix.serializer().unref(refCache)) - subclass(TGeoVolume.serializer().unref(refCache)) - subclass(TGeoVolumeAssembly.serializer().unref(refCache)) - } - polymorphic(TGeoNode::class, TGeoNode.serializer().unref(refCache)) { - subclass(TGeoNodeMatrix.serializer().unref(refCache)) - } - polymorphic(TGeoVolume::class, TGeoVolume.serializer().unref(refCache)) { - subclass(TGeoVolumeAssembly.serializer().unref(refCache)) + fun fillCache(element: JsonElement) { + when (element) { + is JsonObject -> { + if (element["_typename"] != null) { + refCache.add(RefEntry(element)) + } + element.values.forEach { + fillCache(it) + } + } + is JsonArray -> { + element.forEach { + fillCache(it) + } + } + else -> { + } } } + fillCache(source) + + return unrefJson(refCache, counter).decodeFromJsonElement(sourceDeserializer.unref(refCache, counter), source) } + + class ReferenceCounter(var value: Int = 0) { + fun increment() { + value += 1 + } + + override fun toString(): String = value.toString() + } + + class RefEntry(val obj: JsonObject) { + + private var cachedValue: Any? = null + + fun value(serializer: KSerializer<*>): Any { + if (cachedValue == null) { + cachedValue = json.decodeFromJsonElement(serializer, obj) + } + return cachedValue!! + } + + override fun toString(): String = obj.toString() + } + + private fun PolymorphicModuleBuilder.shapes() { + subclass(TGeoBBox.serializer()) + subclass(TGeoCompositeShape.serializer()) + subclass(TGeoXtru.serializer()) + subclass(TGeoTube.serializer()) + subclass(TGeoTubeSeg.serializer()) + subclass(TGeoShapeAssembly.serializer()) + } + + private fun PolymorphicModuleBuilder.matrices() { + subclass(TGeoIdentity.serializer()) + subclass(TGeoHMatrix.serializer()) + subclass(TGeoTranslation.serializer()) + subclass(TGeoRotation.serializer()) + subclass(TGeoCombiTrans.serializer()) + } + + private fun PolymorphicModuleBuilder.boolNodes() { + subclass(TGeoIntersection.serializer()) + subclass(TGeoUnion.serializer()) + subclass(TGeoSubtraction.serializer()) + } + + private val serializersModule = SerializersModule { + contextual(TGeoManager::class) { TGeoManager.serializer() } + contextual(TObjArray::class) { TObjArray.serializer() } + contextual(TGeoVolumeAssembly::class) { TGeoVolumeAssembly.serializer() } + contextual(TGeoShapeAssembly::class) { TGeoShapeAssembly.serializer() } + contextual(TGeoRotation::class) { TGeoRotation.serializer() } + contextual(TGeoMedium::class) { TGeoMedium.serializer() } + + polymorphic(TGeoShape::class) { + default { TGeoBBox.serializer() } + shapes() + } + + polymorphic(TGeoMatrix::class) { + matrices() + } + + polymorphic(TGeoBoolNode::class) { + boolNodes() + } + + polymorphic(TObject::class) { + subclass(TObjArray.serializer()) + + shapes() + matrices() + boolNodes() + + subclass(TGeoMaterial.serializer()) + subclass(TGeoMixture.serializer()) + + subclass(TGeoMedium.serializer()) + + subclass(TGeoNode.serializer()) + subclass(TGeoNodeMatrix.serializer()) + subclass(TGeoVolume.serializer()) + subclass(TGeoVolumeAssembly.serializer()) + } + + polymorphic(TGeoNode::class, TGeoNode.serializer()) { + subclass(TGeoNodeMatrix.serializer()) + } + + polymorphic(TGeoVolume::class, TGeoVolume.serializer()) { + subclass(TGeoVolumeAssembly.serializer()) + } + } + + val json = Json { + encodeDefaults = true + ignoreUnknownKeys = true + classDiscriminator = "_typename" + serializersModule = this@RootDecoder.serializersModule + } + } \ No newline at end of file diff --git a/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBM@N.kt b/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBM@N.kt index 5d3a03af..2c2aa86c 100644 --- a/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBM@N.kt +++ b/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBM@N.kt @@ -1,7 +1,31 @@ package ru.mipt.npm.root +import kotlinx.serialization.json.* + +private fun JsonElement.countTypes(): Sequence = sequence { + val json = this@countTypes + when (json){ + is JsonObject -> { + json["_typename"]?.let { yield(it.jsonPrimitive.content) } + json.values.forEach { yieldAll(it.countTypes()) } + } + is JsonArray -> { + json.forEach { + yieldAll(it.countTypes()) + } + } + else -> {} + } +} + fun main() { val string = TGeoManager::class.java.getResourceAsStream("/BM@N.root.json")!! .readAllBytes().decodeToString() - val geo = TGeoManager.decodeFromString(string) + val json = Json.parseToJsonElement(string) + val sizes = json.countTypes().groupBy { it }.mapValues { it.value.size } + sizes.forEach { + println(it) + } + + val geo = TObject.decodeFromString(TGeoManager.serializer(), string) } \ No newline at end of file -- 2.34.1 From e39f79e4ab702226b0b125e1eb9fe4b4392fa25a Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Tue, 24 Aug 2021 16:04:21 +0300 Subject: [PATCH 08/19] Root parsing complete --- .../kotlin/ru/mipt/npm/root/JsonRootObject.kt | 26 +++ .../kotlin/ru/mipt/npm/root/TGeoNode.kt | 8 +- .../kotlin/ru/mipt/npm/root/TGeoShape.kt | 6 +- .../kotlin/ru/mipt/npm/root/TGeoVolume.kt | 34 ++-- .../kotlin/ru/mipt/npm/root/TObject.kt | 8 +- .../kotlin/ru/mipt/npm/root/rootJson.kt | 149 +++++++++--------- .../mipt/npm/root/{loadBM@N.kt => loadBMN.kt} | 8 +- 7 files changed, 143 insertions(+), 96 deletions(-) create mode 100644 cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/JsonRootObject.kt rename cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/{loadBM@N.kt => loadBMN.kt} (78%) diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/JsonRootObject.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/JsonRootObject.kt new file mode 100644 index 00000000..bb5fd1cb --- /dev/null +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/JsonRootObject.kt @@ -0,0 +1,26 @@ +package ru.mipt.npm.root + +import kotlinx.serialization.KSerializer +import kotlinx.serialization.Serializable +import kotlinx.serialization.descriptors.SerialDescriptor +import kotlinx.serialization.encoding.Decoder +import kotlinx.serialization.encoding.Encoder +import kotlinx.serialization.json.JsonElement + +@Serializable(JsonRootSerializer::class) +public class JsonRootObject(public val element: JsonElement): TObject() + +public object JsonRootSerializer: KSerializer{ + private val jsonElementSerializer = JsonElement.serializer() + + override val descriptor: SerialDescriptor + get() = jsonElementSerializer.descriptor + + override fun deserialize(decoder: Decoder): JsonRootObject { + return JsonRootObject(decoder.decodeSerializableValue(jsonElementSerializer)) + } + + override fun serialize(encoder: Encoder, value: JsonRootObject) { + encoder.encodeSerializableValue(jsonElementSerializer, value.element) + } +} \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoNode.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoNode.kt index f507aeb2..9e6f47f1 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoNode.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoNode.kt @@ -7,12 +7,14 @@ import kotlinx.serialization.Serializable @Serializable @SerialName("TGeoNode") public open class TGeoNode : TNamed() { - //val fGeoAtt: UInt + public val fGeoAtt: UInt = 0u + @Contextual public val fVolume: TGeoVolume? = null - @Contextual - public val fMother: TGeoVolume? = null +// @Contextual +// public val fMother: TGeoVolume? = null + public val fNumber: Int = 0 public val fNovlp: Int = 0 public val fOverlaps: IntArray = intArrayOf() diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoShape.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoShape.kt index c986f899..26cf0bab 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoShape.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoShape.kt @@ -126,4 +126,8 @@ public class TGeoShapeAssembly( @Contextual public val fVolume: TGeoVolumeAssembly, public val fBBoxOK: Boolean = true -) : TGeoBBox() \ No newline at end of file +) : TGeoBBox() + +public class TGeoShapeRef(provider: () -> TGeoShape) : TGeoShape() { + public val value: TGeoShape by lazy(provider) +} \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoVolume.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoVolume.kt index afa7c7d9..480c1ca7 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoVolume.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoVolume.kt @@ -7,29 +7,35 @@ import kotlinx.serialization.Serializable @Serializable @SerialName("TGeoVolume") public open class TGeoVolume : TNamed() { - // "fGeoAtt" : 3084, -// "fLineColor" : 3, -// "fLineStyle" : 1, -// "fLineWidth" : 1, -// "fFillColor" : 19, -// "fFillStyle" : 1001, - @Contextual - public lateinit var fNodes: TObjArray - internal set + public val fGeoAtt: UInt = 0u + public val fLineColor: Int = 2 + public val fLineStyle: Int? = null + public val fLineWidth: UInt = 1u + public val fFillColor: Int? = null + public val fFillStyle: Int? = null @Contextual - public lateinit var fShape: TGeoShape - internal set + public val fNodes: TObjArray? = null @Contextual - public lateinit var fMedium: TGeoMedium - internal set + public val fShape: TGeoShape? = null + + @Contextual + public val fMedium: TGeoMedium? = null public val fNumber: Int = 1 public val fNtotal: Int = 1 public val fRefCount: Int = 1 } +public class TGeoVolumeRef(provider: () -> TGeoVolume) : TGeoVolume() { + public val value: TGeoVolume by lazy(provider) +} + @Serializable @SerialName("TGeoVolumeAssembly") -public class TGeoVolumeAssembly : TGeoVolume() \ No newline at end of file +public open class TGeoVolumeAssembly : TGeoVolume() + +public class TGeoVolumeAssemblyRef(provider: () -> TGeoVolumeAssembly) : TGeoVolumeAssembly() { + public val value: TGeoVolumeAssembly by lazy(provider) +} \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObject.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObject.kt index f70cc589..50738d11 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObject.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObject.kt @@ -1,5 +1,6 @@ package ru.mipt.npm.root +import kotlinx.serialization.Contextual import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @@ -15,9 +16,10 @@ public open class TNamed : TObject() { public val fTitle: String = "" } + @Serializable @SerialName("TObjArray") -public class TObjArray(public val arr: List): TObject() { +public class TObjArray(public val arr: List<@Contextual TObject>): TObject() { public companion object{ public val empty: TObjArray = TObjArray(emptyList()) } @@ -25,8 +27,8 @@ public class TObjArray(public val arr: List): TObject() { @Serializable @SerialName("TList") -public class TList(public val arr: List): TObject() +public class TList(public val arr: List<@Contextual TObject>): TObject() @Serializable @SerialName("THashList") -public class THashList(public val arr: List): TObject() \ No newline at end of file +public class THashList(public val arr: List<@Contextual TObject>): TObject() \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootJson.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootJson.kt index 33b8b6c2..8416368a 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootJson.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootJson.kt @@ -1,12 +1,10 @@ package ru.mipt.npm.root -import kotlinx.serialization.DeserializationStrategy import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.KSerializer import kotlinx.serialization.encoding.Decoder import kotlinx.serialization.json.* import kotlinx.serialization.modules.* -import kotlin.reflect.KClass /** @@ -24,8 +22,8 @@ private object RootDecoder { private class RootUnrefSerializer( private val tSerializer: KSerializer, - private val refCache: MutableList,// = ArrayList(4096) - private val counter: ReferenceCounter + private val refCache: List,// = ArrayList(4096) + //private val counter: ReferenceCounter ) : KSerializer by tSerializer { override fun deserialize(decoder: Decoder): T { @@ -33,67 +31,74 @@ private object RootDecoder { val element = input.decodeJsonElement() val refId = (element as? JsonObject)?.get("\$ref")?.jsonPrimitive?.int val ref = if (refId != null) { - //Do unref - refCache[refId] - } else { - refCache[counter.value].also { - counter.increment() + //println("Substituting ref $refId") + //Forward ref for shapes + when (tSerializer.descriptor.serialName) { + "TGeoShape" -> return TGeoShapeRef{ + //Should be not null at the moment of actualization + refCache[refId].value as TGeoShape + } as T + "TGeoVolumeAssembly" -> return TGeoVolumeAssemblyRef{ + //Should be not null at the moment of actualization + refCache[refId].value as TGeoVolumeAssembly + } as T + //Do unref + else -> refCache[refId] } + } else { + refCache.find { it.element == element } ?: error("Element '$element' not found in the cache") + } + + return ref.getOrPutValue { +// val actualTypeName = it.jsonObject["_typename"]?.jsonPrimitive?.content + input.json.decodeFromJsonElement(tSerializer, it) } - return ref.value(tSerializer) as T //TODO research means to make it safe } } - private fun KSerializer.unref(refCache: MutableList, counter: ReferenceCounter): KSerializer = - RootUnrefSerializer(this, refCache, counter) + private fun KSerializer.unref(refCache: List): KSerializer = + RootUnrefSerializer(this, refCache) @OptIn(ExperimentalSerializationApi::class) fun unrefSerializersModule( - refCache: MutableList, counter: ReferenceCounter + refCache: List ): SerializersModule = SerializersModule { - val collector = this - val unrefCollector = object : SerializersModuleCollector { + include(serializersModule) - override fun contextual( - kClass: KClass, - provider: (typeArgumentsSerializers: List>) -> KSerializer<*> - ) { - collector.contextual(kClass) { provider(it).unref(refCache, counter) } - } + contextual(TGeoManager.serializer().unref(refCache)) + contextual(TObjArray.serializer().unref(refCache)) + contextual(TGeoVolumeAssembly.serializer().unref(refCache)) + contextual(TGeoShapeAssembly.serializer().unref(refCache)) + contextual(TGeoRotation.serializer().unref(refCache)) + contextual(TGeoMedium.serializer().unref(refCache)) + contextual(TGeoVolume.serializer().unref(refCache)) + contextual(TGeoMatrix.serializer().unref(refCache)) + contextual(TGeoNodeMatrix.serializer().unref(refCache)) + contextual(TGeoShape.serializer().unref(refCache)) + contextual(TObject.serializer().unref(refCache)) - override fun polymorphic( - baseClass: KClass, - actualClass: KClass, - actualSerializer: KSerializer - ) { - collector.polymorphic(baseClass, actualClass, actualSerializer.unref(refCache, counter)) - } - override fun polymorphicDefault( - baseClass: KClass, - defaultSerializerProvider: (className: String?) -> DeserializationStrategy? - ) { - collector.polymorphicDefault(baseClass) { - (defaultSerializerProvider(it) as KSerializer).unref(refCache, counter) - } - } + polymorphicDefault(TGeoShape::class) { + TGeoShape.serializer().unref(refCache) + } + + polymorphicDefault(TGeoMatrix::class) { + TGeoMatrix.serializer().unref(refCache) } - serializersModule.dumpTo(unrefCollector) } /** * Create an instance of Json with unfolding Root references. This instance could not be reused because of the cache. */ - private fun unrefJson(refCache: MutableList, counter: ReferenceCounter): Json = Json { + private fun unrefJson(refCache: MutableList): Json = Json { encodeDefaults = true ignoreUnknownKeys = true classDiscriminator = "_typename" - serializersModule = unrefSerializersModule(refCache, counter) + serializersModule = unrefSerializersModule(refCache) } fun decode(sourceDeserializer: KSerializer, source: JsonElement): TObject { - val counter = ReferenceCounter() val refCache = ArrayList() fun fillCache(element: JsonElement) { @@ -112,34 +117,35 @@ private object RootDecoder { } } else -> { + //ignore primitives } } } fillCache(source) - return unrefJson(refCache, counter).decodeFromJsonElement(sourceDeserializer.unref(refCache, counter), source) + return unrefJson(refCache).decodeFromJsonElement(sourceDeserializer.unref(refCache), source) } - class ReferenceCounter(var value: Int = 0) { - fun increment() { - value += 1 - } +// class ReferenceCounter(var value: Int = 0) { +// fun increment() { +// value += 1 +// } +// +// override fun toString(): String = value.toString() +// } - override fun toString(): String = value.toString() - } + class RefEntry(val element: JsonElement) { - class RefEntry(val obj: JsonObject) { + var value: Any? = null - private var cachedValue: Any? = null - - fun value(serializer: KSerializer<*>): Any { - if (cachedValue == null) { - cachedValue = json.decodeFromJsonElement(serializer, obj) + fun getOrPutValue(builder: (JsonElement) -> T): T { + if (value == null) { + value = builder(element) } - return cachedValue!! + return value as T } - override fun toString(): String = obj.toString() + override fun toString(): String = element.toString() } private fun PolymorphicModuleBuilder.shapes() { @@ -166,27 +172,9 @@ private object RootDecoder { } private val serializersModule = SerializersModule { - contextual(TGeoManager::class) { TGeoManager.serializer() } - contextual(TObjArray::class) { TObjArray.serializer() } - contextual(TGeoVolumeAssembly::class) { TGeoVolumeAssembly.serializer() } - contextual(TGeoShapeAssembly::class) { TGeoShapeAssembly.serializer() } - contextual(TGeoRotation::class) { TGeoRotation.serializer() } - contextual(TGeoMedium::class) { TGeoMedium.serializer() } - - polymorphic(TGeoShape::class) { - default { TGeoBBox.serializer() } - shapes() - } - - polymorphic(TGeoMatrix::class) { - matrices() - } - - polymorphic(TGeoBoolNode::class) { - boolNodes() - } polymorphic(TObject::class) { + default { JsonRootSerializer } subclass(TObjArray.serializer()) shapes() @@ -202,6 +190,19 @@ private object RootDecoder { subclass(TGeoNodeMatrix.serializer()) subclass(TGeoVolume.serializer()) subclass(TGeoVolumeAssembly.serializer()) + subclass(TGeoManager.serializer()) + } + + polymorphic(TGeoShape::class) { + shapes() + } + + polymorphic(TGeoMatrix::class) { + matrices() + } + + polymorphic(TGeoBoolNode::class) { + boolNodes() } polymorphic(TGeoNode::class, TGeoNode.serializer()) { diff --git a/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBM@N.kt b/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt similarity index 78% rename from cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBM@N.kt rename to cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt index 2c2aa86c..763b7e45 100644 --- a/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBM@N.kt +++ b/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt @@ -1,6 +1,8 @@ package ru.mipt.npm.root import kotlinx.serialization.json.* +import java.time.Duration +import kotlin.system.measureTimeMillis private fun JsonElement.countTypes(): Sequence = sequence { val json = this@countTypes @@ -27,5 +29,9 @@ fun main() { println(it) } - val geo = TObject.decodeFromString(TGeoManager.serializer(), string) + val time = measureTimeMillis { + val geo = TObject.decodeFromString(TGeoManager.serializer(), string) + } + + println(Duration.ofMillis(time)) } \ No newline at end of file -- 2.34.1 From df30f8ecc3e1b2b1bc68d80cbacb027fda9ce64f Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Wed, 25 Aug 2021 18:04:15 +0300 Subject: [PATCH 09/19] Add polygon and polycone and add generics to TObjectArray --- build.gradle.kts | 4 +- .../kotlin/ru/mipt/npm/root/JsonRootObject.kt | 26 --- .../kotlin/ru/mipt/npm/root/TGeoManager.kt | 9 +- .../kotlin/ru/mipt/npm/root/TGeoNode.kt | 8 +- .../kotlin/ru/mipt/npm/root/TGeoShape.kt | 49 ++--- .../kotlin/ru/mipt/npm/root/TGeoVolume.kt | 2 +- .../kotlin/ru/mipt/npm/root/TObject.kt | 4 +- .../npm/root/{rootJson.kt => jsonToRoot.kt} | 106 +++++++---- .../kotlin/ru/mipt/npm/root/rootToSolid.kt | 176 ++++++++++++++++++ .../kotlin/ru/mipt/npm/root/loadBMN.kt | 1 + gradle.properties | 2 +- .../kscience/visionforge/solid/geometry.kt | 7 +- 12 files changed, 297 insertions(+), 97 deletions(-) delete mode 100644 cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/JsonRootObject.kt rename cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/{rootJson.kt => jsonToRoot.kt} (71%) create mode 100644 cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootToSolid.kt diff --git a/build.gradle.kts b/build.gradle.kts index cd6ece5d..20d1a1bd 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,7 +1,7 @@ plugins { id("ru.mipt.npm.gradle.project") -// kotlin("multiplatform") version "1.5.30-RC" apply false -// kotlin("js") version "1.5.30-RC" apply false + kotlin("multiplatform") version "1.5.30" apply false + kotlin("js") version "1.5.30" apply false } val dataforgeVersion by extra("0.5.1") diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/JsonRootObject.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/JsonRootObject.kt deleted file mode 100644 index bb5fd1cb..00000000 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/JsonRootObject.kt +++ /dev/null @@ -1,26 +0,0 @@ -package ru.mipt.npm.root - -import kotlinx.serialization.KSerializer -import kotlinx.serialization.Serializable -import kotlinx.serialization.descriptors.SerialDescriptor -import kotlinx.serialization.encoding.Decoder -import kotlinx.serialization.encoding.Encoder -import kotlinx.serialization.json.JsonElement - -@Serializable(JsonRootSerializer::class) -public class JsonRootObject(public val element: JsonElement): TObject() - -public object JsonRootSerializer: KSerializer{ - private val jsonElementSerializer = JsonElement.serializer() - - override val descriptor: SerialDescriptor - get() = jsonElementSerializer.descriptor - - override fun deserialize(decoder: Decoder): JsonRootObject { - return JsonRootObject(decoder.decodeSerializableValue(jsonElementSerializer)) - } - - override fun serialize(encoder: Encoder, value: JsonRootObject) { - encoder.encodeSerializableValue(jsonElementSerializer, value.element) - } -} \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt index 96b02768..41607fbd 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt @@ -9,11 +9,14 @@ import kotlinx.serialization.Serializable public class TGeoManager : TNamed() { @Contextual - public val fMatrices: TObjArray = TObjArray.empty + public val fMatrices: TObjArray = TObjArray.getEmpty() @Contextual - public val fShapes: TObjArray = TObjArray.empty + public val fShapes: TObjArray = TObjArray.getEmpty() @Contextual - public val fVolumes: TObjArray = TObjArray.empty + public val fVolumes: TObjArray = TObjArray.getEmpty() + + @Contextual + public val fNodes: TObjArray = TObjArray.getEmpty() } diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoNode.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoNode.kt index 9e6f47f1..75a8ac05 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoNode.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoNode.kt @@ -6,7 +6,7 @@ import kotlinx.serialization.Serializable @Serializable @SerialName("TGeoNode") -public open class TGeoNode : TNamed() { +public sealed class TGeoNode : TNamed() { public val fGeoAtt: UInt = 0u @Contextual @@ -25,4 +25,10 @@ public open class TGeoNode : TNamed() { public class TGeoNodeMatrix : TGeoNode() { @Contextual public val fMatrix: TGeoMatrix? = null +} + +@Serializable +@SerialName("TGeoNodeOffset") +public class TGeoNodeOffset : TGeoNode() { + public val fOffset: Double = 0.0 } \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoShape.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoShape.kt index 26cf0bab..7cf6876a 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoShape.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoShape.kt @@ -3,6 +3,7 @@ package ru.mipt.npm.root import kotlinx.serialization.Contextual import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable +import kotlin.math.PI @Serializable @SerialName("TGeoShape") @@ -27,13 +28,13 @@ public sealed class TGeoBoolNode : TObject() { public abstract val fLeft: TGeoShape @Contextual - public abstract val fLeftMat: TGeoMatrix + public val fLeftMat: TGeoMatrix? = null @Contextual public abstract val fRight: TGeoShape @Contextual - public abstract val fRightMat: TGeoMatrix + public val fRightMat: TGeoMatrix? = null } @Serializable @@ -42,11 +43,7 @@ public class TGeoUnion( @Contextual override val fLeft: TGeoShape, @Contextual - override val fLeftMat: TGeoMatrix, - @Contextual override val fRight: TGeoShape, - @Contextual - override val fRightMat: TGeoMatrix ) : TGeoBoolNode() @Serializable @@ -55,11 +52,7 @@ public class TGeoSubtraction( @Contextual override val fLeft: TGeoShape, @Contextual - override val fLeftMat: TGeoMatrix, - @Contextual override val fRight: TGeoShape, - @Contextual - override val fRightMat: TGeoMatrix ) : TGeoBoolNode() @Serializable @@ -68,11 +61,7 @@ public class TGeoIntersection( @Contextual override val fLeft: TGeoShape, @Contextual - override val fLeftMat: TGeoMatrix, - @Contextual override val fRight: TGeoShape, - @Contextual - override val fRightMat: TGeoMatrix ) : TGeoBoolNode() @@ -97,18 +86,15 @@ public class TGeoXtru( @Serializable @SerialName("TGeoTube") -public open class TGeoTube( - public val fRmin: Double, - public val fRmax: Double, - public val fDz: Double, -) : TGeoBBox() +public open class TGeoTube : TGeoBBox() { + public val fRmin: Double = 0.0 + public val fRmax: Double = 0.0 + public val fDz: Double = 0.0 +} @Serializable @SerialName("TGeoTubeSeg") public class TGeoTubeSeg( - public val fRmin: Double, - public val fRmax: Double, - public val fDz: Double, public val fPhi1: Double, public val fPhi2: Double, public val fS1: Double, @@ -118,7 +104,24 @@ public class TGeoTubeSeg( public val fSm: Double, public val fCm: Double, public val fCdfi: Double, -) : TGeoBBox() +) : TGeoTube() + +@Serializable +@SerialName("TGeoPcon") +public open class TGeoPcon : TGeoBBox() { + public val fNz: Int = 0 // number of z planes (at least two) + public val fPhi1: Double = 0.0 // lower phi limit (converted to [0,2*pi) + public val fDphi: Double = PI * 2 // phi range + public val fRmin: DoubleArray = doubleArrayOf() //[fNz] pointer to array of inner radii + public val fRmax: DoubleArray = doubleArrayOf() //[fNz] pointer to array of outer radii + public val fZ: DoubleArray = doubleArrayOf() //[fNz] pointer to array of Z planes positions +} + +@Serializable +@SerialName("TGeoPgon") +public open class TGeoPgon : TGeoPcon() { + public val fNedges: Int = 0 +} @Serializable @SerialName("TGeoShapeAssembly") diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoVolume.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoVolume.kt index 480c1ca7..9823eb1f 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoVolume.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoVolume.kt @@ -15,7 +15,7 @@ public open class TGeoVolume : TNamed() { public val fFillStyle: Int? = null @Contextual - public val fNodes: TObjArray? = null + public val fNodes: TObjArray? = null @Contextual public val fShape: TGeoShape? = null diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObject.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObject.kt index 50738d11..063cadfe 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObject.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObject.kt @@ -19,9 +19,9 @@ public open class TNamed : TObject() { @Serializable @SerialName("TObjArray") -public class TObjArray(public val arr: List<@Contextual TObject>): TObject() { +public class TObjArray(public val arr: List<@Contextual T>): TObject() { public companion object{ - public val empty: TObjArray = TObjArray(emptyList()) + public fun getEmpty(): TObjArray = TObjArray(emptyList()) } } diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootJson.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/jsonToRoot.kt similarity index 71% rename from cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootJson.kt rename to cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/jsonToRoot.kt index 8416368a..d0c3afb9 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootJson.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/jsonToRoot.kt @@ -1,12 +1,27 @@ package ru.mipt.npm.root +import kotlinx.serialization.DeserializationStrategy import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.KSerializer +import kotlinx.serialization.descriptors.SerialDescriptor import kotlinx.serialization.encoding.Decoder import kotlinx.serialization.json.* import kotlinx.serialization.modules.* +private fun jsonRootDeserializer(tSerializer: KSerializer, builder: (JsonElement) -> T): DeserializationStrategy = object : + DeserializationStrategy { + private val jsonElementSerializer = JsonElement.serializer() + + override val descriptor: SerialDescriptor + get() = jsonElementSerializer.descriptor + + override fun deserialize(decoder: Decoder): T { + val json = decoder.decodeSerializableValue(jsonElementSerializer) + return builder(json) + } +} + /** * Load Json encoded TObject */ @@ -22,8 +37,7 @@ private object RootDecoder { private class RootUnrefSerializer( private val tSerializer: KSerializer, - private val refCache: List,// = ArrayList(4096) - //private val counter: ReferenceCounter + private val refCache: List, ) : KSerializer by tSerializer { override fun deserialize(decoder: Decoder): T { @@ -31,14 +45,14 @@ private object RootDecoder { val element = input.decodeJsonElement() val refId = (element as? JsonObject)?.get("\$ref")?.jsonPrimitive?.int val ref = if (refId != null) { - //println("Substituting ref $refId") + //println("Substituting ${tSerializer.descriptor.serialName} ref $refId") //Forward ref for shapes when (tSerializer.descriptor.serialName) { - "TGeoShape" -> return TGeoShapeRef{ + "TGeoShape" -> return TGeoShapeRef { //Should be not null at the moment of actualization refCache[refId].value as TGeoShape } as T - "TGeoVolumeAssembly" -> return TGeoVolumeAssemblyRef{ + "TGeoVolumeAssembly" -> return TGeoVolumeAssemblyRef { //Should be not null at the moment of actualization refCache[refId].value as TGeoVolumeAssembly } as T @@ -66,24 +80,50 @@ private object RootDecoder { include(serializersModule) contextual(TGeoManager.serializer().unref(refCache)) - contextual(TObjArray.serializer().unref(refCache)) + contextual(TObjArray::class) { TObjArray.serializer(it[0]).unref(refCache) } contextual(TGeoVolumeAssembly.serializer().unref(refCache)) contextual(TGeoShapeAssembly.serializer().unref(refCache)) contextual(TGeoRotation.serializer().unref(refCache)) contextual(TGeoMedium.serializer().unref(refCache)) contextual(TGeoVolume.serializer().unref(refCache)) contextual(TGeoMatrix.serializer().unref(refCache)) + contextual(TGeoNode.serializer().unref(refCache)) + contextual(TGeoNodeOffset.serializer().unref(refCache)) contextual(TGeoNodeMatrix.serializer().unref(refCache)) contextual(TGeoShape.serializer().unref(refCache)) contextual(TObject.serializer().unref(refCache)) polymorphicDefault(TGeoShape::class) { - TGeoShape.serializer().unref(refCache) + if (it == null) { + TGeoShape.serializer().unref(refCache) + } else { + error("Unrecognized shape $it") + } } polymorphicDefault(TGeoMatrix::class) { - TGeoMatrix.serializer().unref(refCache) + if (it == null) { + TGeoMatrix.serializer().unref(refCache) + } else { + error("Unrecognized matrix $it") + } + } + + polymorphicDefault(TGeoVolume::class) { + if (it == null) { + TGeoVolume.serializer().unref(refCache) + } else { + error("Unrecognized volume $it") + } + } + + polymorphicDefault(TGeoNode::class) { + if (it == null) { + TGeoNode.serializer().unref(refCache) + } else { + error("Unrecognized node $it") + } } } @@ -126,14 +166,6 @@ private object RootDecoder { return unrefJson(refCache).decodeFromJsonElement(sourceDeserializer.unref(refCache), source) } -// class ReferenceCounter(var value: Int = 0) { -// fun increment() { -// value += 1 -// } -// -// override fun toString(): String = value.toString() -// } - class RefEntry(val element: JsonElement) { var value: Any? = null @@ -154,6 +186,8 @@ private object RootDecoder { subclass(TGeoXtru.serializer()) subclass(TGeoTube.serializer()) subclass(TGeoTubeSeg.serializer()) + subclass(TGeoPcon.serializer()) + subclass(TGeoPgon.serializer()) subclass(TGeoShapeAssembly.serializer()) } @@ -173,25 +207,24 @@ private object RootDecoder { private val serializersModule = SerializersModule { - polymorphic(TObject::class) { - default { JsonRootSerializer } - subclass(TObjArray.serializer()) - - shapes() - matrices() - boolNodes() - - subclass(TGeoMaterial.serializer()) - subclass(TGeoMixture.serializer()) - - subclass(TGeoMedium.serializer()) - - subclass(TGeoNode.serializer()) - subclass(TGeoNodeMatrix.serializer()) - subclass(TGeoVolume.serializer()) - subclass(TGeoVolumeAssembly.serializer()) - subclass(TGeoManager.serializer()) - } +// polymorphic(TObject::class) { +// default { JsonRootSerializer } +// +// shapes() +// matrices() +// boolNodes() +// +// subclass(TGeoMaterial.serializer()) +// subclass(TGeoMixture.serializer()) +// +// subclass(TGeoMedium.serializer()) +// +// //subclass(TGeoNode.serializer()) +// subclass(TGeoNodeMatrix.serializer()) +// subclass(TGeoVolume.serializer()) +// subclass(TGeoVolumeAssembly.serializer()) +// subclass(TGeoManager.serializer()) +// } polymorphic(TGeoShape::class) { shapes() @@ -205,8 +238,9 @@ private object RootDecoder { boolNodes() } - polymorphic(TGeoNode::class, TGeoNode.serializer()) { + polymorphic(TGeoNode::class) { subclass(TGeoNodeMatrix.serializer()) + subclass(TGeoNodeOffset.serializer()) } polymorphic(TGeoVolume::class, TGeoVolume.serializer()) { diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootToSolid.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootToSolid.kt new file mode 100644 index 00000000..ebfb7b06 --- /dev/null +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootToSolid.kt @@ -0,0 +1,176 @@ +package ru.mipt.npm.root + +import space.kscience.dataforge.names.Name +import space.kscience.dataforge.names.asName +import space.kscience.visionforge.setPropertyNode +import space.kscience.visionforge.solid.* +import kotlin.math.PI +import kotlin.math.atan2 +import kotlin.math.pow +import kotlin.math.sqrt + + +private val solidsName = "solids".asName() +private val volumesName = "volumes".asName() + +private operator fun Number.times(d: Double) = toDouble() * d + +private operator fun Number.times(f: Float) = toFloat() * f + +private fun degToRad(d: Double) = d * PI / 180.0 + +private class GdmlLoader { + + // converting to XYZ to Tait–Bryan angles according to https://en.wikipedia.org/wiki/Euler_angles#Rotation_matrix + private fun Solid.rotate(rot: DoubleArray) { + val xAngle = atan2(-rot[5], rot[8]) + val yAngle = atan2(rot[2], sqrt(1.0 - rot[2].pow(2))) + val zAngle = atan2(-rot[1], rot[0]) + rotation = Point3D(xAngle, yAngle, zAngle) + } + + private fun Solid.translate(trans: DoubleArray) { + val (x, y, z) = trans + position = Point3D(x, y, z) + } + + private fun Solid.useMatrix(matrix: TGeoMatrix?) { + when (matrix) { + null, is TGeoIdentity -> { + //do nothing + } + is TGeoTranslation -> { + translate(matrix.fTranslation) + } + is TGeoRotation -> { + rotate(matrix.fRotationMatrix) + } + is TGeoCombiTrans -> { + translate(matrix.fTranslation) + matrix.fRotation?.let { rotate(it.fRotationMatrix) } + } + is TGeoHMatrix -> { + translate(matrix.fTranslation) + rotate(matrix.fRotationMatrix) + val (xScale, yScale, zScale) = matrix.fScale + scale = Point3D(xScale, yScale, zScale) + } + } + } + + fun SolidGroup.addShape(shape: TGeoShape) { + when (shape) { + is TGeoShapeRef -> addShape(shape.value) + is TGeoCompositeShape -> { + val bool: TGeoBoolNode = shape.fNode + val compositeType = when (bool) { + is TGeoIntersection -> CompositeType.INTERSECT + is TGeoSubtraction -> CompositeType.SUBTRACT + is TGeoUnion -> CompositeType.UNION + } + composite(compositeType, name = shape.fName) { + addShape(bool.fLeft).apply { + useMatrix(bool.fLeftMat) + } + addShape(bool.fRight).apply { + useMatrix(bool.fRightMat) + } + } + } + is TGeoXtru -> extruded(name = shape.fName) { + + (0 until shape.fNvert).forEach { index -> + shape { + point(shape.fX[index], shape.fY[index]) + } + } + + (0 until shape.fNz).forEach { index -> + layer( + shape.fZ[index], + shape.fX0[index], + shape.fY0[index], + shape.fScale[index] + ) + } + } + is TGeoTube -> tube( + radius = shape.fRmax, + height = shape.fDz * 2, + innerRadius = shape.fRmin, + name = shape.fName + ) + is TGeoTubeSeg -> tube( + radius = shape.fRmax, + height = shape.fDz * 2, + innerRadius = shape.fRmin, + startAngle = degToRad(shape.fPhi1), + angle = degToRad(shape.fPhi2 - shape.fPhi1), + name = shape.fName + ) + is TGeoPcon -> TODO() + is TGeoPgon -> TODO() + is TGeoShapeAssembly -> volume(shape.fVolume) + is TGeoBBox -> box(shape.fDX * 2, shape.fDY * 2, shape.fDZ * 2, name = shape.fName) + } + } + + fun SolidGroup.node(obj: TGeoNode) { + if (obj.fVolume != null) { + volume(obj.fVolume).apply { + when (obj) { + is TGeoNodeMatrix -> { + useMatrix(obj.fMatrix) + } + is TGeoNodeOffset -> { + x = obj.fOffset + } + } + } + } + } + + fun buildGroup(volume: TGeoVolume): SolidGroup { + return if (volume is TGeoVolumeAssemblyRef) { + buildGroup(volume.value) + } else { + SolidGroup { + volume.fShape?.let { addShape(it) } + volume.fNodes?.let { + it.arr.forEach { obj -> + node(obj) + } + } + } + } + } + + private val SolidGroup.rootPrototypes: SolidGroup get() = (parent as? SolidGroup)?.rootPrototypes ?: this + + fun SolidGroup.volume(volume: TGeoVolume): SolidGroup { + val group = buildGroup(volume) + val ref = rootPrototypes.prototypes { + + } + set(volume.fName.ifEmpty { null }?.asName(), group) + return group + } + + fun load(geo: TGeoManager): SolidGroup { + /** + * A special group for local templates + */ + val proto = SolidGroup() + + val solids = proto.group(solidsName) { + setPropertyNode("edges.enabled", false) + } + + val volumes = proto.group(volumesName) + + val referenceStore = HashMap>() + + TODO() + } + +} \ No newline at end of file diff --git a/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt b/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt index 763b7e45..c6cec829 100644 --- a/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt +++ b/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt @@ -31,6 +31,7 @@ fun main() { val time = measureTimeMillis { val geo = TObject.decodeFromString(TGeoManager.serializer(), string) + println(geo) } println(Duration.ofMillis(time)) diff --git a/gradle.properties b/gradle.properties index 511d4130..5bce5b02 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ kotlin.mpp.enableGranularSourceSetsMetadata=true kotlin.mpp.stability.nowarn=true kotlin.native.enableDependencyPropagation=false -kotlin.jupyter.add.scanner=false +#kotlin.jupyter.add.scanner=false org.gradle.jvmargs=-XX:MaxMetaspaceSize=1G org.gradle.parallel=true \ No newline at end of file diff --git a/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/geometry.kt b/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/geometry.kt index 31611dc9..ccff7dcd 100644 --- a/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/geometry.kt +++ b/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/geometry.kt @@ -5,7 +5,10 @@ import kotlinx.serialization.Serializable import kotlinx.serialization.descriptors.SerialDescriptor import kotlinx.serialization.encoding.Decoder import kotlinx.serialization.encoding.Encoder -import space.kscience.dataforge.meta.* +import space.kscience.dataforge.meta.Meta +import space.kscience.dataforge.meta.MetaProvider +import space.kscience.dataforge.meta.float +import space.kscience.dataforge.meta.get import space.kscience.visionforge.solid.Solid.Companion.X_KEY import space.kscience.visionforge.solid.Solid.Companion.Y_KEY import space.kscience.visionforge.solid.Solid.Companion.Z_KEY @@ -54,7 +57,7 @@ internal object Point3DSerializer : KSerializer { override val descriptor: SerialDescriptor = Point3DImpl.serializer().descriptor - override fun deserialize(decoder: Decoder): Point3D = decoder.decodeSerializableValue(Point3DImpl.serializer()) + override fun deserialize(decoder: Decoder): MutablePoint3D = decoder.decodeSerializableValue(Point3DImpl.serializer()) override fun serialize(encoder: Encoder, value: Point3D) { val impl: Point3DImpl = (value as? Point3DImpl) ?: Point3DImpl(value.x, value.y, value.z) -- 2.34.1 From 193665b99a30169d9aa208e94c6c551f9e7dcfa4 Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Wed, 25 Aug 2021 23:00:05 +0300 Subject: [PATCH 10/19] WIP Root to Solid conversion --- .../kotlin/ru/mipt/npm/root/jsonToRoot.kt | 16 +- .../kotlin/ru/mipt/npm/root/rootToSolid.kt | 268 +++++++++--------- .../kotlin/ru/mipt/npm/root/loadBMN.kt | 4 +- .../visionforge/solid/SolidReference.kt | 23 +- .../visionforge/solid/SerializationTest.kt | 4 +- .../visionforge/solid/SolidReferenceTest.kt | 2 +- 6 files changed, 166 insertions(+), 151 deletions(-) diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/jsonToRoot.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/jsonToRoot.kt index d0c3afb9..585accf0 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/jsonToRoot.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/jsonToRoot.kt @@ -25,10 +25,10 @@ private fun jsonRootDeserializer(tSerializer: KSerializer, builder: (Json /** * Load Json encoded TObject */ -public fun TObject.Companion.decodeFromJson(serializer: KSerializer, jsonElement: JsonElement): TObject = +public fun TObject.Companion.decodeFromJson(serializer: KSerializer, jsonElement: JsonElement): T = RootDecoder.decode(serializer, jsonElement) -public fun TObject.Companion.decodeFromString(serializer: KSerializer, string: String): TObject { +public fun TObject.Companion.decodeFromString(serializer: KSerializer, string: String): T { val json = RootDecoder.json.parseToJsonElement(string) return RootDecoder.decode(serializer, json) } @@ -49,12 +49,14 @@ private object RootDecoder { //Forward ref for shapes when (tSerializer.descriptor.serialName) { "TGeoShape" -> return TGeoShapeRef { - //Should be not null at the moment of actualization - refCache[refId].value as TGeoShape + refCache[refId].getOrPutValue { + input.json.decodeFromJsonElement(tSerializer, it) as TGeoShape + } } as T "TGeoVolumeAssembly" -> return TGeoVolumeAssemblyRef { - //Should be not null at the moment of actualization - refCache[refId].value as TGeoVolumeAssembly + refCache[refId].getOrPutValue { + input.json.decodeFromJsonElement(tSerializer, it) as TGeoVolumeAssembly + } } as T //Do unref else -> refCache[refId] @@ -138,7 +140,7 @@ private object RootDecoder { } - fun decode(sourceDeserializer: KSerializer, source: JsonElement): TObject { + fun decode(sourceDeserializer: KSerializer, source: JsonElement): T { val refCache = ArrayList() fun fillCache(element: JsonElement) { diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootToSolid.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootToSolid.kt index ebfb7b06..9cbbb64b 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootToSolid.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootToSolid.kt @@ -2,7 +2,7 @@ package ru.mipt.npm.root import space.kscience.dataforge.names.Name import space.kscience.dataforge.names.asName -import space.kscience.visionforge.setPropertyNode +import space.kscience.dataforge.names.plus import space.kscience.visionforge.solid.* import kotlin.math.PI import kotlin.math.atan2 @@ -19,158 +19,162 @@ private operator fun Number.times(f: Float) = toFloat() * f private fun degToRad(d: Double) = d * PI / 180.0 -private class GdmlLoader { +// converting to XYZ to Tait–Bryan angles according to https://en.wikipedia.org/wiki/Euler_angles#Rotation_matrix +private fun Solid.rotate(rot: DoubleArray) { + val xAngle = atan2(-rot[5], rot[8]) + val yAngle = atan2(rot[2], sqrt(1.0 - rot[2].pow(2))) + val zAngle = atan2(-rot[1], rot[0]) + rotation = Point3D(xAngle, yAngle, zAngle) +} - // converting to XYZ to Tait–Bryan angles according to https://en.wikipedia.org/wiki/Euler_angles#Rotation_matrix - private fun Solid.rotate(rot: DoubleArray) { - val xAngle = atan2(-rot[5], rot[8]) - val yAngle = atan2(rot[2], sqrt(1.0 - rot[2].pow(2))) - val zAngle = atan2(-rot[1], rot[0]) - rotation = Point3D(xAngle, yAngle, zAngle) - } +private fun Solid.translate(trans: DoubleArray) { + val (x, y, z) = trans + position = Point3D(x, y, z) +} - private fun Solid.translate(trans: DoubleArray) { - val (x, y, z) = trans - position = Point3D(x, y, z) - } - - private fun Solid.useMatrix(matrix: TGeoMatrix?) { - when (matrix) { - null, is TGeoIdentity -> { - //do nothing - } - is TGeoTranslation -> { - translate(matrix.fTranslation) - } - is TGeoRotation -> { - rotate(matrix.fRotationMatrix) - } - is TGeoCombiTrans -> { - translate(matrix.fTranslation) - matrix.fRotation?.let { rotate(it.fRotationMatrix) } - } - is TGeoHMatrix -> { - translate(matrix.fTranslation) - rotate(matrix.fRotationMatrix) - val (xScale, yScale, zScale) = matrix.fScale - scale = Point3D(xScale, yScale, zScale) - } +private fun Solid.useMatrix(matrix: TGeoMatrix?) { + when (matrix) { + null, is TGeoIdentity -> { + //do nothing + } + is TGeoTranslation -> { + translate(matrix.fTranslation) + } + is TGeoRotation -> { + rotate(matrix.fRotationMatrix) + } + is TGeoCombiTrans -> { + translate(matrix.fTranslation) + matrix.fRotation?.let { rotate(it.fRotationMatrix) } + } + is TGeoHMatrix -> { + translate(matrix.fTranslation) + rotate(matrix.fRotationMatrix) + val (xScale, yScale, zScale) = matrix.fScale + scale = Point3D(xScale, yScale, zScale) } } +} - fun SolidGroup.addShape(shape: TGeoShape) { - when (shape) { - is TGeoShapeRef -> addShape(shape.value) - is TGeoCompositeShape -> { - val bool: TGeoBoolNode = shape.fNode - val compositeType = when (bool) { - is TGeoIntersection -> CompositeType.INTERSECT - is TGeoSubtraction -> CompositeType.SUBTRACT - is TGeoUnion -> CompositeType.UNION +private fun SolidGroup.addShape(shape: TGeoShape) { + when (shape) { + is TGeoShapeRef -> addShape(shape.value) + is TGeoCompositeShape -> { + val bool: TGeoBoolNode = shape.fNode + val compositeType = when (bool) { + is TGeoIntersection -> CompositeType.INTERSECT + is TGeoSubtraction -> CompositeType.SUBTRACT + is TGeoUnion -> CompositeType.UNION + } + composite(compositeType, name = shape.fName) { + addShape(bool.fLeft).apply { + useMatrix(bool.fLeftMat) } - composite(compositeType, name = shape.fName) { - addShape(bool.fLeft).apply { - useMatrix(bool.fLeftMat) - } - addShape(bool.fRight).apply { - useMatrix(bool.fRightMat) - } + addShape(bool.fRight).apply { + useMatrix(bool.fRightMat) } } - is TGeoXtru -> extruded(name = shape.fName) { - - (0 until shape.fNvert).forEach { index -> - shape { - point(shape.fX[index], shape.fY[index]) - } - } - - (0 until shape.fNz).forEach { index -> - layer( - shape.fZ[index], - shape.fX0[index], - shape.fY0[index], - shape.fScale[index] - ) - } - } - is TGeoTube -> tube( - radius = shape.fRmax, - height = shape.fDz * 2, - innerRadius = shape.fRmin, - name = shape.fName - ) - is TGeoTubeSeg -> tube( - radius = shape.fRmax, - height = shape.fDz * 2, - innerRadius = shape.fRmin, - startAngle = degToRad(shape.fPhi1), - angle = degToRad(shape.fPhi2 - shape.fPhi1), - name = shape.fName - ) - is TGeoPcon -> TODO() - is TGeoPgon -> TODO() - is TGeoShapeAssembly -> volume(shape.fVolume) - is TGeoBBox -> box(shape.fDX * 2, shape.fDY * 2, shape.fDZ * 2, name = shape.fName) } - } + is TGeoXtru -> extruded(name = shape.fName) { - fun SolidGroup.node(obj: TGeoNode) { - if (obj.fVolume != null) { - volume(obj.fVolume).apply { - when (obj) { - is TGeoNodeMatrix -> { - useMatrix(obj.fMatrix) - } - is TGeoNodeOffset -> { - x = obj.fOffset - } + (0 until shape.fNvert).forEach { index -> + shape { + point(shape.fX[index], shape.fY[index]) + } + } + + (0 until shape.fNz).forEach { index -> + layer( + shape.fZ[index], + shape.fX0[index], + shape.fY0[index], + shape.fScale[index] + ) + } + } + is TGeoTube -> tube( + radius = shape.fRmax, + height = shape.fDz * 2, + innerRadius = shape.fRmin, + name = shape.fName + ) + is TGeoTubeSeg -> tube( + radius = shape.fRmax, + height = shape.fDz * 2, + innerRadius = shape.fRmin, + startAngle = degToRad(shape.fPhi1), + angle = degToRad(shape.fPhi2 - shape.fPhi1), + name = shape.fName + ) + is TGeoPcon -> TODO() + is TGeoPgon -> TODO() + is TGeoShapeAssembly -> volume(shape.fVolume) + is TGeoBBox -> box(shape.fDX * 2, shape.fDY * 2, shape.fDZ * 2, name = shape.fName) + } +} + +private fun SolidGroup.node(obj: TGeoNode) { + if (obj.fVolume != null) { + volume(obj.fVolume).apply { + when (obj) { + is TGeoNodeMatrix -> { + useMatrix(obj.fMatrix) + } + is TGeoNodeOffset -> { + x = obj.fOffset } } } } +} - fun buildGroup(volume: TGeoVolume): SolidGroup { - return if (volume is TGeoVolumeAssemblyRef) { - buildGroup(volume.value) - } else { - SolidGroup { - volume.fShape?.let { addShape(it) } - volume.fNodes?.let { - it.arr.forEach { obj -> - node(obj) - } +private fun buildGroup(volume: TGeoVolume): SolidGroup { + return if (volume is TGeoVolumeAssemblyRef) { + buildGroup(volume.value) + } else { + SolidGroup { + volume.fShape?.let { addShape(it) } + volume.fNodes?.let { + it.arr.forEach { obj -> + node(obj) } } } } +} - private val SolidGroup.rootPrototypes: SolidGroup get() = (parent as? SolidGroup)?.rootPrototypes ?: this +private val SolidGroup.rootPrototypes: SolidGroup get() = (parent as? SolidGroup)?.rootPrototypes ?: this - fun SolidGroup.volume(volume: TGeoVolume): SolidGroup { - val group = buildGroup(volume) - val ref = rootPrototypes.prototypes { +private fun SolidGroup.volume(volume: TGeoVolume, cache: Boolean = true): Solid { + val group = buildGroup(volume) + return if (!cache) { + group + } else newRef( + name = volume.fName.ifEmpty { null }, + obj = group, + prototypeHolder = rootPrototypes, + templateName = volumesName + Name.parse(volume.fName.ifEmpty { group.toString() }) + ) +} - } - set(volume.fName.ifEmpty { null }?.asName(), group) - return group +// private fun load(geo: TGeoManager): SolidGroup { +//// /** +//// * A special group for local templates +//// */ +//// val proto = SolidGroup() +//// +//// val solids = proto.group(solidsName) { +//// setPropertyNode("edges.enabled", false) +//// } +//// +//// val volumes = proto.group(volumesName) +//// +//// val referenceStore = HashMap>() +// } + + +public fun TGeoManager.toSolid(): SolidGroup = SolidGroup { + fNodes.arr.forEach { + node(it) } - - fun load(geo: TGeoManager): SolidGroup { - /** - * A special group for local templates - */ - val proto = SolidGroup() - - val solids = proto.group(solidsName) { - setPropertyNode("edges.enabled", false) - } - - val volumes = proto.group(volumesName) - - val referenceStore = HashMap>() - - TODO() - } - } \ No newline at end of file diff --git a/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt b/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt index c6cec829..7d5f4b24 100644 --- a/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt +++ b/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt @@ -31,7 +31,9 @@ fun main() { val time = measureTimeMillis { val geo = TObject.decodeFromString(TGeoManager.serializer(), string) - println(geo) + val solid = geo.toSolid() + + println(solid) } println(Duration.ofMillis(time)) diff --git a/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/SolidReference.kt b/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/SolidReference.kt index d2080924..f58bcf8b 100644 --- a/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/SolidReference.kt +++ b/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/SolidReference.kt @@ -158,21 +158,28 @@ public fun SolidGroup.ref( name: String? = null, ): SolidReferenceGroup = SolidReferenceGroup(templateName).also { set(name, it) } -/** - * Add new [SolidReferenceGroup] wrapping given object and automatically adding it to the prototypes - */ public fun SolidGroup.ref( - name: String, + templateName: String, + name: String? = null, +): SolidReferenceGroup = ref(Name.parse(templateName), name) + +/** + * Add new [SolidReferenceGroup] wrapping given object and automatically adding it to the prototypes. + * One must ensure that [prototypeHolder] is the owner of this group. + */ +public fun SolidGroup.newRef( + name: String?, obj: Solid, - templateName: Name = Name.parse(name), + prototypeHolder: PrototypeHolder = this, + templateName: Name = Name.parse(name ?: obj.toString()), ): SolidReferenceGroup { val existing = getPrototype(templateName) if (existing == null) { - prototypes { - this[templateName] = obj + prototypeHolder.prototypes { + set(templateName, obj) } } else if (existing != obj) { error("Can't add different prototype on top of existing one") } - return this@ref.ref(templateName, name) + return ref(templateName, name) } diff --git a/visionforge-solid/src/commonTest/kotlin/space/kscience/visionforge/solid/SerializationTest.kt b/visionforge-solid/src/commonTest/kotlin/space/kscience/visionforge/solid/SerializationTest.kt index 8f5c3f57..f8af54a0 100644 --- a/visionforge-solid/src/commonTest/kotlin/space/kscience/visionforge/solid/SerializationTest.kt +++ b/visionforge-solid/src/commonTest/kotlin/space/kscience/visionforge/solid/SerializationTest.kt @@ -16,7 +16,7 @@ fun SolidGroup.refGroup( block: MutableVisionGroup.() -> Unit ): SolidReferenceGroup { val group = SolidGroup().apply(block) - return ref(name, group, templateName) + return newRef(name, group, templateName = templateName) } @@ -42,7 +42,7 @@ class SerializationTest { z = -100 } val group = SolidGroup { - ref("cube", cube) + newRef("cube", cube) refGroup("pg", Name.parse("pg.content")) { sphere(50) { x = -100 diff --git a/visionforge-solid/src/commonTest/kotlin/space/kscience/visionforge/solid/SolidReferenceTest.kt b/visionforge-solid/src/commonTest/kotlin/space/kscience/visionforge/solid/SolidReferenceTest.kt index 2f8b7781..cfdd73f0 100644 --- a/visionforge-solid/src/commonTest/kotlin/space/kscience/visionforge/solid/SolidReferenceTest.kt +++ b/visionforge-solid/src/commonTest/kotlin/space/kscience/visionforge/solid/SolidReferenceTest.kt @@ -14,7 +14,7 @@ class SolidReferenceTest { val theStyle by style { SolidMaterial.MATERIAL_COLOR_KEY put "red" } - ref("test", Box(100f,100f,100f).apply { + newRef("test", Box(100f,100f,100f).apply { color("blue") useStyle(theStyle) }) -- 2.34.1 From 68704086e9564689433d2db4112a1d4514bcf3f1 Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Thu, 26 Aug 2021 09:52:35 +0300 Subject: [PATCH 11/19] WIP Root to Solid conversion --- .../kotlin/ru/mipt/npm/root/TGeoManager.kt | 8 +++---- .../kotlin/ru/mipt/npm/root/jsonToRoot.kt | 23 ++++++++++--------- .../kotlin/ru/mipt/npm/root/rootToSolid.kt | 15 ++++++++---- .../kotlin/ru/mipt/npm/root/loadBMN.kt | 6 ++--- 4 files changed, 30 insertions(+), 22 deletions(-) diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt index 41607fbd..8b2c3c26 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt @@ -9,14 +9,14 @@ import kotlinx.serialization.Serializable public class TGeoManager : TNamed() { @Contextual - public val fMatrices: TObjArray = TObjArray.getEmpty() + public val fMatrices: TObjArray<@Contextual TGeoMatrix> = TObjArray.getEmpty() @Contextual - public val fShapes: TObjArray = TObjArray.getEmpty() + public val fShapes: TObjArray<@Contextual TGeoShape> = TObjArray.getEmpty() @Contextual - public val fVolumes: TObjArray = TObjArray.getEmpty() + public val fVolumes: TObjArray<@Contextual TGeoVolume> = TObjArray.getEmpty() @Contextual - public val fNodes: TObjArray = TObjArray.getEmpty() + public val fNodes: TObjArray<@Contextual TGeoNode> = TObjArray.getEmpty() } diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/jsonToRoot.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/jsonToRoot.kt index 585accf0..1b7fe798 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/jsonToRoot.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/jsonToRoot.kt @@ -81,19 +81,19 @@ private object RootDecoder { ): SerializersModule = SerializersModule { include(serializersModule) - contextual(TGeoManager.serializer().unref(refCache)) + //contextual(TGeoManager.serializer().unref(refCache)) contextual(TObjArray::class) { TObjArray.serializer(it[0]).unref(refCache) } - contextual(TGeoVolumeAssembly.serializer().unref(refCache)) - contextual(TGeoShapeAssembly.serializer().unref(refCache)) + //contextual(TGeoVolumeAssembly.serializer().unref(refCache)) + //contextual(TGeoShapeAssembly.serializer().unref(refCache)) contextual(TGeoRotation.serializer().unref(refCache)) contextual(TGeoMedium.serializer().unref(refCache)) - contextual(TGeoVolume.serializer().unref(refCache)) - contextual(TGeoMatrix.serializer().unref(refCache)) - contextual(TGeoNode.serializer().unref(refCache)) - contextual(TGeoNodeOffset.serializer().unref(refCache)) - contextual(TGeoNodeMatrix.serializer().unref(refCache)) - contextual(TGeoShape.serializer().unref(refCache)) - contextual(TObject.serializer().unref(refCache)) + //contextual(TGeoVolume.serializer().unref(refCache)) + //contextual(TGeoMatrix.serializer().unref(refCache)) + //contextual(TGeoNode.serializer().unref(refCache)) + //contextual(TGeoNodeOffset.serializer().unref(refCache)) + //contextual(TGeoNodeMatrix.serializer().unref(refCache)) + //contextual(TGeoShape.serializer().unref(refCache)) + //contextual(TObject.serializer().unref(refCache)) polymorphicDefault(TGeoShape::class) { @@ -245,7 +245,8 @@ private object RootDecoder { subclass(TGeoNodeOffset.serializer()) } - polymorphic(TGeoVolume::class, TGeoVolume.serializer()) { + polymorphic(TGeoVolume::class) { + subclass(TGeoVolume.serializer()) subclass(TGeoVolumeAssembly.serializer()) } } diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootToSolid.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootToSolid.kt index 9cbbb64b..ee14324d 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootToSolid.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootToSolid.kt @@ -115,7 +115,7 @@ private fun SolidGroup.addShape(shape: TGeoShape) { private fun SolidGroup.node(obj: TGeoNode) { if (obj.fVolume != null) { - volume(obj.fVolume).apply { + volume(obj.fVolume, obj.fName).apply { when (obj) { is TGeoNodeMatrix -> { useMatrix(obj.fMatrix) @@ -145,15 +145,22 @@ private fun buildGroup(volume: TGeoVolume): SolidGroup { private val SolidGroup.rootPrototypes: SolidGroup get() = (parent as? SolidGroup)?.rootPrototypes ?: this -private fun SolidGroup.volume(volume: TGeoVolume, cache: Boolean = true): Solid { +private fun SolidGroup.volume(volume: TGeoVolume, name: String? = null, cache: Boolean = true): Solid { val group = buildGroup(volume) + val combinedName = if (volume.fName.isEmpty()) { + name + } else if (name == null) { + volume.fName + } else { + "${name}_${volume.fName}" + } return if (!cache) { group } else newRef( - name = volume.fName.ifEmpty { null }, + name = combinedName, obj = group, prototypeHolder = rootPrototypes, - templateName = volumesName + Name.parse(volume.fName.ifEmpty { group.toString() }) + templateName = volumesName + Name.parse(combinedName ?: "volume[${group.hashCode()}]") ) } diff --git a/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt b/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt index 7d5f4b24..7fcd1e22 100644 --- a/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt +++ b/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt @@ -1,12 +1,12 @@ package ru.mipt.npm.root import kotlinx.serialization.json.* +import space.kscience.visionforge.solid.Solids import java.time.Duration import kotlin.system.measureTimeMillis private fun JsonElement.countTypes(): Sequence = sequence { - val json = this@countTypes - when (json){ + when (val json = this@countTypes){ is JsonObject -> { json["_typename"]?.let { yield(it.jsonPrimitive.content) } json.values.forEach { yieldAll(it.countTypes()) } @@ -33,7 +33,7 @@ fun main() { val geo = TObject.decodeFromString(TGeoManager.serializer(), string) val solid = geo.toSolid() - println(solid) + println(Solids.encodeToString(solid)) } println(Duration.ofMillis(time)) -- 2.34.1 From 7b5faaa61e9ef77f196d0c1dd0ca7d6800fcd633 Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Mon, 30 Aug 2021 12:58:41 +0300 Subject: [PATCH 12/19] dynamic root scheme parser --- .../kotlin/ru/mipt/npm/root/TGeoManager.kt | 22 -- .../kotlin/ru/mipt/npm/root/TObjectScheme.kt | 140 ++++++++++ .../kotlin/ru/mipt/npm/root/jsonToRoot.kt | 261 ------------------ .../ru/mipt/npm/root/rootSchemeToSolid.kt | 217 +++++++++++++++ .../npm/root/serialization/TGeoManager.kt | 17 ++ .../root/{ => serialization}/TGeoMaterial.kt | 2 +- .../root/{ => serialization}/TGeoMatrix.kt | 2 +- .../root/{ => serialization}/TGeoMedium.kt | 2 +- .../npm/root/{ => serialization}/TGeoNode.kt | 4 +- .../npm/root/{ => serialization}/TGeoShape.kt | 2 +- .../root/{ => serialization}/TGeoVolume.kt | 4 +- .../npm/root/{ => serialization}/TObject.kt | 2 +- .../mipt/npm/root/serialization/jsonToRoot.kt | 235 ++++++++++++++++ .../root/{ => serialization}/rootToSolid.kt | 2 +- .../kotlin/ru/mipt/npm/root/loadBMN.kt | 32 ++- gradle.properties | 2 - 16 files changed, 641 insertions(+), 305 deletions(-) delete mode 100644 cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt create mode 100644 cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObjectScheme.kt delete mode 100644 cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/jsonToRoot.kt create mode 100644 cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootSchemeToSolid.kt create mode 100644 cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/TGeoManager.kt rename cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/{ => serialization}/TGeoMaterial.kt (72%) rename cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/{ => serialization}/TGeoMatrix.kt (94%) rename cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/{ => serialization}/TGeoMedium.kt (85%) rename cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/{ => serialization}/TGeoNode.kt (89%) rename cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/{ => serialization}/TGeoShape.kt (98%) rename cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/{ => serialization}/TGeoVolume.kt (91%) rename cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/{ => serialization}/TObject.kt (94%) create mode 100644 cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/jsonToRoot.kt rename cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/{ => serialization}/rootToSolid.kt (99%) diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt deleted file mode 100644 index 8b2c3c26..00000000 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoManager.kt +++ /dev/null @@ -1,22 +0,0 @@ -package ru.mipt.npm.root - -import kotlinx.serialization.Contextual -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable - -@Serializable -@SerialName("TGeoManager") -public class TGeoManager : TNamed() { - - @Contextual - public val fMatrices: TObjArray<@Contextual TGeoMatrix> = TObjArray.getEmpty() - - @Contextual - public val fShapes: TObjArray<@Contextual TGeoShape> = TObjArray.getEmpty() - - @Contextual - public val fVolumes: TObjArray<@Contextual TGeoVolume> = TObjArray.getEmpty() - - @Contextual - public val fNodes: TObjArray<@Contextual TGeoNode> = TObjArray.getEmpty() -} diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObjectScheme.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObjectScheme.kt new file mode 100644 index 00000000..0ec699bd --- /dev/null +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObjectScheme.kt @@ -0,0 +1,140 @@ +package ru.mipt.npm.root + +import kotlinx.serialization.json.Json +import space.kscience.dataforge.meta.* +import space.kscience.dataforge.names.Name +import space.kscience.dataforge.names.asName +import kotlin.properties.ReadOnlyProperty + +public typealias RefCache = List + +public interface ObjectRef { + public fun resolve(refCache: RefCache): T? +} + +private class ChildObjectRef( + val spec: Specification, + val metaProvider: () -> Meta? +) : ObjectRef { + override fun resolve(refCache: RefCache): T? { + val meta = metaProvider() ?: return null + meta["\$ref"]?.int?.let { refId -> + return spec.read(refCache[refId]) + } + return spec.read(meta) + } +} + +public fun List>.resolve(refCache: RefCache): List = map { it.resolve(refCache)!! } + + +public open class TObjectScheme : Scheme() { + + public val typename: String by string(key = "_typename".asName()) { error("Type is not defined") } + + internal fun tObjectArray( + spec: Specification + ): ReadOnlyProperty>> = ReadOnlyProperty { _, property -> + meta.getIndexed(Name.of(property.name, "arr")).values.map { ChildObjectRef(spec){it} } + } + + internal fun refSpec( + spec: Specification, + key: Name? = null + ): ReadOnlyProperty> = ReadOnlyProperty { _, property -> + ChildObjectRef(spec) { meta[key ?: property.name.asName()] } + } + + public companion object : SchemeSpec(::TObjectScheme) +} + +public open class TNamedScheme : TObjectScheme() { + public val fName: String by string("") + public val fTitle: String by string("") + + public companion object : SchemeSpec(::TNamedScheme) +} + +public class TGeoMaterialScheme : TNamedScheme() { + + public companion object : SchemeSpec(::TGeoMaterialScheme) +} + +public class TGeoMediumScheme : TNamedScheme() { + public val fMaterial: ObjectRef by refSpec(TGeoMaterialScheme) + public val fParams: DoubleArray by doubleArray() + + public companion object : SchemeSpec(::TGeoMediumScheme) +} + +public class TGeoShapeScheme : TNamedScheme() { + public val fDX: Double by double(0.0) + public val fDY: Double by double(0.0) + public val fDZ: Double by double(0.0) + + public companion object : SchemeSpec(::TGeoShapeScheme) +} + +public class TGeoVolumeScheme : TNamedScheme() { + public val fNodes: List> by tObjectArray(TGeoNodeScheme) + public val fShape: ObjectRef by refSpec(TGeoShapeScheme) + public val fMedium: ObjectRef by refSpec(TGeoMediumScheme) + + public companion object : SchemeSpec(::TGeoVolumeScheme) +} + +public class TGeoNodeScheme : TNamedScheme() { + public val fVolume: ObjectRef by refSpec(TGeoVolumeScheme) + + public companion object : SchemeSpec(::TGeoNodeScheme) +} + +public class TGeoMatrixScheme : TNamedScheme() { + public companion object : SchemeSpec(::TGeoMatrixScheme) +} + + +public class TGeoBoolNodeScheme : TObjectScheme() { + public val fLeft: ObjectRef by refSpec(TGeoShapeScheme) + public val fLeftMat: ObjectRef by refSpec(TGeoMatrixScheme) + + public val fRight: ObjectRef by refSpec(TGeoShapeScheme) + public val fRightMat: ObjectRef by refSpec(TGeoMatrixScheme) + + public companion object : SchemeSpec(::TGeoBoolNodeScheme) +} + + +public class TGeoManagerScheme : TNamedScheme() { + public val fMatrices: List> by tObjectArray(TGeoMatrixScheme) + + public val fShapes: List> by tObjectArray(TGeoShapeScheme) + + public val fVolumes: List> by tObjectArray(TGeoVolumeScheme) + + public val fNodes: List> by tObjectArray(TGeoNodeScheme) + + public val refCache: List by lazy { + val res = ArrayList(4096) + fun fillCache(element: Meta) { + if(element["\$ref"] == null) { + res.add(element) + element.items.values.forEach { + if (!it.isLeaf) { + fillCache(it) + } + } + } + } + fillCache(meta) + res + } + + public companion object : SchemeSpec(::TGeoManagerScheme) { + + public fun parse(string: String): TGeoManagerScheme { + val meta = Json.decodeFromString(MetaSerializer, string) + return read(meta) + } + } +} diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/jsonToRoot.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/jsonToRoot.kt deleted file mode 100644 index 1b7fe798..00000000 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/jsonToRoot.kt +++ /dev/null @@ -1,261 +0,0 @@ -package ru.mipt.npm.root - -import kotlinx.serialization.DeserializationStrategy -import kotlinx.serialization.ExperimentalSerializationApi -import kotlinx.serialization.KSerializer -import kotlinx.serialization.descriptors.SerialDescriptor -import kotlinx.serialization.encoding.Decoder -import kotlinx.serialization.json.* -import kotlinx.serialization.modules.* - - -private fun jsonRootDeserializer(tSerializer: KSerializer, builder: (JsonElement) -> T): DeserializationStrategy = object : - DeserializationStrategy { - private val jsonElementSerializer = JsonElement.serializer() - - override val descriptor: SerialDescriptor - get() = jsonElementSerializer.descriptor - - override fun deserialize(decoder: Decoder): T { - val json = decoder.decodeSerializableValue(jsonElementSerializer) - return builder(json) - } -} - -/** - * Load Json encoded TObject - */ -public fun TObject.Companion.decodeFromJson(serializer: KSerializer, jsonElement: JsonElement): T = - RootDecoder.decode(serializer, jsonElement) - -public fun TObject.Companion.decodeFromString(serializer: KSerializer, string: String): T { - val json = RootDecoder.json.parseToJsonElement(string) - return RootDecoder.decode(serializer, json) -} - -private object RootDecoder { - - private class RootUnrefSerializer( - private val tSerializer: KSerializer, - private val refCache: List, - ) : KSerializer by tSerializer { - - override fun deserialize(decoder: Decoder): T { - val input = decoder as JsonDecoder - val element = input.decodeJsonElement() - val refId = (element as? JsonObject)?.get("\$ref")?.jsonPrimitive?.int - val ref = if (refId != null) { - //println("Substituting ${tSerializer.descriptor.serialName} ref $refId") - //Forward ref for shapes - when (tSerializer.descriptor.serialName) { - "TGeoShape" -> return TGeoShapeRef { - refCache[refId].getOrPutValue { - input.json.decodeFromJsonElement(tSerializer, it) as TGeoShape - } - } as T - "TGeoVolumeAssembly" -> return TGeoVolumeAssemblyRef { - refCache[refId].getOrPutValue { - input.json.decodeFromJsonElement(tSerializer, it) as TGeoVolumeAssembly - } - } as T - //Do unref - else -> refCache[refId] - } - } else { - refCache.find { it.element == element } ?: error("Element '$element' not found in the cache") - } - - return ref.getOrPutValue { -// val actualTypeName = it.jsonObject["_typename"]?.jsonPrimitive?.content - input.json.decodeFromJsonElement(tSerializer, it) - } - } - } - - private fun KSerializer.unref(refCache: List): KSerializer = - RootUnrefSerializer(this, refCache) - - @OptIn(ExperimentalSerializationApi::class) - fun unrefSerializersModule( - refCache: List - ): SerializersModule = SerializersModule { - include(serializersModule) - - //contextual(TGeoManager.serializer().unref(refCache)) - contextual(TObjArray::class) { TObjArray.serializer(it[0]).unref(refCache) } - //contextual(TGeoVolumeAssembly.serializer().unref(refCache)) - //contextual(TGeoShapeAssembly.serializer().unref(refCache)) - contextual(TGeoRotation.serializer().unref(refCache)) - contextual(TGeoMedium.serializer().unref(refCache)) - //contextual(TGeoVolume.serializer().unref(refCache)) - //contextual(TGeoMatrix.serializer().unref(refCache)) - //contextual(TGeoNode.serializer().unref(refCache)) - //contextual(TGeoNodeOffset.serializer().unref(refCache)) - //contextual(TGeoNodeMatrix.serializer().unref(refCache)) - //contextual(TGeoShape.serializer().unref(refCache)) - //contextual(TObject.serializer().unref(refCache)) - - - polymorphicDefault(TGeoShape::class) { - if (it == null) { - TGeoShape.serializer().unref(refCache) - } else { - error("Unrecognized shape $it") - } - } - - polymorphicDefault(TGeoMatrix::class) { - if (it == null) { - TGeoMatrix.serializer().unref(refCache) - } else { - error("Unrecognized matrix $it") - } - } - - polymorphicDefault(TGeoVolume::class) { - if (it == null) { - TGeoVolume.serializer().unref(refCache) - } else { - error("Unrecognized volume $it") - } - } - - polymorphicDefault(TGeoNode::class) { - if (it == null) { - TGeoNode.serializer().unref(refCache) - } else { - error("Unrecognized node $it") - } - } - } - - /** - * Create an instance of Json with unfolding Root references. This instance could not be reused because of the cache. - */ - private fun unrefJson(refCache: MutableList): Json = Json { - encodeDefaults = true - ignoreUnknownKeys = true - classDiscriminator = "_typename" - serializersModule = unrefSerializersModule(refCache) - } - - - fun decode(sourceDeserializer: KSerializer, source: JsonElement): T { - val refCache = ArrayList() - - fun fillCache(element: JsonElement) { - when (element) { - is JsonObject -> { - if (element["_typename"] != null) { - refCache.add(RefEntry(element)) - } - element.values.forEach { - fillCache(it) - } - } - is JsonArray -> { - element.forEach { - fillCache(it) - } - } - else -> { - //ignore primitives - } - } - } - fillCache(source) - - return unrefJson(refCache).decodeFromJsonElement(sourceDeserializer.unref(refCache), source) - } - - class RefEntry(val element: JsonElement) { - - var value: Any? = null - - fun getOrPutValue(builder: (JsonElement) -> T): T { - if (value == null) { - value = builder(element) - } - return value as T - } - - override fun toString(): String = element.toString() - } - - private fun PolymorphicModuleBuilder.shapes() { - subclass(TGeoBBox.serializer()) - subclass(TGeoCompositeShape.serializer()) - subclass(TGeoXtru.serializer()) - subclass(TGeoTube.serializer()) - subclass(TGeoTubeSeg.serializer()) - subclass(TGeoPcon.serializer()) - subclass(TGeoPgon.serializer()) - subclass(TGeoShapeAssembly.serializer()) - } - - private fun PolymorphicModuleBuilder.matrices() { - subclass(TGeoIdentity.serializer()) - subclass(TGeoHMatrix.serializer()) - subclass(TGeoTranslation.serializer()) - subclass(TGeoRotation.serializer()) - subclass(TGeoCombiTrans.serializer()) - } - - private fun PolymorphicModuleBuilder.boolNodes() { - subclass(TGeoIntersection.serializer()) - subclass(TGeoUnion.serializer()) - subclass(TGeoSubtraction.serializer()) - } - - private val serializersModule = SerializersModule { - -// polymorphic(TObject::class) { -// default { JsonRootSerializer } -// -// shapes() -// matrices() -// boolNodes() -// -// subclass(TGeoMaterial.serializer()) -// subclass(TGeoMixture.serializer()) -// -// subclass(TGeoMedium.serializer()) -// -// //subclass(TGeoNode.serializer()) -// subclass(TGeoNodeMatrix.serializer()) -// subclass(TGeoVolume.serializer()) -// subclass(TGeoVolumeAssembly.serializer()) -// subclass(TGeoManager.serializer()) -// } - - polymorphic(TGeoShape::class) { - shapes() - } - - polymorphic(TGeoMatrix::class) { - matrices() - } - - polymorphic(TGeoBoolNode::class) { - boolNodes() - } - - polymorphic(TGeoNode::class) { - subclass(TGeoNodeMatrix.serializer()) - subclass(TGeoNodeOffset.serializer()) - } - - polymorphic(TGeoVolume::class) { - subclass(TGeoVolume.serializer()) - subclass(TGeoVolumeAssembly.serializer()) - } - } - - val json = Json { - encodeDefaults = true - ignoreUnknownKeys = true - classDiscriminator = "_typename" - serializersModule = this@RootDecoder.serializersModule - } - -} \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootSchemeToSolid.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootSchemeToSolid.kt new file mode 100644 index 00000000..89849613 --- /dev/null +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootSchemeToSolid.kt @@ -0,0 +1,217 @@ +package ru.mipt.npm.root + +import space.kscience.dataforge.meta.* +import space.kscience.dataforge.names.Name +import space.kscience.dataforge.names.asName +import space.kscience.dataforge.names.plus +import space.kscience.visionforge.solid.* +import kotlin.math.PI +import kotlin.math.atan2 +import kotlin.math.pow +import kotlin.math.sqrt + +private val solidsName = "solids".asName() +private val volumesName = "volumes".asName() + +private operator fun Number.times(d: Double) = toDouble() * d + +private operator fun Number.times(f: Float) = toFloat() * f + +private fun degToRad(d: Double) = d * PI / 180.0 + +// converting to XYZ to Tait–Bryan angles according to https://en.wikipedia.org/wiki/Euler_angles#Rotation_matrix +private fun Solid.rotate(rot: DoubleArray) { + val xAngle = atan2(-rot[5], rot[8]) + val yAngle = atan2(rot[2], sqrt(1.0 - rot[2].pow(2))) + val zAngle = atan2(-rot[1], rot[0]) + rotation = Point3D(xAngle, yAngle, zAngle) +} + +private fun Solid.translate(trans: DoubleArray) { + val (x, y, z) = trans + position = Point3D(x, y, z) +} + +private fun Solid.useMatrix(matrix: TGeoMatrixScheme?) { + if (matrix == null) return + when (matrix.typename) { + "TGeoIdentity" -> { + //do nothing + } + "TGeoTranslation" -> { + val fTranslation by matrix.doubleArray() + translate(fTranslation) + } + "TGeoRotation" -> { + val fRotationMatrix by matrix.doubleArray() + rotate(fRotationMatrix) + } + "TGeoCombiTrans" -> { + val fTranslation by matrix.doubleArray() + + translate(fTranslation) + if (matrix.meta["fRotationMatrix"] != null) { + val fRotationMatrix by matrix.doubleArray() + rotate(fRotationMatrix) + } + } + "TGeoHMatrix" -> { + val fTranslation by matrix.doubleArray() + val fRotationMatrix by matrix.doubleArray() + val fScale by matrix.doubleArray() + translate(fTranslation) + rotate(fRotationMatrix) + scale = Point3D(fScale[0], fScale[1], fScale[2]) + } + } +} + +private fun SolidGroup.addShape(shape: TGeoShapeScheme, refCache: RefCache) { + when (shape.typename) { + "TGeoCompositeShape" -> { + val bool by shape.spec(TGeoBoolNodeScheme) + val compositeType = when (bool.typename) { + "TGeoIntersection" -> CompositeType.INTERSECT + "TGeoSubtraction" -> CompositeType.SUBTRACT + "TGeoUnion" -> CompositeType.UNION + else -> error("Unknown bool node type ${bool.typename}") + } + composite(compositeType, name = shape.fName) { + addShape(bool.fLeft.resolve(refCache)!!, refCache).apply { + useMatrix(bool.fLeftMat.resolve(refCache)) + } + addShape(bool.fRight.resolve(refCache)!!, refCache).apply { + useMatrix(bool.fRightMat.resolve(refCache)) + } + } + } + "TGeoXtru" -> { + val fNvert by shape.meta.int(0) + val fX by shape.meta.doubleArray() + val fY by shape.meta.doubleArray() + val fNz by shape.meta.int(0) + val fZ by shape.meta.doubleArray() + val fX0 by shape.meta.doubleArray() + val fY0 by shape.meta.doubleArray() + val fScale by shape.meta.doubleArray() + + extruded(name = shape.fName) { + (0 until fNvert).forEach { index -> + shape { + point(fX[index], fY[index]) + } + } + + (0 until fNz).forEach { index -> + layer( + fZ[index], + fX0[index], + fY0[index], + fScale[index] + ) + } + } + } + "TGeoTube" -> { + val fRmax by shape.meta.double(0.0) + val fDz by shape.meta.double(0.0) + val fRmin by shape.meta.double(0.0) + + tube( + radius = fRmax, + height = fDz * 2, + innerRadius = fRmin, + name = shape.fName + ) + } + "TGeoTubeSeg" -> { + val fRmax by shape.meta.double(0.0) + val fDz by shape.meta.double(0.0) + val fRmin by shape.meta.double(0.0) + val fPhi1 by shape.meta.double(0.0) + val fPhi2 by shape.meta.double(0.0) + + tube( + radius = fRmax, + height = fDz * 2, + innerRadius = fRmin, + startAngle = degToRad(fPhi1), + angle = degToRad(fPhi2 - fPhi1), + name = shape.fName + ) + } + "TGeoPcon" -> { + TODO() + } + "TGeoPgon" -> { + TODO() + } + "TGeoShapeAssembly" -> { + val fVolume by shape.refSpec(TGeoVolumeScheme) + volume(fVolume.resolve(refCache)!!, refCache) + } + "TGeoBBox" -> { + box(shape.fDX * 2, shape.fDY * 2, shape.fDZ * 2, name = shape.fName) + } + } +} + +private fun SolidGroup.node(obj: TGeoNodeScheme, refCache: RefCache) { + val volume = obj.fVolume.resolve(refCache) + if (volume != null) { + volume(volume, refCache, obj.fName).apply { + when (obj.typename) { + "TGeoNodeMatrix" -> { + val fMatrix by obj.refSpec(TGeoMatrixScheme) + useMatrix(fMatrix.resolve(refCache)) + } + "TGeoNodeOffset" -> { + val fOffset by obj.meta.double(0.0) + x = fOffset + } + } + } + } +} + +private fun buildGroup(volume: TGeoVolumeScheme, refCache: RefCache): SolidGroup = SolidGroup { + volume.fShape.resolve(refCache)?.let { addShape(it, refCache) } + volume.fNodes.let { + it.forEach { obj -> + node(obj.resolve(refCache)!!, refCache) + } + } +} + +private val SolidGroup.rootPrototypes: SolidGroup get() = (parent as? SolidGroup)?.rootPrototypes ?: this + +private fun SolidGroup.volume( + volume: TGeoVolumeScheme, + refCache: RefCache, + name: String? = null, + cache: Boolean = true +): Solid { + val group = buildGroup(volume, refCache) + val combinedName = if (volume.fName.isEmpty()) { + name + } else if (name == null) { + volume.fName + } else { + "${name}_${volume.fName}" + } + return if (!cache) { + set(combinedName?.let { Name.parse(it)},group) + group + } else newRef( + name = combinedName, + obj = group, + prototypeHolder = rootPrototypes, + templateName = volumesName + Name.parse(combinedName ?: "volume[${group.hashCode()}]") + ) +} + +public fun TGeoManagerScheme.toSolid(): SolidGroup = SolidGroup { + fNodes.forEach { + node(it.resolve(refCache)!!, refCache) + } +} \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/TGeoManager.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/TGeoManager.kt new file mode 100644 index 00000000..59957364 --- /dev/null +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/TGeoManager.kt @@ -0,0 +1,17 @@ +package ru.mipt.npm.root.serialization + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +@SerialName("TGeoManager") +public class TGeoManager : TNamed() { + + public val fMatrices: TObjArray = TObjArray.getEmpty() + + public val fShapes: TObjArray = TObjArray.getEmpty() + + public val fVolumes: TObjArray = TObjArray.getEmpty() + + public val fNodes: TObjArray = TObjArray.getEmpty() +} diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMaterial.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/TGeoMaterial.kt similarity index 72% rename from cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMaterial.kt rename to cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/TGeoMaterial.kt index f4883e0e..e13d30b4 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMaterial.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/TGeoMaterial.kt @@ -1,4 +1,4 @@ -package ru.mipt.npm.root +package ru.mipt.npm.root.serialization import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMatrix.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/TGeoMatrix.kt similarity index 94% rename from cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMatrix.kt rename to cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/TGeoMatrix.kt index 0c6ec7ab..63ee38a7 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMatrix.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/TGeoMatrix.kt @@ -1,4 +1,4 @@ -package ru.mipt.npm.root +package ru.mipt.npm.root.serialization import kotlinx.serialization.Contextual import kotlinx.serialization.SerialName diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMedium.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/TGeoMedium.kt similarity index 85% rename from cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMedium.kt rename to cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/TGeoMedium.kt index 72b72c4c..630826e8 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoMedium.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/TGeoMedium.kt @@ -1,4 +1,4 @@ -package ru.mipt.npm.root +package ru.mipt.npm.root.serialization import kotlinx.serialization.Contextual import kotlinx.serialization.SerialName diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoNode.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/TGeoNode.kt similarity index 89% rename from cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoNode.kt rename to cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/TGeoNode.kt index 75a8ac05..1babbbfc 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoNode.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/TGeoNode.kt @@ -1,4 +1,4 @@ -package ru.mipt.npm.root +package ru.mipt.npm.root.serialization import kotlinx.serialization.Contextual import kotlinx.serialization.SerialName @@ -6,7 +6,7 @@ import kotlinx.serialization.Serializable @Serializable @SerialName("TGeoNode") -public sealed class TGeoNode : TNamed() { +public open class TGeoNode : TNamed() { public val fGeoAtt: UInt = 0u @Contextual diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoShape.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/TGeoShape.kt similarity index 98% rename from cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoShape.kt rename to cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/TGeoShape.kt index 7cf6876a..faf47121 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoShape.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/TGeoShape.kt @@ -1,4 +1,4 @@ -package ru.mipt.npm.root +package ru.mipt.npm.root.serialization import kotlinx.serialization.Contextual import kotlinx.serialization.SerialName diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoVolume.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/TGeoVolume.kt similarity index 91% rename from cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoVolume.kt rename to cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/TGeoVolume.kt index 9823eb1f..77c99e54 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TGeoVolume.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/TGeoVolume.kt @@ -1,4 +1,4 @@ -package ru.mipt.npm.root +package ru.mipt.npm.root.serialization import kotlinx.serialization.Contextual import kotlinx.serialization.SerialName @@ -15,7 +15,7 @@ public open class TGeoVolume : TNamed() { public val fFillStyle: Int? = null @Contextual - public val fNodes: TObjArray? = null + public val fNodes: TObjArray<@Contextual TGeoNode>? = null @Contextual public val fShape: TGeoShape? = null diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObject.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/TObject.kt similarity index 94% rename from cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObject.kt rename to cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/TObject.kt index 063cadfe..644c05a4 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObject.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/TObject.kt @@ -1,4 +1,4 @@ -package ru.mipt.npm.root +package ru.mipt.npm.root.serialization import kotlinx.serialization.Contextual import kotlinx.serialization.SerialName diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/jsonToRoot.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/jsonToRoot.kt new file mode 100644 index 00000000..94079ccd --- /dev/null +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/jsonToRoot.kt @@ -0,0 +1,235 @@ +package ru.mipt.npm.root.serialization + +import kotlinx.serialization.DeserializationStrategy +import kotlinx.serialization.ExperimentalSerializationApi +import kotlinx.serialization.KSerializer +import kotlinx.serialization.descriptors.SerialDescriptor +import kotlinx.serialization.encoding.Decoder +import kotlinx.serialization.json.* +import kotlinx.serialization.modules.SerializersModule +import kotlinx.serialization.modules.contextual +import kotlinx.serialization.modules.polymorphic +import kotlinx.serialization.modules.subclass + + +private fun jsonRootDeserializer( + tSerializer: KSerializer, + builder: (JsonElement) -> T +): DeserializationStrategy = object : + DeserializationStrategy { + private val jsonElementSerializer = JsonElement.serializer() + + override val descriptor: SerialDescriptor + get() = jsonElementSerializer.descriptor + + override fun deserialize(decoder: Decoder): T { + val json = decoder.decodeSerializableValue(jsonElementSerializer) + return builder(json) + } +} + +/** + * Load Json encoded TObject + */ +public fun TObject.decodeFromJson(serializer: KSerializer, jsonElement: JsonElement): T = + RootDecoder.decode(serializer, jsonElement) + +public fun TObject.decodeFromString(serializer: KSerializer, string: String): T { + val json = Json.parseToJsonElement(string) + return RootDecoder.decode(serializer, json) +} + +private object RootDecoder { + + private class RootUnrefSerializer( + private val tSerializer: KSerializer, + private val refCache: List, + ) : KSerializer by tSerializer { + + override fun deserialize(decoder: Decoder): T { + val input = decoder as JsonDecoder + val element = input.decodeJsonElement() + val refId = (element as? JsonObject)?.get("\$ref")?.jsonPrimitive?.int + val ref = if (refId != null) { + println("Substituting ${tSerializer.descriptor.serialName} ref $refId") + //Forward ref for shapes + when (tSerializer.descriptor.serialName) { + "TGeoShape" -> return TGeoShapeRef { + refCache[refId].getOrPutValue { + input.json.decodeFromJsonElement(tSerializer, it) as TGeoShape + } + } as T + + "TGeoVolumeAssembly" -> return TGeoVolumeAssemblyRef { + refCache[refId].getOrPutValue { + input.json.decodeFromJsonElement(tSerializer, it) as TGeoVolumeAssembly + } + } as T + + "TGeoVolume" -> return TGeoVolumeRef { + refCache[refId].getOrPutValue { + input.json.decodeFromJsonElement(tSerializer, it) as TGeoVolume + } + } as T + + //Do unref + else -> refCache[refId] + } + } else { + refCache.find { it.element == element } ?: error("Element '$element' not found in the cache") + } + + return ref.getOrPutValue { +// println("Decoding $it") + val actualTypeName = it.jsonObject["_typename"]?.jsonPrimitive?.content + input.json.decodeFromJsonElement(tSerializer, it) + } + } + } + + private fun KSerializer.unref(refCache: List): KSerializer = RootUnrefSerializer(this, refCache) + + @OptIn(ExperimentalSerializationApi::class) + fun unrefSerializersModule( + refCache: List + ): SerializersModule = SerializersModule { + + contextual(TObjArray::class) { + TObjArray.serializer(it[0]).unref(refCache) + } + + contextual(TGeoMedium.serializer().unref(refCache)) + + polymorphic(TGeoBoolNode::class) { + subclass(TGeoIntersection.serializer().unref(refCache)) + subclass(TGeoUnion.serializer().unref(refCache)) + subclass(TGeoSubtraction.serializer().unref(refCache)) + } + + polymorphic(TGeoShape::class) { + subclass(TGeoBBox.serializer()) + subclass(TGeoXtru.serializer()) + subclass(TGeoTube.serializer()) + subclass(TGeoTubeSeg.serializer()) + subclass(TGeoPcon.serializer()) + subclass(TGeoPgon.serializer()) + + subclass(TGeoCompositeShape.serializer().unref(refCache)) + subclass(TGeoShapeAssembly.serializer().unref(refCache)) + + default { + if (it == null) { + TGeoShape.serializer().unref(refCache) + } else { + error("Unrecognized shape $it") + } + } + } + + polymorphic(TGeoMatrix::class) { + subclass(TGeoIdentity.serializer()) + subclass(TGeoHMatrix.serializer().unref(refCache)) + subclass(TGeoTranslation.serializer()) + subclass(TGeoRotation.serializer()) + subclass(TGeoCombiTrans.serializer().unref(refCache)) + + + val unrefed = TGeoMatrix.serializer().unref(refCache) + default { + if (it == null) { + unrefed + } else { + error("Unrecognized matrix $it") + } + } + } + + polymorphic(TGeoVolume::class, TGeoVolume.serializer().unref(refCache)) { + subclass(TGeoVolumeAssembly.serializer().unref(refCache)) + + val unrefed = TGeoVolume.serializer().unref(refCache) + default { + if (it == null) { + unrefed + } else { + error("Unrecognized volume $it") + } + } + } + + polymorphic(TGeoNode::class, TGeoNode.serializer().unref(refCache)) { + subclass(TGeoNodeMatrix.serializer().unref(refCache)) + subclass(TGeoNodeOffset.serializer().unref(refCache)) + + val unrefed = TGeoNode.serializer().unref(refCache) + default { + if (it == null) { + unrefed + } else { + error("Unrecognized node $it") + } + } + } + } + + /** + * Create an instance of Json with unfolding Root references. This instance could not be reused because of the cache. + */ + private fun unrefJson(refCache: MutableList): Json = Json { + encodeDefaults = true + ignoreUnknownKeys = true + classDiscriminator = "_typename" + serializersModule = unrefSerializersModule(refCache) + } + + + fun decode(sourceDeserializer: KSerializer, source: JsonElement): T { + val refCache = ArrayList() + + fun fillCache(element: JsonElement) { + when (element) { + is JsonObject -> { + if (element["_typename"] != null) { + refCache.add(RefEntry(element)) + } + element.values.forEach { + fillCache(it) + } + } + is JsonArray -> { + element.forEach { + fillCache(it) + } + } + else -> { + //ignore primitives + } + } + } + fillCache(source) + + return unrefJson(refCache).decodeFromJsonElement(sourceDeserializer.unref(refCache), source) + } + + class RefEntry(val element: JsonElement) { + + var value: Any? = null + + fun getOrPutValue(builder: (JsonElement) -> T): T { + if (value == null) { + value = builder(element) + } + return value as T + } + + override fun toString(): String = element.toString() + } + +// val json = Json { +// encodeDefaults = true +// ignoreUnknownKeys = true +// classDiscriminator = "_typename" +// serializersModule = this@RootDecoder.serializersModule +// } + +} \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootToSolid.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/rootToSolid.kt similarity index 99% rename from cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootToSolid.kt rename to cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/rootToSolid.kt index ee14324d..117e51b3 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootToSolid.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/serialization/rootToSolid.kt @@ -1,4 +1,4 @@ -package ru.mipt.npm.root +package ru.mipt.npm.root.serialization import space.kscience.dataforge.names.Name import space.kscience.dataforge.names.asName diff --git a/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt b/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt index 7fcd1e22..fbd7482e 100644 --- a/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt +++ b/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt @@ -1,12 +1,16 @@ package ru.mipt.npm.root -import kotlinx.serialization.json.* +import kotlinx.serialization.json.JsonArray +import kotlinx.serialization.json.JsonElement +import kotlinx.serialization.json.JsonObject +import kotlinx.serialization.json.jsonPrimitive +import ru.mipt.npm.root.serialization.TGeoManager import space.kscience.visionforge.solid.Solids import java.time.Duration import kotlin.system.measureTimeMillis private fun JsonElement.countTypes(): Sequence = sequence { - when (val json = this@countTypes){ + when (val json = this@countTypes) { is JsonObject -> { json["_typename"]?.let { yield(it.jsonPrimitive.content) } json.values.forEach { yieldAll(it.countTypes()) } @@ -16,25 +20,33 @@ private fun JsonElement.countTypes(): Sequence = sequence { yieldAll(it.countTypes()) } } - else -> {} + else -> { + } } } fun main() { val string = TGeoManager::class.java.getResourceAsStream("/BM@N.root.json")!! .readAllBytes().decodeToString() - val json = Json.parseToJsonElement(string) - val sizes = json.countTypes().groupBy { it }.mapValues { it.value.size } - sizes.forEach { - println(it) - } - val time = measureTimeMillis { - val geo = TObject.decodeFromString(TGeoManager.serializer(), string) + val geo = TGeoManagerScheme.parse(string) val solid = geo.toSolid() println(Solids.encodeToString(solid)) } +// val json = Json.parseToJsonElement(string) +// val sizes = json.countTypes().groupBy { it }.mapValues { it.value.size } +// sizes.forEach { +// println(it) +// } +// +// val time = measureTimeMillis { +// val geo = TObject.decodeFromString(TGeoManager.serializer(), string) +// val solid = geo.toSolid() +// +// println(Solids.encodeToString(solid)) +// } +// println(Duration.ofMillis(time)) } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 5bce5b02..0ed8858a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,5 @@ kotlin.code.style=official -kotlin.mpp.enableGranularSourceSetsMetadata=true kotlin.mpp.stability.nowarn=true -kotlin.native.enableDependencyPropagation=false #kotlin.jupyter.add.scanner=false -- 2.34.1 From e25c1bd49b26046ff049a40b13a3f096fcc0c38b Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Sun, 5 Sep 2021 18:37:16 +0300 Subject: [PATCH 13/19] Finished Root converter --- .../kotlin/ru/mipt/npm/root/DObject.kt | 160 ++++++++++ .../kotlin/ru/mipt/npm/root/TObjectScheme.kt | 140 --------- .../kotlin/ru/mipt/npm/root/dRootToSolid.kt | 280 ++++++++++++++++++ .../ru/mipt/npm/root/rootSchemeToSolid.kt | 217 -------------- .../kotlin/ru/mipt/npm/root/loadBMN.kt | 24 +- .../kscience/visionforge/solid/Composite.kt | 5 +- .../visionforge/solid/SolidReference.kt | 2 +- 7 files changed, 466 insertions(+), 362 deletions(-) create mode 100644 cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/DObject.kt delete mode 100644 cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObjectScheme.kt create mode 100644 cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/dRootToSolid.kt delete mode 100644 cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootSchemeToSolid.kt diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/DObject.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/DObject.kt new file mode 100644 index 00000000..361e0ae2 --- /dev/null +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/DObject.kt @@ -0,0 +1,160 @@ +package ru.mipt.npm.root + +import kotlinx.serialization.json.Json +import space.kscience.dataforge.meta.* +import space.kscience.dataforge.misc.Named +import space.kscience.dataforge.names.Name +import space.kscience.dataforge.names.asName +import space.kscience.dataforge.values.doubleArray +import kotlin.properties.ReadOnlyProperty + +public fun MetaProvider.doubleArray( + vararg default: Double, + key: Name? = null, +): ReadOnlyProperty = value(key) { + it?.doubleArray ?: doubleArrayOf(*default) +} + + +public class DObjectCache(private val cache: List, public val refStack: List = emptyList()) { + public operator fun get(index: Int): Meta = cache[index] + + public fun stack(ref: Int): DObjectCache = DObjectCache(cache, refStack + ref) + + public companion object { + public val empty: DObjectCache = DObjectCache(emptyList(), emptyList()) + } +} +// +//public interface ObjectRef { +// public fun resolve(): T? +//} + +//public class ChildObjectRef( +// public val builder: (Meta, DObjectCache) -> T, +// public val refCache: DObjectCache, +// public val metaProvider: () -> Meta? +//) : ObjectRef { +// override fun resolve(): T? { +// val meta = metaProvider() ?: return null +// meta["\$ref"]?.int?.let { refId -> +// if (refCache.refStack.contains(refId)) { +// println("Circular reference $refId in stack ${refCache.refStack}") +// return null +// } +// return builder(refCache[refId], refCache.stack(refId)) +// } +// return builder(meta, refCache) +// } +//} + +public open class DObject(public val meta: Meta, private val refCache: DObjectCache) { + + public val typename: String by meta.string(key = "_typename".asName()) { + error("Type is not defined") + } + + private fun resolve(builder: (Meta, DObjectCache) -> T, meta: Meta): T? { + meta["\$ref"]?.int?.let { refId -> + if (refCache.refStack.contains(refId)) { + println("Circular reference $refId in stack ${refCache.refStack}") + return null + } + return builder(refCache[refId], refCache.stack(refId)) + } + return builder(meta, refCache) + } + + internal fun tObjectArray( + builder: (Meta, DObjectCache) -> T + ): ReadOnlyProperty> = ReadOnlyProperty { _, property -> + meta.getIndexed(Name.of(property.name, "arr")).values.mapNotNull { + resolve(builder, it) + } + } + + internal fun dObject( + builder: (Meta, DObjectCache) -> T, + key: Name? = null + ): ReadOnlyProperty = ReadOnlyProperty { _, property -> + meta[key ?: property.name.asName()]?.let { resolve(builder, it) } + } +} + +public open class DNamed(meta: Meta, refCache: DObjectCache) : DObject(meta, refCache) { + public val fName: String by meta.string("") + public val fTitle: String by meta.string("") +} + +public class DGeoMaterial(meta: Meta, refCache: DObjectCache) : DNamed(meta, refCache) { +} + +public class DGeoMedium(meta: Meta, refCache: DObjectCache) : DNamed(meta, refCache) { + public val fMaterial: DGeoMaterial? by dObject(::DGeoMaterial) + public val fParams: DoubleArray by meta.doubleArray() +} + +public class DGeoShape(meta: Meta, refCache: DObjectCache) : DNamed(meta, refCache) { + public val fDX: Double by meta.double(0.0) + public val fDY: Double by meta.double(0.0) + public val fDZ: Double by meta.double(0.0) +} + +public class DGeoVolume(meta: Meta, refCache: DObjectCache) : DNamed(meta, refCache), Named { + public val fNodes: List by tObjectArray(::DGeoNode) + public val fShape: DGeoShape? by dObject(::DGeoShape) + public val fMedium: DGeoMedium? by dObject(::DGeoMedium) + + override val name: Name by lazy { Name.parse(fName.ifEmpty { "volume[${meta.hashCode().toUInt()}]" }) } +} + +public class DGeoNode(meta: Meta, refCache: DObjectCache) : DNamed(meta, refCache) { + public val fVolume: DGeoVolume? by dObject(::DGeoVolume) +} + +public class DGeoMatrix(meta: Meta, refCache: DObjectCache) : DNamed(meta, refCache) { +} + + +public class DGeoBoolNode(meta: Meta, refCache: DObjectCache) : DObject(meta, refCache) { + public val fLeft: DGeoShape? by dObject(::DGeoShape) + public val fLeftMat: DGeoMatrix? by dObject(::DGeoMatrix) + + public val fRight: DGeoShape? by dObject(::DGeoShape) + public val fRightMat: DGeoMatrix? by dObject(::DGeoMatrix) +} + + +public class DGeoManager(meta: Meta, refCache: DObjectCache) : DNamed(meta, refCache) { + public val fMatrices: List by tObjectArray(::DGeoMatrix) + + public val fShapes: List by tObjectArray(::DGeoShape) + + public val fVolumes: List by tObjectArray(::DGeoVolume) + + public val fNodes: List by tObjectArray(::DGeoNode) + + public companion object { + + public fun parse(string: String): DGeoManager { + val meta = Json.decodeFromString(MetaSerializer, string) + val res = ArrayList(4096) + + fun fillCache(element: Meta) { + if (element["\$ref"] == null) { + res.add(element) + element.items.values.forEach { + if (!it.isLeaf) { + fillCache(it) + } + } + } + } + + fillCache(meta) + + val refCache = DObjectCache(res) + return DGeoManager(meta, refCache) + } + } +} diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObjectScheme.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObjectScheme.kt deleted file mode 100644 index 0ec699bd..00000000 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/TObjectScheme.kt +++ /dev/null @@ -1,140 +0,0 @@ -package ru.mipt.npm.root - -import kotlinx.serialization.json.Json -import space.kscience.dataforge.meta.* -import space.kscience.dataforge.names.Name -import space.kscience.dataforge.names.asName -import kotlin.properties.ReadOnlyProperty - -public typealias RefCache = List - -public interface ObjectRef { - public fun resolve(refCache: RefCache): T? -} - -private class ChildObjectRef( - val spec: Specification, - val metaProvider: () -> Meta? -) : ObjectRef { - override fun resolve(refCache: RefCache): T? { - val meta = metaProvider() ?: return null - meta["\$ref"]?.int?.let { refId -> - return spec.read(refCache[refId]) - } - return spec.read(meta) - } -} - -public fun List>.resolve(refCache: RefCache): List = map { it.resolve(refCache)!! } - - -public open class TObjectScheme : Scheme() { - - public val typename: String by string(key = "_typename".asName()) { error("Type is not defined") } - - internal fun tObjectArray( - spec: Specification - ): ReadOnlyProperty>> = ReadOnlyProperty { _, property -> - meta.getIndexed(Name.of(property.name, "arr")).values.map { ChildObjectRef(spec){it} } - } - - internal fun refSpec( - spec: Specification, - key: Name? = null - ): ReadOnlyProperty> = ReadOnlyProperty { _, property -> - ChildObjectRef(spec) { meta[key ?: property.name.asName()] } - } - - public companion object : SchemeSpec(::TObjectScheme) -} - -public open class TNamedScheme : TObjectScheme() { - public val fName: String by string("") - public val fTitle: String by string("") - - public companion object : SchemeSpec(::TNamedScheme) -} - -public class TGeoMaterialScheme : TNamedScheme() { - - public companion object : SchemeSpec(::TGeoMaterialScheme) -} - -public class TGeoMediumScheme : TNamedScheme() { - public val fMaterial: ObjectRef by refSpec(TGeoMaterialScheme) - public val fParams: DoubleArray by doubleArray() - - public companion object : SchemeSpec(::TGeoMediumScheme) -} - -public class TGeoShapeScheme : TNamedScheme() { - public val fDX: Double by double(0.0) - public val fDY: Double by double(0.0) - public val fDZ: Double by double(0.0) - - public companion object : SchemeSpec(::TGeoShapeScheme) -} - -public class TGeoVolumeScheme : TNamedScheme() { - public val fNodes: List> by tObjectArray(TGeoNodeScheme) - public val fShape: ObjectRef by refSpec(TGeoShapeScheme) - public val fMedium: ObjectRef by refSpec(TGeoMediumScheme) - - public companion object : SchemeSpec(::TGeoVolumeScheme) -} - -public class TGeoNodeScheme : TNamedScheme() { - public val fVolume: ObjectRef by refSpec(TGeoVolumeScheme) - - public companion object : SchemeSpec(::TGeoNodeScheme) -} - -public class TGeoMatrixScheme : TNamedScheme() { - public companion object : SchemeSpec(::TGeoMatrixScheme) -} - - -public class TGeoBoolNodeScheme : TObjectScheme() { - public val fLeft: ObjectRef by refSpec(TGeoShapeScheme) - public val fLeftMat: ObjectRef by refSpec(TGeoMatrixScheme) - - public val fRight: ObjectRef by refSpec(TGeoShapeScheme) - public val fRightMat: ObjectRef by refSpec(TGeoMatrixScheme) - - public companion object : SchemeSpec(::TGeoBoolNodeScheme) -} - - -public class TGeoManagerScheme : TNamedScheme() { - public val fMatrices: List> by tObjectArray(TGeoMatrixScheme) - - public val fShapes: List> by tObjectArray(TGeoShapeScheme) - - public val fVolumes: List> by tObjectArray(TGeoVolumeScheme) - - public val fNodes: List> by tObjectArray(TGeoNodeScheme) - - public val refCache: List by lazy { - val res = ArrayList(4096) - fun fillCache(element: Meta) { - if(element["\$ref"] == null) { - res.add(element) - element.items.values.forEach { - if (!it.isLeaf) { - fillCache(it) - } - } - } - } - fillCache(meta) - res - } - - public companion object : SchemeSpec(::TGeoManagerScheme) { - - public fun parse(string: String): TGeoManagerScheme { - val meta = Json.decodeFromString(MetaSerializer, string) - return read(meta) - } - } -} diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/dRootToSolid.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/dRootToSolid.kt new file mode 100644 index 00000000..87422b97 --- /dev/null +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/dRootToSolid.kt @@ -0,0 +1,280 @@ +package ru.mipt.npm.root + +import space.kscience.dataforge.meta.double +import space.kscience.dataforge.meta.get +import space.kscience.dataforge.meta.int +import space.kscience.dataforge.names.Name +import space.kscience.dataforge.names.plus +import space.kscience.visionforge.solid.* +import kotlin.math.* + +private val volumesName = Name.EMPTY //"volumes".asName() + +private operator fun Number.times(d: Double) = toDouble() * d + +private operator fun Number.times(f: Float) = toFloat() * f + +private fun degToRad(d: Double) = d * PI / 180.0 + +private class RootToSolidContext(val prototypeHolder: PrototypeHolder) + +// converting to XYZ to Tait–Bryan angles according to https://en.wikipedia.org/wiki/Euler_angles#Rotation_matrix +private fun Solid.rotate(rot: DoubleArray) { + val xAngle = atan2(-rot[5], rot[8]) + val yAngle = atan2(rot[2], sqrt(1.0 - rot[2].pow(2))) + val zAngle = atan2(-rot[1], rot[0]) + rotation = Point3D(xAngle, yAngle, zAngle) +} + +private fun Solid.translate(trans: DoubleArray) { + val (x, y, z) = trans + position = Point3D(x, y, z) +} + +private fun Solid.useMatrix(matrix: DGeoMatrix?) { + if (matrix == null) return + when (matrix.typename) { + "TGeoIdentity" -> { + //do nothing + } + "TGeoTranslation" -> { + val fTranslation by matrix.meta.doubleArray() + translate(fTranslation) + } + "TGeoRotation" -> { + val fRotationMatrix by matrix.meta.doubleArray() + rotate(fRotationMatrix) + } + "TGeoCombiTrans" -> { + val fTranslation by matrix.meta.doubleArray() + + translate(fTranslation) + if (matrix.meta["fRotationMatrix"] != null) { + val fRotationMatrix by matrix.meta.doubleArray() + rotate(fRotationMatrix) + } + } + "TGeoHMatrix" -> { + val fTranslation by matrix.meta.doubleArray() + val fRotationMatrix by matrix.meta.doubleArray() + val fScale by matrix.meta.doubleArray() + translate(fTranslation) + rotate(fRotationMatrix) + scale = Point3D(fScale[0], fScale[1], fScale[2]) + } + } +} + +private fun SolidGroup.addShape( + shape: DGeoShape, + context: RootToSolidContext, + name: String? = shape.fName.ifEmpty { null } +): Solid? = when (shape.typename) { + "TGeoCompositeShape" -> { + val fNode: DGeoBoolNode? by shape.dObject(::DGeoBoolNode) + val node = fNode ?: error("Composite shape node not resolved") + val compositeType = when (node.typename) { + "TGeoIntersection" -> CompositeType.INTERSECT + "TGeoSubtraction" -> CompositeType.SUBTRACT + "TGeoUnion" -> CompositeType.UNION + else -> error("Unknown bool node type ${node.typename}") + } + composite(compositeType, name = name) { + addShape(node.fLeft!!, context, "left").also { + if (it == null) TODO() + it.useMatrix(node.fLeftMat) + } + addShape(node.fRight!!, context, "right").also { + if (it == null) TODO() + it.useMatrix(node.fRightMat) + } + } + } + "TGeoXtru" -> { + val fNvert by shape.meta.int(0) + val fX by shape.meta.doubleArray() + val fY by shape.meta.doubleArray() + val fNz by shape.meta.int(0) + val fZ by shape.meta.doubleArray() + val fX0 by shape.meta.doubleArray() + val fY0 by shape.meta.doubleArray() + val fScale by shape.meta.doubleArray() + + extruded(name = name) { + (0 until fNvert).forEach { index -> + shape { + point(fX[index], fY[index]) + } + } + + (0 until fNz).forEach { index -> + layer( + fZ[index], + fX0[index], + fY0[index], + fScale[index] + ) + } + } + } + "TGeoTube" -> { + val fRmax by shape.meta.double(0.0) + val fDz by shape.meta.double(0.0) + val fRmin by shape.meta.double(0.0) + + tube( + radius = fRmax, + height = fDz * 2, + innerRadius = fRmin, + name = name + ) + } + "TGeoTubeSeg" -> { + val fRmax by shape.meta.double(0.0) + val fDz by shape.meta.double(0.0) + val fRmin by shape.meta.double(0.0) + val fPhi1 by shape.meta.double(0.0) + val fPhi2 by shape.meta.double(0.0) + + tube( + radius = fRmax, + height = fDz * 2, + innerRadius = fRmin, + startAngle = degToRad(fPhi1), + angle = degToRad(fPhi2 - fPhi1), + name = name + ) + } + "TGeoPcon" -> { + val fDphi by shape.meta.double(0.0) + val fNz by shape.meta.int(2) + val fPhi1 by shape.meta.double(360.0) + val fRmax by shape.meta.doubleArray() + val fRmin by shape.meta.doubleArray() + val fZ by shape.meta.doubleArray() + if (fNz == 2) { + coneSurface( + bottomOuterRadius = fRmax[0], + bottomInnerRadius = fRmin[0], + height = fZ[1] - fZ[0], + topOuterRadius = fRmax[1], + topInnerRadius = fRmin[1], + startAngle = degToRad(fPhi1), + angle = degToRad(fDphi), + name = name + ) { + z = (fZ[1] + fZ[0]) / 2 + } + } else { + TODO() + } + } + "TGeoPgon" -> { + val fDphi by shape.meta.double(0.0) + val fNz by shape.meta.int(2) + val fPhi1 by shape.meta.double(360.0) + val fRmax by shape.meta.doubleArray() + val fRmin by shape.meta.doubleArray() + val fZ by shape.meta.doubleArray() + + val fNedges by shape.meta.int(1) + + val startphi = degToRad(fPhi1) + val deltaphi = degToRad(fDphi) + + extruded(name) { + //getting the radius of first + require(fNz > 1) { "The polyhedron geometry requires at least two planes" } + val baseRadius = fRmax[0] + shape { + (0..fNedges).forEach { + val phi = deltaphi * fNedges * it + startphi + (baseRadius * cos(phi) to baseRadius * sin(phi)) + } + } + (0 until fNz).forEach { index -> + //scaling all radii relative to first layer radius + layer(fZ[index], scale = fRmax[index] / baseRadius) + } + } + } + "TGeoShapeAssembly" -> { + val fVolume by shape.dObject(::DGeoVolume) + fVolume?.let { volume -> + addRootVolume(volume, context) + } + } + "TGeoBBox" -> { + box(shape.fDX * 2, shape.fDY * 2, shape.fDZ * 2, name = name) + } + else -> { + TODO("A shape with type ${shape.typename} not implemented") + } +} + +private fun SolidGroup.addRootNode(obj: DGeoNode, context: RootToSolidContext) { + val volume = obj.fVolume ?: return + addRootVolume(volume, context, obj.fName).apply { + when (obj.typename) { + "TGeoNodeMatrix" -> { + val fMatrix by obj.dObject(::DGeoMatrix) + useMatrix(fMatrix) + } + "TGeoNodeOffset" -> { + val fOffset by obj.meta.double(0.0) + x = fOffset + } + } + } +} + +private fun buildGroup(volume: DGeoVolume, context: RootToSolidContext): SolidGroup = SolidGroup { + volume.fShape?.let { + addShape(it, context) + } + volume.fNodes.let { + it.forEach { node -> + addRootNode(node, context) + } + } +} + +//private val SolidGroup.rootPrototypes: SolidGroup get() = (parent as? SolidGroup)?.rootPrototypes ?: this + +private fun SolidGroup.addRootVolume( + volume: DGeoVolume, + context: RootToSolidContext, + name: String? = null, + cache: Boolean = true +): Solid { + val combinedName = if (volume.fName.isEmpty()) { + name + } else if (name == null) { + volume.fName + } else { + "${name}_${volume.fName}" + } + + return if (!cache) { + val group = buildGroup(volume, context) + set(combinedName?.let { Name.parse(it) }, group) + group + } else { + val templateName = volumesName + volume.name + val existing = getPrototype(templateName) + if (existing == null) { + context.prototypeHolder.prototypes { + set(templateName, buildGroup(volume, context)) + } + } + + return ref(templateName, name) + } +} + +public fun DGeoManager.toSolid(): SolidGroup = SolidGroup { + val context = RootToSolidContext(this) + fNodes.forEach { node -> + addRootNode(node, context) + } +} \ No newline at end of file diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootSchemeToSolid.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootSchemeToSolid.kt deleted file mode 100644 index 89849613..00000000 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootSchemeToSolid.kt +++ /dev/null @@ -1,217 +0,0 @@ -package ru.mipt.npm.root - -import space.kscience.dataforge.meta.* -import space.kscience.dataforge.names.Name -import space.kscience.dataforge.names.asName -import space.kscience.dataforge.names.plus -import space.kscience.visionforge.solid.* -import kotlin.math.PI -import kotlin.math.atan2 -import kotlin.math.pow -import kotlin.math.sqrt - -private val solidsName = "solids".asName() -private val volumesName = "volumes".asName() - -private operator fun Number.times(d: Double) = toDouble() * d - -private operator fun Number.times(f: Float) = toFloat() * f - -private fun degToRad(d: Double) = d * PI / 180.0 - -// converting to XYZ to Tait–Bryan angles according to https://en.wikipedia.org/wiki/Euler_angles#Rotation_matrix -private fun Solid.rotate(rot: DoubleArray) { - val xAngle = atan2(-rot[5], rot[8]) - val yAngle = atan2(rot[2], sqrt(1.0 - rot[2].pow(2))) - val zAngle = atan2(-rot[1], rot[0]) - rotation = Point3D(xAngle, yAngle, zAngle) -} - -private fun Solid.translate(trans: DoubleArray) { - val (x, y, z) = trans - position = Point3D(x, y, z) -} - -private fun Solid.useMatrix(matrix: TGeoMatrixScheme?) { - if (matrix == null) return - when (matrix.typename) { - "TGeoIdentity" -> { - //do nothing - } - "TGeoTranslation" -> { - val fTranslation by matrix.doubleArray() - translate(fTranslation) - } - "TGeoRotation" -> { - val fRotationMatrix by matrix.doubleArray() - rotate(fRotationMatrix) - } - "TGeoCombiTrans" -> { - val fTranslation by matrix.doubleArray() - - translate(fTranslation) - if (matrix.meta["fRotationMatrix"] != null) { - val fRotationMatrix by matrix.doubleArray() - rotate(fRotationMatrix) - } - } - "TGeoHMatrix" -> { - val fTranslation by matrix.doubleArray() - val fRotationMatrix by matrix.doubleArray() - val fScale by matrix.doubleArray() - translate(fTranslation) - rotate(fRotationMatrix) - scale = Point3D(fScale[0], fScale[1], fScale[2]) - } - } -} - -private fun SolidGroup.addShape(shape: TGeoShapeScheme, refCache: RefCache) { - when (shape.typename) { - "TGeoCompositeShape" -> { - val bool by shape.spec(TGeoBoolNodeScheme) - val compositeType = when (bool.typename) { - "TGeoIntersection" -> CompositeType.INTERSECT - "TGeoSubtraction" -> CompositeType.SUBTRACT - "TGeoUnion" -> CompositeType.UNION - else -> error("Unknown bool node type ${bool.typename}") - } - composite(compositeType, name = shape.fName) { - addShape(bool.fLeft.resolve(refCache)!!, refCache).apply { - useMatrix(bool.fLeftMat.resolve(refCache)) - } - addShape(bool.fRight.resolve(refCache)!!, refCache).apply { - useMatrix(bool.fRightMat.resolve(refCache)) - } - } - } - "TGeoXtru" -> { - val fNvert by shape.meta.int(0) - val fX by shape.meta.doubleArray() - val fY by shape.meta.doubleArray() - val fNz by shape.meta.int(0) - val fZ by shape.meta.doubleArray() - val fX0 by shape.meta.doubleArray() - val fY0 by shape.meta.doubleArray() - val fScale by shape.meta.doubleArray() - - extruded(name = shape.fName) { - (0 until fNvert).forEach { index -> - shape { - point(fX[index], fY[index]) - } - } - - (0 until fNz).forEach { index -> - layer( - fZ[index], - fX0[index], - fY0[index], - fScale[index] - ) - } - } - } - "TGeoTube" -> { - val fRmax by shape.meta.double(0.0) - val fDz by shape.meta.double(0.0) - val fRmin by shape.meta.double(0.0) - - tube( - radius = fRmax, - height = fDz * 2, - innerRadius = fRmin, - name = shape.fName - ) - } - "TGeoTubeSeg" -> { - val fRmax by shape.meta.double(0.0) - val fDz by shape.meta.double(0.0) - val fRmin by shape.meta.double(0.0) - val fPhi1 by shape.meta.double(0.0) - val fPhi2 by shape.meta.double(0.0) - - tube( - radius = fRmax, - height = fDz * 2, - innerRadius = fRmin, - startAngle = degToRad(fPhi1), - angle = degToRad(fPhi2 - fPhi1), - name = shape.fName - ) - } - "TGeoPcon" -> { - TODO() - } - "TGeoPgon" -> { - TODO() - } - "TGeoShapeAssembly" -> { - val fVolume by shape.refSpec(TGeoVolumeScheme) - volume(fVolume.resolve(refCache)!!, refCache) - } - "TGeoBBox" -> { - box(shape.fDX * 2, shape.fDY * 2, shape.fDZ * 2, name = shape.fName) - } - } -} - -private fun SolidGroup.node(obj: TGeoNodeScheme, refCache: RefCache) { - val volume = obj.fVolume.resolve(refCache) - if (volume != null) { - volume(volume, refCache, obj.fName).apply { - when (obj.typename) { - "TGeoNodeMatrix" -> { - val fMatrix by obj.refSpec(TGeoMatrixScheme) - useMatrix(fMatrix.resolve(refCache)) - } - "TGeoNodeOffset" -> { - val fOffset by obj.meta.double(0.0) - x = fOffset - } - } - } - } -} - -private fun buildGroup(volume: TGeoVolumeScheme, refCache: RefCache): SolidGroup = SolidGroup { - volume.fShape.resolve(refCache)?.let { addShape(it, refCache) } - volume.fNodes.let { - it.forEach { obj -> - node(obj.resolve(refCache)!!, refCache) - } - } -} - -private val SolidGroup.rootPrototypes: SolidGroup get() = (parent as? SolidGroup)?.rootPrototypes ?: this - -private fun SolidGroup.volume( - volume: TGeoVolumeScheme, - refCache: RefCache, - name: String? = null, - cache: Boolean = true -): Solid { - val group = buildGroup(volume, refCache) - val combinedName = if (volume.fName.isEmpty()) { - name - } else if (name == null) { - volume.fName - } else { - "${name}_${volume.fName}" - } - return if (!cache) { - set(combinedName?.let { Name.parse(it)},group) - group - } else newRef( - name = combinedName, - obj = group, - prototypeHolder = rootPrototypes, - templateName = volumesName + Name.parse(combinedName ?: "volume[${group.hashCode()}]") - ) -} - -public fun TGeoManagerScheme.toSolid(): SolidGroup = SolidGroup { - fNodes.forEach { - node(it.resolve(refCache)!!, refCache) - } -} \ No newline at end of file diff --git a/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt b/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt index fbd7482e..fdbcea6d 100644 --- a/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt +++ b/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt @@ -5,8 +5,14 @@ import kotlinx.serialization.json.JsonElement import kotlinx.serialization.json.JsonObject import kotlinx.serialization.json.jsonPrimitive import ru.mipt.npm.root.serialization.TGeoManager +import space.kscience.dataforge.meta.Meta +import space.kscience.dataforge.meta.get +import space.kscience.dataforge.meta.isLeaf +import space.kscience.dataforge.values.string import space.kscience.visionforge.solid.Solids +import java.nio.file.Paths import java.time.Duration +import kotlin.io.path.writeText import kotlin.system.measureTimeMillis private fun JsonElement.countTypes(): Sequence = sequence { @@ -25,14 +31,28 @@ private fun JsonElement.countTypes(): Sequence = sequence { } } +private fun Meta.countTypes() :Sequence = sequence { + if(!isLeaf){ + get("_typename")?.value?.let { yield(it.string) } + items.forEach { yieldAll(it.value.countTypes()) } + } +} + fun main() { val string = TGeoManager::class.java.getResourceAsStream("/BM@N.root.json")!! .readAllBytes().decodeToString() val time = measureTimeMillis { - val geo = TGeoManagerScheme.parse(string) + val geo = DGeoManager.parse(string) + + val sizes = geo.meta.countTypes().groupBy { it }.mapValues { it.value.size } + sizes.forEach { + println(it) + } + val solid = geo.toSolid() - println(Solids.encodeToString(solid)) + Paths.get("BM@N.vf.json").writeText(Solids.encodeToString(solid)) + //println(Solids.encodeToString(solid)) } // val json = Json.parseToJsonElement(string) diff --git a/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/Composite.kt b/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/Composite.kt index 9debf612..00db285c 100644 --- a/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/Composite.kt +++ b/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/Composite.kt @@ -5,6 +5,7 @@ import kotlinx.serialization.Serializable import space.kscience.dataforge.meta.update import space.kscience.visionforge.VisionBuilder import space.kscience.visionforge.VisionContainerBuilder +import space.kscience.visionforge.VisionPropertyContainer import space.kscience.visionforge.set public enum class CompositeType { @@ -20,7 +21,7 @@ public class Composite( public val compositeType: CompositeType, public val first: Solid, public val second: Solid, -) : SolidBase(), Solid +) : SolidBase(), VisionPropertyContainer @VisionBuilder public inline fun VisionContainerBuilder.composite( @@ -30,7 +31,7 @@ public inline fun VisionContainerBuilder.composite( ): Composite { val group = SolidGroup().apply(builder) val children = group.children.values.filterIsInstance() - if (children.size != 2) error("Composite requires exactly two children") + if (children.size != 2) error("Composite requires exactly two children, but found ${children.size}") val res = Composite(type, children[0], children[1]) res.meta.update(group.meta) diff --git a/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/SolidReference.kt b/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/SolidReference.kt index f58bcf8b..eeab05ff 100644 --- a/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/SolidReference.kt +++ b/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/SolidReference.kt @@ -165,7 +165,7 @@ public fun SolidGroup.ref( /** * Add new [SolidReferenceGroup] wrapping given object and automatically adding it to the prototypes. - * One must ensure that [prototypeHolder] is the owner of this group. + * One must ensure that [prototypeHolder] is a parent of this group. */ public fun SolidGroup.newRef( name: String?, -- 2.34.1 From 0ee14aa90e58a12f32a77e51c0f436525516bfa9 Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Sun, 5 Sep 2021 18:58:55 +0300 Subject: [PATCH 14/19] Minor fix to solid signatures --- .../kotlin/space/kscience/visionforge/solid/ConeSurface.kt | 3 ++- .../kotlin/space/kscience/visionforge/solid/Convex.kt | 3 ++- .../kotlin/space/kscience/visionforge/solid/PolyLine.kt | 7 ++----- .../kotlin/space/kscience/visionforge/solid/SolidLabel.kt | 3 ++- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/ConeSurface.kt b/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/ConeSurface.kt index a9c5622b..25f79ee8 100644 --- a/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/ConeSurface.kt +++ b/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/ConeSurface.kt @@ -4,6 +4,7 @@ import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import space.kscience.visionforge.VisionBuilder import space.kscience.visionforge.VisionContainerBuilder +import space.kscience.visionforge.VisionPropertyContainer import space.kscience.visionforge.set import kotlin.math.PI import kotlin.math.cos @@ -23,7 +24,7 @@ public class ConeSurface( public val topInnerRadius: Float, public val startAngle: Float = 0f, public val angle: Float = PI2, -) : SolidBase(), GeometrySolid { +) : SolidBase(), GeometrySolid, VisionPropertyContainer { init { require(bottomRadius > 0) { "Cone surface bottom radius must be positive" } diff --git a/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/Convex.kt b/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/Convex.kt index 2d242391..24d1ff16 100644 --- a/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/Convex.kt +++ b/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/Convex.kt @@ -3,11 +3,12 @@ package space.kscience.visionforge.solid import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import space.kscience.visionforge.VisionContainerBuilder +import space.kscience.visionforge.VisionPropertyContainer import space.kscience.visionforge.set @Serializable @SerialName("solid.convex") -public class Convex(public val points: List) : SolidBase(), Solid +public class Convex(public val points: List) : SolidBase(), VisionPropertyContainer public inline fun VisionContainerBuilder.convex(name: String? = null, action: ConvexBuilder.() -> Unit = {}): Convex = ConvexBuilder().apply(action).build().also { set(name, it) } diff --git a/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/PolyLine.kt b/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/PolyLine.kt index d8aa937c..05d58744 100644 --- a/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/PolyLine.kt +++ b/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/PolyLine.kt @@ -5,14 +5,11 @@ import kotlinx.serialization.Serializable import space.kscience.dataforge.names.Name import space.kscience.dataforge.names.asName import space.kscience.dataforge.names.plus -import space.kscience.visionforge.VisionBuilder -import space.kscience.visionforge.VisionContainerBuilder -import space.kscience.visionforge.numberProperty -import space.kscience.visionforge.set +import space.kscience.visionforge.* @Serializable @SerialName("solid.line") -public class PolyLine(public val points: List) : SolidBase(), Solid { +public class PolyLine(public val points: List) : SolidBase(), VisionPropertyContainer { //var lineType by string() public var thickness: Number by numberProperty(name = SolidMaterial.MATERIAL_KEY + THICKNESS_KEY) { 1.0 } diff --git a/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/SolidLabel.kt b/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/SolidLabel.kt index 3e725d0d..8cf27881 100644 --- a/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/SolidLabel.kt +++ b/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/SolidLabel.kt @@ -4,6 +4,7 @@ import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import space.kscience.visionforge.VisionBuilder import space.kscience.visionforge.VisionContainerBuilder +import space.kscience.visionforge.VisionPropertyContainer import space.kscience.visionforge.set @Serializable @@ -12,7 +13,7 @@ public class SolidLabel( public val text: String, public val fontSize: Double, public val fontFamily: String, -) : SolidBase(), Solid +) : SolidBase(), VisionPropertyContainer @VisionBuilder public fun VisionContainerBuilder.label( -- 2.34.1 From aea4eb7d45ae6ae39219a0fdec82c0419e295571 Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Sun, 5 Sep 2021 22:59:12 +0300 Subject: [PATCH 15/19] Hot fix for circular top volume reference --- .../kotlin/ru/mipt/npm/root/dRootToSolid.kt | 25 +++++++++++++------ .../visionforge/gdml/demo/GdmlFxDemoApp.kt | 1 - gradle.properties | 1 + .../kscience/visionforge/VisionGroupBase.kt | 2 +- .../kscience/visionforge/solid/FX3DPlugin.kt | 3 +++ .../kscience/visionforge/solid/Solids.kt | 1 + 6 files changed, 23 insertions(+), 10 deletions(-) diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/dRootToSolid.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/dRootToSolid.kt index 87422b97..582389e2 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/dRootToSolid.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/dRootToSolid.kt @@ -3,6 +3,7 @@ package ru.mipt.npm.root import space.kscience.dataforge.meta.double import space.kscience.dataforge.meta.get import space.kscience.dataforge.meta.int +import space.kscience.dataforge.meta.isEmpty import space.kscience.dataforge.names.Name import space.kscience.dataforge.names.plus import space.kscience.visionforge.solid.* @@ -228,15 +229,23 @@ private fun SolidGroup.addRootNode(obj: DGeoNode, context: RootToSolidContext) { } } -private fun buildGroup(volume: DGeoVolume, context: RootToSolidContext): SolidGroup = SolidGroup { - volume.fShape?.let { - addShape(it, context) - } - volume.fNodes.let { - it.forEach { node -> +private fun buildVolume(volume: DGeoVolume, context: RootToSolidContext): Solid { + val group = SolidGroup { + if(volume.fNodes.isEmpty()) { + //TODO add smart filter + volume.fShape?.let { shape -> + addShape(shape, context) + } + } + volume.fNodes.forEach { node -> addRootNode(node, context) } } + return if (group.children.size == 1 && group.meta.isEmpty()) { + (group.children.values.first() as Solid).apply { parent = null } + } else { + group + } } //private val SolidGroup.rootPrototypes: SolidGroup get() = (parent as? SolidGroup)?.rootPrototypes ?: this @@ -256,7 +265,7 @@ private fun SolidGroup.addRootVolume( } return if (!cache) { - val group = buildGroup(volume, context) + val group = buildVolume(volume, context) set(combinedName?.let { Name.parse(it) }, group) group } else { @@ -264,7 +273,7 @@ private fun SolidGroup.addRootVolume( val existing = getPrototype(templateName) if (existing == null) { context.prototypeHolder.prototypes { - set(templateName, buildGroup(volume, context)) + set(templateName, buildVolume(volume, context)) } } diff --git a/demo/gdml/src/jvmMain/kotlin/space/kscience/visionforge/gdml/demo/GdmlFxDemoApp.kt b/demo/gdml/src/jvmMain/kotlin/space/kscience/visionforge/gdml/demo/GdmlFxDemoApp.kt index f2371f44..83e750ba 100644 --- a/demo/gdml/src/jvmMain/kotlin/space/kscience/visionforge/gdml/demo/GdmlFxDemoApp.kt +++ b/demo/gdml/src/jvmMain/kotlin/space/kscience/visionforge/gdml/demo/GdmlFxDemoApp.kt @@ -21,7 +21,6 @@ class GDMLDemoApp : App(GDMLView::class) class GDMLView : View() { private val context = Context { plugin(FX3DPlugin) - plugin(VisionManager) } private val fx3d = context.fetch(FX3DPlugin) diff --git a/gradle.properties b/gradle.properties index 0ed8858a..24f28924 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,6 +2,7 @@ kotlin.code.style=official kotlin.mpp.stability.nowarn=true #kotlin.jupyter.add.scanner=false +kotlin.incremental.js.klib=false org.gradle.jvmargs=-XX:MaxMetaspaceSize=1G org.gradle.parallel=true \ No newline at end of file diff --git a/visionforge-core/src/commonMain/kotlin/space/kscience/visionforge/VisionGroupBase.kt b/visionforge-core/src/commonMain/kotlin/space/kscience/visionforge/VisionGroupBase.kt index 7280ae1f..d4af712d 100644 --- a/visionforge-core/src/commonMain/kotlin/space/kscience/visionforge/VisionGroupBase.kt +++ b/visionforge-core/src/commonMain/kotlin/space/kscience/visionforge/VisionGroupBase.kt @@ -76,7 +76,7 @@ public open class VisionGroupBase( * Set parent for given child and attach it */ private fun attachChild(token: NameToken, child: Vision?) { - val before = children[token] + val before = childrenInternal[token] when { child == null -> { childrenInternal.remove(token) diff --git a/visionforge-fx/src/main/kotlin/space/kscience/visionforge/solid/FX3DPlugin.kt b/visionforge-fx/src/main/kotlin/space/kscience/visionforge/solid/FX3DPlugin.kt index 9aed5d50..48f99ac1 100644 --- a/visionforge-fx/src/main/kotlin/space/kscience/visionforge/solid/FX3DPlugin.kt +++ b/visionforge-fx/src/main/kotlin/space/kscience/visionforge/solid/FX3DPlugin.kt @@ -27,6 +27,8 @@ import kotlin.reflect.KClass public class FX3DPlugin : AbstractPlugin() { override val tag: PluginTag get() = Companion.tag + public val solids: Solids by require(Solids) + private val objectFactories = HashMap, FX3DFactory<*>>() private val compositeFactory = FXCompositeFactory(this) private val referenceFactory = FXReferenceFactory(this) @@ -50,6 +52,7 @@ public class FX3DPlugin : AbstractPlugin() { is SolidGroup -> { Group(obj.children.mapNotNull { (token, obj) -> (obj as? Solid)?.let { + logger.info { token.toString() } buildNode(it).apply { properties["name"] = token.toString() } diff --git a/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/Solids.kt b/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/Solids.kt index ca83f00f..c5b9b04b 100644 --- a/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/Solids.kt +++ b/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/Solids.kt @@ -18,6 +18,7 @@ import kotlin.reflect.KClass public class Solids(meta: Meta) : VisionPlugin(meta) { override val tag: PluginTag get() = Companion.tag + override val visionSerializersModule: SerializersModule get() = serializersModuleForSolids public companion object : PluginFactory { -- 2.34.1 From 2e3b63c0f464fac2c7213726efa453c272409f5e Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Mon, 6 Sep 2021 22:48:03 +0300 Subject: [PATCH 16/19] Composite Union is replaced by a Group. Colors for root --- .../kotlin/ru/mipt/npm/root/DObject.kt | 2 + .../kotlin/ru/mipt/npm/root/dRootToSolid.kt | 26 +++-- .../kotlin/ru/mipt/npm/root/rootColor.kt | 42 +++++++ .../kotlin/ru/mipt/npm/root/loadBMN.kt | 72 ------------ demo/playground/build.gradle.kts | 1 + .../src/jvmMain/kotlin/rootParser.kt | 104 ++++++++++++++++++ .../jvmMain/resources/root}/BM@N.root.json | 0 .../visionforge/solid/FXCompositeFactory.kt | 2 +- .../kscience/visionforge/gdml/gdmlLoader.kt | 4 +- .../kscience/visionforge/solid/Composite.kt | 28 ++++- .../kscience/visionforge/solid/SolidGroup.kt | 4 +- visionforge-threejs/build.gradle.kts | 2 +- .../visionforge/solid/three/ThreeCanvas.kt | 22 ++-- .../solid/three/ThreeCompositeFactory.kt | 5 +- 14 files changed, 207 insertions(+), 107 deletions(-) create mode 100644 cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootColor.kt delete mode 100644 cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt create mode 100644 demo/playground/src/jvmMain/kotlin/rootParser.kt rename {cern-root-loader/src/commonTest/resources => demo/playground/src/jvmMain/resources/root}/BM@N.root.json (100%) diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/DObject.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/DObject.kt index 361e0ae2..e0933614 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/DObject.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/DObject.kt @@ -105,6 +105,8 @@ public class DGeoVolume(meta: Meta, refCache: DObjectCache) : DNamed(meta, refCa public val fShape: DGeoShape? by dObject(::DGeoShape) public val fMedium: DGeoMedium? by dObject(::DGeoMedium) + public val fFillColor: Int? by meta.int() + override val name: Name by lazy { Name.parse(fName.ifEmpty { "volume[${meta.hashCode().toUInt()}]" }) } } diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/dRootToSolid.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/dRootToSolid.kt index 582389e2..0fa40340 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/dRootToSolid.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/dRootToSolid.kt @@ -1,12 +1,11 @@ package ru.mipt.npm.root -import space.kscience.dataforge.meta.double -import space.kscience.dataforge.meta.get -import space.kscience.dataforge.meta.int -import space.kscience.dataforge.meta.isEmpty +import space.kscience.dataforge.meta.* import space.kscience.dataforge.names.Name import space.kscience.dataforge.names.plus +import space.kscience.dataforge.values.doubleArray import space.kscience.visionforge.solid.* +import space.kscience.visionforge.solid.SolidMaterial.Companion.MATERIAL_COLOR_KEY import kotlin.math.* private val volumesName = Name.EMPTY //"volumes".asName() @@ -50,9 +49,8 @@ private fun Solid.useMatrix(matrix: DGeoMatrix?) { val fTranslation by matrix.meta.doubleArray() translate(fTranslation) - if (matrix.meta["fRotationMatrix"] != null) { - val fRotationMatrix by matrix.meta.doubleArray() - rotate(fRotationMatrix) + matrix.meta["fRotation.fRotationMatrix"]?.value?.let { + rotate(it.doubleArray) } } "TGeoHMatrix" -> { @@ -77,15 +75,15 @@ private fun SolidGroup.addShape( val compositeType = when (node.typename) { "TGeoIntersection" -> CompositeType.INTERSECT "TGeoSubtraction" -> CompositeType.SUBTRACT - "TGeoUnion" -> CompositeType.UNION + "TGeoUnion" -> CompositeType.GROUP else -> error("Unknown bool node type ${node.typename}") } - composite(compositeType, name = name) { - addShape(node.fLeft!!, context, "left").also { + smartComposite(compositeType, name = name) { + addShape(node.fLeft!!, context, null).also { if (it == null) TODO() it.useMatrix(node.fLeftMat) } - addShape(node.fRight!!, context, "right").also { + addShape(node.fRight!!, context, null).also { if (it == null) TODO() it.useMatrix(node.fRightMat) } @@ -277,7 +275,11 @@ private fun SolidGroup.addRootVolume( } } - return ref(templateName, name) + ref(templateName, name) + }.apply { + volume.fFillColor?.let { + meta[MATERIAL_COLOR_KEY] = RootColors[it] + } } } diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootColor.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootColor.kt new file mode 100644 index 00000000..9ea9c040 --- /dev/null +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/rootColor.kt @@ -0,0 +1,42 @@ +package ru.mipt.npm.root + +public object RootColors { + private val colorMap = Array(924) { "white" } + + //colorMap[110] = "white" + + private val moreCol = listOf( + 11 to "c1b7ad4d4d4d6666668080809a9a9ab3b3b3cdcdcde6e6e6f3f3f3cdc8accdc8acc3c0a9bbb6a4b3a697b8a49cae9a8d9c8f83886657b1cfc885c3a48aa9a1839f8daebdc87b8f9a768a926983976e7b857d9ad280809caca6c0d4cf88dfbb88bd9f83c89a7dc08378cf5f61ac8f94a6787b946971d45a549300ff7b00ff6300ff4b00ff3300ff1b00ff0300ff0014ff002cff0044ff005cff0074ff008cff00a4ff00bcff00d4ff00ecff00fffd00ffe500ffcd00ffb500ff9d00ff8500ff6d00ff5500ff3d00ff2600ff0e0aff0022ff003aff0052ff006aff0082ff009aff00b1ff00c9ff00e1ff00f9ff00ffef00ffd700ffbf00ffa700ff8f00ff7700ff6000ff4800ff3000ff1800ff0000", + 201 to "5c5c5c7b7b7bb8b8b8d7d7d78a0f0fb81414ec4848f176760f8a0f14b81448ec4876f1760f0f8a1414b84848ec7676f18a8a0fb8b814ecec48f1f1768a0f8ab814b8ec48ecf176f10f8a8a14b8b848ecec76f1f1", + 390 to "ffffcdffff9acdcd9affff66cdcd669a9a66ffff33cdcd339a9a33666633ffff00cdcd009a9a00666600333300", + 406 to "cdffcd9aff9a9acd9a66ff6666cd66669a6633ff3333cd33339a3333663300ff0000cd00009a00006600003300", + 422 to "cdffff9affff9acdcd66ffff66cdcd669a9a33ffff33cdcd339a9a33666600ffff00cdcd009a9a006666003333", + 590 to "cdcdff9a9aff9a9acd6666ff6666cd66669a3333ff3333cd33339a3333660000ff0000cd00009a000066000033", + 606 to "ffcdffff9affcd9acdff66ffcd66cd9a669aff33ffcd33cd9a339a663366ff00ffcd00cd9a009a660066330033", + 622 to "ffcdcdff9a9acd9a9aff6666cd66669a6666ff3333cd33339a3333663333ff0000cd00009a0000660000330000", + 791 to "ffcd9acd9a669a66339a6600cd9a33ffcd66ff9a00ffcd33cd9a00ffcd00ff9a33cd66006633009a3300cd6633ff9a66ff6600ff6633cd3300ff33009aff3366cd00336600339a0066cd339aff6666ff0066ff3333cd0033ff00cdff9a9acd66669a33669a009acd33cdff669aff00cdff339acd00cdff009affcd66cd9a339a66009a6633cd9a66ffcd00ff6633ffcd00cd9a00ffcd33ff9a00cd66006633009a3333cd6666ff9a00ff9a33ff6600cd3300ff339acdff669acd33669a00339a3366cd669aff0066ff3366ff0033cd0033ff339aff0066cd00336600669a339acd66cdff009aff33cdff009acd00cdffcd9aff9a66cd66339a66009a9a33cdcd66ff9a00ffcd33ff9a00cdcd00ff9a33ff6600cd33006633009a6633cd9a66ff6600ff6633ff3300cd3300ffff339acd00666600339a0033cd3366ff669aff0066ff3366cd0033ff0033ff9acdcd669a9a33669a0066cd339aff66cdff009acd009aff33cdff009a", + 920 to "cdcdcd9a9a9a666666333333" + ) + + init { + colorMap[0] = "white" + colorMap[1] = "black" + colorMap[2] = "red" + colorMap[3] = "green" + colorMap[4] = "blue" + colorMap[5] = "yellow" + colorMap[6] = "magenta" + colorMap[7] = "cyan" + colorMap[8] = "rgb(89,212,84)" + colorMap[9] = "rgb(89,84,217)" + colorMap[10] = "white" + + moreCol.forEach { (n, s) -> + for (i in 0 until (s.length / 6)) { + colorMap[n + i] = "#" + s.substring(i * 6, (i + 1) * 6) + } + } + } + + public operator fun get(index: Int): String = colorMap[index] +} \ No newline at end of file diff --git a/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt b/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt deleted file mode 100644 index fdbcea6d..00000000 --- a/cern-root-loader/src/jvmTest/kotlin/ru/mipt/npm/root/loadBMN.kt +++ /dev/null @@ -1,72 +0,0 @@ -package ru.mipt.npm.root - -import kotlinx.serialization.json.JsonArray -import kotlinx.serialization.json.JsonElement -import kotlinx.serialization.json.JsonObject -import kotlinx.serialization.json.jsonPrimitive -import ru.mipt.npm.root.serialization.TGeoManager -import space.kscience.dataforge.meta.Meta -import space.kscience.dataforge.meta.get -import space.kscience.dataforge.meta.isLeaf -import space.kscience.dataforge.values.string -import space.kscience.visionforge.solid.Solids -import java.nio.file.Paths -import java.time.Duration -import kotlin.io.path.writeText -import kotlin.system.measureTimeMillis - -private fun JsonElement.countTypes(): Sequence = sequence { - when (val json = this@countTypes) { - is JsonObject -> { - json["_typename"]?.let { yield(it.jsonPrimitive.content) } - json.values.forEach { yieldAll(it.countTypes()) } - } - is JsonArray -> { - json.forEach { - yieldAll(it.countTypes()) - } - } - else -> { - } - } -} - -private fun Meta.countTypes() :Sequence = sequence { - if(!isLeaf){ - get("_typename")?.value?.let { yield(it.string) } - items.forEach { yieldAll(it.value.countTypes()) } - } -} - -fun main() { - val string = TGeoManager::class.java.getResourceAsStream("/BM@N.root.json")!! - .readAllBytes().decodeToString() - val time = measureTimeMillis { - val geo = DGeoManager.parse(string) - - val sizes = geo.meta.countTypes().groupBy { it }.mapValues { it.value.size } - sizes.forEach { - println(it) - } - - val solid = geo.toSolid() - - Paths.get("BM@N.vf.json").writeText(Solids.encodeToString(solid)) - //println(Solids.encodeToString(solid)) - } - -// val json = Json.parseToJsonElement(string) -// val sizes = json.countTypes().groupBy { it }.mapValues { it.value.size } -// sizes.forEach { -// println(it) -// } -// -// val time = measureTimeMillis { -// val geo = TObject.decodeFromString(TGeoManager.serializer(), string) -// val solid = geo.toSolid() -// -// println(Solids.encodeToString(solid)) -// } -// - println(Duration.ofMillis(time)) -} \ No newline at end of file diff --git a/demo/playground/build.gradle.kts b/demo/playground/build.gradle.kts index 515cb165..f06c209e 100644 --- a/demo/playground/build.gradle.kts +++ b/demo/playground/build.gradle.kts @@ -55,6 +55,7 @@ kotlin { api(project(":visionforge-gdml")) api(project(":visionforge-plotly")) api(projects.visionforge.visionforgeMarkdown) + api(projects.visionforge.cernRootLoader) } } diff --git a/demo/playground/src/jvmMain/kotlin/rootParser.kt b/demo/playground/src/jvmMain/kotlin/rootParser.kt new file mode 100644 index 00000000..e8995009 --- /dev/null +++ b/demo/playground/src/jvmMain/kotlin/rootParser.kt @@ -0,0 +1,104 @@ +package space.kscience.visionforge.examples + +import ru.mipt.npm.root.DGeoManager +import ru.mipt.npm.root.serialization.TGeoManager +import ru.mipt.npm.root.toSolid +import space.kscience.dataforge.context.Context +import space.kscience.dataforge.meta.Meta +import space.kscience.dataforge.meta.get +import space.kscience.dataforge.meta.isLeaf +import space.kscience.dataforge.values.string +import space.kscience.visionforge.solid.Solids + + +private fun Meta.countTypes(): Sequence = sequence { + if (!isLeaf) { + get("_typename")?.value?.let { yield(it.string) } + items.forEach { yieldAll(it.value.countTypes()) } + } +} + +fun main() { + val context = Context { + plugin(Solids) + } + + val string = TGeoManager::class.java.getResourceAsStream("/root/BM@N.root.json")!! + .readAllBytes().decodeToString() + + val geo = DGeoManager.parse(string) + + + val sizes = geo.meta.countTypes().groupBy { it }.mapValues { it.value.size } + sizes.forEach { + println(it) + } + + + val solid = geo.toSolid() + + //Paths.get("BM@N.vf.json").writeText(Solids.encodeToString(solid)) + //println(Solids.encodeToString(solid)) + + context.makeVisionFile { + vision("canvas") { + solid +/* SolidGroup { + set( + "Coil", + solid.getPrototype("Coil".asName())!!.apply { + parent = null + } + ) + *//* group("Shade") { + y = 200 + color("red") + coneSurface( + bottomOuterRadius = 135, + bottomInnerRadius = 25, + height = 50, + topOuterRadius = 135, + topInnerRadius = 25, + angle = 1.5707964 + ) { + position = Point3D(79.6, 0, -122.1) + rotation = Point3D(-1.5707964, 0, 0) + } + coneSurface( + bottomOuterRadius = 135, + bottomInnerRadius = 25, + height = 50, + topOuterRadius = 135, + topInnerRadius = 25, + angle = 1.5707964 + ) { + position = Point3D(-79.6, 0, -122.1) + rotation = Point3D(1.5707964, 0, -3.1415927) + } + coneSurface( + bottomOuterRadius = 135, + bottomInnerRadius = 25, + height = 50, + topOuterRadius = 135, + topInnerRadius = 25, + angle = 1.5707964 + ) { + position = Point3D(79.6, 0, 122.1) + rotation = Point3D(1.5707964, 0, 0) + } + coneSurface( + bottomOuterRadius = 135, + bottomInnerRadius = 25, + height = 50, + topOuterRadius = 135, + topInnerRadius = 25, + angle = 1.5707964 + ) { + position = Point3D(-79.6, 0, 122.1) + rotation = Point3D(-1.5707964, 0, -3.1415927) + } + }*//* + }*/ + } + } +} \ No newline at end of file diff --git a/cern-root-loader/src/commonTest/resources/BM@N.root.json b/demo/playground/src/jvmMain/resources/root/BM@N.root.json similarity index 100% rename from cern-root-loader/src/commonTest/resources/BM@N.root.json rename to demo/playground/src/jvmMain/resources/root/BM@N.root.json diff --git a/visionforge-fx/src/main/kotlin/space/kscience/visionforge/solid/FXCompositeFactory.kt b/visionforge-fx/src/main/kotlin/space/kscience/visionforge/solid/FXCompositeFactory.kt index 1cdcf914..588f15cf 100644 --- a/visionforge-fx/src/main/kotlin/space/kscience/visionforge/solid/FXCompositeFactory.kt +++ b/visionforge-fx/src/main/kotlin/space/kscience/visionforge/solid/FXCompositeFactory.kt @@ -48,7 +48,7 @@ public class FXCompositeFactory(public val plugin: FX3DPlugin) : FX3DFactory firstCSG.union(secondCSG) + CompositeType.GROUP, CompositeType.UNION -> firstCSG.union(secondCSG) CompositeType.INTERSECT -> firstCSG.intersect(secondCSG) CompositeType.SUBTRACT -> firstCSG.difference(secondCSG) } diff --git a/visionforge-gdml/src/commonMain/kotlin/space/kscience/visionforge/gdml/gdmlLoader.kt b/visionforge-gdml/src/commonMain/kotlin/space/kscience/visionforge/gdml/gdmlLoader.kt index 8eca342c..8d5ebd49 100644 --- a/visionforge-gdml/src/commonMain/kotlin/space/kscience/visionforge/gdml/gdmlLoader.kt +++ b/visionforge-gdml/src/commonMain/kotlin/space/kscience/visionforge/gdml/gdmlLoader.kt @@ -215,12 +215,12 @@ private class GdmlLoader(val settings: GdmlLoaderOptions) { val first: GdmlSolid = solid.first.resolve(root) ?: error("") val second: GdmlSolid = solid.second.resolve(root) ?: error("") val type: CompositeType = when (solid) { - is GdmlUnion -> CompositeType.SUM // dumb sum for better performance + is GdmlUnion -> CompositeType.GROUP // dumb sum for better performance is GdmlSubtraction -> CompositeType.SUBTRACT is GdmlIntersection -> CompositeType.INTERSECT } - return composite(type, name) { + return smartComposite(type, name) { addSolid(root, first).withPosition( solid.resolveFirstPosition(root), solid.resolveFirstRotation(root), diff --git a/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/Composite.kt b/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/Composite.kt index 00db285c..a68ff645 100644 --- a/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/Composite.kt +++ b/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/Composite.kt @@ -2,6 +2,7 @@ package space.kscience.visionforge.solid import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable +import space.kscience.dataforge.meta.isEmpty import space.kscience.dataforge.meta.update import space.kscience.visionforge.VisionBuilder import space.kscience.visionforge.VisionContainerBuilder @@ -9,7 +10,7 @@ import space.kscience.visionforge.VisionPropertyContainer import space.kscience.visionforge.set public enum class CompositeType { - SUM, // Dumb sum of meshes + GROUP, // Dumb sum of meshes UNION, //CSG union INTERSECT, SUBTRACT @@ -50,6 +51,31 @@ public inline fun VisionContainerBuilder.composite( return res } +/** + * A smart form of [Composite] that in case of [CompositeType.GROUP] creates a static group instead + */ +@VisionBuilder +public fun SolidGroup.smartComposite( + type: CompositeType, + name: String? = null, + builder: SolidGroup.() -> Unit, +): Solid = if (type == CompositeType.GROUP) { + val group = SolidGroup(builder) + if (name == null && group.meta.isEmpty()) { + //append directly to group if no properties are defined + group.children.forEach { (key, value) -> + value.parent = null + set(null, value) + } + this + } else { + set(name, group) + group + } +} else { + composite(type, name, builder) +} + @VisionBuilder public inline fun VisionContainerBuilder.union( name: String? = null, diff --git a/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/SolidGroup.kt b/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/SolidGroup.kt index ec6dd5f1..604aac01 100644 --- a/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/SolidGroup.kt +++ b/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/SolidGroup.kt @@ -82,8 +82,8 @@ public fun SolidGroup(block: SolidGroup.() -> Unit): SolidGroup { @VisionBuilder public fun VisionContainerBuilder.group( name: Name? = null, - action: SolidGroup.() -> Unit = {}, -): SolidGroup = SolidGroup().apply(action).also { set(name, it) } + builder: SolidGroup.() -> Unit = {}, +): SolidGroup = SolidGroup().apply(builder).also { set(name, it) } /** * Define a group with given [name], attach it to this parent and return it. diff --git a/visionforge-threejs/build.gradle.kts b/visionforge-threejs/build.gradle.kts index a6407d13..37b8772f 100644 --- a/visionforge-threejs/build.gradle.kts +++ b/visionforge-threejs/build.gradle.kts @@ -5,5 +5,5 @@ plugins { dependencies { api(project(":visionforge-solid")) implementation(npm("three", "0.130.1")) - implementation(npm("three-csg-ts", "3.1.6")) + implementation(npm("three-csg-ts", "3.1.9")) } diff --git a/visionforge-threejs/src/main/kotlin/space/kscience/visionforge/solid/three/ThreeCanvas.kt b/visionforge-threejs/src/main/kotlin/space/kscience/visionforge/solid/three/ThreeCanvas.kt index 3b5ae6ae..d715a20f 100644 --- a/visionforge-threejs/src/main/kotlin/space/kscience/visionforge/solid/three/ThreeCanvas.kt +++ b/visionforge-threejs/src/main/kotlin/space/kscience/visionforge/solid/three/ThreeCanvas.kt @@ -167,7 +167,7 @@ public class ThreeCanvas( } //Clipping planes - options.useProperty(Canvas3DOptions::clipping){clipping -> + options.useProperty(Canvas3DOptions::clipping) { clipping -> if (!clipping.meta.isEmpty()) { renderer.localClippingEnabled = true boundingBox?.let { boundingBox -> @@ -192,7 +192,7 @@ public class ThreeCanvas( } } - options.useProperty(Canvas3DOptions::size){ + options.useProperty(Canvas3DOptions::size) { canvas.style.apply { minWidth = "${options.size.minWith.toInt()}px" maxWidth = "${options.size.maxWith.toInt()}px" @@ -273,18 +273,14 @@ public class ThreeCanvas( return } if (this is Mesh) { - if (highlight) { - val edges = LineSegments( - EdgesGeometry(geometry), - material - ).apply { - name = edgesName - } - add(edges) - } else { - val highlightEdges = children.find { it.name == edgesName } - highlightEdges?.let { remove(it) } + val edges = getObjectByName(edgesName) ?: LineSegments( + EdgesGeometry(geometry), + material + ).also { + it.name = edgesName + add(it) } + edges.visible = highlight } else { children.filter { it.name != edgesName }.forEach { it.toggleHighlight(highlight, edgesName, material) diff --git a/visionforge-threejs/src/main/kotlin/space/kscience/visionforge/solid/three/ThreeCompositeFactory.kt b/visionforge-threejs/src/main/kotlin/space/kscience/visionforge/solid/three/ThreeCompositeFactory.kt index 5705459a..f57530b3 100644 --- a/visionforge-threejs/src/main/kotlin/space/kscience/visionforge/solid/three/ThreeCompositeFactory.kt +++ b/visionforge-threejs/src/main/kotlin/space/kscience/visionforge/solid/three/ThreeCompositeFactory.kt @@ -1,7 +1,6 @@ package space.kscience.visionforge.solid.three import CSG -import info.laht.threekt.core.Object3D import info.laht.threekt.objects.Mesh import space.kscience.dataforge.names.startsWith import space.kscience.visionforge.onPropertyChange @@ -38,11 +37,11 @@ public class ThreeCompositeFactory(public val three: ThreePlugin) : ThreeFactory override val type: KClass get() = Composite::class - override fun invoke(three: ThreePlugin, obj: Composite): Object3D { + override fun invoke(three: ThreePlugin, obj: Composite): Mesh { val first = three.buildObject3D(obj.first) as? Mesh ?: error("First part of composite is not a mesh") val second = three.buildObject3D(obj.second) as? Mesh ?: error("Second part of composite is not a mesh") return when (obj.compositeType) { - CompositeType.SUM, CompositeType.UNION -> CSG.union(first, second) + CompositeType.GROUP, CompositeType.UNION -> CSG.union(first, second) CompositeType.INTERSECT -> CSG.intersect(first, second) CompositeType.SUBTRACT -> CSG.subtract(first, second) }.apply { -- 2.34.1 From bdbe9402721e4b0fe49ac27472b1b558ebde56a0 Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Sat, 11 Sep 2021 14:26:21 +0300 Subject: [PATCH 17/19] Fixed issues with root importer --- build.gradle.kts | 2 +- .../kotlin/ru/mipt/npm/root/DObject.kt | 23 -- .../kotlin/ru/mipt/npm/root/dRootToSolid.kt | 326 ++++++++++-------- demo/muon-monitor/build.gradle.kts | 6 - .../src/jvmMain/kotlin/rootParser.kt | 13 +- gradle.properties | 2 +- .../kscience/visionforge/react/VisionTree.kt | 2 +- .../space/kscience/visionforge/VisionGroup.kt | 2 +- .../kscience/visionforge/html/headers.kt | 4 +- .../kscience/visionforge/solid/Hexagon.kt | 4 +- 10 files changed, 200 insertions(+), 184 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 20d1a1bd..1984e3d3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -16,7 +16,7 @@ allprojects { } group = "space.kscience" - version = "0.2.0-dev-23" + version = "0.2.0-dev-24" } subprojects { diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/DObject.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/DObject.kt index e0933614..712e1a4e 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/DObject.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/DObject.kt @@ -15,7 +15,6 @@ public fun MetaProvider.doubleArray( it?.doubleArray ?: doubleArrayOf(*default) } - public class DObjectCache(private val cache: List, public val refStack: List = emptyList()) { public operator fun get(index: Int): Meta = cache[index] @@ -25,28 +24,6 @@ public class DObjectCache(private val cache: List, public val refStack: Li public val empty: DObjectCache = DObjectCache(emptyList(), emptyList()) } } -// -//public interface ObjectRef { -// public fun resolve(): T? -//} - -//public class ChildObjectRef( -// public val builder: (Meta, DObjectCache) -> T, -// public val refCache: DObjectCache, -// public val metaProvider: () -> Meta? -//) : ObjectRef { -// override fun resolve(): T? { -// val meta = metaProvider() ?: return null -// meta["\$ref"]?.int?.let { refId -> -// if (refCache.refStack.contains(refId)) { -// println("Circular reference $refId in stack ${refCache.refStack}") -// return null -// } -// return builder(refCache[refId], refCache.stack(refId)) -// } -// return builder(meta, refCache) -// } -//} public open class DObject(public val meta: Meta, private val refCache: DObjectCache) { diff --git a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/dRootToSolid.kt b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/dRootToSolid.kt index 0fa40340..ed0b76fd 100644 --- a/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/dRootToSolid.kt +++ b/cern-root-loader/src/commonMain/kotlin/ru/mipt/npm/root/dRootToSolid.kt @@ -4,6 +4,7 @@ import space.kscience.dataforge.meta.* import space.kscience.dataforge.names.Name import space.kscience.dataforge.names.plus import space.kscience.dataforge.values.doubleArray +import space.kscience.visionforge.isEmpty import space.kscience.visionforge.solid.* import space.kscience.visionforge.solid.SolidMaterial.Companion.MATERIAL_COLOR_KEY import kotlin.math.* @@ -16,7 +17,16 @@ private operator fun Number.times(f: Float) = toFloat() * f private fun degToRad(d: Double) = d * PI / 180.0 -private class RootToSolidContext(val prototypeHolder: PrototypeHolder) +private class RootToSolidContext(val prototypeHolder: PrototypeHolder, val maxLayer: Int = 3) { + val layers: MutableList = mutableListOf(0) + + val layerLimits = listOf(10_000, 25_000, 50_000, 100_000, 200_000, 400_000, 600_000) + + val bottomLayer: Int get() = layers.size - 1 + fun addLayer() { + layers.add(0) + } +} // converting to XYZ to Tait–Bryan angles according to https://en.wikipedia.org/wiki/Euler_angles#Rotation_matrix private fun Solid.rotate(rot: DoubleArray) { @@ -67,157 +77,164 @@ private fun Solid.useMatrix(matrix: DGeoMatrix?) { private fun SolidGroup.addShape( shape: DGeoShape, context: RootToSolidContext, - name: String? = shape.fName.ifEmpty { null } -): Solid? = when (shape.typename) { - "TGeoCompositeShape" -> { - val fNode: DGeoBoolNode? by shape.dObject(::DGeoBoolNode) - val node = fNode ?: error("Composite shape node not resolved") - val compositeType = when (node.typename) { - "TGeoIntersection" -> CompositeType.INTERSECT - "TGeoSubtraction" -> CompositeType.SUBTRACT - "TGeoUnion" -> CompositeType.GROUP - else -> error("Unknown bool node type ${node.typename}") - } - smartComposite(compositeType, name = name) { - addShape(node.fLeft!!, context, null).also { - if (it == null) TODO() - it.useMatrix(node.fLeftMat) + name: String? = shape.fName.ifEmpty { null }, + block: Solid.() -> Unit = {} +) { + when (shape.typename) { + "TGeoCompositeShape" -> { + val fNode: DGeoBoolNode? by shape.dObject(::DGeoBoolNode) + val node = fNode ?: error("Composite shape node not resolved") + val compositeType = when (node.typename) { + "TGeoIntersection" -> CompositeType.INTERSECT + "TGeoSubtraction" -> CompositeType.SUBTRACT + "TGeoUnion" -> CompositeType.GROUP + else -> error("Unknown bool node type ${node.typename}") } - addShape(node.fRight!!, context, null).also { - if (it == null) TODO() - it.useMatrix(node.fRightMat) - } - } - } - "TGeoXtru" -> { - val fNvert by shape.meta.int(0) - val fX by shape.meta.doubleArray() - val fY by shape.meta.doubleArray() - val fNz by shape.meta.int(0) - val fZ by shape.meta.doubleArray() - val fX0 by shape.meta.doubleArray() - val fY0 by shape.meta.doubleArray() - val fScale by shape.meta.doubleArray() - - extruded(name = name) { - (0 until fNvert).forEach { index -> - shape { - point(fX[index], fY[index]) + smartComposite(compositeType, name = name) { + addShape(node.fLeft!!, context, null) { + this.useMatrix(node.fLeftMat) } - } - - (0 until fNz).forEach { index -> - layer( - fZ[index], - fX0[index], - fY0[index], - fScale[index] - ) - } + addShape(node.fRight!!, context, null) { + this.useMatrix(node.fRightMat) + } + }.apply(block) } - } - "TGeoTube" -> { - val fRmax by shape.meta.double(0.0) - val fDz by shape.meta.double(0.0) - val fRmin by shape.meta.double(0.0) + "TGeoXtru" -> { + val fNvert by shape.meta.int(0) + val fX by shape.meta.doubleArray() + val fY by shape.meta.doubleArray() + val fNz by shape.meta.int(0) + val fZ by shape.meta.doubleArray() + val fX0 by shape.meta.doubleArray() + val fY0 by shape.meta.doubleArray() + val fScale by shape.meta.doubleArray() - tube( - radius = fRmax, - height = fDz * 2, - innerRadius = fRmin, - name = name - ) - } - "TGeoTubeSeg" -> { - val fRmax by shape.meta.double(0.0) - val fDz by shape.meta.double(0.0) - val fRmin by shape.meta.double(0.0) - val fPhi1 by shape.meta.double(0.0) - val fPhi2 by shape.meta.double(0.0) + extruded(name = name) { + (0 until fNvert).forEach { index -> + shape { + point(fX[index], fY[index]) + } + } - tube( - radius = fRmax, - height = fDz * 2, - innerRadius = fRmin, - startAngle = degToRad(fPhi1), - angle = degToRad(fPhi2 - fPhi1), - name = name - ) - } - "TGeoPcon" -> { - val fDphi by shape.meta.double(0.0) - val fNz by shape.meta.int(2) - val fPhi1 by shape.meta.double(360.0) - val fRmax by shape.meta.doubleArray() - val fRmin by shape.meta.doubleArray() - val fZ by shape.meta.doubleArray() - if (fNz == 2) { - coneSurface( - bottomOuterRadius = fRmax[0], - bottomInnerRadius = fRmin[0], - height = fZ[1] - fZ[0], - topOuterRadius = fRmax[1], - topInnerRadius = fRmin[1], + (0 until fNz).forEach { index -> + layer( + fZ[index], + fX0[index], + fY0[index], + fScale[index] + ) + } + }.apply(block) + } + "TGeoTube" -> { + val fRmax by shape.meta.double(0.0) + val fDz by shape.meta.double(0.0) + val fRmin by shape.meta.double(0.0) + + tube( + radius = fRmax, + height = fDz * 2, + innerRadius = fRmin, + name = name, + block = block + ) + } + "TGeoTubeSeg" -> { + val fRmax by shape.meta.double(0.0) + val fDz by shape.meta.double(0.0) + val fRmin by shape.meta.double(0.0) + val fPhi1 by shape.meta.double(0.0) + val fPhi2 by shape.meta.double(0.0) + + tube( + radius = fRmax, + height = fDz * 2, + innerRadius = fRmin, startAngle = degToRad(fPhi1), - angle = degToRad(fDphi), - name = name - ) { - z = (fZ[1] + fZ[0]) / 2 - } - } else { - TODO() + angle = degToRad(fPhi2 - fPhi1), + name = name, + block = block + ) } - } - "TGeoPgon" -> { - val fDphi by shape.meta.double(0.0) - val fNz by shape.meta.int(2) - val fPhi1 by shape.meta.double(360.0) - val fRmax by shape.meta.doubleArray() - val fRmin by shape.meta.doubleArray() - val fZ by shape.meta.doubleArray() + "TGeoPcon" -> { + val fDphi by shape.meta.double(0.0) + val fNz by shape.meta.int(2) + val fPhi1 by shape.meta.double(360.0) + val fRmax by shape.meta.doubleArray() + val fRmin by shape.meta.doubleArray() + val fZ by shape.meta.doubleArray() + if (fNz == 2) { + coneSurface( + bottomOuterRadius = fRmax[0], + bottomInnerRadius = fRmin[0], + height = fZ[1] - fZ[0], + topOuterRadius = fRmax[1], + topInnerRadius = fRmin[1], + startAngle = degToRad(fPhi1), + angle = degToRad(fDphi), + name = name, + ) { + z = (fZ[1] + fZ[0]) / 2 - val fNedges by shape.meta.int(1) + }.apply(block) + } else { + TODO() + } + } + "TGeoPgon" -> { + val fDphi by shape.meta.double(0.0) + val fNz by shape.meta.int(2) + val fPhi1 by shape.meta.double(360.0) + val fRmax by shape.meta.doubleArray() + val fRmin by shape.meta.doubleArray() + val fZ by shape.meta.doubleArray() - val startphi = degToRad(fPhi1) - val deltaphi = degToRad(fDphi) + val fNedges by shape.meta.int(1) - extruded(name) { - //getting the radius of first - require(fNz > 1) { "The polyhedron geometry requires at least two planes" } - val baseRadius = fRmax[0] - shape { - (0..fNedges).forEach { - val phi = deltaphi * fNedges * it + startphi - (baseRadius * cos(phi) to baseRadius * sin(phi)) + val startphi = degToRad(fPhi1) + val deltaphi = degToRad(fDphi) + + extruded(name) { + //getting the radius of first + require(fNz > 1) { "The polyhedron geometry requires at least two planes" } + val baseRadius = fRmax[0] + shape { + (0..fNedges).forEach { + val phi = deltaphi * fNedges * it + startphi + (baseRadius * cos(phi) to baseRadius * sin(phi)) + } } - } - (0 until fNz).forEach { index -> - //scaling all radii relative to first layer radius - layer(fZ[index], scale = fRmax[index] / baseRadius) + (0 until fNz).forEach { index -> + //scaling all radii relative to first layer radius + layer(fZ[index], scale = fRmax[index] / baseRadius) + } + }.apply(block) + } + "TGeoShapeAssembly" -> { + val fVolume by shape.dObject(::DGeoVolume) + fVolume?.let { volume -> + addRootVolume(volume, context, block = block) } } - } - "TGeoShapeAssembly" -> { - val fVolume by shape.dObject(::DGeoVolume) - fVolume?.let { volume -> - addRootVolume(volume, context) + "TGeoBBox" -> { + box(shape.fDX * 2, shape.fDY * 2, shape.fDZ * 2, name = name, block = block) + } + else -> { + TODO("A shape with type ${shape.typename} not implemented") } - } - "TGeoBBox" -> { - box(shape.fDX * 2, shape.fDY * 2, shape.fDZ * 2, name = name) - } - else -> { - TODO("A shape with type ${shape.typename} not implemented") } } private fun SolidGroup.addRootNode(obj: DGeoNode, context: RootToSolidContext) { val volume = obj.fVolume ?: return - addRootVolume(volume, context, obj.fName).apply { + addRootVolume(volume, context, obj.fName) { + if (context.bottomLayer > 0) { + this.layer = context.bottomLayer + } when (obj.typename) { "TGeoNodeMatrix" -> { val fMatrix by obj.dObject(::DGeoMatrix) - useMatrix(fMatrix) + this.useMatrix(fMatrix) } "TGeoNodeOffset" -> { val fOffset by obj.meta.double(0.0) @@ -227,19 +244,29 @@ private fun SolidGroup.addRootNode(obj: DGeoNode, context: RootToSolidContext) { } } -private fun buildVolume(volume: DGeoVolume, context: RootToSolidContext): Solid { +private fun buildVolume(volume: DGeoVolume, context: RootToSolidContext): Solid? { val group = SolidGroup { - if(volume.fNodes.isEmpty()) { + val nodesNum = volume.fNodes.size + if (nodesNum == 0) { //TODO add smart filter volume.fShape?.let { shape -> addShape(shape, context) } } + val expectedLayerSize = context.layers.last() + nodesNum + //If expected number exceeds layer limit, move everything else to the bottom layer. + if (expectedLayerSize >= context.layerLimits[context.bottomLayer]) { + context.addLayer() + println("Adding new layer. Sizes after add: ${context.layers}") + } + context.layers[context.bottomLayer] += nodesNum volume.fNodes.forEach { node -> addRootNode(node, context) } } - return if (group.children.size == 1 && group.meta.isEmpty()) { + return if (group.isEmpty()) { + null + } else if (group.children.size == 1 && group.meta.isEmpty()) { (group.children.values.first() as Solid).apply { parent = null } } else { group @@ -252,8 +279,15 @@ private fun SolidGroup.addRootVolume( volume: DGeoVolume, context: RootToSolidContext, name: String? = null, - cache: Boolean = true -): Solid { + cache: Boolean = true, + block: Solid.() -> Unit = {} +) { + //skip if maximum layer number is reached + if (context.bottomLayer > context.maxLayer){ + println("Maximum layer depth reached. Skipping ${volume.fName}") + return + } + val combinedName = if (volume.fName.isEmpty()) { name } else if (name == null) { @@ -262,23 +296,29 @@ private fun SolidGroup.addRootVolume( "${name}_${volume.fName}" } - return if (!cache) { - val group = buildVolume(volume, context) + if (!cache) { + val group = buildVolume(volume, context)?.apply { + volume.fFillColor?.let { + meta[MATERIAL_COLOR_KEY] = RootColors[it] + } + block() + } set(combinedName?.let { Name.parse(it) }, group) - group } else { val templateName = volumesName + volume.name val existing = getPrototype(templateName) if (existing == null) { context.prototypeHolder.prototypes { - set(templateName, buildVolume(volume, context)) + val group = buildVolume(volume, context) + set(templateName, group) } } - ref(templateName, name) - }.apply { - volume.fFillColor?.let { - meta[MATERIAL_COLOR_KEY] = RootColors[it] + ref(templateName, name).apply { + volume.fFillColor?.let { + meta[MATERIAL_COLOR_KEY] = RootColors[it] + } + block() } } } diff --git a/demo/muon-monitor/build.gradle.kts b/demo/muon-monitor/build.gradle.kts index 3818cada..a7bf2709 100644 --- a/demo/muon-monitor/build.gradle.kts +++ b/demo/muon-monitor/build.gradle.kts @@ -65,12 +65,6 @@ application { mainClass.set("ru.mipt.npm.muon.monitor.server.MMServerKt") } -tasks.withType() { - kotlinOptions { - freeCompilerArgs = freeCompilerArgs + "-Xir-property-lazy-initialization" - } -} - //distributions { // main { // contents { diff --git a/demo/playground/src/jvmMain/kotlin/rootParser.kt b/demo/playground/src/jvmMain/kotlin/rootParser.kt index e8995009..16e1b3fe 100644 --- a/demo/playground/src/jvmMain/kotlin/rootParser.kt +++ b/demo/playground/src/jvmMain/kotlin/rootParser.kt @@ -9,6 +9,8 @@ import space.kscience.dataforge.meta.get import space.kscience.dataforge.meta.isLeaf import space.kscience.dataforge.values.string import space.kscience.visionforge.solid.Solids +import java.nio.file.Paths +import kotlin.io.path.writeText private fun Meta.countTypes(): Sequence = sequence { @@ -37,12 +39,18 @@ fun main() { val solid = geo.toSolid() - //Paths.get("BM@N.vf.json").writeText(Solids.encodeToString(solid)) + Paths.get("BM@N.vf.json").writeText(Solids.encodeToString(solid)) //println(Solids.encodeToString(solid)) context.makeVisionFile { vision("canvas") { solid + } + } +} + + + /* SolidGroup { set( "Coil", @@ -99,6 +107,3 @@ fun main() { } }*//* }*/ - } - } -} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 24f28924..a1def2dd 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ kotlin.code.style=official kotlin.mpp.stability.nowarn=true #kotlin.jupyter.add.scanner=false -kotlin.incremental.js.klib=false +#kotlin.incremental.js.klib=false org.gradle.jvmargs=-XX:MaxMetaspaceSize=1G org.gradle.parallel=true \ No newline at end of file diff --git a/ui/react/src/main/kotlin/space/kscience/visionforge/react/VisionTree.kt b/ui/react/src/main/kotlin/space/kscience/visionforge/react/VisionTree.kt index 6be045d6..d746e14a 100644 --- a/ui/react/src/main/kotlin/space/kscience/visionforge/react/VisionTree.kt +++ b/ui/react/src/main/kotlin/space/kscience/visionforge/react/VisionTree.kt @@ -83,7 +83,7 @@ private fun RBuilder.visionTree(props: ObjectTreeProps): Unit { } obj.children.entries .filter { !it.key.toString().startsWith("@") } // ignore statics and other hidden children - .sortedBy { (it.value as? VisionGroup)?.isEmpty ?: true } // ignore empty groups + .sortedBy { (it.value as? VisionGroup)?.isEmpty() ?: true } // ignore empty groups .forEach { (childToken, child) -> styledDiv { css { diff --git a/visionforge-core/src/commonMain/kotlin/space/kscience/visionforge/VisionGroup.kt b/visionforge-core/src/commonMain/kotlin/space/kscience/visionforge/VisionGroup.kt index 12fe243b..a8ad1dcd 100644 --- a/visionforge-core/src/commonMain/kotlin/space/kscience/visionforge/VisionGroup.kt +++ b/visionforge-core/src/commonMain/kotlin/space/kscience/visionforge/VisionGroup.kt @@ -63,7 +63,7 @@ public interface VisionGroup : Provider, Vision, VisionContainer { */ public operator fun VisionGroup.iterator(): Iterator = children.values.iterator() -public val VisionGroup.isEmpty: Boolean get() = this.children.isEmpty() +public fun VisionGroup.isEmpty(): Boolean = this.children.isEmpty() public interface VisionContainerBuilder { //TODO add documentation diff --git a/visionforge-core/src/jvmMain/kotlin/space/kscience/visionforge/html/headers.kt b/visionforge-core/src/jvmMain/kotlin/space/kscience/visionforge/html/headers.kt index ffe35cc7..9837c60a 100644 --- a/visionforge-core/src/jvmMain/kotlin/space/kscience/visionforge/html/headers.kt +++ b/visionforge-core/src/jvmMain/kotlin/space/kscience/visionforge/html/headers.kt @@ -67,8 +67,8 @@ internal fun checkOrStoreFile(htmlPath: Path, filePath: Path, resource: String): if (!skip) { logger.debug("File $fullPath does not exist or wrong checksum. Writing file") Files.createDirectories(fullPath.parent) - Files.write(fullPath, bytes, StandardOpenOption.CREATE, StandardOpenOption.WRITE) - Files.write(md5File, checksum.encodeToByteArray(), StandardOpenOption.CREATE, StandardOpenOption.WRITE) + Files.write(fullPath, bytes, StandardOpenOption.CREATE,StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.WRITE) + Files.write(md5File, checksum.encodeToByteArray(), StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.WRITE) } return if (htmlPath.isAbsolute && fullPath.startsWith(htmlPath.parent)) { diff --git a/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/Hexagon.kt b/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/Hexagon.kt index baced452..7f42a3eb 100644 --- a/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/Hexagon.kt +++ b/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/Hexagon.kt @@ -57,8 +57,8 @@ public inline fun VisionContainerBuilder.box( ySize: Number, zSize: Number, name: String? = null, - action: Box.() -> Unit = {}, -): Box = Box(xSize.toFloat(), ySize.toFloat(), zSize.toFloat()).apply(action).also { set(name, it) } + block: Box.() -> Unit = {}, +): Box = Box(xSize.toFloat(), ySize.toFloat(), zSize.toFloat()).apply(block).also { set(name, it) } @Serializable @SerialName("solid.hexagon") -- 2.34.1 From d131dc49abad5f48a88c39d83b87bfdf8ea66ec2 Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Sat, 11 Sep 2021 15:24:52 +0300 Subject: [PATCH 18/19] Removed KApt --- .../src/main/kotlin/VisionForgePlayGroundForJupyter.kt | 2 -- gradle.properties | 2 +- jupyter/visionforge-gdml-jupyter/build.gradle.kts | 6 +++++- .../src/jvmMain/kotlin/GdmlForJupyter.kt | 2 -- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/demo/jupyter-playground/src/main/kotlin/VisionForgePlayGroundForJupyter.kt b/demo/jupyter-playground/src/main/kotlin/VisionForgePlayGroundForJupyter.kt index 12426672..5ada35ec 100644 --- a/demo/jupyter-playground/src/main/kotlin/VisionForgePlayGroundForJupyter.kt +++ b/demo/jupyter-playground/src/main/kotlin/VisionForgePlayGroundForJupyter.kt @@ -6,7 +6,6 @@ import kotlinx.html.script import kotlinx.html.stream.createHTML import kotlinx.html.unsafe import org.jetbrains.kotlinx.jupyter.api.HTML -import org.jetbrains.kotlinx.jupyter.api.annotations.JupyterLibrary import org.jetbrains.kotlinx.jupyter.api.libraries.* import space.kscience.dataforge.context.Context import space.kscience.dataforge.misc.DFExperimental @@ -22,7 +21,6 @@ import space.kscience.visionforge.plotly.asVision import space.kscience.visionforge.solid.Solids import space.kscience.visionforge.visionManager -@JupyterLibrary @DFExperimental public class VisionForgePlayGroundForJupyter : JupyterIntegration() { diff --git a/gradle.properties b/gradle.properties index a1def2dd..d472c5ef 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ kotlin.code.style=official kotlin.mpp.stability.nowarn=true -#kotlin.jupyter.add.scanner=false +kotlin.jupyter.add.scanner=false #kotlin.incremental.js.klib=false org.gradle.jvmargs=-XX:MaxMetaspaceSize=1G diff --git a/jupyter/visionforge-gdml-jupyter/build.gradle.kts b/jupyter/visionforge-gdml-jupyter/build.gradle.kts index 896b44a4..6c1d7c43 100644 --- a/jupyter/visionforge-gdml-jupyter/build.gradle.kts +++ b/jupyter/visionforge-gdml-jupyter/build.gradle.kts @@ -56,4 +56,8 @@ kscience { readme { maturity = ru.mipt.npm.gradle.Maturity.EXPERIMENTAL -} \ No newline at end of file +} + +tasks.named("processJupyterApiResources") { + libraryProducers = listOf("space.kscience.visionforge.gdml.jupyter.GdmlForJupyter") +} diff --git a/jupyter/visionforge-gdml-jupyter/src/jvmMain/kotlin/GdmlForJupyter.kt b/jupyter/visionforge-gdml-jupyter/src/jvmMain/kotlin/GdmlForJupyter.kt index 0b12d3fb..ce32f012 100644 --- a/jupyter/visionforge-gdml-jupyter/src/jvmMain/kotlin/GdmlForJupyter.kt +++ b/jupyter/visionforge-gdml-jupyter/src/jvmMain/kotlin/GdmlForJupyter.kt @@ -2,7 +2,6 @@ package space.kscience.visionforge.gdml.jupyter import kotlinx.html.stream.createHTML import org.jetbrains.kotlinx.jupyter.api.HTML -import org.jetbrains.kotlinx.jupyter.api.annotations.JupyterLibrary import org.jetbrains.kotlinx.jupyter.api.libraries.JupyterIntegration import org.jetbrains.kotlinx.jupyter.api.libraries.resources import space.kscience.dataforge.context.Context @@ -16,7 +15,6 @@ import space.kscience.visionforge.html.embedAndRenderVisionFragment import space.kscience.visionforge.solid.Solids import space.kscience.visionforge.visionManager -@JupyterLibrary @DFExperimental internal class GdmlForJupyter : JupyterIntegration() { -- 2.34.1 From 42eb0a6f6614024a851ac2dacd38d95ebe9ae8fa Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Sat, 11 Sep 2021 18:50:59 +0300 Subject: [PATCH 19/19] Revert dumb composite for GDML --- .../kotlin/space/kscience/visionforge/gdml/gdmlLoader.kt | 2 +- .../kotlin/space/kscience/visionforge/solid/Composite.kt | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/visionforge-gdml/src/commonMain/kotlin/space/kscience/visionforge/gdml/gdmlLoader.kt b/visionforge-gdml/src/commonMain/kotlin/space/kscience/visionforge/gdml/gdmlLoader.kt index 8d5ebd49..2d3da074 100644 --- a/visionforge-gdml/src/commonMain/kotlin/space/kscience/visionforge/gdml/gdmlLoader.kt +++ b/visionforge-gdml/src/commonMain/kotlin/space/kscience/visionforge/gdml/gdmlLoader.kt @@ -215,7 +215,7 @@ private class GdmlLoader(val settings: GdmlLoaderOptions) { val first: GdmlSolid = solid.first.resolve(root) ?: error("") val second: GdmlSolid = solid.second.resolve(root) ?: error("") val type: CompositeType = when (solid) { - is GdmlUnion -> CompositeType.GROUP // dumb sum for better performance + is GdmlUnion -> CompositeType.UNION // dumb sum for better performance is GdmlSubtraction -> CompositeType.SUBTRACT is GdmlIntersection -> CompositeType.INTERSECT } diff --git a/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/Composite.kt b/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/Composite.kt index a68ff645..ecbb4177 100644 --- a/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/Composite.kt +++ b/visionforge-solid/src/commonMain/kotlin/space/kscience/visionforge/solid/Composite.kt @@ -32,7 +32,9 @@ public inline fun VisionContainerBuilder.composite( ): Composite { val group = SolidGroup().apply(builder) val children = group.children.values.filterIsInstance() - if (children.size != 2) error("Composite requires exactly two children, but found ${children.size}") + if (children.size != 2){ + error("Composite requires exactly two children, but found ${children.size}") + } val res = Composite(type, children[0], children[1]) res.meta.update(group.meta) -- 2.34.1