FairShip
Loading...
Searching...
No Matches
configGenieGenerator Namespace Reference

Functions

def config (GenieGen)
 

Function Documentation

◆ config()

def configGenieGenerator.config (   GenieGen)

Definition at line 8 of file configGenieGenerator.py.

8def config(GenieGen):
9 fGeo = ROOT.gGeoManager
10 top = fGeo.GetTopVolume()
11 # positions for nu events inside the nutau detector volume
12 muSpectrometer = top.FindNode("volNuTauMudet_1")
13 muSpectrometerTrans = muSpectrometer.GetMatrix().GetTranslation()
14 # upper and lower yokes:
15 # volFeYoke_1, volFeYoke_2, volFeYoke1_1 (in UpYoke) and volFeYoke_3, volFeYoke_4, volFeYoke1_1 (in LowYoke).
16 yokes = ["volUpYoke_1", "volLowYoke_1", "volArm2Mudet_1"]
17 vols = ["volFeYoke_1", "volFeYoke_2", "volFeYoke1_1", "volFeYoke_3", "volFeYoke_4", "volIron_12", "volIron_23"]
18 dVec = {}
19 box = {}
20 for anode in muSpectrometer.GetNodes():
21 if anode.GetName() in yokes:
22 aTrans = anode.GetMatrix().GetTranslation()
23 for bnode in anode.GetNodes():
24 if bnode.GetName() in vols:
25 bTrans = bnode.GetMatrix().GetTranslation()
26 nm = anode.GetName() + "/" + bnode.GetName()
27 dVec[nm] = ROOT.TVector3()
28 x = []
29 for k in range(3):
30 x.append(aTrans[k] + bTrans[k] + muSpectrometerTrans[k])
31 dVec[nm].SetXYZ(x[0], x[1], x[2])
32 sbnode = bnode.GetVolume().GetShape()
33 box[nm] = ROOT.TVector3(sbnode.GetDX(), sbnode.GetDY(), sbnode.GetDZ())
34 print("Debug muonSpectro ", nm, dVec[nm], box[nm])
35 length = dVec["volArm2Mudet_1/volIron_23"].Z() - dVec["volArm2Mudet_1/volIron_12"].Z()
36 zpos = (dVec["volArm2Mudet_1/volIron_12"].Z() + dVec["volArm2Mudet_1/volIron_23"].Z()) / 2.0
37 box["volArm2Mudet_1/volIron_12-23"] = ROOT.TVector3(
38 box["volArm2Mudet_1/volIron_12"].X(), box["volArm2Mudet_1/volIron_12"].Y(), length
39 )
40 dVec["volArm2Mudet_1/volIron_12-23"] = ROOT.TVector3(0, 0, zpos)
41 box.pop("volArm2Mudet_1/volIron_23")
42 box.pop("volArm2Mudet_1/volIron_12")
43 if GenieGen == "debug":
44 for aVol in box:
45 print(
46 "%50s %6.2F %6.2F %6.2F %5.2F %7.2F %7.2F "
47 % (aVol, box[aVol].X(), box[aVol].Y(), box[aVol].Z(), dVec[aVol].X(), dVec[aVol].Y(), dVec[aVol].Z())
48 )
49 else:
50 for aVol in box:
51 GenieGen.AddBox(dVec[aVol], box[aVol])