1 / 30

Gamma-ray Large Area Space Telescope

Gamma-ray Large Area Space Telescope. Intra-Tower Tracker Alignment Michael Kuss INFN Pisa Instrument Analysis Workshop 4 SLAC 15 July 2005. the ideal tower. a horizontal shift. a vertical shift. a rotation. the real tower. Towers …. Class Residual.

dillon
Download Presentation

Gamma-ray Large Area Space Telescope

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Gamma-ray Large Area Space Telescope Intra-Tower Tracker Alignment Michael Kuss INFN Pisa Instrument Analysis Workshop 4 SLAC 15 July 2005

  2. the ideal tower a horizontal shift a vertical shift a rotation the real tower Towers …

  3. Class Residual Class Residual is used for alignment: Residual(const TString="MyRootFile.root", const TString="residual.root", const TString geo=""); ~Residual() { delete myEvent; delete myTracker; } void Go(int lastEntry=-1); // general for DrawXxx: residual is h_abs - h_abs_ext // *********** // draws the residual, top without fitting, bottom with gauss fit void DrawResidual(TString plane, TCut=""); // draws top the slope vs. residual, bottom the profile with pol1 fit void DrawResSlope(TString plane, TCut=""); // draws top the other coordinate vs. residual, bottom profile with pol1 fit void DrawResOrd(TString plane, TCut=""); // draws the slope profiles for all planes void DrawResSlopeAll(TCut="abs(h_abs_ext-h_abs)<1"); // draws the ordinate profiles for all planes void DrawResOrdAll(TCut="abs(h_abs_ext-h_abs)<1"); // attempt to do a "statistical" (not event be event) correction of rotZ of // planes. 2x3 histograms. Left uncorrected, right rotZ corrected. Top // ordinate vs. residual, middle profile of that, bottom residual. void DrawResOrdCorr(TString plane, TCut="");

  4. What does it do? • aligns planes horizontally, along the measured coordinate • aligns planes vertically • does an estimate of the rotation around z • What does it not do? • doesn’t align planes horizontally, parallel to the strips • doesn’t determine rotations around x and y

  5. General Procedure user> source cmt/setup.sh user> rh9_gcc32opt/runTreeMaker.exe digi.root recon.root ”” tree.root user> root root [0] .x compile.C root [1] Residual* r = new Residual(”tree.root”,”res.root”,”geo.txt”) … opens tree.root for reading, res.root for writing, and reads the geometry from geo.root. root [2] r->Go() ... reads events from the tree file. Fits a straight tracks, discarding the clusters of both planes of the tray to which the plane to be studied belongs. For each cluster(!), fills a small tree with • plane name • measured horizontal position of cluster (vertical to the strips) • measured vertical position of cluster (i.e., elevation of the plane) • extrapolated horizontal position of cluster vertical to the strips (track fit) • extrapolated horizontal position of cluster parallel to the strips (track fit in the other view) • inverse slope of track and saves the small tree in the residual file. root [3] r->Draw...() // e.g. r->DrawResSlopeAll() utilizes one of the Draw... methods. And saves a new geometry to disk.

  6. selecting tracks

  7. horizontal displacement: 59m Residual r->DrawResidual(”X5”, ”abs(h_abs-h_abs_ext)<1”)

  8. r->DrawResSlope(”Y9”, ”abs(h_abs-h_abs_ext)<1&&abs(invSlope)<1”) real position θ X4 X3 X2 X1 X0 horizontal displacement: 157m vertical displacement: 81m ideal position res = x + z · cot(θ) Residuals vs. slope (horizontal and vertical alignment) Aligns: • horizontal ( to strips) • vertical

  9. Residuals vs. slope of track (all planes) r->DrawResSlopeAll()

  10. horizontal displacement: 65m rotation around z: 0.54mrad X Y, ideal position Y, real position Residuals vs. position in other view r->DrawResOrd(”Y9”, ”abs(h_abs-h_abs_ext)<1”)

  11. Residuals vs. position in other view (all planes) r->DrawResOrdCorr(”Y9”) r->DrawResOrdAll() res_x%y res_x-p0-y*p1%y

  12. Alignment results

  13. How To Align • Alignment is an iterative process. • Before RA v8r3p1: • run with 10k events till convergence • run with 20k events till convergence • run with 50k events till convergence • run with 100k events till convergence • initially, convergence was defined as maximum deviation of any parameter of two consecutive geometries to be less than 10μm (but not more than 5 iterations) • 1 iteration for 100k events takes about 1h CPU • Since RA v8r3p1: • run with 100k events till “real” convergence • “reaI” convergence is achieved if a geometry repeats (but not more than 50 iterations) • 1 iteration for 100k events takes about 6 min CPU • result is “perfect” geometry

  14. Alignment: 1st try

  15. Intra-Tower Alignment Blindness • Attention • Intra-tower alignment is blind versus: • translation • shearing • vertical scaling (horizontal is fixed by strip dimensions) • rotation • translation of the planes of one view vs. the other • rotation of the planes of one view vs. the other After every iteration, separately in each view, I “correct” for: • ∑posh = 0 (horizontal translation) • ∑posh2min. (shearing) • ∑(posv-posv,ref) = 0 (vertical translation) • ∑(posv-posv,ref)2 min. (vertical scaling) • ∑rotz = 0 (rotation around z)

  16. Alignment: 3rd try

  17. 1st 100k

  18. 1st 100k

  19. 2nd 100k

  20. 3rd 100k

  21. 4th 100k

  22. 5th 100k

  23. Reproducibility: vertical

  24. Reproducibility: horizontal

  25. The Future of LeaningTower • can only analyze single tower runs • introduces ambiguities for the resulting geometry • doesn’t iterate on rotations • people don’t like it anyway  merge with AlignmentContainer

  26. Intra-Tower Alignment Blindness (revisited) • Intra-tower alignment is blind versus: • translation • shearing • vertical scaling (horizontal is fixed by strip dimensions) • rotation • translation of the planes of one view vs. the other • rotation of the planes of one view vs. the other

  27. Translation Intra-tower alignment: absolute position of a single tower is ambiguous Inter-tower alignment: tracks passing tower gaps fix the relative positions SOLVED

  28. Rotation Intra-tower alignment: rotation of a single tower with respect to some coordinate system is ambiguous Inter-tower alignment: tracks passing tower gaps fix the rotation of one tower vs. the others SOLVED

  29. Shearing • There is no way to correct for shearing from data! • Metrology measurements? • Average over all towers? • Do we care? 50μm vs 554mm for a perpendicular track = 0.1 mrad

  30. Vertical Scaling • There is no way to correct the vertical scale from data! • Metrology measurements? • Average over all towers? • Do we care? 70μm vs 554mm for a 45° track = 0.1 mrad

More Related