CDC B field

From GlueXWiki
Jump to: navigation, search

B field in CDC volume

Magnetic field
CDC space Btot (T) vs r and z for 1350A

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:

  1. measure drift time, r, z
  2. find B field at r, z
  3. use time-diff function(B) to calculate what drift time would be in 1.3T
  4. use garfield tables for 1.3T to find drift distance



Change in drift radius interpolated from Garfield tables using field 0.1T too large
Drift radius change vs drift time
Drift radius change vs drift radius



Time difference needed to cause 30, 40 and 100 um change in drift radius from lookup tables
Drift radius change 30um
Drift radius change 40um
Drift radius change 100um



Finding drift time difference wrt 1.3T

Drift times from Garfield
Garfield drift times
Zoomed in at small radius
Zoomed in at large radius
Drift times from Garfield, edited
Zoomed in at small radius
Individual fits to drift time difference [0]*radius**[1]
Fit f(r) to each curve
Fit of param 0 values
Fit of param 1 values
One fit to drift time difference, excluded 1.5T data from fit
One fit f(B,r) for all curves (except 1.5T)

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

Drift times from Garfield
Zoomed in at large radius
Drift times from Garfield, edited
Zoomed in at large radius
Cdc bfield2 edited.png
Zoomed in at large radius, key reversed


Individual fits to drift time difference [0]*driftradius**[1]
Fit f(driftradius) to each curve
Fit of param 0 values
Fit of param 1 values
One fit to drift time difference, excluded 1.5T data from fit
One fit f(B,driftradius) for all curves

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

Variation of B field in CDC space
Magnetic field along CDC at different radii


Fits of B field (z) for fixed radius
10cm
20cm
30cm
35cm
40cm
45cm
50cm
53cm
57cm

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

Fit params for mostly backward angles, small z, as func (r)
param 0
param 1 (r)
param 2 (r^2)
param 3 (r^3)
Fit params for mostly forward angles, large z, as func (r)
param 0
param 1 (r)
param 2 (r^2)
param 3 (r^3)
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.

Fit function - original Btot histogram
Fit - histo (T)

The above was for Btot. Repeated for Bz, params below. Max err is 0.0449T at z=22cm, r=55cm Fits are in bfield/bfits



Mostly backward angle z (16 to 86cm) pol3 fit parameters
r (cm) 	 [0] 		 [1] z 		 [2] z^2 	 [3] z^3
10.0  	 1.046e+00 	 1.608e-02 	 -1.432e-04 	 5.577e-07 
20.0  	 1.051e+00 	 1.699e-02 	 -1.666e-04 	 7.033e-07 
30.0  	 1.059e+00 	 1.865e-02 	 -2.103e-04 	 9.811e-07 
35.0  	 1.065e+00 	 1.987e-02 	 -2.435e-04 	 1.196e-06 
40.0  	 1.072e+00 	 2.139e-02 	 -2.856e-04 	 1.472e-06 
45.0  	 1.081e+00 	 2.330e-02 	 -3.399e-04 	 1.833e-06 
50.0  	 1.091e+00 	 2.573e-02 	 -4.099e-04 	 2.304e-06 
53.0  	 1.103e+00 	 2.880e-02 	 -5.001e-04 	 2.916e-06 
57.0  	 1.109e+00 	 3.057e-02 	 -5.527e-04 	 3.274e-06 

Mostly forward angle z (84 to 168cm) pol3 fit parameters
r (cm) 	 [0] 		 [1] z 		 [2] z^2 	 [3] z^3
10.0  	 1.200e+00 	 8.750e-03 	 -3.532e-05 	 5.202e-08 
20.0  	 1.183e+00 	 9.148e-03 	 -3.779e-05 	 5.612e-08 
30.0  	 1.124e+00 	 1.055e-02 	 -4.755e-05 	 7.711e-08 
35.0  	 1.057e+00 	 1.213e-02 	 -5.904e-05 	 1.037e-07 
40.0  	 9.488e-01 	 1.472e-02 	 -7.826e-05 	 1.496e-07 
45.0  	 7.734e-01 	 1.892e-02 	 -1.100e-04 	 2.272e-07 
50.0  	 4.956e-01 	 2.561e-02 	 -1.613e-04 	 3.550e-07 
53.0  	 6.308e-02 	 3.610e-02 	 -2.429e-04 	 5.608e-07 
57.0  	 -2.243e-01 	 4.310e-02 	 -2.977e-04 	 7.005e-07 

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 	 1.338e-04 	 4.523e-06 	 2.368e-07 
1  	 1.513e-02 	 1.160e-04 	 -3.189e-06 	 1.053e-07 
2  	 -1.146e-04 	 -3.751e-06 	 1.237e-07 	 -3.429e-09 
3  	 3.595e-07 	 2.689e-08 	 -9.586e-10 	 2.461e-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.459e+00 	 -4.190e-02 	 1.966e-03 	 -3.085e-05 
1  	 2.268e-03 	 1.043e-03 	 -4.871e-05 	 7.577e-07 
2  	 1.686e-05 	 -8.411e-06 	 3.930e-07 	 -6.034e-09 
3  	 -8.439e-08 	 2.205e-08 	 -1.033e-09 	 1.565e-11 

Double_t lo_z0[4]={1.0445E+00, 1.3383E-04, 4.5227E-06, 2.3683E-07};
Double_t lo_z1[4]={1.5132E-02, 1.1596E-04, -3.1894E-06, 1.0531E-07};
Double_t lo_z2[4]={-1.1458E-04, -3.7512E-06, 1.2367E-07, -3.4290E-09};
Double_t lo_z3[4]={3.5954E-07, 2.6887E-08, -9.5863E-10, 2.4608E-11};

Double_t hi_z0[4]={1.4594E+00, -4.1900E-02, 1.9661E-03, -3.0849E-05};
Double_t hi_z1[4]={2.2682E-03, 1.0434E-03, -4.8708E-05, 7.5771E-07};
Double_t hi_z2[4]={1.6860E-05, -8.4111E-06, 3.9302E-07, -6.0335E-09};
Double_t hi_z3[4]={-8.4393E-08, 2.2049E-08, -1.0333E-09, 1.5649E-11};

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};
Fit function - original Bz histogram
Fit - histo (T)

B fits (part 3)

Used pol2 fit for r<41cm and pairs of pol3 fits (as before) for r>=41cm

Fit function - original Bz histogram
Fit - histo (T)

Used pol2 fit for r<=30cm and pairs of pol3 fits (as before) for r>30cm

Fit function - original Bz histogram
Fit - histo (T)

Used pol2 fit for r<=30cm and pairs of pol2 fits for r>30cm

Fit function - original Bz histogram
Fit - histo (T)


Used pol2 fit for r<=25cm and pairs of pol2 fits for r>25cm

Fits of B field (z) for fixed radius
10cm
15cm
20cm
25cm
30cm
35cm
40cm
42.5cm
45cm
47.5cm
50cm
52.5cm
55cm


Fits to fit parameters above

Fit params for r <= 25cm, as func (r)
param 0
param 1 (r)
param 2 (r^2)
Fit params for mostly backward angles, small z, as func (r)
param 0
param 1 (r)
param 2 (r^2)
param 3 (r^3)
Fit params for mostly forward angles, large z, as func (r)
param 0
param 1 (r)
param 2 (r^2)
param 3 (r^3)
Fit function - original Bz histogram
Fit - histo (T)

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

Magnetic field
CDC space Bx (T) vs r and z for 1350A
CDC space Bz (T) vs r and z for 1350A


Drift time differences for Bx = -0.1T, -0.2T, -0.3T and various Bz
Drift time for Bx = -0.1T - drift time for Bx=0T
Drift time for Bx = -0.2T - drift time for Bx=0T
Drift time for Bx = -0.3T - drift time for Bx=0T

Drift time difference due to radial field

Drift time difference due to radial field
Max drift time difference (ns) due to Bx for 1350A

3ns diff at center occurs with Bz=1.65T, Bx=0.05T. Max drift times for Bz=1.65T are 665ns (Bx=0), 662ns (Bx=0.05T), 663ns (Bx=0.1T)

Drift time correction for variation in Bz

Drift times from Garfield
Difference in drift time (for same driftradius) between higher field and 1.3T
Linear fits to time differences
1.35T
1.40T
1.45T
1.50T
1.55T
1.60T
1.65T
1.70T
1.75T
1.80T
1.85T
1.90T
Fit of param 0 values
Fit of param 0 values
Global fit
One fit f(B,r) for all curves


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 (1350A, 50% Ar, 50% CO2)

  1. Measure drift time dt, radius r, axial z
  2. Look up B(r,z)
  3. Calculate drift time correction dtc = (-0.10 + 0.08 * B)* dt
  4. Find equivalent time for 1.3T field dte = dt - dtc
  5. Look up drift radius for time dte in Garfield table for 1.3T
  6. Ta-daa!


1200A, 50% Ar, 50% CO2

Magnetic field maps of CDC region for solenoid current 1200A
Axial field at 1200A
Radial field at 1200A

New function is dtc = (-0.077 + 0.068 * B)* dt and base tables are for 1.1T.

  1. Measure drift time dt, radius r, axial z
  2. Look up B(r,z)
  3. Calculate drift time correction dtc = (-0.077 + 0.068 * B)* dt
  4. Find equivalent time for 1.1T field dte = dt - dtc
  5. Look up drift radius for time dte in Garfield table for 1.1T
Global fit param 0 fit status 0 function -0.077 + 0.068x
1.15T Global fit av abs err 0.2ns max abs err 0.7ns at radius 5.3mm 
1.20T Global fit av abs err 0.7ns max abs err 2.7ns at radius 7.6mm 
1.25T Global fit av abs err 0.5ns max abs err -1.7ns at radius 7.0mm 
1.30T Global fit av abs err 0.4ns max abs err 1.1ns at radius 4.1mm 
1.35T Global fit av abs err 0.5ns max abs err -1.0ns at radius 7.6mm 
1.40T Global fit av abs err 0.7ns max abs err -2.7ns at radius 7.4mm 
1.45T Global fit av abs err 0.7ns max abs err -1.7ns at radius 7.6mm 
1.50T Global fit av abs err 0.7ns max abs err -1.6ns at radius 7.0mm 
1.55T Global fit av abs err 1.0ns max abs err 1.9ns at radius 3.6mm 
1.60T Global fit av abs err 1.2ns max abs err -4.8ns at radius 7.6mm 
1.65T Global fit av abs err 1.1ns max abs err 2.1ns at radius 3.6mm 
1.70T Global fit av abs err 1.2ns max abs err -2.4ns at radius 7.6mm 
1.75T Global fit av abs err 1.5ns max abs err 2.9ns at radius 4.4mm 
Global fit for 1200A, 50% Ar, 50% CO2
One fit f(B,r) for all curves


1200A, 56% Ar, 44% CO2

New function is dtc = (-0.103 + 0.092 * B)* dt and base tables are for 1.1T.

  1. Measure drift time dt, radius r, axial z
  2. Look up B(r,z)
  3. Calculate drift time correction dtc = (-0.103 + 0.092 * B)* dt
  4. Find equivalent time for 1.1T field dte = dt - dtc
  5. Look up drift radius for time dte in Garfield table for 1.1T
Global fit function errors:
Global fit param 0 fit status 0 function -0.103 + 0.092x
1.15T Global fit av abs err 0.7ns max abs err 2.7ns at radius 7.6mm 
1.20T Global fit av abs err 0.3ns max abs err -1.0ns at radius 7.3mm 
1.25T Global fit av abs err 0.2ns max abs err 0.5ns at radius 3.8mm 
1.30T Global fit av abs err 0.4ns max abs err -1.4ns at radius 7.2mm 
1.35T Global fit av abs err 0.6ns max abs err -1.9ns at radius 7.6mm 
1.40T Global fit av abs err 0.4ns max abs err 1.1ns at radius 3.2mm 
1.45T Global fit av abs err 0.7ns max abs err -2.0ns at radius 6.9mm 
1.50T Global fit av abs err 0.8ns max abs err -2.2ns at radius 7.6mm 
1.55T Global fit av abs err 0.7ns max abs err 1.4ns at radius 3.4mm 
1.60T Global fit av abs err 0.8ns max abs err -1.7ns at radius 6.9mm 
1.65T Global fit av abs err 1.2ns max abs err 2.5ns at radius 4.3mm 
1.70T Global fit av abs err 1.1ns max abs err 2.4ns at radius 3.8mm 
1.75T Global fit av abs err 1.3ns max abs err -3.2ns at radius 7.6mm 
Global fit for 1200A, 56% Ar, 44% CO2
One fit f(B,r) for all curves