Note that this procedure wont work for scans of BOC variables, which arent stored in ABCDModule structures. These need to be separately stored and restored - I cant see where this is done - could this be the source of the Raw/Cooked hygiene problem? AJB.
New Version (March 2005)
- Start API
- (api requests) Configuration -> Api
- Run Controller Config
- (CC-rc requests) Api -> PHYSICS, CALIBRATION (multi-set)
- (CC-rc requests) PHYSICS -> Module
- Start Sequence
- Start Test
- cc requests API autoUpdateBanks(SCAN)
- Setup Scan
- (api does) api -> SCAN
- Start Scan
- (api does) SCAN->Module
- (api modifies scanned variable to final scan point)
- End Scan
- (api modifies SCAN cache to be same as last point in scan)
- api uses SCAN config for histo output
- (further scans as required)
- End Test
- (cc requests) CALIBRATION -> Api (gets local ROD cache)
- could potentially add a copy of CALIBRATION->SCAN here ... (for performance)
- Analysis
- cc requests API autoUpdateBanks(SCAN,CALIBRATION)
- (cc does) Update in Api
- (cc requests) Api -> CALIBRATION (compare with cache and send relevant parts) --> could be modified to update CALIBRATION bank directly?
- cc requests API autoUpdateBanks(none)
- cc requests API autoUpdateBanks(SCAN,CALIBRATION)
- Start Test
- End Sequence
- (cc requests) PHYSICS -> Module
- End of Run
- (ConfigService? RC requests) CALIBRATION-> configuration
See MergingPageForNewPrimitives
As implemented for Release 2.0, 3.0, 4.0
- Start API
- Configuration -> Api
- Api -> PHYSICS
- Api -> SCAN
- RC Config
- PHYSICS -> Module
- Start Sequence
- Start Test
- Api->CALIBRATION
- Modify in Api
- doScan
- Api->SCAN (Api)
- SCAN->Module (Api)
- SCAN->Api(Api)
- End Test
- CALIBRATION->Api
- Update
- Start Test
- As before
- End Test
- Api->CALIBRATION
- Start Test
- End Sequence
- Confirm update
- Api->PHYSICS
- Update Configuration
- Api->Configuration
Problems with this version:
- Uses the VME interface too much (ie Api->* and *->Api)
- Api->Calibration for each scan is unnecessary
- Should only do for each test
- Other optimisations would require copy primitive in ROD, see below
Other ConfigurationPerformanceImprovements