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

Functions

 extrapolateToPlane (fT, z)
 

Variables

int minNdf = 20
 
 parallelToZ = ROOT.TVector3(0., 0., 1.)
 
 top = ROOT.gGeoManager.GetTopVolume()
 
 z_ecal = 100*u.m
 

Function Documentation

◆ extrapolateToPlane()

TrackExtrapolateTool.extrapolateToPlane (   fT,
  z 
)

Definition at line 15 of file TrackExtrapolateTool.py.

15def extrapolateToPlane(fT,z):
16# etrapolate to a plane perpendicular to beam direction (z)
17 rc,pos,mom = False,None,None
18 fst = fT.getFitStatus()
19 if fst.isFitConverged() and fst.getNdf() > minNdf:
20# test for fit status for each point
21 if fT.getPoint(0).getFitterInfo() and fT.getPoint(1).getFitterInfo():
22 fstate0,fstate1 = fT.getFittedState(0),fT.getFittedState(1)
23 fPos0,fPos1 = fstate0.getPos(),fstate1.getPos()
24 if abs(z-fPos0.z()) < abs(z-fPos1.z()): fstate = fstate0
25 else: fstate = fstate1
26 zs = min(z,z_ecal)
27 NewPosition = ROOT.TVector3(0., 0., zs)
28 rep = ROOT.genfit.RKTrackRep(13*cmp(fstate.getPDG(),0) )
29 state = ROOT.genfit.StateOnPlane(rep)
30 pos,mom = fstate.getPos(),fstate.getMom()
31 rep.setPosMom(state,pos,mom)
32 try:
33 rep.extrapolateToPlane(state, NewPosition, parallelToZ )
34 pos,mom = state.getPos(),state.getMom()
35 rc = True
36 except:
37 # print 'error with extrapolation: z=',z/u.m,'m',pos.X(),pos.Y(),pos.Z(),mom.X(),mom.Y(),mom.Z()
38 pass
39 if not rc or z>z_ecal:
40 # use linear extrapolation
41 px,py,pz = mom.X(),mom.Y(),mom.Z()
42 lam = (z-pos.Z())/pz
43 pos = ROOT.TVector3( pos.X()+lam*px, pos.Y()+lam*py, z )
44 return rc,pos,mom

Variable Documentation

◆ minNdf

int TrackExtrapolateTool.minNdf = 20

Definition at line 7 of file TrackExtrapolateTool.py.

◆ parallelToZ

TrackExtrapolateTool.parallelToZ = ROOT.TVector3(0., 0., 1.)

Definition at line 8 of file TrackExtrapolateTool.py.

◆ top

TrackExtrapolateTool.top = ROOT.gGeoManager.GetTopVolume()

Definition at line 9 of file TrackExtrapolateTool.py.

◆ z_ecal

int TrackExtrapolateTool.z_ecal = 100*u.m

Definition at line 10 of file TrackExtrapolateTool.py.