Residual and Pull plots (HowTo)

Under:
Sti has a nice utility for providing Pull and residual plots for all detectors. The chain option is "StiPulls". The resulting ntuple is written to the .tag.root file.

Among other things, the ntuple stores the (position of the hit - position of the track) in the variables ending in "Pull". It should be noted that the variable contains this difference (or residual), and NOT the difference scaled by the error. This is left for the user. There are several branches of the pulls tree; one for global tracks, one for primary tracks, and one filled only during the outside-in pass of tracking.

The outside-in pass is stored in the branch mHitsR, as described in Victor's post. The information stored here is the residual between hit and track positions, before the hit is added to the track. This information is useful for evaluating the progresion of the track error as the tracker steps in toward the vertex. It's also essential for those of us trying to evaluate potential detector configurations.

So, to evaluate the track residual, on can simply use the root command prompt:

root> StiPulls->Draw("mHitsR.lYPul>>residual","mHitsR.lXHit<5. && mHitsR.lXHit>2.2")

This will give you a histogram "residual" which has residuals in &phi for hits from the inner HFT only ( 2.2cm< inner HFT < 5.cm). One can also use the detector id, which is also stored in the tree.

For residuals as a function of Pt, one can try:
root> StiPulls->Draw("mHitsR.lYPul:mHitsR.mPt>>residualPt","mHitsR.lXHit<5. && mHitsR.lXHit>2.2")
root>residualPt->FitSlicesY()
root>residualPt_2->Draw()
This gives you a plot comparable to the pointing resolutions derived in Jim's hand calculations.


This page is a compilation of posts to the ittf hypernews list (Victor's original post, Mike's requested changes, and Victor's response), as well as documents provided by the STAR S&C group (StiPullEvent, StiPullHit, and StiStEventFiller).