nscl_logo_small.gif (2463 bytes)

SpecTcl's support for Super Events.

HH00706_.wmf (6530 bytes)

SpecTcl Home  General Information User Guide Programmer's Guide Obtaining and Installing

This guide describes SpecTcl's support for Super Events. A Super Event is a single event from the point of view of the structure of the buffer, however that single event contains several physics events. Block mode data taking systems will often create super events. Each buffer read from the hardware, in this case, contains several events, and reformatting requires time that can eat into the deadtime.

SpecTcl's data analysis, prior to version 3.2 decremented the number of events remaining in a buffer each time the event processing pipeline completed processing. Support now is provided to control when this decrement actually happens (normally after processing the last event in the super event.

In order to retain compatible behavior, by default, SpecTcl will decrement the event count after each execution of the event processing pipeline. This decrement can be inhibited by calling CAnalyzer::entityNotDone().

A typical use-case for this function in an event processor would be:

rAna.SetEventSize(sizeOfSubEvent);
if (!lastSubEvent) {
  rAna.entityNotDone();
}
    
Where lastSubEvent is assumed to be a flag that indicates the last subevent of a super event has just been processed. Additionally, sizeOfSubEvent is assumed to be the size of the subevent just processed (e.g. adding sizeOfSubEvent to the event pointer passed to the event processor will point to the next sub-event or to the next event as the case may be.


Top Programmer's Guide


fox@nscl.msu.edu
Last modified: Sun Apr 8 19:39:00 EDT 2007