103 def fiducialCheck(self,aPoint):
104 nav = ROOT.gGeoManager.GetCurrentNavigator()
105 phi = 0.
106 nSteps = 36
107 delPhi = 2.*ROOT.TMath.Pi()/nSteps
108 distmin = 1E10
109 nav.SetCurrentPoint(aPoint.x(),aPoint.y(),aPoint.z())
110 cNode = 'outside'
111 aNode = nav.FindNode()
112 if aNode: cNode = aNode.GetName()
113 if cNode != 'T2decayVol_0' and cNode != 'T1decayVol_0':
114 distmin = 0.
115 else:
116 for n in range(nSteps):
117
118 xDir = ROOT.TMath.Sin(phi)
119 yDir = ROOT.TMath.Cos(phi)
120 nav.SetCurrentPoint(aPoint.x(),aPoint.y(),aPoint.z())
121 cNode = nav.FindNode().GetName()
122 nav.SetCurrentDirection(xDir,yDir,0.)
123 rc = nav.FindNextBoundaryAndStep()
124 x,y = nav.GetCurrentPoint()[0],nav.GetCurrentPoint()[1]
125 if cNode != nav.GetCurrentNode().GetName():
126 dist = ROOT.TMath.Sqrt( (aPoint.x()-x)**2 + (aPoint.y()-y)**2)
127 if dist < distmin : distmin = dist
128 phi+=delPhi
129
130 nav.cd("/Tr1_1")
131 shape = nav.GetCurrentNode().GetVolume().GetShape()
132 origin = array('d',[0,0,shape.GetDZ()])
133 master = array('d',[0,0,0])
134 nav.LocalToMaster(origin,master)
135 dist = master[2] - aPoint.z()
136 if dist < distmin : distmin = dist
137
138 nav.cd("/Veto_5")
139 shape = nav.GetCurrentNode().GetVolume().GetShape()
140 origin = array('d',[0,0,shape.GetDZ()])
141 master = array('d',[0,0,0])
142 nav.LocalToMaster(origin,master)
143 dist = aPoint.z() - master[2]
144 return distmin
145
146
147
148
149
150
151
152
153