Project

General

Profile

Check ORM and DISP results

The following python programs:
  1. check.py
  2. check_slopes.py
  3. check_disp.py

are used to check the ORM txt files generated by OrbitResponse.acl and _DispersionMeasurements.acl.

  1. check.py_ plots out all the BPM responses for a user chosen dipole corrector at a chosen break point. Bad bpms are highlighted with a magenta background so that problem BPMs can be easily identified. The fit parameter for each BPM are shown.
  2. check_slopes.py does the same as check.py except that the slopes are shown instead.
  3. check_disp.py plots out all the BPM response for a user chosen break point. Bad bpms are highlighted with a magenta background so that problem BPMs can be easily identified. The slopes are shown in the labels of each plot.

The source code can be downloaded here:

git clone http://cdcvs.fnal.gov/projects/booster_check_orm

Checking the configuration

python check.py -h

or
python check_slopes.py -h

The output should look something like this for check.py

Usage:
       python check.py -i input_file -k kicker_name -b breakpoint

and for check_slopes.py
Usage:
       Usage:
        python check.py -i input_file -k kicker_name -b breakpoint [-l]
         -l option to enable calculation of slopes in terms of angle rather than amps

For check_disp.py, the output looks like this:

Usage:
        python check_disp.py -i input_file -b breakpoint

Checking available kickers and break points

Just specify the input file

python check.py -i input_file

and this is the example when an ORM file is specified without other arguments

~/expt/booster/loco/python@xanadu% python check.py -i 17Dec2015_ORM_H.txt
Usage:
       python check.py -i input_file -k kicker_name -b breakpoint
Available kickers are: 
['B:HL1', 'B:HL10', 'B:HL11', 'B:HL12', 'B:HL13', 'B:HL14', 'B:HL15', 'B:HL16', 
'B:HL17', 'B:HL18', 'B:HL19', 'B:HL2', 'B:HL20', 'B:HL21', 'B:HL22', 'B:HL23',
'B:HL24', 'B:HL3', 'B:HL4', 'B:HL5', 'B:HL6', 'B:HL7', 'B:HL8', 'B:HL9', 'B:HS1',
'B:HS10', 'B:HS11', 'B:HS12', 'B:HS13', 'B:HS14', 'B:HS15', 'B:HS16', 'B:HS17', 
'B:HS18', 'B:HS19', 'B:HS2', 'B:HS20', 'B:HS21', 'B:HS22', 'B:HS23', 'B:HS24', 
'B:HS3', 'B:HS4', 'B:HS5', 'B:HS6', 'B:HS7', 'B:HS8', 'B:HS9']

Available breakpoints are (use 1st column below as argument in -b option):
0: 2.000000 ms
1: 3.098301 ms
2: 4.183413 ms
3: 5.220777 ms
4: 6.216626 ms

Running

For example:
  • The ORM file is _17Dec2015_ORM_H.txt
  • The kicker to check is B:HL1
  • The break point is 1. Break points start from zero.
python check.py -i 17Dec2015_ORM_H.txt -k B:HL1 -b 1

Results

After running the above command, this is what you should see:

The window title shows which horizontal or vertical, long or short BPMs are being plotted and at what time on the ramp. This time corresponds to the breakpoint that has been selected.

The legends of each plot is the R 2 value of the linear fit to the BPM data. If R 2 <0.5, the background of the plot is highlighted in magenta.

For both check_slope.py and check_disp.py the slope value of the linear fit to the BPM data is shown instead.

You can advance to the next set of plots by either
  • Hitting return on a Mac.
  • Closing the window on the control system.

Some pictures saved for this wiki