5 fGeo = ROOT.gGeoManager
6 top = fGeo.GetTopVolume()
8 muDetector = top.FindNode(
"volNuTauMudet_1")
9 muDetectorTrans = muSpectrometer.GetMatrix().GetTranslation()
12 yokes = [
"volUpYoke_1",
"volLowYoke_1",
"volArm2Mudet_1"]
13 vols = [
"volFeYoke_1",
"volFeYoke_2",
"volFeYoke1_1",
"volFeYoke_3",
"volFeYoke_4",
"volIron_12",
"volIron_23"]
16 for anode
in muSpectrometer.GetNodes():
17 if anode.GetName()
in yokes:
18 aTrans = anode.GetMatrix().GetTranslation()
19 for bnode
in anode.GetNodes():
20 if bnode.GetName()
in vols:
21 bTrans = bnode.GetMatrix().GetTranslation()
22 nm = anode.GetName()+
'/'+bnode.GetName()
23 dVec[nm] = ROOT.TVector3()
25 for k
in range(3): x.append(aTrans[k]+bTrans[k]+muSpectrometerTrans[k])
26 dVec[nm].SetXYZ(x[0],x[1],x[2])
27 sbnode = bnode.GetVolume().GetShape()
28 box[nm]=ROOT.TVector3(sbnode.GetDX(),sbnode.GetDY(),sbnode.GetDZ())
29 print(
"Debug muonSpectro ",nm,dVec[nm],box[nm])
30 length = dVec[
"volArm2Mudet_1/volIron_23"].Z()-dVec[
"volArm2Mudet_1/volIron_12"].Z()
31 zpos = ( dVec[
"volArm2Mudet_1/volIron_12"].Z()+dVec[
"volArm2Mudet_1/volIron_23"].Z() )/2.
32 box[
"volArm2Mudet_1/volIron_12-23"] = ROOT.TVector3(box[
"volArm2Mudet_1/volIron_12"].X(),box[
"volArm2Mudet_1/volIron_12"].Y(),length)
33 dVec[
"volArm2Mudet_1/volIron_12-23"] = ROOT.TVector3(0,0,zpos)
34 rc = box.pop(
"volArm2Mudet_1/volIron_23")
35 rc = box.pop(
"volArm2Mudet_1/volIron_12")
38 print(
'%50s %6.2F %6.2F %6.2F %5.2F %7.2F %7.2F '%(aVol,box[aVol].X(),box[aVol].Y(),box[aVol].Z(),dVec[aVol].X(),dVec[aVol].Y(),dVec[aVol].Z()))
41 GenieGen.AddBox(dVec[aVol],box[aVol])