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

Functions

def cmp (a, b)
 
def extrapolateToPlane (fT, z)
 

Variables

int minNdf = 20
 
ROOT parallelToZ = ROOT.TVector3(0.0, 0.0, 1.0)
 
ROOT top = ROOT.gGeoManager.GetTopVolume()
 
ROOT z_ecal = top.GetNode("SplitCalDetector_1").GetMatrix().GetTranslation()[2]
 
 else :
 

Function Documentation

◆ cmp()

def TrackExtrapolateTool.cmp (   a,
  b 
)

Definition at line 8 of file TrackExtrapolateTool.py.

8def cmp(a, b):
9 return (a > b) - (a < b)
10
11

◆ extrapolateToPlane()

def TrackExtrapolateTool.extrapolateToPlane (   fT,
  z 
)

Definition at line 22 of file TrackExtrapolateTool.py.

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

Variable Documentation

◆ else

TrackExtrapolateTool.else :

Definition at line 17 of file TrackExtrapolateTool.py.

◆ minNdf

int TrackExtrapolateTool.minNdf = 20

Definition at line 12 of file TrackExtrapolateTool.py.

◆ parallelToZ

ROOT TrackExtrapolateTool.parallelToZ = ROOT.TVector3(0.0, 0.0, 1.0)

Definition at line 13 of file TrackExtrapolateTool.py.

◆ top

ROOT TrackExtrapolateTool.top = ROOT.gGeoManager.GetTopVolume()

Definition at line 14 of file TrackExtrapolateTool.py.

◆ z_ecal

int TrackExtrapolateTool.z_ecal = top.GetNode("SplitCalDetector_1").GetMatrix().GetTranslation()[2]

Definition at line 16 of file TrackExtrapolateTool.py.