| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

ROsTriggerDataPackerTool Class Reference

#include <ROsTriggerDataPackerTool.h>

Inheritance diagram for ROsTriggerDataPackerTool:

[legend]
Collaboration diagram for ROsTriggerDataPackerTool:
[legend]
List of all members.

Public Types

 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR
 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR
enum  Status

Public Member Functions

 ROsTriggerDataPackerTool (const std::string &type, const std::string &name, const IInterface *parent)
virtual ~ROsTriggerDataPackerTool ()
virtual StatusCode fillDataPakages (std::vector< DayaBay::ReadoutTriggerDataPkg * > &dataPkgs, const DayaBay::SimTrigHeader &trigHeader)
 Modify the event.
virtual StatusCode initialize ()
virtual StatusCode finalize ()
INTupleSvcntupleSvc () const
INTupleSvcevtColSvc () const
IDataProviderSvcdetSvc () const
IDataProviderSvcevtSvc () const
IIncidentSvcincSvc () const
IChronoStatSvcchronoSvc () const
IHistogramSvchistoSvc () const
IAlgContextSvccontextSvc () const
DataObjectput (IDataProviderSvc *svc, DataObject *object, const std::string &address, const bool useRootInTES=true) const
DataObjectput (DataObject *object, const std::string &address, const bool useRootInTES=true) const
Gaudi::Utils::GetData< TYPE
>::return_type 
get (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
Gaudi::Utils::GetData< TYPE
>::return_type 
get (const std::string &location, const bool useRootInTES=true) const
TYPE * getDet (IDataProviderSvc *svc, const std::string &location) const
TYPE * getDet (const std::string &location) const
bool exist (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
bool exist (const std::string &location, const bool useRootInTES=true) const
bool existDet (IDataProviderSvc *svc, const std::string &location) const
bool existDet (const std::string &location) const
TYPE * getOrCreate (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
TYPE * getOrCreate (const std::string &location, const bool useRootInTES=true) const
TOOL * tool (const std::string &type, const std::string &name, const IInterface *parent=0, bool create=true) const
TOOL * tool (const std::string &type, const IInterface *parent=0, bool create=true) const
SERVICE * svc (const std::string &name, const bool create=true) const
IUpdateManagerSvcupdMgrSvc () const
IDataProviderSvcfastContainersSvc () const
StatusCode Error (const std::string &msg, const StatusCode st=StatusCode::FAILURE, const size_t mx=10) const
StatusCode Warning (const std::string &msg, const StatusCode st=StatusCode::FAILURE, const size_t mx=10) const
StatusCode Print (const std::string &msg, const StatusCode st=StatusCode::SUCCESS, const MSG::Level lev=MSG::INFO) const
StatusCode Assert (const bool ok, const std::string &message="", const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
StatusCode Assert (const bool ok, const char *message, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
StatusCode Exception (const std::string &msg, const GaudiException &exc, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
StatusCode Exception (const std::string &msg, const std::exception &exc, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
StatusCode Exception (const std::string &msg="no message", const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
MsgStreammsgStream (const MSG::Level level) const
MsgStreamalways () const
MsgStreamfatal () const
MsgStreamerr () const
MsgStreamerror () const
MsgStreamwarning () const
MsgStreaminfo () const
MsgStreamdebug () const
MsgStreamverbose () const
MsgStreammsg () const
const Statisticscounters () const
StatEntitycounter (const std::string &tag) const
MSG::Level msgLevel () const
bool msgLevel (const MSG::Level level) const
void resetMsgStream () const
bool typePrint () const
bool propsPrint () const
bool statPrint () const
bool errorsPrint () const
long printStat (const MSG::Level level=MSG::ALWAYS) const
long printErrors (const MSG::Level level=MSG::ALWAYS) const
long printProps (const MSG::Level level=MSG::ALWAYS) const
void registerCondition (const std::string &condition, StatusCode(CallerClass::*mf)()=NULL)
void registerCondition (const std::string &condition, CondType *&condPtrDest, StatusCode(CallerClass::*mf)()=NULL)
void registerCondition (char *condition, StatusCode(CallerClass::*mf)()=NULL)
void registerCondition (TargetClass *condition, StatusCode(CallerClass::*mf)()=NULL)
StatusCode runUpdate ()
TransientFastContainer< T > * getFastContainer (const std::string &location, typename TransientFastContainer< T >::size_type initial=0)
StatusCode release (const IInterface *interface) const
virtual unsigned long release ()
const std::string & context () const
const std::string & rootInTES () const
double globalTimeOffset () const
virtual StatusCode queryInterface (const InterfaceID &riid, void **ppvUnknown)
virtual unsigned long addRef ()
virtual const std::string & name () const
virtual const std::string & type () const
virtual const IInterfaceparent () const
virtual StatusCode configure ()
virtual StatusCode start ()
virtual StatusCode stop ()
virtual StatusCode terminate ()
virtual StatusCode reinitialize ()
virtual StatusCode restart ()
virtual Gaudi::StateMachine::State FSMState () const
virtual Gaudi::StateMachine::State targetFSMState () const
virtual StatusCode sysInitialize ()
virtual StatusCode sysStart ()
virtual StatusCode sysStop ()
virtual StatusCode sysFinalize ()
virtual StatusCode sysReinitialize ()
virtual StatusCode sysRestart ()
virtual StatusCode setProperty (const Property &p)
virtual StatusCode setProperty (const std::string &s)
virtual StatusCode setProperty (const std::string &n, const std::string &v)
StatusCode setProperty (const std::string &name, const TYPE &value)
virtual StatusCode getProperty (Property *p) const
virtual const PropertygetProperty (const std::string &name) const
virtual StatusCode getProperty (const std::string &n, std::string &v) const
virtual const std::vector<
Property * > & 
getProperties () const
PropertyMgrgetPropertyMgr ()
ISvcLocatorserviceLocator () const
ISvcLocatorsvcLoc () const
IMessageSvcmsgSvc () const
IToolSvctoolSvc () const
StatusCode setProperties ()
StatusCode service (const std::string &name, T *&svc, bool createIf=true) const
StatusCode service (const std::string &type, const std::string &name, T *&svc) const
void declInterface (const InterfaceID &, void *)
PropertydeclareProperty (const std::string &name, T &property, const std::string &doc="none") const
PropertydeclareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") const
IAuditorSvcauditorSvc () const
IMonitorSvcmonitorSvc () const
void declareInfo (const std::string &name, const T &var, const std::string &desc) const
void declareInfo (const std::string &name, const std::string &format, const void *var, int size, const std::string &desc) const
virtual const std::string & type () const =0
virtual const IInterfaceparent () const =0
virtual StatusCode configure ()=0
virtual StatusCode start ()=0
virtual StatusCode stop ()=0
virtual StatusCode terminate ()=0
virtual StatusCode reinitialize ()=0
virtual StatusCode restart ()=0
virtual Gaudi::StateMachine::State FSMState () const =0
virtual StatusCode sysInitialize ()=0
virtual StatusCode sysStart ()=0
virtual StatusCode sysStop ()=0
virtual StatusCode sysFinalize ()=0
virtual StatusCode sysReinitialize ()=0
virtual StatusCode sysRestart ()=0
virtual unsigned long refCount () const =0
virtual const std::string & name () const =0
virtual StatusCode queryInterface (const InterfaceID &riid, void **ppvInterface)=0
virtual unsigned long addRef ()=0
virtual unsigned long release ()=0

Static Public Member Functions

static const InterfaceIDinterfaceID ()
static const InterfaceIDinterfaceID ()
static const InterfaceIDinterfaceID ()
static const InterfaceIDinterfaceID ()
 Retrieve interface ID.

Public Attributes

 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR

Protected Types

typedef std::map< std::string,
StatEntity
Statistics
typedef std::map< std::string,
unsigned int > 
Counter
typedef std::vector< IAlgTool * > AlgTools
typedef std::pair< IInterface *,
std::string > 
ServiceEntry
typedef std::vector< ServiceEntryServices

Protected Member Functions

StatusCode releaseTool (const IAlgTool *tool) const
StatusCode releaseSvc (const IInterface *svc) const
int outputLevel () const
virtual unsigned long refCount () const
IntegerPropertyoutputLevelProperty ()
void initOutputLevel (Property &prop)

Static Protected Attributes

static const bool IgnoreRootInTES
static const bool UseRootInTES

Private Attributes

unsigned int m_recoveryCycles

Detailed Description

Definition at line 30 of file ROsTriggerDataPackerTool.h.


Constructor & Destructor Documentation

ROsTriggerDataPackerTool::ROsTriggerDataPackerTool ( const std::string &  type,
const std::string &  name,
const IInterface parent 
)

Definition at line 15 of file ROsTriggerDataPackerTool.cc.

00018   : GaudiTool(type,name,parent)
00019 {
00020   declareInterface< IROsTriggerDataPackerTool >(this) ;
00021   declareProperty("RecoveryTime",m_recoveryCycles=12,
00022                   "Number of (80 MHz) clock cycles for trigger recovery time");
00023   //declareProperty("ReadoutCycles",m_roCycles,
00024   //                "Clock Cycles to readout relative to reference");
00025 }

ROsTriggerDataPackerTool::~ROsTriggerDataPackerTool (  )  [virtual]

Definition at line 27 of file ROsTriggerDataPackerTool.cc.

00027 {}


Member Function Documentation

StatusCode ROsTriggerDataPackerTool::fillDataPakages ( std::vector< DayaBay::ReadoutTriggerDataPkg * > &  dataPkgs,
const DayaBay::SimTrigHeader trigHeader 
) [virtual]

Modify the event.

Implements IROsTriggerDataPackerTool.

Definition at line 41 of file ROsTriggerDataPackerTool.cc.

00043 {  
00044   debug() << "Packing Trigger Data" << endreq; 
00045   
00047   const DayaBay::SimTrigCommandHeader *tch = trigHeader.commandHeader();
00048   const DayaBay::SimTrigCommandHeader::detCollMap trigCollMap = tch->collections();
00049   
00050   DayaBay::SimTrigCommandHeader::detCollMap::const_iterator trigIt;  
00051   
00053   for(trigIt  = trigCollMap.begin(); trigIt != trigCollMap.end(); ++trigIt)
00054   {
00055     DayaBay::Detector det(trigIt->first);
00056     debug() << "found " << (trigIt->second)->commands().size() << " commands for " << det.detName() << endreq;
00057     
00058     DayaBay::SimTrigCommandCollection *triggerColl = trigIt->second ;
00059     const DayaBay::SimTrigCommandCollection::CommandContainer& detTriggers = triggerColl->commands();
00060     DayaBay::SimTrigCommandCollection::CommandContainer::const_iterator tcIt;
00061     
00062     DayaBay::ReadoutTriggerDataPkg *tdpkg = 0;
00063     int prevCycle=0;
00064     for(tcIt=detTriggers.begin();tcIt!=detTriggers.end();++tcIt){
00065          verbose() << "Trigger: " << **tcIt << endreq;
00066          verbose() << "Creating Trigger Data Frame" << endreq;
00068          DayaBay::ReadoutTriggerDataFrame *tdf = new DayaBay::ReadoutTriggerDataFrame();
00069          tdf->setCycle((*tcIt)->clockCycle());
00070          TimeStamp triggerTime( trigHeader.earliest() );
00071          triggerTime.Add((*tcIt)->clockCycle() / double(DayaBay::NhitFrequencyHz));
00072          tdf->setTriggerTime(triggerTime);
00073          tdf->setTriggerType((*tcIt)->type());
00074          tdf->setNhit((*tcIt)->nhit());
00075          tdf->setEsumAdc((*tcIt)->esumAdc());
00076          tdf->setEsumComp((*tcIt)->esumComp());
00077          
00078          //tdf->setReadoutType();
00079          //tdf->setCrossSource();
00080          //tdf->setSeqNumber();
00081          
00082          // done by addFrame() so don't set package here
00083          // tdf->setPackage() 
00084          
00085          int thiscycle = (*tcIt)->clockCycle();
00086          unsigned int dt = (unsigned int) (thiscycle-prevCycle);
00087          bool shouldBeMasked =  dt < m_recoveryCycles;
00088          
00090          if ( ! tdpkg || ! shouldBeMasked ){
00092              verbose() << "Creating a new trigger data package" << endreq;
00093              tdpkg = new DayaBay::ReadoutTriggerDataPkg();
00094              tdpkg->setDetector(det);
00095              tdpkg->addFrame(tdf);
00096              dataPkgs.push_back(tdpkg);
00097              prevCycle=thiscycle;
00098          }else{
00101              debug() << "Adding a masked trigger" << endreq;
00102              if(!tdpkg){
00103                  fatal() << "This should never happen!!!\n"
00104                      << "A trigger frame was produced "
00105                      << "with not package to put it in"
00106                      << endreq;
00107                  return StatusCode::FAILURE;
00108              }
00109              tdpkg->addFrame(tdf);
00110          }
00111          verbose() << "Done Packing Detector " << *tdpkg << endreq;
00112     }
00113     debug() << "Done Packing Triggers. " <<  endreq;
00114   }
00115   
00116   return StatusCode::SUCCESS;
00117 }

StatusCode ROsTriggerDataPackerTool::initialize (  )  [virtual]

Reimplemented from GaudiTool.

Definition at line 29 of file ROsTriggerDataPackerTool.cc.

00030 {
00031   debug() << "Initializing Trigger Data Packer" << endreq;
00032   return StatusCode::SUCCESS;
00033 }

StatusCode ROsTriggerDataPackerTool::finalize (  )  [virtual]

Reimplemented from GaudiTool.

Definition at line 35 of file ROsTriggerDataPackerTool.cc.

00036 {
00037   debug() << "Finalizing Trigger Data Packer" << endreq;
00038   return StatusCode::SUCCESS;
00039 }

const InterfaceID & IROsTriggerDataPackerTool::interfaceID (  )  [static, inherited]

Retrieve interface ID.

Reimplemented from IAlgTool.

Definition at line 8 of file IROsTriggerDataPackerTool.cc.

00009 { 
00010     return IID_IROsTriggerDataPackerTool; 
00011 }


Member Data Documentation

unsigned int ROsTriggerDataPackerTool::m_recoveryCycles [private]

Definition at line 47 of file ROsTriggerDataPackerTool.h.


The documentation for this class was generated from the following files:
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:50:40 2011 for ReadoutSim by doxygen 1.4.7