Privacy and Security Notice

BPM

Calibration of the BPM horiz position 12/14/05 

If I take the runs corresponding to Fig 9, all optics runs, nominal HMS accept. cut for central fast raster position and separate them by month:






Calibration of the BPM vertical position 12/14/05

The vertical calibration of the BPM appears to change from month to month.   The calibration determined in this study was:


   
September 04
           LAB_y [cm] = (0.0354 cm) + 1.0 * (BPM_y[cm])
    December 04
           LAB_y [cm] = (-0.0468 cm) + 1.0 * (BPM_y[cm])

where,
        
BPM_y[cm] =([bpmay]+327.15*([bpmby]-[bpmay])/(327.15-231.46))
and the bpm values were taken from the raw entries in the epics scaler files.  The bpm values were divided by 10.0 to convert from mm to cm.

Plots used to determine the vertical BPM's

Tables of BPM values

The beam vertical position was determined using hsxptar using
       
HMS_vert(up) [cm] = - (mean hsxptar) *1000. / -1.73 /10.0,
where (mean hsxptar) is the mean of the peak from the central sieve hole.  The factor of 1000. converts rad to mrad.  The factor of -1.73 is Henk's conversion factor.  The factor of 10.0 is to convert from mm to cm. 

The cuts used were:
hcer_npe>2.
abs(hsyptar)<0.03
abs(hsxptar)<0.04
abs(hsdelta)<5.0

The vertical position determined using the HMS for run 50130 was checked against Dave's value.  His result was y_beam = -0.12mm.  My result was  0.096 +- 0.032 mm, where the error is 1 std deviation of the mean.  When Dave projected the BPM to the target for this run, he obtained -0.43mm, I obtained -0.48mm.

A possible reason for the two points in the bottom right corner are that they are from the December '04 running period.  The remaining data points are from Sept '04.



The two running periods were separated in the plots below and the slope was constrained to 1.0




Calibration of the BPM horiz position 11/23/05 

A mistake was found in the previous work below on 11/09/05 for the determination of the beam horizontal position by the HMS.  The HMS survey offset was not converted from mm to cm.  My beamx determined by the HMS now agree with Dave's graph-paper plot here.  By reading off the lab x position at z= 2.3mm from Dave's plot I get:
Run
Dave's lab_x (mm)
Ben's lab_x (mm)
Bens's std dev of the mean (mm)
51388
-0.9
-0.92
0.02
51389
-1.2
-1.23
0.02
51349
-1.4
-1.40
0.03
51017
-0.85
-0.86
0.05
51610
-1.3
-1.25
0.03
51321
-1.1
-1.09
0.09
51570
-1.25
-0.95
0.15

I then attempted to calibrate the BPM lab x position using the HMS again.  Different conditions were tried because there was no linear relationship between the HMS_x and BPM_x at first.
  1. All optics runs  (hcer_npe>2.0)*
  2. All optics runs with no survey offset (hcer_npe>2.0)
  3. Runs at HMS<20 deg including survey offset (hcer_npe>2.0)
  4. All optics runs with average lab_x calculated assuming hsyptar=0 (hcer_npe>2.0)
  5. Runs with raster turned off, including survey offset and assuming hsyptar=0 (hcer_npe>2.0)
  6. All optics runs, nominal HMS acceptance and assuming hsyptar=0  (hcer_npe>2.0.and.nominal_accept.)
  7. Runs with raster turned off, nominal HMS acceptance and assuming hsyptar=0  (hcer_npe>2.0.and.nominal_accept.)
  8. All optics runs, nominal HMS accept. cut for central fast raster position and assuming hsyptar=0 (hcer_npe>2.0.and.nominal_accept..and.abs(gbeam_x)<0.01)
  9. All optics runs, nominal HMS accept. cut for central fast raster position (hcer_npe>2.0.and.nominal_accept..and.abs(gbeam_x)<0.01)
  10. Runs with raster turned off, nominal HMS acceptance (hcer_npe>2.0.and.nominal_accept.)*
The nominal HMS acceptance was abs(hsyptar)<0.04.and.abs(hsxptar)<0.07.and.abs(hsdelta)<8.

There appears to be a problem with calibrating the BPM using runs where the raster was on.  This can be seen by comparing the slopes in plots 9 (slope=0.414) and 10 (slope=1.065).  Plot number 10 would probably be the most reliable calibration, and it shows the most linear relationship between HMS_x and BPM_x.  It is interesting that the cut on the fast raster position has little effect on the position of the data points (compare 6 and 8), but only increases the error bars on those data points where the raster was on.

The calibration for the BPM horizontal position is therefore:


               LAB_x [cm] = (-0.0355 cm) + 1.065 * (BPM_x [cm])


Where median BPM_x [cm] can be extracted from the epics file using the bpm kumac, median kumac and c++ program.  BPM_y[cm] is also output from this kumac.  Only epics events where the current is > 8uA are used.

Note on std dev of the mean used in the plots:  this was determined by fitting a gaussian to the peak and extracting the sigma and height.
std_dev_of_mean = sqrt ( [sigma] * [bin_size] / ( sqrt(2*pi) * [height]) )
However, all of the errors shown in the plots above for HMS_x need to be scaled by 0.14. This error was corrected in the plots for HMS_y.  Plot numbers 1 and 10 (
*) were corrected by this factor.

Comment:  This BPM calibration is of little use if the raster changes the calibration.  Is it the BPM calibration that is affected by the raster, or the average reconstructed position by the HMS?  If it is the latter, then it is safe to use this calibration when the raster is turned on.

Calibration of the BPMs 11/09/05 

My previous attempt to calibrate the BPMs had limited success.   In particular, the horizontal calibration changed between runs.

Beam position using the BPMs

The average BPM for each run was obtained from the epics scaler file.  The variables
IPM3H00A.XRAW
IPM3H00A.YRAW
IPM3H00B.XRAW
IPM3H00B.YRAW
were used and averaged over a run, with the condition that the current > 9 uA for a given epics event.

The BPMs were converted from mm->cm and projected to the target using:
 tgx =([bpmax]+327.15*([bpmbx]-[bpmax])/(327.15-231.46))
 tgy =([bpmay]+327.15*([bpmby]-[bpmay])/(327.15-231.46))

This is the raw beam position in cm and in the BPM frame  (BPM x = LAB -x)

Beam position using the HMS

The HMS ytar and xptar were used to determine the beam position, so we can calibrate the BPM.  The z=0 target position was assumed to be located at z=0.23cm.  A plot showing this work for run 50130 is included below (all runs can be found here).

The first two plots in the panel show the stability of the BPMs during the run.  The third shows the average reconstructed hsxptar.  The third shows the event-by-event determination of the horizontal beam position.



The importance of determining the horizontal beam position event-by-event can be seen below.  The horizontal beam position at z_lab=0.23 cm is given by

beamx = (-hsyptar*[ctheta]+[stheta])/(hsyptar*[stheta]+[ctheta]) * ([ztarg]-(hsytar+[y_offset])*[stheta])
                         - (hsytar+[y_offset])*[ctheta]

where,    ctheta = cos(theta_sos),    stheta= sin(theta_sos),  y_offset is the mispointing offset (see Dave's work)
The average beamx for run 50130
Beamx  =   -0.059 cm
If I set hsyptar=0 in the above equation (equivalent to not determing beamx event-by-event)
Beamx =    -0.056 cm

The calibration

For now, I have only attempted to calibrate the horizontal BPM.  Here is a plot of the reconstructed beam position using the HMS vs. the raw BPM position at the target.


vertical axis = reconstructed beam horizontal position using the HMS (cm)
horizontal axis = raw BPM position at the target (cm)


There should be a linear fit to these points that will allow me to calibrate the BPMs.  The good points are located above horizontal axis > 0.2 cm.  I am not sure yet why some of the points were not fit well (runs are listed here).


The linear fit to this plot gives
Lab frame beamx (cm) = -0.0027 cm+ 1.437 * [raw_BPM_x (cm)]