Overview | Releases | Download | Docs | Links | Help | RecentChanges

Scan

A series of Histograms.

  1. A chip variable is modified according to a list of values.
  2. For each value a series of triggers is sent to the modules
  3. The hits on each channel are accumulated in the ROD

Defined by (C++) and (IDL) .

New scans

> Bruce turned scans from Corba objects with implementations
> into structs.  This is a valuable change that has long been needed.
> I imagine that he will have found and fixed all compiled code.
> However it is quite possible (even likely) that scripts will contain
> code that has not been updated.

Yes, unfortunately it makes things a bit more complicated. Because it
used 
to be a server, you could ask it to change itself while the calibration 
controller kept a reference to the changed version. Now you have to tell

it that the struct changed. 

You can change the struct directly, but I've also introduced a
"ScanBuilder"
which can change the struct in ways that you might expect from the
previous 
api.

Finally, the change that you noticed is that I removed the options enum 
from CORBA in favour of specifying the option with a string. This makes 
things a bit more flexible, it should give an appropriate error if the 
wrong options are set. It should also help make the raw and cooked scan 
requests more similar.

>> I have tried running the script onlineRODOccupancyGUI again and it
>> complains.  Before I could do
>>
>> scanRequest = SI.getCalibrationController().getScanLibrary().defaultScan();
>> scan = scanRequest.getScanCorba();
>> scan.setOption(Sct_SctApi.ScanOptions.tim,1);

This line gets replaced by something like:

builder = api.getScanBuilder();
holder = new Sct_SctApi.ScanHolder(scan);
builder.setOption(holder, "tim", 1);
scan = holder.value;


And then you have to tell the calibration controller that it's changed.

scanRequest.setScanCorba(scan);