Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Related Pages

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)
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
boost::shared_ptr< Scan > scan
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 158 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 1985 of file SctApiHisto.cxx.

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

Is the scan complete?

Implements SctApi::ScanControl.

Definition at line 1931 of file SctApiHisto.cxx.

References checkScanCompleteROD(), and SctApi::SctApi::m_isDict.

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 2006 of file SctApiHisto.cxx.

References SctApi::RodScanEx::bitFieldDSP, SctApi::SctApi::dspSingleRead(), SctApi::RodScanEx::firstSlave, getEventCounter(), and SctApi::SctApi::mrs.

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 2352 of file SctApiHisto.cxx.

References SctApi::SctApi::dspBlockRead(), SctApi::SctApi::dspSingleRead(), and SctApi::SctApi::getRodRevision().

Referenced by SctApi::ScanControlTIMHisto::nextBin().

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.

Definition at line 2088 of file SctApiHisto.cxx.

References SctApi::RodScanEx::bitFieldDSP, SctApi::SctApi::dspSingleBlockRead(), SctApi::SctApi::dspSingleBlockWrite(), SctApi::SctApi::getRodRevision(), SctApi::SctApi::idiosyncrasy(), SctApi::SctApi::m_isDict, SctApi::SctApi::mrs, postScanModuleSetup(), SctApi::SctApi::print_calib(), readHistograms(), and SctApi::SctApi::stopHistogramming().

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 1706 of file SctApiHisto.cxx.

References SctApi::SctApi::primReadSlaveDsp(), and SctApi::SctApi::sendData().

Referenced by readHistogramData().

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 1990 of file SctApiHisto.cxx.

References SctApi::SctApi::dspSingleRead().

Referenced by 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 1657 of file SctApiHisto.cxx.

References SctApi::SctApi::getRodRevision(), SctApi::SctApi::mrs, SctApi::SctApi::primReadSlaveDsp(), and SctApi::SctApi::sendData().

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 2284 of file SctApiHisto.cxx.

References SctApi::SctApi::dspBlockRead(), and SctApi::SctApi::getRodRevision().

Referenced by SctApi::ScanControlTIMHisto::nextBin().

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 2315 of file SctApiHisto.cxx.

References SctApi::SctApi::dspBlockRead(), and SctApi::SctApi::getRodRevision().

Referenced by SctApi::ScanControlTIMHisto::nextBin().

Here is the call graph for this function:

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

Setup variables after starting histogramming?

Implements SctApi::ScanControl.

Definition at line 1758 of file SctApiHisto.cxx.

References SctApi::SctApi::m_isDict, and SctApi::SctApi::mrs.

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

Move to the next bin (not necessary).

Implements SctApi::ScanControl.

Reimplemented in SctApi::ScanControlTIMHisto.

Definition at line 1850 of file SctApiHisto.cxx.

References SctApi::SctApi::awaitResponse(), 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 2217 of file SctApiHisto.cxx.

References SctApi::SctApi::synchSendPrimListAllCrates().

Referenced by finishHistogram().

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 1039 of file SctApiHisto.cxx.

References ScanHeader::config, SctApi::SctApi::convertToString(), scan_result_ptrs::data, ScanHeader::dataType, ScanHeader::endTime, SctApi::SctApi::getABCDModule(), getEventCountChunk(), scan_result_ptrs::header, ScanHeader::length, ScanHeader::moduleName, scan_result_ptrs::nErrorEvents, scan_result_ptrs::nEvents, ScanHeader::npoints, ScanHeader::pntData, ScanHeader::pntErrors, ScanHeader::pntEvents, ScanHeader::pntPoints, scan_result_ptrs::points, SctApi::SctApi::printABCDModule(), SctApi::SctApi::retrieveModule(), ScanHeader::runNumber, ScanHeader::scanNumber, ScanHeader::scanType, ScanHeader::size, ScanHeader::startTime, ScanHeader::version, and ScanHeader::width.

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 930 of file SctApiHisto.cxx.

References SctApi::SctApi::convertToString(), scan_result_ptrs::data, SctApi::SctApi::findModule(), 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(), and ScanHeader::scanNumber.

Referenced by finishHistogram().

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 2280 of file SctApiHisto.cxx.

References 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 1797 of file SctApiHisto.cxx.

References SctApi::SctApi::mrs.

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

Check possible and start.

Implements SctApi::ScanControl.

Reimplemented in SctApi::ScanControlTIMHisto.

Definition at line 1487 of file SctApiHisto.cxx.

References SctApi::SctApi::awaitResponse(), SctApi::SctApi::dspSingleBlockRead(), SctApi::SctApi::dspSingleBlockWrite(), SctApi::SctApi::dspSingleWrite(), SctApi::SctApi::getRodRevision(), SctApi::SctApi::sendPrimList(), and SctApi::SctApi::startHistogramTask().

Here is the call graph for this function:


The documentation for this class was generated from the following files:
Generated on Fri Sep 16 18:03:03 2005 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5