Download presentation
Presentation is loading. Please wait.
Published byBertram Richards Modified over 6 years ago
1
Intra-Tower Tracker Alignment Instrument Analysis Workshop 4
Gamma-ray Large Area Space Telescope Intra-Tower Tracker Alignment Michael Kuss INFN Pisa Instrument Analysis Workshop 4 SLAC 15 July 2005
2
Towers … the ideal tower the real tower a rotation a horizontal shift a vertical shift
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? What does it not 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
Residual r->DrawResidual(”X5”, ”abs(h_abs-h_abs_ext)<1”)
horizontal displacement: 59m
8
Residuals vs. slope (horizontal and vertical alignment)
r->DrawResSlope(”Y9”, ”abs(h_abs-h_abs_ext)<1&&abs(invSlope)<1”) X4 X3 X2 X1 X0 real position ideal res = x + z · cot(θ) θ horizontal displacement: 157m vertical displacement: 81m Aligns: horizontal ( to strips) vertical
9
Residuals vs. slope of track (all planes)
r->DrawResSlopeAll()
10
Residuals vs. position in other view
r->DrawResOrd(”Y9”, ”abs(h_abs-h_abs_ext)<1”) Y, real position Y, ideal position X horizontal displacement: 65m rotation around z: 0.54mrad
11
Residuals vs. position in other view (all planes)
r->DrawResOrdAll() r->DrawResOrdCorr(”Y9”) 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) ∑posh2 min. (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
absolute position / mm deviation / um plane #0 #1 #2 #3 #4 avg #0-avg #1-avg #2-avg #3-avg #4-avg Y0 42.610 42.581 42.587 42.612 42.605 42.599 11 -18 -12 13 6 X0 44.710 44.702 44.692 44.701 44.689 44.699 3 -7 2 -10 X1 74.402 74.383 74.373 74.394 74.377 74.386 16 -3 -13 8 -9 Y1 76.751 76.743 76.749 76.753 76.750 -6 4 1 Y2 X2 7 X3 -4 Y3 -2 -5 Y4 -11 15 X4 X5 Y5 Y6 X6 -1 X7 -14 Y7 Y8 5 X8 12 X9 -8 Y9 Y10 X10 X11 Y11 Y12 X12 X13 Y13 Y14 X14 X15 Y15 Y16 X16 X17 10 -15 9 Y17 STDEV:
24
Reproducibility: horizontal
absolute position / mm deviation / um plane #0 #1 #2 #3 #4 avg #0-avg #1-avg #2-avg #3-avg #4-avg Y0 -0.064 -0.062 -0.054 -0.051 -0.053 -0.057 -7 -5 3 6 4 X0 -0.068 -0.072 -0.076 -0.070 -4 2 X1 -0.089 -0.087 -0.097 -0.092 5 Y1 -0.067 -2 1 Y2 -0.023 -0.025 -0.024 -1 X2 0.129 0.134 0.125 0.128 X3 0.124 0.126 0.122 Y3 0.153 0.147 0.149 0.148 Y4 0.151 0.150 -3 X4 0.132 0.133 0.130 X5 0.115 0.114 0.119 0.117 0.120 Y5 -0.078 -0.077 -0.080 -0.081 -0.082 Y6 -0.042 -0.040 -0.046 -0.047 -0.044 X6 -0.090 -0.086 X7 -0.075 -0.084 Y7 -0.052 -0.048 -0.055 Y8 -0.032 -0.031 -0.035 -0.033 X8 -0.071 -0.069 X9 -0.119 -0.121 -0.115 -0.118 -0.117 Y9 0.111 0.106 0.109 0.112 Y10 0.142 0.144 0.141 0.143 X10 -0.083 -0.085 X11 -0.108 -0.105 -0.102 -0.107 -0.104 Y11 -0.106 Y12 X12 0.045 0.043 0.046 X13 0.035 0.034 0.037 Y13 -0.018 -0.016 -0.015 -0.019 -0.017 Y14 -0.026 -0.029 X14 0.016 0.011 0.013 0.014 X15 0.005 0.004 0.000 0.002 0.003 Y15 0.017 0.019 0.018 Y16 0.023 0.025 0.024 X16 0.072 0.074 0.066 0.071 X17 0.041 0.038 0.036 Y17 0.020 STDEV:
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 SOLVED 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 SOLVED 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
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
There is no way to correct the vertical scale from data!
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.