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

In This Package:

RunDataWriterAlg Class Reference

#include <RunDataWriterAlg.h>

Inheritance diagram for RunDataWriterAlg:

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

Public Member Functions

 RunDataWriterAlg (const std::string &name, ISvcLocator *pSvcLocator)
virtual ~RunDataWriterAlg ()
virtual StatusCode initialize ()
virtual StatusCode execute ()
virtual StatusCode finalize ()
virtual StatusCode endRun ()
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 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 Member Functions

StatusCode writeDataToFile ()
StatusCode writeDataToDatabase ()

Private Attributes

bool m_writeToFile
bool m_writeToDatabase
std::string m_runDataLocation
IDybStorageSvcm_storageSvc
IRunDataSvcm_runDataSvc

Detailed Description

Definition at line 19 of file RunDataWriterAlg.h.


Constructor & Destructor Documentation

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

Definition at line 9 of file RunDataWriterAlg.cc.

00011   : GaudiAlgorithm(name,pSvcLocator),
00012     m_storageSvc(0),
00013     m_runDataSvc(0)
00014 {
00015   declareProperty("RunDataLocation",
00016                   m_runDataLocation=DayaBay::RunHeaderLocation::Default,
00017                   "Location in file where Run Data is to be found.");
00018   declareProperty("WriteToFile",m_writeToFile=false,
00019                   "Write the run data to the current output file?");
00020   declareProperty("WriteToDatabase",m_writeToDatabase=false,
00021                   "Write the run data to the offline database?");
00022 }

RunDataWriterAlg::~RunDataWriterAlg (  )  [virtual]

Definition at line 24 of file RunDataWriterAlg.cc.

00025 {
00026 }


Member Function Documentation

StatusCode RunDataWriterAlg::initialize (  )  [virtual]

Reimplemented from GaudiAlgorithm.

Definition at line 28 of file RunDataWriterAlg.cc.

00029 {
00030   // Initialize the necessary services
00031   if( m_writeToFile ){
00032     StatusCode sc = this->service("DybStorageSvc",m_storageSvc,true);
00033     if(sc.isFailure()){
00034       error() << "Failed to get DybStorageSvc" << endreq;
00035       return sc;
00036     }
00037   }
00038   StatusCode sc = this->service("RunDataSvc",m_runDataSvc,true);
00039   if(sc.isFailure()){
00040     error() << "Failed to get RunDataSvc" << endreq;
00041     return sc;
00042   }
00043   return StatusCode::SUCCESS;
00044 }

StatusCode RunDataWriterAlg::execute (  )  [virtual]

Reimplemented from GaudiAlgorithm.

Definition at line 46 of file RunDataWriterAlg.cc.

00047 {
00048   return StatusCode::SUCCESS;
00049 }

StatusCode RunDataWriterAlg::finalize (  )  [virtual]

Reimplemented from GaudiAlgorithm.

Definition at line 51 of file RunDataWriterAlg.cc.

00052 {
00053   if( m_writeToFile ) m_storageSvc->release();
00054   m_runDataSvc->release();
00055   return StatusCode::SUCCESS;
00056 }

StatusCode RunDataWriterAlg::endRun (  )  [virtual]

Reimplemented from GaudiAlgorithm.

Definition at line 59 of file RunDataWriterAlg.cc.

00060 {
00061   // Write the run data to file/database at the end of the run
00062   StatusCode sc = StatusCode::SUCCESS;
00063   if( m_writeToFile ) sc = this->writeDataToFile();
00064   if( !sc.isSuccess() ) return sc;
00065   if( m_writeToDatabase ) sc = this->writeDataToDatabase();
00066   return sc;
00067 }

StatusCode RunDataWriterAlg::writeDataToFile (  )  [private]

Definition at line 69 of file RunDataWriterAlg.cc.

00069                                             {
00070   // Write Run Data to current output file
00071 
00072   debug() << "Writing RunData" << endreq;
00073   // Create Run Header
00074   DayaBay::RunHeader runHeader;
00075   runHeader.setRunDataList( m_runDataSvc->cachedRunData() );
00076   // Have to put RunHeader in a registry for DybStorageSvc to work correctly
00077   DataSvcHelpers::RegistryEntry* regEntry 
00078     = new DataSvcHelpers::RegistryEntry(m_runDataLocation);
00079   regEntry->setObject(&runHeader);
00080   debug() << "Storing RunHeader" << endreq;
00081   StatusCode sc = m_storageSvc->store(&runHeader, m_runDataLocation);
00082   debug() << "Stored RunHeader" << endreq;
00083   if(sc.isFailure()){
00084     error() << "Failed to store Run Header to output file" << endreq;
00085   }
00086   // Clear run data to prevent deleting
00087   debug() << "Clearing RunData in RunHeader" << endreq;
00088   std::vector<DayaBay::RunData*> emptyList;
00089   runHeader.setRunDataList( emptyList );
00090   debug() << "Cleared RunData in RunHeader" << endreq;
00091   return sc;
00092 }

StatusCode RunDataWriterAlg::writeDataToDatabase (  )  [private]

Definition at line 94 of file RunDataWriterAlg.cc.

00094                                                 {
00095   // Write Run Data to offline database
00096   warning() << "Writing Run Data to offline database is not yet implemented."
00097             << endreq;
00098   return StatusCode::SUCCESS;
00099 }


Member Data Documentation

bool RunDataWriterAlg::m_writeToFile [private]

Definition at line 38 of file RunDataWriterAlg.h.

bool RunDataWriterAlg::m_writeToDatabase [private]

Definition at line 41 of file RunDataWriterAlg.h.

std::string RunDataWriterAlg::m_runDataLocation [private]

Definition at line 44 of file RunDataWriterAlg.h.

IDybStorageSvc* RunDataWriterAlg::m_storageSvc [private]

Definition at line 47 of file RunDataWriterAlg.h.

IRunDataSvc* RunDataWriterAlg::m_runDataSvc [private]

Definition at line 49 of file RunDataWriterAlg.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:22:44 2011 for RunDataSvc by doxygen 1.4.7