Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

CExperiment Class Reference

#include <CExperiment.h>

List of all members.

Public Methods

 CExperiment (unsigned nBufferSize=4096)
 Default constructor.

 CExperiment (CTrigger *pTriggerModule, CEventSegment *pEventReadout, CScaler *pScalers=0, CStatusModule *pStatus=0, unsigned nBufferSize=4096)
 ~CExperiment ()
 Destructor.

CNSCLPhysicsBuffergetBuffer ()
CStatusModulegetStatusModule ()
CTriggergetTrigger ()
CScalerBankgetScalers ()
CCompoundEventSegmentgetReadout ()
void Start (CStateTransitionCommand &rCommand)
void Stop (CStateTransitionCommand &rCommand)
void ReadEvent ()
void PostEvent ()
void AddEventSegment (CEventSegment *rSegment)
void RemoveEventSegment (CEventSegment *pSegment)
void RemoveEventSegment (CCompoundEventSegment::EventSegmentList::iterator i)
void SetBusy ()
void ClearBusy ()
void EstablishTrigger (CTrigger *pTrigger)
void EstablishBusy (CStatusModule *pStatus)
void TriggerScalerReadout ()
void TriggerRunVariableBuffer ()
void TriggerStateVariableBuffer ()
void TriggerSnapshotScaler ()
void TriggerDocBuffer ()
void AddScalerModule (CScaler *pScaler)
void RemoveScalerModule (CScaler *pScaler)
void RemoveScalerModule (ScalerListIterator it)
void ReplaceBuffer (unsigned nSize)

Protected Methods

void EmitStart ()
void EmitEnd ()
void EmitPause ()
void EmitResume ()
void StartTrigger ()
void StopTrigger ()
unsigned long GetElapsedTime () const
unsigned short GetRunNumber () const
void EmitScalerBuffer (unsigned int nBufferType, vector< unsigned long > &scalers, unsigned long nIntervalStartTime)
RunVariableIterator EmitRunVariableBuffer (CRunVariableBuffer &Buffer, RunVariableIterator start, RunVariableIterator stop)
StateVariableIterator EmitStateVariableBuffer (CStateVariableBuffer &Buffer, StateVariableIterator &start, StateVariableIterator &stop)
DocumentationPacketIterator EmitDocBuffer (DocumentationPacketIterator s, DocumentationPacketIterator e, CNSCLDocumentationBuffer &b)
void Overflow (DAQWordBufferPtr &header, DAQWordBufferPtr &End)
void SetupTimedEvent ()

Private Methods

 CExperiment (const CExperiment &rhs)
 Copy construction is forbidden:.

CExperiment & operator= (const CExperiment &rhs)
 Assignment.

int operator== (const CExperiment &rhs) const
 Comparison for equality.

int operator!= (const CExperiment &rhs) const

Private Attributes

CNSCLPhysicsBufferm_EventBuffer
unsigned int m_nBufferSize
CStatusModulem_pStatusModule
 Pointer to module handling status.

CTriggerm_pTrigger
 Trigger module handler.

CTriggerThreadm_pTThread
 Trigger checking thread.

CScalerBank m_Scalers
 Scaler bank (with modules).

CCompoundEventSegment m_EventReadout
 Event Readout object.

vector< unsigned long > m_IntervalSums
 Scaler sums over snapshot interval.

unsigned long m_LastSnapTime
 Time of last snapshot.

unsigned long m_LastScalerTime
 Time of last full scaler read.

CScalerTriggerm_pScalerTrigger
unsigned int m_nEventsAcquired
unsigned int m_nWordsAcquired


Detailed Description

Encapsulates the details and general methods of the experiment specific stuff.

Definition at line 362 of file CExperiment.h.


Constructor & Destructor Documentation

CExperiment::CExperiment unsigned    nBufferSize = 4096
 

Default constructor.

Default constructor. This is called when declarations of the form e.g.:

  • CExperiment object; are performed.

Definition at line 504 of file CExperiment.cpp.

References SetupTimedEvent().

CExperiment::CExperiment CTrigger   pTriggerModule,
CEventSegment   pEventReadout,
CScaler   pScalers = 0,
CStatusModule   pStatus = 0,
unsigned    nBufferSize = 4096
 

Parameterized constructor. Allows the experiment to be created as needed for an initial minimal set. The experiment can still be 'edited' later on by adding segments to the event and scalers to the initial module.

Parameters:
pTriggerModule  - Derived from CTrigger provides a trigger module to the experiment. Trigger modules are required to allow the experiment readout to respond to physics events. Usually this is a CVMETrigger or a CCAMACTrigger
pEventReadout  - Provides a single event segment which is read out in response to a physics trigger. Additional event segments can be inserted into the experiment as it contains a CCompoundEventSegment (see CCompoundEventSegment::AddSegment()). These additional segments will be read out in order of insertion.
pScalers  = 0 - Provides a scaler module which is added to the experiment's scaler bank. Additional scaler modules can be added to the experiment after construction (See CScalerBank::AddScalerModule()).
pStatus  = 0 - Provides a status module for the experiment. The status module provides end of event clears, busy clears and notification of when the scaler readout is beginning and ending. Usually this is a CVMETrigger or a CCAMACTrigger.
nBufferSize  = 4096 - Number of words in a buffer.
Note:
The objects pointed to by these parameters must remain in scope for the duration of their use as they are not copied into the experiment object, but instead referred to via these pointers. If objects go out of scope, the experiment will likely behave strangely or simply fail in unpredictable ways.

Definition at line 545 of file CExperiment.cpp.

References CScalerBank::AddScalerModule(), CCompoundEventSegment::AddSegment(), m_EventReadout, m_Scalers, and SetupTimedEvent().

CExperiment::~CExperiment   [inline]
 

Destructor.

Definition at line 391 of file CExperiment.h.

CExperiment::CExperiment const CExperiment &    rhs [private]
 

Copy construction is forbidden:.


Member Function Documentation

void CExperiment::AddEventSegment CEventSegment   rSegment
 

Adds an event segment to the readout chain. Events are read out in segments. This member ads a segment to the chain of segments which are read out in response to an event trigger.

Parameters:
pSegment  - points to the event segment to add to the readout chain.
Note:
The event segment pointer is copied rather than the event segement, so it must remain in scope either for the life of the experiment or until removed from the list.

Definition at line 780 of file CExperiment.cpp.

References CCompoundEventSegment::AddSegment(), and m_EventReadout.

Referenced by CMyExperiment::SetupReadout().

void CExperiment::AddScalerModule CScaler   pScaler
 

Adds a scaler module to the readout subsystem.

Parameters:
pScaler  Pointer to the module to add.

Definition at line 1026 of file CExperiment.cpp.

References CScalerBank::AddScalerModule(), and m_Scalers.

void CExperiment::ClearBusy  
 

Facades for the status module. Sets the status module to indicate the computer is now not busy.

Definition at line 820 of file CExperiment.cpp.

References CStatusModule::GoClear(), m_pStatusModule, and CStatusModule::ModuleClear().

Referenced by PostEvent().

DocumentationPacketIterator CExperiment::EmitDocBuffer DocumentationPacketIterator    s,
DocumentationPacketIterator    e,
CNSCLDocumentationBuffer   b
[protected]
 

Emits a documentation buffer. Documentation buffers list the set of documented packet ids. Packet Ids are used to identify the sub-contents of events in the physics data buffers. Making a packet id documented provides useful documentation information.

Parameters:
s  - Iterator `pointing' at the first packet documentation object to be put into the buffer.
e  - Iterator `pointing' past the last packet documentation object to be put into the buffer. CNSCLDocumentationBuffer& rBuffer - Refers to the buffer into which the documentation objects will be formatted.
Returns:
- The iterator past the last item formatted:
  • e if all items were formatted into the buffer.
  • else an iterator to the first item to put into the next buffer.

Definition at line 1236 of file CExperiment.cpp.

References DocumentationPacketIterator, and CNSCLStringListBuffer::PutEntityString().

Referenced by TriggerDocBuffer().

void CExperiment::EmitEnd   [protected]
 

Emits an end run buffer. End run bufers look just like Start run buffers (see EmitStart()), however the elapsed time value is nonzero.

Definition at line 1082 of file CExperiment.cpp.

References ENDRUNBF, GetElapsedTime(), GetRunNumber(), CReadoutMain::getTitle(), m_nBufferSize, CNSCLControlBuffer::PutTimeOffset(), CNSCLControlBuffer::PutTitle(), CNSCLOutputBuffer::Route(), CNSCLOutputBuffer::SetRun(), and CNSCLOutputBuffer::SetType().

Referenced by Stop().

void CExperiment::EmitPause   [protected]
 

Emits a pause run buffer. Pause run buffers also look like Begin buffers with nonzero time. They indicate a temporary halt in data taking.

Definition at line 1096 of file CExperiment.cpp.

References GetElapsedTime(), GetRunNumber(), CReadoutMain::getTitle(), m_nBufferSize, PAUSEBF, CNSCLControlBuffer::PutTimeOffset(), CNSCLControlBuffer::PutTitle(), CNSCLOutputBuffer::Route(), CNSCLOutputBuffer::SetRun(), and CNSCLOutputBuffer::SetType().

Referenced by Stop().

void CExperiment::EmitResume   [protected]
 

Emits a resume run buffer. Resume run buffers are like end run buffers with nonzero time. They indicate a resumption of data taking.

Definition at line 1111 of file CExperiment.cpp.

References GetElapsedTime(), GetRunNumber(), CReadoutMain::getTitle(), m_nBufferSize, CNSCLControlBuffer::PutTimeOffset(), CNSCLControlBuffer::PutTitle(), RESUMEBF, CNSCLOutputBuffer::Route(), CNSCLOutputBuffer::SetRun(), and CNSCLOutputBuffer::SetType().

Referenced by Start().

RunVariableIterator CExperiment::EmitRunVariableBuffer CRunVariableBuffer   rBuffer,
RunVariableIterator    start,
RunVariableIterator    end
[protected]
 

Creates a Run Variable buffer. Run variables buffers contain a set of run variables in the form varname=value\0.

Parameters:
Buffer  - reference to a CRunVariableBuffer which will be filled with formatted run variable strings.
start  - A RunVariableIterator which indicates the first run variable to insert in the buffer.
end  - A RunVariableIterator pointing past the last variable to format into the buffer.
Returns:
The final iterator:
  • end if all entities fit in the buffer.
  • the first entity which did not fit in the buffer if the buffer filled before inserting all entities.

Definition at line 1179 of file CExperiment.cpp.

References CNSCLStringListBuffer::PutEntityString(), and RunVariableIterator.

Referenced by TriggerRunVariableBuffer().

void CExperiment::EmitScalerBuffer unsigned int    nBufferType,
vector< unsigned long > &    scalers,
unsigned long    nIntervalStartTime
[protected]
 

void CExperiment::EmitStart   [protected]
 

Emits the start of run buffer. A start of run buffer contains a standard buffer header as well as: # Run Title - up to 79 characters of title information followed by a null. # A long word of zero indicating that the buffer was emitted at the beginning of the run. # A time structure containing the fields:

  • month - month numbered from 1 - jan to 12 - dec.
  • day - day within the month numbered from 1 - 31
  • year - e.g. 2002
  • hours - Hour within the day numbered from 0 = midnight to 23 = 11pm.
  • min - Minutes within the hour numbered from 0 to 59.
  • sec - Seconds within the minut numbered from 0 to 59.
  • tenths - Tenths of a second within the second which contains 0 for all Unix implementations since tod information is only accessible to the second.

Definition at line 1062 of file CExperiment.cpp.

References BEGRUNBF, CNSCLOutputBuffer::ClearSequence(), GetElapsedTime(), GetRunNumber(), CReadoutMain::getTitle(), m_nBufferSize, CNSCLControlBuffer::PutTimeOffset(), CNSCLControlBuffer::PutTitle(), CNSCLOutputBuffer::Route(), CNSCLOutputBuffer::SetRun(), and CNSCLOutputBuffer::SetType().

Referenced by Start().

StateVariableIterator CExperiment::EmitStateVariableBuffer CStateVariableBuffer   rBuffer,
StateVariableIterator   start,
StateVariableIterator   end
[protected]
 

Emits a state variable buffer. State variable buffers are filled with strings of the form "name=value\0" and are always an even number of bytes long.

Parameters:
rBuffer  - Reference to the CStateVariableBuffer being filled.
start  - A StateVariableIterator which indicates the first variable to format and insert in the buffer.
end  - A State variable iterator indicating past the last variable to format and insert in the buffer.
Returns:
The final iterator:
  • end if all variables have been formatted and inserted.
  • the first entry which did not fit in the buffer if the buffer filled before inserting all entities.

Definition at line 1205 of file CExperiment.cpp.

References CStateVariable::FormatForBuffer(), CNSCLStringListBuffer::PutEntityString(), and StateVariableIterator.

Referenced by TriggerStateVariableBuffer().

void CExperiment::EstablishBusy CStatusModule   pStatus
 

Establishes a module to manage the busy. The busy module has two NIM pulsed outputs. One indicates the computer is going busy for software reasons. The other indicates that the computer is going not busy for any reason.

Parameters:
CStatusModule  * pStatus

Definition at line 854 of file CExperiment.cpp.

References m_pStatusModule.

Referenced by CReadoutMain::CreateExperiment().

void CExperiment::EstablishTrigger CTrigger   pTrigger
 

Establishes the trigger module. This supplies a trigger object which will be run as a thread to check for events.

Definition at line 835 of file CExperiment.cpp.

References m_pTrigger.

Referenced by CReadoutMain::CreateExperiment().

CNSCLPhysicsBuffer* CExperiment::getBuffer   [inline]
 

Definition at line 413 of file CExperiment.h.

unsigned long CExperiment::GetElapsedTime   const [protected]
 

Get the elapsed run time.

Returns:
long elapsed run time in .1 seconds.

Definition at line 1322 of file CExperiment.cpp.

References CReadoutMain::getClock(), and CTimer::GetElapsedTime().

Referenced by EmitEnd(), EmitPause(), EmitResume(), EmitStart(), TriggerScalerReadout(), and TriggerSnapshotScaler().

CCompoundEventSegment& CExperiment::getReadout   [inline]
 

Definition at line 426 of file CExperiment.h.

unsigned short CExperiment::GetRunNumber   const [protected]
 

Get the run number from the run state variables.

Definition at line 1293 of file CExperiment.cpp.

References CStateVariableCommand::end(), CStateVariableCommand::find(), CReadoutMain::getInstance(), CReadoutMain::getInterpreter(), CInterpreterShell::getInterpreterCore(), CInterpreterCore::getStateVariables(), and StateVariableIterator.

Referenced by EmitEnd(), EmitPause(), EmitResume(), EmitStart(), Overflow(), ReadEvent(), TriggerDocBuffer(), TriggerRunVariableBuffer(), TriggerScalerReadout(), TriggerSnapshotScaler(), and TriggerStateVariableBuffer().

CScalerBank& CExperiment::getScalers   [inline]
 

Definition at line 423 of file CExperiment.h.

CStatusModule* CExperiment::getStatusModule   [inline]
 

Definition at line 417 of file CExperiment.h.

CTrigger* CExperiment::getTrigger   [inline]
 

Definition at line 420 of file CExperiment.h.

int CExperiment::operator!= const CExperiment &    rhs const [private]
 

CExperiment& CExperiment::operator= const CExperiment &    rhs [private]
 

Assignment.

int CExperiment::operator== const CExperiment &    rhs const [private]
 

Comparison for equality.

void CExperiment::Overflow DAQWordBufferPtr &    header,
DAQWordBufferPtr &    end
[protected]
 

Handles buffer overflows. The actual event buffer is created at double the size of the system buffer size. Data buffers then get tight packed by filling them with events until the used part of the buffer is larger than the system buffer size. At that point, a second buffer is created and the overflowed event is copied into that. The original buffer is then resized and routed.

Parameters:
header  - DAQWordBufferPtr& [in] - Pointer to the first word of the overflowing event.
end  - DAQWordBufferPtr[in]& - Pointer past the last word of the event that overflows the buffer.

Definition at line 1261 of file CExperiment.cpp.

References CNSCLPhysicsBuffer::EndEvent(), GetRunNumber(), m_EventBuffer, m_nBufferSize, CNSCLPhysicsBuffer::RetractEvent(), CNSCLOutputBuffer::Route(), CNSCLOutputBuffer::SetRun(), and CNSCLPhysicsBuffer::StartEvent().

Referenced by ReadEvent().

void CExperiment::PostEvent  
 

Performs all operations which are required after the event has been read out.

Definition at line 755 of file CExperiment.cpp.

References ClearBusy().

Referenced by ReadEvent().

void CExperiment::ReadEvent  
 

Reads an event in response to an event trigger. The event is read into the current position within the event buffer. If necessary (the worst case entity won't fit in the buffer), the event buffer is routed.

Definition at line 706 of file CExperiment.cpp.

References CCompoundEventSegment::Clear(), CNSCLPhysicsBuffer::EndEvent(), CNSCLOutputBuffer::EntityFits(), CReadoutMain::getInstance(), CReadoutMain::getInterpreter(), CInterpreterShell::getInterpreterCore(), GetRunNumber(), m_EventBuffer, m_EventReadout, m_nBufferSize, m_nEventsAcquired, m_nWordsAcquired, Overflow(), PostEvent(), CCompoundEventSegment::Read(), CNSCLOutputBuffer::Route(), CInterpreterCore::setEvents(), CNSCLOutputBuffer::SetRun(), CInterpreterCore::setWords(), CCompoundEventSegment::size(), and CNSCLPhysicsBuffer::StartEvent().

Referenced by CTriggerThread::MainLoop().

void CExperiment::RemoveEventSegment CCompoundEventSegment::EventSegmentList::iterator    i [inline]
 

Definition at line 440 of file CExperiment.h.

References CCompoundEventSegment::DeleteSegment().

void CExperiment::RemoveEventSegment CEventSegment   pSegment
 

Removes an event segment from the set of event segments read out by this experiment.

Parameters:
pSegment  - Pointer to the segment to remove.
Exceptions:
CNoSuchObjectException  - throw if the segment does not exist.

Definition at line 795 of file CExperiment.cpp.

References CCompoundEventSegment::DeleteSegment(), and m_EventReadout.

void CExperiment::RemoveScalerModule ScalerListIterator    it [inline]
 

Definition at line 454 of file CExperiment.h.

References RemoveScalerModule(), and ScalerListIterator.

void CExperiment::RemoveScalerModule CScaler   pScaler
 

Removes a scaler module from the readout system.

Parameters:
pScaler  Pointer to the module to remove.

Definition at line 1039 of file CExperiment.cpp.

References CScalerBank::DeleteScalerModule(), and m_Scalers.

Referenced by RemoveScalerModule().

void CExperiment::ReplaceBuffer unsigned    nSize
 

void CExperiment::SetBusy  
 

Sets the status module to indicate the computer is now busy.

Definition at line 807 of file CExperiment.cpp.

References CStatusModule::GoBusy(), and m_pStatusModule.

void CExperiment::SetupTimedEvent   [protected]
 

Sets up all timed events needed by the experiment when the run is active. These include:

  • A timer to periodically trigger scaler readouts.

Definition at line 1334 of file CExperiment.cpp.

References CTimer::EstablishEvent(), CReadoutMain::getClock(), and m_pScalerTrigger.

Referenced by CExperiment().

void CExperiment::Start CStateTransitionCommand   rCommand
 

Called to initiate data taking. This is done either as a transition from inactive to active or as a transition from paused to active. The trigger is initialized and the trigger thread is started. The timer is also started.

Parameters:
rCommand  - The command which is responsible for starting data taking.
Note:
  • The dynamic type of the rCommand object is used to determine if this state change is a resume or a start.
  • The caller is assumed to have validated this state transition, so we don't attempt this ourselves.

Definition at line 585 of file CExperiment.cpp.

References CCompoundEventSegment::Clear(), CScalerBank::Clear(), EmitResume(), EmitStart(), CStateTransitionCommand::ExecutePostFunction(), CStateTransitionCommand::ExecutePreFunction(), CReadoutMain::getClock(), CReadoutMain::getInstance(), CReadoutMain::getInterpreter(), CInterpreterShell::getInterpreterCore(), CReadoutMain::getScalerPeriod(), CCompoundEventSegment::Initialize(), m_EventReadout, m_LastScalerTime, m_LastSnapTime, m_nEventsAcquired, m_nWordsAcquired, m_pScalerTrigger, m_Scalers, msPerClockTick, nTriggerDwellTime, CTimer::Reset(), CInterpreterCore::setEvents(), CTimedEvent::SetInterval(), CInterpreterCore::setStartTime(), CInterpreterCore::setWords(), CTimer::Start(), StartTrigger(), TriggerDocBuffer(), TriggerRunVariableBuffer(), and TriggerStateVariableBuffer().

Referenced by CResumeCommand::operator()(), and CBeginCommand::operator()().

void CExperiment::StartTrigger   [protected]
 

Starts the event trigger. This involves creating a thread which checks to see if a trigger is present. The thread will call our ReadEvent function in its own context. The thread will synchronize by holding the global sync mutex for several passes through its main loop.

Exceptions:
CDuplicateSingleton  - If the thread object already exists.

Definition at line 1133 of file CExperiment.cpp.

References m_pTrigger, m_pTThread, and CTriggerThread::Start().

Referenced by Start().

void CExperiment::Stop CStateTransitionCommand   rCommand
 

Schedules a transition from active to either inactive or paused. The trigger module is informed that it should stop running without giving any more event triggers. The appropriate end actions are performed.

Parameters:
rCommand  refers to the Tcl command object which makes the run inactive.

Definition at line 662 of file CExperiment.cpp.

References EmitEnd(), EmitPause(), CStateTransitionCommand::ExecutePostFunction(), CStateTransitionCommand::ExecutePreFunction(), CReadoutMain::getClock(), CTimer::Stop(), StopTrigger(), TriggerDocBuffer(), TriggerRunVariableBuffer(), TriggerScalerReadout(), and TriggerStateVariableBuffer().

Referenced by CPauseCommand::operator()(), and CEndCommand::operator()().

void CExperiment::StopTrigger   [protected]
 

Stops the event trigger. This prevents future events from being acquired. Note that the trigger is processed in a separate thread. This function will block until the trigger thread has exited.

Note:
There may not be a trigger thread (paused -> inactive transition e.g.) calling StopTrigger in this case is a no-op.

Definition at line 1153 of file CExperiment.cpp.

References m_pTThread, and CTriggerThread::Stop().

Referenced by Stop().

void CExperiment::TriggerDocBuffer  
 

Creates a buffer or potentially a set of buffers, fills them with documentation information about the registered packet types. Buffers are routed out of band with any physics event buffer which might be being filled.

Definition at line 1005 of file CExperiment.cpp.

References CDocumentedPacketManager::begin(), DocumentationPacketIterator, EmitDocBuffer(), CDocumentedPacketManager::end(), CDocumentedPacketManager::getInstance(), GetRunNumber(), m_nBufferSize, CNSCLOutputBuffer::Route(), and CNSCLOutputBuffer::SetRun().

Referenced by Start(), and Stop().

void CExperiment::TriggerRunVariableBuffer  
 

Triggers the production of a run variable buffer.

  • A new buffer is allocated (existing buffer left alone).
  • Run data are filled into the buffer.
  • The buffer is routed.

Definition at line 923 of file CExperiment.cpp.

References CRunVariableCommand::begin(), EmitRunVariableBuffer(), CRunVariableCommand::end(), CReadoutMain::getInterpreter(), CInterpreterShell::getInterpreterCore(), GetRunNumber(), CInterpreterCore::getRunVariables(), CNSCLOutputBuffer::Route(), RunVariableIterator, and CNSCLOutputBuffer::SetRun().

Referenced by CRunVariableDumpTrigger::operator()(), Start(), and Stop().

void CExperiment::TriggerScalerReadout  
 

Called to initiate a scaler readout. The current buffer is routed a new buffer allocated, filled with scaler data and routed, and another new buffer is created for subsequent event readout data.

Definition at line 869 of file CExperiment.cpp.

References CScalerBank::Clear(), GetElapsedTime(), CNSCLOutputBuffer::getEntityCount(), GetRunNumber(), m_EventBuffer, m_IntervalSums, m_LastScalerTime, m_LastSnapTime, m_nBufferSize, m_Scalers, CNSCLScalerBuffer::PutScalerVector(), CScalerBank::Read(), CNSCLOutputBuffer::Route(), CNSCLScalerBuffer::SetEndTime(), CNSCLOutputBuffer::SetRun(), and CNSCLScalerBuffer::SetStartTime().

Referenced by CScalerTrigger::operator()(), and Stop().

void CExperiment::TriggerSnapshotScaler  
 

Triggers a snapshot scaler readout. Action is similar to that of scaler readout, however the existsing event buffer is maintained and this buffer is sent around it.

Definition at line 966 of file CExperiment.cpp.

References CScalerBank::Clear(), GetElapsedTime(), GetRunNumber(), m_IntervalSums, m_LastSnapTime, m_nBufferSize, m_Scalers, CNSCLScalerBuffer::PutScalerVector(), CScalerBank::Read(), CNSCLOutputBuffer::Route(), CNSCLScalerBuffer::SetEndTime(), CNSCLOutputBuffer::SetRun(), CNSCLScalerBuffer::SetStartTime(), CNSCLOutputBuffer::SetType(), and SNAPSCBF.

void CExperiment::TriggerStateVariableBuffer  
 

Definition at line 942 of file CExperiment.cpp.

References CStateVariableCommand::begin(), EmitStateVariableBuffer(), CStateVariableCommand::end(), CReadoutMain::getInterpreter(), CInterpreterShell::getInterpreterCore(), GetRunNumber(), CInterpreterCore::getStateVariables(), m_nBufferSize, CNSCLOutputBuffer::Route(), CNSCLOutputBuffer::SetRun(), and StateVariableIterator.

Referenced by CRunVariableDumpTrigger::operator()(), Start(), and Stop().


Member Data Documentation

CNSCLPhysicsBuffer* CExperiment::m_EventBuffer [private]
 

Definition at line 365 of file CExperiment.h.

Referenced by Overflow(), ReadEvent(), and TriggerScalerReadout().

CCompoundEventSegment CExperiment::m_EventReadout [private]
 

Event Readout object.

Definition at line 372 of file CExperiment.h.

Referenced by AddEventSegment(), CExperiment(), ReadEvent(), RemoveEventSegment(), and Start().

vector<unsigned long> CExperiment::m_IntervalSums [private]
 

Scaler sums over snapshot interval.

Definition at line 373 of file CExperiment.h.

Referenced by TriggerScalerReadout(), and TriggerSnapshotScaler().

unsigned long CExperiment::m_LastScalerTime [private]
 

Time of last full scaler read.

Definition at line 375 of file CExperiment.h.

Referenced by Start(), and TriggerScalerReadout().

unsigned long CExperiment::m_LastSnapTime [private]
 

Time of last snapshot.

Definition at line 374 of file CExperiment.h.

Referenced by Start(), TriggerScalerReadout(), and TriggerSnapshotScaler().

unsigned int CExperiment::m_nBufferSize [private]
 

Definition at line 366 of file CExperiment.h.

Referenced by EmitEnd(), EmitPause(), EmitResume(), EmitStart(), Overflow(), ReadEvent(), TriggerDocBuffer(), TriggerScalerReadout(), TriggerSnapshotScaler(), and TriggerStateVariableBuffer().

unsigned int CExperiment::m_nEventsAcquired [private]
 

Definition at line 377 of file CExperiment.h.

Referenced by ReadEvent(), and Start().

unsigned int CExperiment::m_nWordsAcquired [private]
 

Definition at line 378 of file CExperiment.h.

Referenced by ReadEvent(), and Start().

CScalerTrigger* CExperiment::m_pScalerTrigger [private]
 

Definition at line 376 of file CExperiment.h.

Referenced by SetupTimedEvent(), and Start().

CStatusModule* CExperiment::m_pStatusModule [private]
 

Pointer to module handling status.

Definition at line 368 of file CExperiment.h.

Referenced by ClearBusy(), EstablishBusy(), and SetBusy().

CTrigger* CExperiment::m_pTrigger [private]
 

Trigger module handler.

Definition at line 369 of file CExperiment.h.

Referenced by EstablishTrigger(), and StartTrigger().

CTriggerThread* CExperiment::m_pTThread [private]
 

Trigger checking thread.

Definition at line 370 of file CExperiment.h.

Referenced by StartTrigger(), and StopTrigger().

CScalerBank CExperiment::m_Scalers [private]
 

Scaler bank (with modules).

Definition at line 371 of file CExperiment.h.

Referenced by AddScalerModule(), CExperiment(), RemoveScalerModule(), Start(), TriggerScalerReadout(), and TriggerSnapshotScaler().


The documentation for this class was generated from the following files:
Generated on Fri Nov 8 13:37:14 2002 for Event Readout system. by doxygen1.2.16