SctApi::ScanControlRODHisto Class Reference

Control a histogram on a ROD. More...

#include <SctApiHisto.h>

Inheritance diagram for SctApi::ScanControlRODHisto:

Inheritance graph
[legend]
Collaboration diagram for SctApi::ScanControlRODHisto:

Collaboration graph
[legend]

Public Types

typedef std::pair< std::pair<
int, int >, std::pair< int,
int > > 
TrapBuffers

Public Member Functions

 ScanControlRODHisto (SctApi &api, boost::shared_ptr< Scan > aScan, boost::shared_ptr< ScanEx > aScanEx)
virtual ~ScanControlRODHisto ()
void startHistogramming ()
 Check possible and start.
void initialisePolling ()
 Setup variables after starting histogramming?
void reportEventErrors ()
 Report on event errors found in slaves.
TrapBuffers getTrapBuffers (const RodLabel rlabel, int dsp)
 Return head and tail of iframe and xframe buffers.
unsigned int getProcTime (const RodLabel rlabel, int dsp)
 Return the processing time for the last trigger.
void dumpHistoStatus (const RodLabel label, int dsp)
 Report on status of histogramming and event traps.
void reportTimeout ()
 Report on progress at timeout.
void nextBin ()
 Move to the next bin (not necessary).
bool checkScanComplete (bool &progressMade, bool &newBin)
 Is the scan complete?
void abort ()
 Signal that the next checkScanComplete should return true.
virtual bool checkScanCompleteROD (const RodLabel &rodLabel, bool &progressMade, bool &newBin, int &totalBin)
 Is this ROD scan complete?
void finishHistogram (bool success)
 Tidy up, read out and save histogram.
std::pair< RodLabel, unsigned
int > 
findModuleSlave (unsigned int mid)

Protected Member Functions

unsigned int getEventCounter (const RodLabel &rodLabel, int slave, bool fromMaster)
 Find the event counter on the ROD.
void readHistograms ()
 Read all module's histogram data.
scan_result_ptrs readHistogramData (UINT32 mid, int frame=0)
 Read histogram data.
char * readHistogramRawData (UINT32 mid, int frame=0)
void postScanModuleSetup ()
 Restore modules after scanning.
unsigned long * getHistogramChunk (RodLabel label, int slave, unsigned long offset, unsigned long size)
 This caches the result from sendData and allows indexing each bin individually.
unsigned long * getEventCountChunk (RodLabel label, int slave)
 Provides cache of data which will be the same for all modules.
bool checkDebugOption (int opt)
bool findNextSection ()

Protected Attributes

std::map< RodLabel, int > lastBin
std::map< RodLabel, int > lastEvent
std::map< RodLabel, bool > reportedFinished
boost::shared_ptr< Scanscan
boost::shared_ptr< ScanExscanEx
int finalBin
int finalTrigger
int sectionStartBin
int sectionEndBin
int sectionEndTrigger
time_t scanStart
bool aborting

Detailed Description

Control a histogram on a ROD.

Definition at line 201 of file SctApiHisto.h.


Member Function Documentation

void SctApi::ScanControlRODHisto::abort  )  [virtual]
 

Signal that the next checkScanComplete should return true.

Implements SctApi::ScanControl.

Definition at line 2432 of file SctApiHisto.cxx.

References aborting.

bool SctApi::ScanControlRODHisto::checkScanComplete bool &  progressMade,
bool &  newBin
[virtual]
 

Is the scan complete?

Implements SctApi::ScanControl.

Definition at line 2378 of file SctApiHisto.cxx.

References aborting, and checkScanCompleteROD().

Here is the call graph for this function:

bool SctApi::ScanControlRODHisto::checkScanCompleteROD const RodLabel rodLabel,
bool &  progressMade,
bool &  newBin,
int &  totalBin
[virtual]
 

Is this ROD scan complete?

Reimplemented in SctApi::ScanControlTIMHisto.

Definition at line 2480 of file SctApiHisto.cxx.

References SctApi::ScanControl::api, SctApi::RodScanEx::bitFieldDSP, SctApi::RodLabel::crate, SctApi::SctApi::dspSingleRead(), SctApi::RodScanEx::firstSlave, getEventCounter(), lastBin, SctApi::RodLabel::partition, SctApi::RodLabel::rod, sectionEndBin, and sectionEndTrigger.

Referenced by checkScanComplete().

Here is the call graph for this function:

void SctApi::ScanControlRODHisto::dumpHistoStatus const RodLabel  label,
int  dsp
 

Report on status of histogramming and event traps.

Definition at line 2857 of file SctApiHisto.cxx.

References SctApi::ScanControl::api, SctApi::SctApi::dspBlockRead(), SctApi::SctApi::dspSingleRead(), SctApi::SctApi::getRodRevision(), and SctApi::RodLabel::rod.

Here is the call graph for this function:

void SctApi::ScanControlRODHisto::finishHistogram bool  success  )  [virtual]
 

Tidy up, read out and save histogram.

Implements SctApi::ScanControl.

Reimplemented in SctApi::ScanControlTIMHisto, and SctApi::ScanControlAsyncHisto.

Definition at line 2630 of file SctApiHisto.cxx.

References SctApi::ScanControl::api, SctApi::SctApi::dspSingleBlockRead(), SctApi::SctApi::dspSingleBlockWrite(), SctApi::SctApi::getRodRevision(), SctApi::SctApi::ucid(), and SctApi::useCCode().

Referenced by SctApi::ScanControlAsyncHisto::finishHistogram(), and SctApi::ScanControlTIMHisto::finishHistogram().

Here is the call graph for this function:

unsigned long * SctApi::ScanControlRODHisto::getEventCountChunk RodLabel  label,
int  slave
[protected]
 

Provides cache of data which will be the same for all modules.

Definition at line 2143 of file SctApiHisto.cxx.

References SctApi::Utility::MemoryBlock::address(), SctApi::ScanControl::api, SctApi::SctApi::primReadSlaveDsp(), SctApi::RodLabel::rod, and SctApi::SctApi::sendData().

Here is the call graph for this function:

unsigned int SctApi::ScanControlRODHisto::getEventCounter const RodLabel rodLabel,
int  slave,
bool  fromMaster
[protected]
 

Find the event counter on the ROD.

Parameters:
rodLabel Which ROD to read from
slave Which slave counter to read
fromMaster If true use the 16 bit copy, otherwise get 32bit from slave

Definition at line 2436 of file SctApiHisto.cxx.

References SctApi::ScanControl::api, SctApi::SctApi::dspSingleBlockRead(), SctApi::SctApi::dspSingleRead(), SctApi::SctApi::getRodRevision(), and SctApi::RodLabel::rod.

Referenced by SctApi::ScanControlTIMHisto::checkScanCompleteROD(), and checkScanCompleteROD().

Here is the call graph for this function:

unsigned long * SctApi::ScanControlRODHisto::getHistogramChunk RodLabel  label,
int  slave,
unsigned long  offset,
unsigned long  size
[protected]
 

This caches the result from sendData and allows indexing each bin individually.

Definition at line 2089 of file SctApiHisto.cxx.

References SctApi::Utility::MemoryBlock::address(), SctApi::ScanControl::api, SctApi::RodLabel::crate, SctApi::SctApi::getRodRevision(), SctApi::SctApi::mrs, SctApi::SctApi::primReadSlaveDsp(), SctApi::RodLabel::rod, SctApi::SctApi::sendData(), SctApi::Utility::MemoryBlock::size(), and SctApi::SctApiException::what().

Here is the call graph for this function:

unsigned int SctApi::ScanControlRODHisto::getProcTime const RodLabel  rlabel,
int  dsp
 

Return the processing time for the last trigger.

Definition at line 2786 of file SctApiHisto.cxx.

References SctApi::ScanControl::api, SctApi::SctApi::dspBlockRead(), SctApi::SctApi::getRodRevision(), and SctApi::RodLabel::rod.

Here is the call graph for this function:

ScanControlRODHisto::TrapBuffers SctApi::ScanControlRODHisto::getTrapBuffers const RodLabel  rlabel,
int  dsp
 

Return head and tail of iframe and xframe buffers.

Definition at line 2819 of file SctApiHisto.cxx.

References SctApi::ScanControl::api, SctApi::SctApi::dspBlockRead(), SctApi::SctApi::getRodRevision(), and SctApi::RodLabel::rod.

Here is the call graph for this function:

void SctApi::ScanControlRODHisto::initialisePolling  )  [virtual]
 

Setup variables after starting histogramming?

Implements SctApi::ScanControl.

Definition at line 2203 of file SctApiHisto.cxx.

References SctApi::ScanControl::api, SctApi::SctApi::mrs, scanStart, Sct::StringStreamer, and SctApi::SctApi::ucid().

Here is the call graph for this function:

void SctApi::ScanControlRODHisto::nextBin  )  [virtual]
 

Move to the next bin (not necessary).

Implements SctApi::ScanControl.

Reimplemented in SctApi::ScanControlTIMHisto, and SctApi::ScanControlAsyncHisto.

Definition at line 2297 of file SctApiHisto.cxx.

References SctApi::ScanControl::api, SctApi::SctApi::awaitResponse(), finalBin, findNextSection(), sectionEndBin, sectionEndTrigger, sectionStartBin, SctApi::SctApi::sendPrimList(), and SctApi::SctApi::startHistogramTask().

Here is the call graph for this function:

void SctApi::ScanControlRODHisto::postScanModuleSetup  )  [protected]
 

Restore modules after scanning.

Definition at line 2774 of file SctApiHisto.cxx.

References SctApi::ScanControl::api, and SctApi::SctApi::setErrorMasks().

Here is the call graph for this function:

scan_result_ptrs SctApi::ScanControlRODHisto::readHistogramData UINT32  mid,
int  frame = 0
[protected]
 

Read histogram data.

Definition at line 1355 of file SctApiHisto.cxx.

References SctApi::ScanControl::api, scan_result_ptrs::data, SctApi::SctApiConfigCache::getFromMid(), SctApi::SctApi::getModuleConfigCache(), SctApi::SctApi::mrs, and readHistogramRawData().

Referenced by readHistograms().

Here is the call graph for this function:

void SctApi::ScanControlRODHisto::readHistograms  )  [protected]
 

Read all module's histogram data.

Definition at line 1228 of file SctApiHisto.cxx.

References SctApi::ScanControl::api, checkDebugOption(), SctApi::SctApi::convertToString(), scan_result_ptrs::data, SctApi::SctApi::findModule(), SctApi::Utility::getpcrc(), scan_result_ptrs::header, SctApi::SctApi::listRods(), SctApi::SctApi::mrs, scan_result_ptrs::nErrorEvents, scan_result_ptrs::nEvents, scan_result_ptrs::points, readHistogramData(), SctApi::readHistogramToFile(), SctApi::readHistogramToIS(), ScanHeader::scanNumber, and SctApi::SctApi::ucid().

Here is the call graph for this function:

void SctApi::ScanControlRODHisto::reportEventErrors  )  [virtual]
 

Report on event errors found in slaves.

Implements SctApi::ScanControl.

Definition at line 2782 of file SctApiHisto.cxx.

References SctApi::ScanControl::api, and SctApi::SctApi::reportEventErrors().

Here is the call graph for this function:

void SctApi::ScanControlRODHisto::reportTimeout  )  [virtual]
 

Report on progress at timeout.

Implements SctApi::ScanControl.

Definition at line 2244 of file SctApiHisto.cxx.

void SctApi::ScanControlRODHisto::startHistogramming  )  [virtual]
 

Check possible and start.

Implements SctApi::ScanControl.

Reimplemented in SctApi::ScanControlTIMHisto, and SctApi::ScanControlAsyncHisto.

Definition at line 1890 of file SctApiHisto.cxx.

References checkDebugOption().

Here is the call graph for this function:


The documentation for this class was generated from the following files:
Generated on Mon Feb 6 14:04:46 2006 for SCT DAQ/DCS Software - C++ by  doxygen 1.4.6