300 likes | 426 Vues
This workshop report presents the analysis conducted on the alignment techniques of the Intra-Tower Tracker for the Gamma-ray Large Area Space Telescope. Key steps include addressing horizontal and vertical shifts, as well as rotations inherent in the telescopic structure. The Residual class is utilized for precise alignment, employing statistical methods to correct for systematic errors. The procedure outlines iterative methods to maximize alignment accuracy based on extensive event data processing and fitting techniques, leading to optimal performance of the tracking planes.
E N D
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 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="");
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
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.
horizontal displacement: 59m Residual r->DrawResidual(”X5”, ”abs(h_abs-h_abs_ext)<1”)
r->DrawResSlope(”Y9”, ”abs(h_abs-h_abs_ext)<1&&abs(invSlope)<1”) real position θ X4 X3 X2 X1 X0 horizontal displacement: 157m vertical displacement: 81m ideal position res = x + z · cot(θ) Residuals vs. slope (horizontal and vertical alignment) Aligns: • horizontal ( to strips) • vertical
Residuals vs. slope of track (all planes) r->DrawResSlopeAll()
horizontal displacement: 65m 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”)
Residuals vs. position in other view (all planes) r->DrawResOrdCorr(”Y9”) r->DrawResOrdAll() res_x%y res_x-p0-y*p1%y
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
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)
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
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
Translation Intra-tower alignment: absolute position of a single tower is ambiguous Inter-tower alignment: tracks passing tower gaps fix the relative positions SOLVED
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
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
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