SND@LHC Software
Loading...
Searching...
No Matches
configGenieGenerator Namespace Reference

Functions

 config (GenieGen)
 

Function Documentation

◆ config()

configGenieGenerator.config (   GenieGen)

Definition at line 4 of file configGenieGenerator.py.

4def config(GenieGen):
5 fGeo = ROOT.gGeoManager
6 top = fGeo.GetTopVolume()
7# positions for nu events inside the nutau detector volume
8 muDetector = top.FindNode("volNuTauMudet_1")
9 muDetectorTrans = muSpectrometer.GetMatrix().GetTranslation()
10# upper and lower yokes:
11# volFeYoke_1, volFeYoke_2, volFeYoke1_1 (in UpYoke) and volFeYoke_3, volFeYoke_4, volFeYoke1_1 (in LowYoke).
12 yokes = ["volUpYoke_1","volLowYoke_1","volArm2Mudet_1"]
13 vols = ["volFeYoke_1", "volFeYoke_2", "volFeYoke1_1","volFeYoke_3", "volFeYoke_4","volIron_12","volIron_23"]
14 dVec = {}
15 box = {}
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()
24 x = []
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")
36 if GenieGen=='debug':
37 for aVol in box:
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()))
39 else:
40 for aVol in box:
41 GenieGen.AddBox(dVec[aVol],box[aVol])