SctApi Namespace Reference

Should probably move this out of SctApi pacakge and into SCT/src as this doesn't depend on anything in SctApi. More...


Data Structures

class  ConfigUtility
 compares ABCDModule structs and their sub-types More...
class  CrateException
 Exception to be thrown by public API methods. More...
class  Crate
 A representation of the crate controller. More...
struct  RodStatus
class  CrateImpl
 A representation of the crate controller. More...
class  DCSAccess
 High level access to DCS. More...
class  DCSAccessDummy
 Provide dummy answers to everything... More...
class  Idiosyncrasy
class  Log
 A logging class, just an ofstream that opens a fixed file. More...
class  PrimBuilder
struct  PrimListWrapper
 Wrap the SctPixelRod::RodPrimList class. More...
class  Scan
class  ScanDefImpl
class  ScanMonitor
 High-level scan interface for use over IPC. More...
class  ScanMonitorImpl
class  PreLoadConfigurations
 little class holds information for thread to load module configurations from config service The thread which starts with this object starts loading up the configurations from the config service, but does not send those to the ROD. More...
class  SctApi
 SctApi class. More...
class  SctApiConfigCache
 This is supposed to mirror the module configuration banks on the rod. More...
struct  SctApiCounters
class  SctApiDDC
class  Debug
 Manage debug options, singleton class. More...
class  SctApiException
struct  RodLabel
struct  CrateLabel
struct  ModuleMask
class  RodScanEx
 This information is used per ROD, stored in a map in ScanEx. More...
class  ScanEx
 Internal scan class with lots more information. More...
class  ScanControl
 Interface used by doScan to control and retrieve data from a histogram. More...
class  ScanControlRODHisto
 Control a histogram on a ROD. More...
class  ScanControlTIMHisto
 TIM takes control of sending the triggers. More...
class  ScanControlAsyncHisto
 SctApi delegates control of sending the triggers. More...
class  RodInfo
class  Trigger
class  TriggerImpl
class  IdiosyncrasyServer

Namespaces

namespace  AutoConf
namespace  ROOT
namespace  Utility

Typedefs

typedef std::list< std::string > ModuleList

Enumerations

enum  DebugOptions {
  DEBUG_DIAG, DEBUG_DIAG2, DEBUG_DUMP_PRIM_BINARY, DEBUG_DIAG_RESPONSE,
  DEBUG_MODULE_CONFIG, DEBUG_SAVE_PRIM, DEBUG_SAVE_HISTOGRAM, DEBUG_SAVE_RAW_CAPTURE,
  DEBUG_USE_RAW_PRIMITIVE, DEBUG_VERBOSE_PROBE, DEBUG_PRINT_IN_PRIM, DEBUG_PRINT_OUT_PRIM,
  DEBUG_PRINT_CALIB, DEBUG_PRINT_RAW, DEBUG_LOG_PRINT_PRIM, DEBUG_EXTRA_DUMPS,
  DEBUG_PRINT_UNKNOWN, DEBUG_BOC_SETUP, DEBUG_DUMP_RAW_EVENT, DEBUG_SCAN_ERROR_TRAP,
  DEBUG_SCAN_ERROR_TRAP_ALL, DEBUG_SCAN_AUTO_STALL, DEBUG_SCAN_STEP_MODE, DEBUG_SCAN_PAUSE_PULSE,
  DEBUG_SCAN_ROD_MODE_BITS, DEBUG_SCAN_USE_CCODE, DEBUG_TIM_SCAN_STATUS, DEBUG_API_CONFIG_CACHE_CHECK,
  DEBUG_API_CONFIG_CACHE_SEND, DEBUG_API_CONFIG_NO_COPY, DEBUG_CALIB_NO_SLINK, DEBUG_CALIB_RTR_STOP_OUTPUT,
  DEBUG_END_OPTIONS
}
 Possible options for the Debug class. More...
enum  BankType { SCTAPI_BANK_PHYSICS, SCTAPI_BANK_SCAN, SCTAPI_BANK_CALIBRATION }
enum  ConfigType {
  SCTAPI_CONFIG_NONE, SCTAPI_CONFIG_BASIC, SCTAPI_CONFIG_TRIM, SCTAPI_CONFIG_MASK,
  SCTAPI_CONFIG_CFG, SCTAPI_CONFIG_OTHER, SCTAPI_CONFIG_ALL
}
enum  RunType { SCTAPI_RUN_PHYSICS, SCTAPI_RUN_CALIBRATION }
enum  EventFormatType { SCTAPI_EVENT_FORMAT_NORMAL, SCTAPI_EVENT_FORMAT_EXPANDED, SCTAPI_EVENT_FORMAT_RAW }

Functions

void printOutList (unsigned long *result, unsigned long length, bool in, int level, ostream &stream, bool dumpUnknown, bool dumpRaw)
void printOutList (unsigned long *primList, unsigned long length, bool in, int level, std::ostream &stream, bool dumpUnknown, bool dumpRaw)
 Should this be somewhere else (eg Sct).
 SctApi (const Idiosyncrasy &id)
 SctApi (const Idiosyncrasy &id, boost::shared_ptr< Configuration > newConf)
 This is the "USUAL" constructor that is used.
 ~SctApi ()
bool isInitialised ()
SctApiConfigCachegetModuleConfigCache ()
const Idiosyncrasyidiosyncrasy ()
const std::string getHostName () const
bool hasFinishedScanning ()
void setup ()
void setMrsStream (MRSStream *stream)
void setIsDictionary ()
unsigned long readRodStatusReg (unsigned int rod, long regNumber)
unsigned long readRodCommandReg (unsigned int rod, long regNumber)
unsigned long dspSingleRead (unsigned int rod, const unsigned long dspAddr, long dspNumber)
void dspSingleWrite (unsigned int rod, unsigned long dspAddr, unsigned long value, long dspNumber)
ABCDModule * lookupConfig (UINT32 mid)
void cacheModuleConfig (UINT32 mid, std::string moduleName)
ABCDModule * retrieveModule (UINT32 mid)
void createDebugPrimList ()
void addDebugPrimList (unsigned long length, long index, long id, long version, unsigned long *body)
void sendDebugPrimList (unsigned int rod)
void sendDebugPrimListAll ()
void sendDebugSlavePrimList (unsigned int rod, unsigned int slave, bool await, bool response)
void debugPrimListFromFile (string fileName)
void dumpDebugPrimList ()
int initialiseModule (string modulename, bool toRod)
int initialiseRod (unsigned int rod)
void initialiseAll (int run)
void initialisationThread ()
void startSlave (unsigned int rod, unsigned int slave)
void setRunNumber (UINT32 newRun)
void setScanNumber (UINT32 newScan)
UINT32 getRunNumber ()
UINT32 getScanNumber ()
ModuleList getModuleList ()
bool isRODPresent (unsigned int rod)
void startupModules ()
void autoConfigure ()
void sendPrimList (unsigned int rod, shared_ptr< PrimListWrapper > prim)
int synchSendPrimList (unsigned int rod, shared_ptr< PrimListWrapper > primList, int timeout)
void sendPrimListAll (shared_ptr< PrimListWrapper > prim)
int synchSendPrimListAll (shared_ptr< PrimListWrapper > primList, int timeout)
void dumpPrimList (shared_ptr< PrimListWrapper > prim)
void shutdownAll ()
void sendSlavePrimList (unsigned int rod, shared_ptr< PrimListWrapper > prim, unsigned int slaveNumber, bool await, bool response)
CrategetCrate () const
int awaitResponse (unsigned int rod, int timeout)
int awaitResponseAll (int timeout)
unsigned long * getResponse (unsigned int rod, unsigned long &length)
bool getRodMessage (unsigned int rod, char *buffer, unsigned long &length)
UINT32 findModule (string sn)
string convertToString (UINT32 mid)
UINT32 findModule (INT32 mur, INT32 module)
pair< INT32, INT32 > convertToMUR (UINT32 mid)
UINT32 findBarrelModule (INT32 barrel, INT32 row, INT32 number)
void convertToBarrelModule (UINT32 mid, UINT32 &barrel, UINT32 &row, int &number)
UINT32 findEndcapModule (INT32 disk, INT32 ring, INT32 number)
void convertToEndcapModule (UINT32 mid, INT32 &disk, UINT32 &ring, UINT32 &number)
void loadConfiguration ()
void loadConfiguration (string filename)
unsigned preloadModuleConfigurations ()
int loadModuleConfigurations ()
void storeModuleConfigurations (BankType bank)
void storeBOCConfigurations ()
void configureBOC (unsigned int rod)
std::vector< double > getBOCMonitorArray (unsigned int rod)
std::string status ()
void defaultScan (int type)
void tidyHistogramming ()
void abortScan ()
void rodMode (unsigned int rod, int mode, int flag, int fifoSetup, int nBits, int delay, int message)
void setupModuleMask (unsigned int rod, int port, int slvs)
void setupModuleMask (int port, int slvs, boost::shared_ptr< PrimListWrapper > primList)
void calib_init ()
void print_calib (unsigned int rod)
unsigned long sendTimBurst (unsigned long count, int random, bool external)
unsigned long sendTriggers (const Trigger *trig, unsigned long count, int scan_point)
void sendRodTrigger (unsigned int rod, const Trigger *trig, unsigned long count, int scan_point)
void sendL1A (unsigned int rod, bool capture)
void bocHistogram (unsigned int rod, unsigned int samples, unsigned int numLoops)
void printABCDModule (int mid)
void printABCDRodModule (int mid, BankType bank)
void modifyTIMParam (unsigned int type, unsigned int val)
void modifyBOCParam (unsigned int type, unsigned int val)
void modifyBOCParam (unsigned int rod, unsigned int channel, unsigned int type, unsigned int val)
void printBOCSetup (unsigned int rod)
vector< BOCChannelConfigcurrentBOCSetup (unsigned int rod)
void printBOCRegisters (unsigned int rod)
BOCGlobalConfig currentBOCRegisters (unsigned int rod)
void saveBOCSetup (unsigned int rod, BankType bank)
void saveBOCRegisters (unsigned int rod, BankType bank)
void restoreBOCSetup (unsigned int rod, BankType bank)
void restoreBOCRegisters (unsigned int rod, BankType bank)
void lasersOff ()
void timSetFrequency (double trigFreq, double rstFreq)
double timGetTriggerFrequency ()
double timGetResetFrequency ()
void freeTriggers ()
void stopTriggers ()
void timL1A ()
void timCalL1A (int delay)
void timSoftReset ()
void timBCReset ()
void timLoadSequence (const vector< unsigned > &seq)
unsigned long timRunSequence (unsigned long trigs, int random, bool external)
void timVerbose ()
void timWriteRegister (int reg, UINT16 val)
UINT16 timReadRegister (int reg)
void decodeConfig (unsigned int rod, bool skipTrim, bool bypass)
void getrpcrc (UINT32 mid, unsigned int &rpartition, unsigned int &rcrate, unsigned int &rrod, unsigned int &rchannel)
long getRodSlot (unsigned int rod)
int getRodRevision (unsigned int rod)
int getRodRevision (const RodLabel &label)
void testLinkOutSelect (unsigned int rod, unsigned int link)
unsigned int testLinkOutRetrieve (unsigned int rod)
void setDebugOption (std::string opt)
void unsetDebugOption (std::string opt)
std::list< std::string > listEnabledDebugOptions () const
std::vector< std::string > listDebugOptions () const
void unsetBusy ()
bool checkDebugOption (std::string opt) const
bool checkDebugOption (int intOpt) const
void debugStepHistogram ()
void debugContinueHistogram ()
void debugAbortHistogram ()
void standardRegisterDump (RodLabel rl)
void standardRegisterDump (unsigned int rod)
void standardRegisterDumpAll ()
void setupScanMasks (ScanEx &extra, int distSlave, bool dual)
bool checkModuleListsForScan ()
bool preScanHardwareCheck (const Scan &scan, ScanEx &extra)
void preScanModuleSetup (const Scan &scan)
void resumePolling ()
void stopPolling ()
SctApiDDCgetSctApiDDC () const
void updateISStats ()
void insertISStats ()
int dspBlockDump (unsigned int rod, long dspStart, long numWords, long dspNumber, bool usePrim)
int dspBlockDumpFile (unsigned int rod, long dspStart, long numWords, long dspNumber, string filename, bool usePrim)
unsigned long * dspBlockRead (unsigned int rod, long dspStart, long numWords, long dspNumber, unsigned long &length, bool usePrim)
int dspBlockWrite (unsigned int rod, unsigned long *buffer, unsigned long dspAddress, long numWords, long dspNumber, bool usePrim)
unsigned long dspSingleBlockRead (unsigned int rod, long dspStart, long dspNumber)
void dspSingleBlockWrite (unsigned int rod, unsigned long dspAddress, unsigned long val, long dspNumber)
void setSlaveBlock (unsigned int rod, int s, long sAdd, int words, long value, bool usePrim)
unsigned long * primReadSlaveDsp (unsigned int rod, int s, int add, int words)
void primWriteSlaveDsp (unsigned int rod, int s, int add, int numWords, unsigned long *data)
shared_array< unsigned long > loadFile (string fileName, unsigned long &length)
void writeSlaveFile (unsigned int rod, unsigned int slave, const string fileName, unsigned long address, bool usePrim)
UINT32 eventWord (const UINT32 *const buffer, const int frame, const int index)
bool hasPostSeptember2004Firmware (const UINT32 *const frameBuffer, const int frame)
 Only apply the following method to NON ERROR events.
int findEOF (UINT32 *buffer, int startFrame)
void scanEvents (unsigned int rod, int sl, bool extFlag, bool errorType)
void decodeEvent (unsigned int rod, int slave, int index, bool extFlag, bool errorType)
void reportEventErrors ()
UINT32 * readEventBuffer (unsigned int rod, int slave, bool extFlag, bool errorType)
int getLastEventFrame (unsigned int rod, int slave)
bool changeRunMode (enum RunType mode)
bool changeEventFormat (enum EventFormatType format)
int useCCode (const SctApi &api, const Scan &scan)
 AJB.
void validateScan (boost::shared_ptr< const Scan > scan)
boost::shared_ptr< ScanMonitorstartAsyncScan (boost::shared_ptr< const Scan > scan)
boost::shared_ptr< ScanControlstartScan (boost::shared_ptr< const Scan > constScan, bool pollTriggers)
void doScan (boost::shared_ptr< const Scan > scan)
void awaitScan ()
void scanLoop ()
void scanPollingThread ()
void setupEventTrapping (const Scan &scan, const ScanEx &ex, const RodLabel rod, boost::shared_ptr< PrimListWrapper > primList)
void setupEventDump (const Scan &scan, const ScanEx &ex, const RodLabel rod, boost::shared_ptr< PrimListWrapper > primList)
void startEventTrapping (const Scan &scan, const ScanEx &ex, const RodLabel rod, shared_ptr< PrimListWrapper > primList)
void setupHistogramming (const Scan &scan, const ScanEx &ex, const RodLabel rod, bool tim, boost::shared_ptr< PrimListWrapper > primList)
void startHistogramTask (const Scan &scan, const ScanEx &ex, const RodLabel rod, unsigned int startBin, unsigned int nBins, unsigned int nTrigs, boost::shared_ptr< PrimListWrapper > primList)
void stopHistogramming (const ScanEx &ex)
void readHistogramToFile (const Sct::UCID &ucid, const Scan &scan, const ScanEx &ex, UINT32 mid, std::string sn, scan_result_ptrs scanData, time_t saveTime, int frame=0)
 Read the histogram data in to a file.
void saveHistogramToFile (scan_result_ptrs histo, std::string filename)
 Write a histogram to a file.
void readHistogramToIS (const Sct::UCID &ucid, const Scan &scan, const ScanEx &ex, UINT32 mid, scan_result_ptrs scanData)
 Read the histogram data in to IS.
int pollHistogramming (boost::shared_ptr< ScanControl > controller, int timeout)
void doHistogramSetup (const Scan &scan, const ScanEx &extra)
void eventTrapSetup (int slaveMask, int trapMatch, int trapMod, int trapRemain, bool tim, bool error, boost::shared_ptr< PrimListWrapper > primList)
void startEventTrap (int slaveNumber, boost::shared_ptr< PrimListWrapper > primList)
void stopEventTrap (int slaveNumber, boost::shared_ptr< PrimListWrapper > primList)
void writeRODRegister (unsigned int rod, int reg, int off, int width, int value)
unsigned int readRODRegister (unsigned int rod, int r)
int pollRegister (unsigned int rod, int r, int off, int width, int val, int timeout)
unsigned long * readFifo (unsigned int rod, int id, int bank, int elems)
void echo (unsigned int rod, unsigned int length, const unsigned long *data)
void echoAll (unsigned int length, const unsigned long *data)
void echoSlave (unsigned int rod, unsigned int slave, unsigned int length, const unsigned long *data)
void flashLED (unsigned int rod, long slaveNumber, long period, long flashes)
pair< UINT32, UINT32 > sendData (unsigned int rod, int type, int dsp)
void getABCDModules (BankType bank_type)
void getABCDModule (UINT32 mid, BankType bank_type)
void printBanks (list< BankType > banks, ostream &os)
void copyABCDModules (BankType source, list< BankType > to)
void copyABCDModule (UINT32 mid, BankType source, list< BankType > to)
void setABCDModule (UINT32 mid, list< BankType > bank_list)
void really_getABCDModule (UINT32 mid, BankType bank_type)
boost::shared_ptr< ABCDModule > getABCDModuleRaw (unsigned int rod, UINT32 slot, BankType bank_type)
void setABCDModules (list< BankType > banks)
void really_setABCDModule (UINT32 mid, list< BankType > bank_list, UINT32 api_cfg_type_bitfield)
void setErrorMasks ()
void sendAllABCDModules (BankType bank_type, ConfigType config_type, const bool enableDataMode)
void sendABCDModule (UINT32 mid, BankType bank_type, ConfigType config_type, const bool enableDataMode)
void modifyABCDVarROD (UINT32 mid, UINT32 chip, UINT32 type, FLOAT32 value, list< BankType > banks)
void modifyABCDVarROD (UINT32 mid, UINT32 type, FLOAT32 value, list< BankType > banks)
void modifyABCDVarROD (UINT32 type, FLOAT32 value, list< BankType > banks)
void printBanks (list< BankType > banks, std::ostream &os)
void setAutoUpdateBanks (std::list< BankType > banks)
void modifyABCDMask (UINT32 mid, UINT32 *mask)
void modifyABCDRC (UINT32 mid, UINT32 chip, UINT16 index, FLOAT32 p0, FLOAT32 p1, FLOAT32 p2)
void modifyABCDTrims (UINT32 mid, UINT8 *trims)
void modifyABCDVar (UINT32 typ, FLOAT32 val)
void modifyABCDVarAllModulesOneChip (UINT32 chip, UINT32 typ, FLOAT32 val)
void modifyABCDVar (UINT32 mid, UINT32 typ, FLOAT32 val)
void modifyABCDVar (UINT32 mid, UINT32 chip, UINT32 typ, FLOAT32 val)
const std::list< RodLabellistRods () const
void addRodToList (RodLabel newRod)
RodInfogetRodInfo (const RodLabel &l)
int setupRawData (unsigned int rod, int delay, int units, bool setMask, const Trigger *trig)
void dumpRawEvent (unsigned int rod, int units, unsigned long *bufferA, unsigned long *bufferB)
static int lookupFifoHit (UINT16 *bufA, UINT16 *bufB, int channel, int pos)
 Is there a hit at a position.
void rawData (unsigned int rod, int delay, int units, bool setMask, const Trigger *trig)
void doRawScan (boost::shared_ptr< Scan > scan, int delay, int width, bool configure, bool clkBy2)
void doRawScanThread (boost::shared_ptr< Scan > scan, int delay, int width, bool configure, bool clkBy2)
void doRawScanThreadInnards (boost::shared_ptr< Scan > scan, int delay, int width, bool configure, bool clkBy2)
void readRawData (unsigned int rod, int delay, bool setMask)
vector< char > probeWithTrigger (unsigned int rod, const Trigger *trigger, signed int harness)
vector< char > probe (unsigned int rod, signed int harness)
vector< vector< char > > probeScan (unsigned int rod, boost::shared_ptr< Scan > scan, signed int harness)
bool checkAllModulesProbe (string value)

Variables

static const short tokens [20]
const char * chipRoles []
SctApiCounters publishedStats
SctApiCounters currentStats
static const int numSlaves
static const unsigned long rodMapSize
static const unsigned long timMapSize
SctApiCounters currentStats
const int eventSize
const int eventWords
const int frameCount


Detailed Description

Should probably move this out of SctApi pacakge and into SCT/src as this doesn't depend on anything in SctApi.

SctApi provides most of the high level access to the ROD used by the SCT.

Scan is a class which describes a Scan to be carried out on the modules attached to the system.

Trigger describes a single trigger which forms an event in a scan.


Enumeration Type Documentation

enum SctApi::DebugOptions
 

Possible options for the Debug class.

Definition at line 15 of file SctApiDebug.h.


Function Documentation

void SctApi::calib_init  ) 
 

new style calib_init

Definition at line 2720 of file SctApi.cxx.

References checkDebugOption(), SctApi::PrimBuilder::instance(), SctApi::PrimBuilder::rodMode(), setupModuleMask(), synchSendPrimListAll(), and SctApi::PrimBuilder::writeRegister().

Referenced by changeRunMode(), and preScanModuleSetup().

Here is the call graph for this function:

void SctApi::copyABCDModule UINT32  mid,
BankType  source,
list< BankType >  to
 

toy prim list

Definition at line 179 of file SctApiMConf.cxx.

bool SctApi::hasPostSeptember2004Firmware const UINT32 *const   frameBuffer,
const int  frame
 

Only apply the following method to NON ERROR events.

Otherwise it will look at the BCID not the version !!!

Definition at line 54 of file SctApiEvent.cxx.

References eventWord().

Referenced by reportEventErrors().

Here is the call graph for this function:

static int SctApi::lookupFifoHit UINT16 *  bufA,
UINT16 *  bufB,
int  channel,
int  pos
[static]
 

Is there a hit at a position.

Definition at line 148 of file SctApiRaw.cxx.

References lookupFifoHit().

Referenced by lookupFifoHit(), and rawData().

Here is the call graph for this function:

void SctApi::printOutList unsigned long *  primList,
unsigned long  length,
bool  in,
int  level,
std::ostream &  stream,
bool  dumpUnknown,
bool  dumpRaw
 

Should this be somewhere else (eg Sct).

Parameters:
primList The list as a block of words
lenth Length of the block of words
in Is this an input list (hence negating the method name!

void SctApi::SctApi::readHistogramToFile const Sct::UCID ucid,
const Scan &  scan,
const ScanEx &  ex,
UINT32  mid,
std::string  sn,
scan_result_ptrs  scanData,
time_t  saveTime,
int  frame = 0
 

Read the histogram data in to a file.

Definition at line 1662 of file SctApiHisto.cxx.

References SctApi::Scan::getOption().

Referenced by SctApi::ScanControlRODHisto::readHistograms().

Here is the call graph for this function:

void SctApi::SctApi::readHistogramToIS const Sct::UCID ucid,
const Scan &  scan,
const ScanEx &  ex,
UINT32  mid,
scan_result_ptrs  scanData
 

Read the histogram data in to IS.

Definition at line 1722 of file SctApiHisto.cxx.

References SctData::ScanResultWriter::publish(), Sct::AbstractThrowable::sendToMrs(), and Sct::AbstractThrowable::what().

Referenced by SctApi::ScanControlRODHisto::readHistograms().

Here is the call graph for this function:

void SctApi::SctApi::saveHistogramToFile scan_result_ptrs  histo,
std::string  filename
 

Write a histogram to a file.

Definition at line 1699 of file SctApiHisto.cxx.

References scan_result_ptrs::data, scan_result_ptrs::header, ScanHeader::length, scan_result_ptrs::nErrorEvents, scan_result_ptrs::nEvents, ScanHeader::pntData, ScanHeader::pntErrors, ScanHeader::pntEvents, ScanHeader::pntPoints, scan_result_ptrs::points, and ScanHeader::size.

SctApi::SctApi const Idiosyncrasy &  id,
boost::shared_ptr< Configuration newConf
 

This is the "USUAL" constructor that is used.

Definition at line 121 of file SctApi.cxx.

References setup().

Here is the call graph for this function:

int SctApi::useCCode const SctApi &  api,
const Scan &  scan
 

AJB.

"Intellegent" function which works out if the CCode histogramming needs to be used. Returns true if either :

  • the debug option to use CCODE is set or
  • the scan "needs" CCODE because as of at 26/7/2005: -- synch trigs fails with assembly -- full histograms require ccode -- OPE currently requires ccode

Definition at line 72 of file SctApiHisto.cxx.

References SctApi::Scan::getOption().

Referenced by SctApi::ScanControlRODHisto::finishHistogram().

Here is the call graph for this function:


Generated on Mon Feb 6 14:04:15 2006 for SCT DAQ/DCS Software - C++ by  doxygen 1.4.6