Difference between revisions of "CDC B field"
(→The plan) |
(→Radial field) |
||
Line 392: | Line 392: | ||
{| border="0" cellpadding="2" | {| border="0" cellpadding="2" | ||
|+Drift time difference due to radial field | |+Drift time difference due to radial field | ||
− | |[[Image:cdc_Bx_dtmap.png|thumb|x400px|Drift time difference (ns) due to Bx for 1350A]] | + | |[[Image:cdc_Bx_dtmap.png|thumb|x400px|Drift time difference (ns) due to Bx for 1350A at max drift time]] |
+ | |[[Image:cdc_Bx_dtmax_map.png|thumb|x400px|Max drift time difference (ns) due to Bx for 1350A]] | ||
|} | |} | ||
− | |||
=== Drift time correction (1) === | === Drift time correction (1) === |
Revision as of 11:02, 28 May 2014
Contents
B field in CDC volume
CDC volume occupies z=17 to 167 and r=10 to 60
At large drift radius, change in B field of 0.1T causes change in drift time of ~ 5ns. This would cause approx 30um error in drift radius. Resolution in 0T is 80um-100um at large drift radius.
Plan:
- measure drift time, r, z
- find B field at r, z
- use time-diff function(B) to calculate what drift time would be in 1.3T
- use garfield tables for 1.3T to find drift distance
Finding drift time difference wrt 1.3T
Max error between fitted function and time difference is 5.5ns at radius 7.6mm in 1.5T dataset
Finding drift time difference wrt 1.3T (more data)
Repeated the above with more datasets
Max error using one fit f(B,driftradius) for all curves is 2.4ns at 7.6mm for 1.7T
Param 0 fit status 0 function 10.72 + -19.17x + 10.68x^2 + -1.74x^3 Param 1 fit status 0 function 9.88 + -8.22x + 2.06x^2 1.35T Global fit av abs err 0.4ns max abs err -1.2ns at radius 5.8mm 1.40T Global fit av abs err 0.2ns max abs err -0.5ns at radius 4.5mm 1.45T Global fit av abs err 0.3ns max abs err 2.0ns at radius 7.6mm 1.50T Global fit av abs err 0.3ns max abs err 0.6ns at radius 2.4mm 1.55T Global fit av abs err 0.4ns max abs err -1.1ns at radius 6.4mm 1.60T Global fit av abs err 0.3ns max abs err 1.1ns at radius 7.6mm 1.65T Global fit av abs err 0.4ns max abs err 1.2ns at radius 7.0mm 1.70T Global fit av abs err 0.4ns max abs err 2.4ns at radius 7.6mm 1.75T Global fit av abs err 0.5ns max abs err -1.1ns at radius 6.1mm 1.80T Global fit av abs err 0.3ns max abs err 1.4ns at radius 7.6mm 1.85T Global fit av abs err 0.6ns max abs err -1.4ns at radius 6.2mm 1.90T Global fit av abs err 0.3ns max abs err 1.2ns at radius 7.6mm
Finding B
Mostly backward angle z (16 to 86cm) pol3 fit parameters radius (cm) [0] [1] z [2] z^2 [3] z^3 10 1.049e+00 1.597e-02 -1.419e-04 5.523e-07 20 1.062e+00 1.660e-02 -1.616e-04 6.818e-07 30 1.084e+00 1.771e-02 -1.979e-04 9.257e-07 35 1.100e+00 1.851e-02 -2.252e-04 1.112e-06 40 1.119e+00 1.951e-02 -2.596e-04 1.352e-06 45 1.142e+00 2.077e-02 -3.040e-04 1.664e-06 50 1.169e+00 2.238e-02 -3.613e-04 2.072e-06 53 1.200e+00 2.448e-02 -4.361e-04 2.607e-06 57 1.217e+00 2.572e-02 -4.800e-04 2.922e-06 Mostly forward angle z (84 to 168cm) pol3 fit parameters radius (cm) [0] [1] z [2] z^2 [3] z^3 10 1.200e+00 8.748e-03 -3.533e-05 5.208e-08 20 1.184e+00 9.145e-03 -3.786e-05 5.646e-08 30 1.126e+00 1.056e-02 -4.785e-05 7.824e-08 35 1.059e+00 1.216e-02 -5.957e-05 1.055e-07 40 9.507e-01 1.477e-02 -7.907e-05 1.524e-07 45 7.758e-01 1.898e-02 -1.111e-04 2.311e-07 50 4.998e-01 2.567e-02 -1.627e-04 3.600e-07 53 7.226e-02 3.611e-02 -2.441e-04 5.662e-07 57 -2.104e-01 4.304e-02 -2.987e-04 7.055e-07
Fits to fit parameters above as function of r
Mostly backward angle z (16 to 86cm) pol3 fit parameter fit parameters as function of r param [0] [1] r [2] r^2 [3] r^3 0 1.045e+00 2.290e-04 1.972e-05 5.338e-07 1 1.518e-02 1.009e-04 -2.982e-06 7.920e-08 2 -1.157e-04 -3.444e-06 1.134e-07 -2.934e-09 3 3.657e-07 2.528e-08 -8.925e-10 2.196e-11 Mostly forward angle z (84 to 168cm) pol3 fit parameter fit parameters as function of r param [0] [1] r [2] r^2 [3] r^3 0 1.451e+00 -4.060e-02 1.916e-03 -3.024e-05 1 2.443e-03 1.017e-03 -4.767e-05 7.464e-07 2 1.570e-05 -8.240e-06 3.862e-07 -5.966e-09 3 -8.188e-08 2.168e-08 -1.019e-09 1.552e-11 Double_t lo_z0[4]={1.045E+00, 2.290E-04, 1.972E-05, 5.338E-07}; Double_t lo_z1[4]={1.518E-02, 1.009E-04, -2.982E-06, 7.920E-08}; Double_t lo_z2[4]={-1.157E-04, -3.444E-06, 1.134E-07, -2.934E-09}; Double_t lo_z3[4]={3.657E-07, 2.528E-08, -8.925E-10, 2.196E-11}; Double_t hi_z0[4]={1.451E+00, -4.060E-02, 1.916E-03, -3.024E-05}; Double_t hi_z1[4]={2.443E-03, 1.017E-03, -4.767E-05, 7.464E-07}; Double_t hi_z2[4]={1.570E-05, -8.240E-06, 3.862E-07, -5.966E-09}; Double_t hi_z3[4]={-8.188E-08, 2.168E-08, -1.019E-09, 1.552E-11};
so for z<85cm, B ~ (1.045 + 2.290e-04r + 1.972e-05r^2 + 5.338e-07r^3) + (1.518e-02 + 1.009e-04r - 2.982e-06r^2 + 7.920e-08r^3)z + (-1.157e-04 - 3.444e-06r + 1.134e-07r^2 - 2.934e-09r^3)z^2 + ( 3.657e-07 + 2.528e-08r - 8.925e-10r^2 + 2.196e-11r^3)z^3 with B in T and z and r in cm
Max difference between fit and original histogram from bfield.root is 0.05T.
B fits (part 2)
Bz fit parameters
/* Max err 0.067 at z 22.0 r 55.0 */ Double_t lo_z0[4]={1.0440E+00, 2.8431E-04, 2.2198E-05, 4.4318E-07}; Double_t lo_z1[4]={1.5235E-02, 8.4686E-05, -2.0227E-06, 6.4062E-08}; Double_t lo_z2[4]={-1.1729E-04, -2.9396E-06, 8.2057E-08, -2.4271E-09}; Double_t lo_z3[4]={3.7660E-07, 2.1683E-08, -6.6856E-10, 1.8324E-11}; Double_t hi_z0[4]={1.4139E+00, -3.3108E-02, 1.5528E-03, -2.5238E-05}; Double_t hi_z1[4]={3.3934E-03, 8.2637E-04, -3.8508E-05, 6.2072E-07}; Double_t hi_z2[4]={7.7830E-06, -6.6706E-06, 3.1153E-07, -4.9497E-09}; Double_t hi_z3[4]={-6.0532E-08, 1.7501E-08, -8.2145E-10, 1.2855E-11};
B fits (part 3)
Used pol2 fit for r<41cm and pairs of pol3 fits (as before) for r>=41cm
Used pol2 fit for r<=30cm and pairs of pol3 fits (as before) for r>30cm
Used pol2 fit for r<=30cm and pairs of pol2 fits for r>30cm
Used pol2 fit for r<=25cm and pairs of pol2 fits for r>25cm
Fits to fit parameters above
This gives results comparable to the original fits with slightly simpler polynomials
Double_t lo_r0[3]={1.1746E+00, -1.1176E-04, 9.1798E-05}; Double_t lo_r1[3]={8.6423E-03, 4.5702E-06, -1.4617E-06}; Double_t lo_r2[3]={-2.5830E-05, -2.6167E-08, 5.9721E-09}; Double_t lo_z0[3]={1.0753E+00, -2.0457E-03, 7.8510E-05}; Double_t lo_z1[3]={2.0352E-02, -2.7862E-04, 6.4074E-06}; Double_t lo_z2[3]={-3.0851E-04, 1.0707E-05, -2.3605E-07}; Double_t lo_z3[3]={1.8161E-06, -8.1165E-08, 1.7311E-09}; Double_t hi_z0[3]={-6.1452E-01, 1.1061E-01, -1.7751E-03}; Double_t hi_z1[3]={5.3402E-02, -2.7137E-03, 4.3399E-05}; Double_t hi_z2[3]={-3.9186E-04, 2.1597E-05, -3.4203E-07}; Double_t hi_z3[3]={9.7935E-07, -5.6001E-08, 8.7685E-10}; if (r<=25) { bfit0 = lo_r0[0] + lo_r0[1]*r + lo_r0[2]*r*r; bfit1 = lo_r1[0] + lo_r1[1]*r + lo_r1[2]*r*r; bfit2 = lo_r2[0] + lo_r2[1]*r + lo_r2[2]*r*r; bfit3 = 0; } else { if (z<85) { bfit0 = lo_z0[0] + lo_z0[1]*r + lo_z0[2]*r*r; bfit1 = lo_z1[0] + lo_z1[1]*r + lo_z1[2]*r*r; bfit2 = lo_z2[0] + lo_z2[1]*r + lo_z2[2]*r*r; bfit3 = lo_z3[0] + lo_z3[1]*r + lo_z3[2]*r*r; } else { bfit0 = hi_z0[0] + hi_z0[1]*r + hi_z0[2]*r*r; bfit1 = hi_z1[0] + hi_z1[1]*r + hi_z1[2]*r*r; bfit2 = hi_z2[0] + hi_z2[1]*r + hi_z2[2]*r*r; bfit3 = hi_z3[0] + hi_z3[1]*r + hi_z3[2]*r*r; } } bfit = bfit0 + bfit1*z + bfit2*z*z + bfit3*z*z*z;
Radial field
Drift time correction (1)
Global fit function (-0.10 + 0.08 B)* drift-time 1.35T Global fit av abs err 0.3ns max abs err 1.8ns at radius 7.6mm 1.40T Global fit av abs err 0.3ns max abs err -0.7ns at radius 4.5mm 1.45T Global fit av abs err 0.3ns max abs err 2.0ns at radius 7.6mm 1.50T Global fit av abs err 0.3ns max abs err 0.6ns at radius 2.4mm 1.55T Global fit av abs err 0.4ns max abs err -0.9ns at radius 6.3mm 1.60T Global fit av abs err 0.4ns max abs err 1.1ns at radius 7.6mm 1.65T Global fit av abs err 0.4ns max abs err 1.1ns at radius 7.0mm 1.70T Global fit av abs err 0.5ns max abs err 1.6ns at radius 7.6mm 1.75T Global fit av abs err 0.8ns max abs err -1.6ns at radius 7.6mm 1.80T Global fit av abs err 0.6ns max abs err 1.6ns at radius 3.3mm 1.85T Global fit av abs err 1.1ns max abs err 2.1ns at radius 2.9mm 1.90T Global fit av abs err 0.9ns max abs err 2.1ns at radius 3.5mm
The plan
- Measure drift time dt, radius r, axial z
- Look up B(r,z)
- Calculate drift time correction dtc = (-0.10 + 0.08 * B)* drift-time
- Find equivalent time for 1.3T field dte = dt - dtc
- Look up drift radius for time dte in Garfield table for 1.3T
- Ta-daa!