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

In This Package:

TESDemoOutput Class Reference

#include <TESDemoOutput.h>

Inheritance diagram for TESDemoOutput:

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

Public Member Functions

 TESDemoOutput (const std::string &name, ISvcLocator *pSvcLocator)
StatusCode initialize ()
StatusCode execute ()
StatusCode finalize ()
virtual StatusCode sysExecute ()
void put (IDataProviderSvc *svc, DataObject *object, const std::string &address, const bool useRootInTES=true) const
void put (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
bool registerContext () const
INTupleSvcevtColSvc () const
IAlgContextSvccontextSvc () 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
unsigned long release ()
const std::string & context () const
const std::string & rootInTES () const
double globalTimeOffset () const
virtual StatusCode sysStart ()
virtual StatusCode sysInitialize ()
virtual StatusCode sysReinitialize ()
virtual StatusCode sysRestart ()
virtual StatusCode sysStop ()
virtual StatusCode sysFinalize ()
virtual StatusCode sysBeginRun ()
virtual StatusCode sysEndRun ()
virtual const std::string & name () const
virtual const std::string & version () const
virtual StatusCode configure ()
virtual StatusCode terminate ()
virtual StatusCode start ()
virtual StatusCode stop ()
virtual StatusCode reinitialize ()
virtual StatusCode restart ()
virtual bool isExecuted () const
virtual void setExecuted (bool state)
virtual void resetExecuted ()
virtual StatusCode beginRun ()
virtual StatusCode endRun ()
virtual Gaudi::StateMachine::State FSMState () const
virtual Gaudi::StateMachine::State targetFSMState () const
virtual bool isEnabled () const
virtual bool filterPassed () const
virtual void setFilterPassed (bool state)
StatusCode service (const std::string &name, T *&psvc, bool createIf=true) const
StatusCode service (const std::string &svcType, const std::string &svcName, T *&psvc) const
void setOutputLevel (int level)
IAuditorSvcauditorSvc () const
IChronoStatSvcchronoSvc () const
IChronoStatSvcchronoStatService () const
IDataProviderSvcdetSvc () const
IDataProviderSvcdetDataService () const
IConversionSvcdetCnvSvc () const
IConversionSvcdetDataCnvService () const
IDataProviderSvceventSvc () const
IDataProviderSvcevtSvc () const
IDataProviderSvceventDataService () const
IConversionSvceventCnvSvc () const
IConversionSvceventDataCnvService () const
IHistogramSvchistoSvc () const
IHistogramSvchistogramDataService () const
IMessageSvcmsgSvc () const
IMessageSvcmessageService () const
INTupleSvcntupleSvc () const
INTupleSvcntupleService () const
IRndmGenSvcrandSvc () const
IToolSvctoolSvc () const
IExceptionSvcexceptionSvc () const
ISvcLocatorserviceLocator () const
ISvcLocatorsvcLoc () const
StatusCode createSubAlgorithm (const std::string &type, const std::string &name, Algorithm *&pSubAlg)
std::vector< Algorithm * > * subAlgorithms () const
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
StatusCode setProperties ()
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
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
unsigned long addRef ()
StatusCode queryInterface (const InterfaceID &riid, void **)

Static Public Member Functions

static const InterfaceIDinterfaceID ()
static const InterfaceIDinterfaceID ()
static const InterfaceIDinterfaceID ()

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
bool isInitialized () const
bool isFinalized () const
int outputLevel () const
IntegerPropertyoutputLevelProperty ()
void initOutputLevel (Property &prop)

Static Protected Attributes

static const bool IgnoreRootInTES
static const bool UseRootInTES

Private Attributes

StringProperty m_regSeqPath
StringProperty m_readoutPath
IDybStorageSvcp_storageSvc
IArchiveTrimSvcp_trimSvc
std::deque< DayaBay::RegistrationSequence * > m_regSeqs

Detailed Description

Definition at line 15 of file TESDemoOutput.h.


Constructor & Destructor Documentation

TESDemoOutput::TESDemoOutput ( const std::string &  name,
ISvcLocator pSvcLocator 
)

Definition at line 11 of file TESDemoOutput.cpp.

00012                                                          :
00013   GaudiAlgorithm(name,
00014                  pSvcLocator),
00015   p_storageSvc(0),
00016   p_trimSvc(0)
00017 {
00018   declareProperty("RegSeqPath",
00019                   m_regSeqPath="/Event/RegistrationSequence",
00020                   "Path, in the TES, where the RegistrationSequnce object is kept");
00021   declareProperty("ReadoutPath",
00022                   m_readoutPath="/Event/TESDemo/Readout",
00023                   "Path from which to retrieve the Readouts");
00024 }


Member Function Documentation

StatusCode TESDemoOutput::initialize (  )  [virtual]

Reimplemented from GaudiAlgorithm.

Definition at line 26 of file TESDemoOutput.cpp.

00026                                      {
00027   
00028    info() << "in initialize" 
00029           << endreq;
00030    info() << m_regSeqPath 
00031           << endreq;
00032    
00033    StatusCode status = service("DybStorageSvc",
00034                                p_storageSvc);
00035    if (status.isFailure()) {
00036      return Error("Service [DybStorageSvc] not found",
00037                   status);
00038    }
00039 
00040    status = service("ArchiveTrimSvc",
00041                     p_trimSvc);
00042    if (status.isFailure()) {
00043      warning() << "Service [ArchiveTrimSvc] not found, will run output"
00044                << "at the end of each loop"
00045                << endreq;
00046      p_trimSvc = 0;
00047    }
00048 
00049    return StatusCode::SUCCESS;
00050 
00051 }

StatusCode TESDemoOutput::execute (  )  [virtual]

Reimplemented from GaudiAlgorithm.

Definition at line 53 of file TESDemoOutput.cpp.

00053                                   {
00054 
00055   SmartDataPtr<RegistrationSequence>  regSeq(eventSvc(),
00056                                              m_regSeqPath.value());
00057   if (0 == regSeq) {
00058     return Error("Failed to retrieve RegistrationSequence from Event Store");
00059   }
00060 
00061   regSeq->addRef();
00062   m_regSeqs.push_back(regSeq.ptr());
00063 
00064   TimeStamp now;
00065   if (0 != p_trimSvc) {
00066     SmartDataPtr<const TESDemoReadout>  readout(eventSvc(),
00067                                                 m_readoutPath.value());
00068     if (0 == readout) {
00069       return Error("Failed to retrieve readout from Event Store");
00070     }
00071     now = readout->timeStamp();
00072   }
00073 
00074   bool done = false;
00075   std::deque<RegistrationSequence*>::iterator entry = m_regSeqs.begin();
00076   while (!done &&
00077          m_regSeqs.end() != entry) {
00078     RegistrationSequence* element = *(entry);
00079     if (0 == p_trimSvc ||
00080         (now - TimeStamp(p_trimSvc->window(m_regSeqPath.value()))) > element->latest()) {
00081       p_storageSvc->store(*element);
00082       element->release();
00083       entry = m_regSeqs.erase(entry);
00084     } else {
00085       done = true;
00086     }
00087   }
00088   
00089   return StatusCode::SUCCESS;
00090 }

StatusCode TESDemoOutput::finalize (  )  [virtual]

Reimplemented from GaudiAlgorithm.

Definition at line 92 of file TESDemoOutput.cpp.

00092                                    {
00093 
00094   info() << "in finalize"
00095          << endreq;
00096 
00097   if (0 != p_storageSvc) {
00098     p_storageSvc->release();
00099   }
00100 
00101   return StatusCode::SUCCESS;
00102 
00103 }


Member Data Documentation

StringProperty TESDemoOutput::m_regSeqPath [private]

Definition at line 28 of file TESDemoOutput.h.

StringProperty TESDemoOutput::m_readoutPath [private]

Definition at line 29 of file TESDemoOutput.h.

IDybStorageSvc* TESDemoOutput::p_storageSvc [private]

Definition at line 31 of file TESDemoOutput.h.

IArchiveTrimSvc* TESDemoOutput::p_trimSvc [private]

Definition at line 32 of file TESDemoOutput.h.

std::deque<DayaBay::RegistrationSequence*> TESDemoOutput::m_regSeqs [private]

Definition at line 33 of file TESDemoOutput.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:39:47 2011 for TESDemo by doxygen 1.4.7