- General information
- Data readiness
- Calibration
- BeamLine Constraint
- Calibration Run preparation
- Calibration Schedules
- Calibration topics by dataset
- Docs
- STAR Automated Calibration Project
- SVT Calibrations
- TPC Calibrations
- Drift velocity
- Enter TPC gains into database
- Field Cage Shorts
- Miscellaneous TPC calibration notes
- Padrow 13 and Padrow 40 static distortions
- RunXI dE/dx calibration recipe
- SpaceCharge and GridLeak
- TPC Hit Errors
- TPC OmegaTau
- TPC Sector Alignment
- TPC Slewing
- TPC T0s
- TPC de/dx
- TPC survey instructions
- Twist (ExB) Distortion
- Databases
- Quality Assurance
- Calibration
- Grid and Cloud
- Infrastructure
- Machine Learning
- Offline Software
- Production
- S&C internal group meetings
- Test tree
TPC Slewing
Updated on Fri, 2009-12-18 14:46. Originally created by genevb on 2009-12-18 14:40.
Under:
Slewing was first First look at TPC slewing with the new TPX electronics. It was not seen in Run 8 data using the older TPC electronics.
Run 10 will have new pulse shaping in place for the TPX electronics and it remains to be seen whether slewing corrections are needed.
__________________
A simple How-To Guide:
The "StiPulls" chain option for BFC produces a TTree in the tags.root files. That TTree contains residuals of hits on tracks, as well as the hits' charge. So it is a simple matter of examining the residual in the Z direction, converted to time, versus hit charge.
At this time, no documentation on StiPulls exists, but suffice it to say that mHitsG are hits on global tracks, and mHitsP are hits on primary tracks. For primary tracks, mVertex is the index (ordered by highest rank first) of the primary vertex for a primary track, or the primary vertex of the primary partner for a global track (0 indicates no primary partner). This is particularly useful to reduce pile-up contributions. Primary tracks will see residuals which have contributions from any errors in the position of the primary vertex, so global track hits were used in Run 9 analyses.
Included here are some TTreeFormulas useful for doing this analysis. Note that knowing the drift velocity is pertinent in converting Z residuals into time residuals.
StiPulls = new TChain("StiPulls") StiPulls->Add("*.tags.root") StiPulls.Draw("mHitsG.lXHit","","",1); Float DV = 5.51231; // needs to be adjusted for the dataset of interest //_______________________________________________________ TString s1,s2; TTreeFormula* f1; s1 = "((mHitsG.mHardwarePosition-(mHitsG.mHardwarePosition%16))/16)%32"; s2 = "sector()"; f1 = new TTreeFormula(s2.Data(),s1.Data(),StiPulls); gROOT->GetListOfFunctions()->Add(f1); s1 = "((mHitsG.mHardwarePosition-(mHitsG.mHardwarePosition%512))/512)%64"; s2 = "padrow()"; f1 = new TTreeFormula(s2.Data(),s1.Data(),StiPulls); gROOT->GetListOfFunctions()->Add(f1); s1 = "(mHitsG.lYFit-mHitsG.lYHit)"; s2 = "resid()"; f1 = new TTreeFormula(s2.Data(),s1.Data(),StiPulls); gROOT->GetListOfFunctions()->Add(f1); s1 = "(mHitsG.lZFit-mHitsG.lZHit)"; s2 = "residZ()"; f1 = new TTreeFormula(s2.Data(),s1.Data(),StiPulls); gROOT->GetListOfFunctions()->Add(f1); s1 = Form("((mHitsG.lZFit-mHitsG.lZHit)*sign(mHitsG.lZHit)/%f)",DV); s2 = "residT()"; f1 = new TTreeFormula(s2.Data(),s1.Data(),StiPulls); gROOT->GetListOfFunctions()->Add(f1); TCut cutQA = "mHitsG.mPt>0.5&&mHitsG.mPt<10&&mHitsG.nTpcHits>=35"; TCut cutBestVtx = "mHitsG.mVertex==1" TCut cutEta = "abs(mHitsG.lDip)<0.87"; // |eta| < 1 TCut cutSectEdge = "abs(atan(mHitsG.lYHit/mHitsG.lXHit))<0.2"; TCut cutBadZ = "mHitsG.lZHit*(sector()-12.5)<0"; StiPulls.Draw("residT():1./sqrt(mHitsG.mCharge)","","prof");
Keep in mind that inner TPC hits are different from outer TPC hits (different pads and hit errors, perhaps even different anode voltages) and should be examined separately.
»
- Printer-friendly version
- Login or register to post comments