BLEN:LI20:3014:BRAW is unscaled integrated sum signal
from the sector 20 foil+pyro.
BLEN:LI20:3014:BIMAX is nominally the bunch length derived from this
number, but in the absence of a calibration, BIMAX = BRAW.
Note that at this moment, the toroid channels available
by BSA are only the uncalibrated ones -
GADC0:LI20:EX01:AI:CH0:HST__
GADC0:LI20:EX01:AI:CH2:HST__
GADC0:LI20:EX01:AI:CH3:HST__
calibrations.pdf
For now, these calibration values live here:
SIOC:SYS1:ML00:AO033 %TORO 2452 Slope
SIOC:SYS1:ML00:AO034 %TORO 2452 Offset
SIOC:SYS1:ML00:AO035 %TORO 3163 Slope
SIOC:SYS1:ML00:AO036 %TORO 3163 Offset
SIOC:SYS1:ML00:AO037 %TORO 3255 Slope
SIOC:SYS1:ML00:AO038 %TORO 3255 Offset
Use those calibration numbers to scale the BSA ADC
readings to real charge values.
Below is an example of how to do the BSA acquisition, in
case people aren't familiar. Please make
sure to release the event definition; if the acquisition bombs, do it manually
on the Event/Global panel on facethome.
% define some PV names
blen_root = 'BLEN:LI20:3014';
blen_pvs = strcat(blen_root, {':BRAW'; ':BIMAX'});
toro_root = 'GADC0:LI20:EX01:AI';
toro_pvs = strcat(toro_root, {':CH0:'; ':CH2:';
':CH3:'});
% reserve and set up an edef
masks = {{'TS5'} {} {'DUMP_2_9' 'NO_EXT_ELEC'} {}}; edef
= eDefReserve('Nate BSA example'); eDefParams(edef, 1, -1, masks{:}); % third argument = -1 makes it acquire
forever
% start edef
eDefOn(edef);
% do other acquisition here....
pause(5);
% stop edef
eDefOff(edef);
% retrieve BSA data
blen_data = lcaGetSmart(strcat(blen_pvs, 'HST',
num2str(edef))); toro_data = lcaGetSmart(strcat(toro_pvs, 'HST',
num2str(edef))); pulseid = lcaGetSmart(strcat('PATT:SYS1:1:PULSEIDHST',
num2str(edef)));
% free up edef
eDefRelease(edef);