| # Gaudi Framework, version v25r0 |

Home |  | Generated: Mon Feb 17 2014

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
SequentialOutputStream Class Reference

Extension of OutputStream to write run records after last event. More...

`#include <SequentialOutputStream.h>`

Inheritance diagram for SequentialOutputStream:
[legend]
Collaboration diagram for SequentialOutputStream:
[legend]

## Public Member Functions
| SequentialOutputStream (const std::string &nam, ISvcLocator *svc)
| Standard algorithm Constructor.
virtual | ~SequentialOutputStream ()
| Standard Destructor.
virtual StatusCode | execute ()
| Working entry point.
Public Member Functions inherited from OutputStream
| OutputStream (const std::string &name, ISvcLocator *pSvcLocator)
| Standard algorithm Constructor.
virtual | ~OutputStream ()
| Standard Destructor.
virtual StatusCode | initialize ()
| Initialize OutputStream.
virtual StatusCode | finalize ()
| Terminate OutputStream.
virtual StatusCode | connectConversionSvc ()
virtual bool | collect (IRegistry *dir, int level)
| Store agent's classback.
virtual StatusCode | collectObjects ()
| Collect all objects to be written to the output stream.
void | clearItems (Items &itms)
| Clear item list.
void | addItem (Items &itms, const std::string &descriptor)
| Add item to output streamer list.
void | clearSelection ()
| Clear list of selected objects.
IDataSelector * | selectedObjects ()
| Return the list of selected objects.
Public Member Functions inherited from Algorithm
| Algorithm (const std::string &name, ISvcLocator *svcloc, const std::string &version=PACKAGE_VERSION)
| Constructor.
virtual | ~Algorithm ()
| Destructor.
virtual StatusCode | sysStart ()
| Reinitialization method invoked by the framework.
virtual StatusCode | sysInitialize ()
| Initialization method invoked by the framework.
virtual StatusCode | sysReinitialize ()
| Reinitialization method invoked by the framework.
virtual StatusCode | sysRestart ()
| Restart method invoked by the framework.
virtual StatusCode | sysExecute ()
| The actions to be performed by the algorithm on an event.
virtual StatusCode | sysStop ()
| System stop.
virtual StatusCode | sysFinalize ()
| System finalization.
virtual StatusCode | sysBeginRun ()
| beginRun method invoked by the framework.
virtual StatusCode | sysEndRun ()
| endRun method invoked by the framework.
virtual const std::string & | name () const
| The identifying name of the algorithm object.
virtual const std::string & | version () const
virtual StatusCode | configure ()
| Dummy implementation of IStateful::configure() method.
virtual StatusCode | terminate ()
| Dummy implementation of IStateful::terminate() method.
virtual StatusCode | start ()
| the default (empty) implementation of IStateful::start() method
virtual StatusCode | stop ()
| the default (empty) implementation of IStateful::stop() method
virtual StatusCode | reinitialize ()
| the default (empty) implementation of IStateful::reinitialize() method
virtual StatusCode | restart ()
| the default (empty) implementation of IStateful::restart() method
virtual bool | isExecuted () const
| Has this algorithm been executed since the last reset?
virtual void | setExecuted (bool state)
| Set the executed flag to the specified state.
virtual void | resetExecuted ()
| Reset the executed state of the Algorithm for the duration of the current event.
virtual StatusCode | beginRun ()
| Algorithm begin run.
virtual StatusCode | endRun ()
| Algorithm end run. This method is called at the end of the event loop.
virtual Gaudi::StateMachine::State | FSMState () const
| returns the current state of the algorithm
virtual Gaudi::StateMachine::State | targetFSMState () const
| returns the state the algorithm will be in after the ongoing transition
virtual bool | isEnabled () const
| Is this algorithm enabled or disabled?
virtual bool | filterPassed () const
| Did this algorithm pass or fail its filter criterion for the last event?
virtual void | setFilterPassed (bool state)
| Set the filter passed flag to the specified state.
template<class T >
StatusCode | service (const std::string &name, T *&psvc, bool createIf=true) const
| Access a service by name, creating it if it doesn't already exist.
template<class T >
StatusCode | service (const std::string &svcType, const std::string &svcName, T *&psvc) const
| Access a service by name and type, creating it if it doesn't already exist.
SmartIF< IService > | service (const std::string &name, const bool createIf=true, const bool quiet=false) const
| Return a pointer to the service identified by name (or "type/name")
void | setOutputLevel (int level)
| Set the output level for current algorithm.
SmartIF< IAuditorSvc > & | auditorSvc () const
| The standard auditor service.May not be invoked before sysInitialize() has been invoked.
SmartIF< IChronoStatSvc > & | chronoSvc () const
| The standard Chrono & Stat service, Return a pointer to the service if present.
SmartIF< IChronoStatSvc > & | chronoStatService () const
| Obsoleted name, kept due to the backwards compatibility.
SmartIF< IDataProviderSvc > & | detSvc () const
| The standard detector data service.
SmartIF< IDataProviderSvc > & | detDataService () const
| Obsoleted name, kept due to the backwards compatibility.
SmartIF< IConversionSvc > & | detCnvSvc () const
| The standard detector data persistency conversion service.
SmartIF< IConversionSvc > & | detDataCnvService () const
| Obsoleted name, kept due to the backwards compatibility.
SmartIF< IDataProviderSvc > & | eventSvc () const
| The standard event data service.
SmartIF< IDataProviderSvc > & | evtSvc () const
| shortcut for method eventSvc
SmartIF< IDataProviderSvc > & | eventDataService () const
| Obsoleted name, kept due to the backwards compatibility.
SmartIF< IConversionSvc > & | eventCnvSvc () const
| The standard event data persistency conversion service.
SmartIF< IConversionSvc > & | eventDataCnvService () const
| Obsoleted name, kept due to the backwards compatibility.
SmartIF< IHistogramSvc > & | histoSvc () const
| The standard histogram service.
SmartIF< IHistogramSvc > & | histogramDataService () const
| Obsoleted name, kept due to the backwards compatibility.
SmartIF< IMessageSvc > & | msgSvc () const
| The standard message service.
SmartIF< IMessageSvc > & | messageService () const
| Obsoleted name, kept due to the backwards compatibility.
SmartIF< INTupleSvc > & | ntupleSvc () const
| The standard N tuple service.
SmartIF< INTupleSvc > & | ntupleService () const
| Obsoleted name, kept due to the backwards compatibility.
SmartIF< IRndmGenSvc > & | randSvc () const
| AIDA-based NTuple service Returns a pointer to the AIDATuple service if present.
SmartIF< IToolSvc > & | toolSvc () const
| The standard ToolSvc service, Return a pointer to the service if present.
SmartIF< IExceptionSvc > & | exceptionSvc () const
| Get the exception Service.
SmartIF< IAlgContextSvc > & | contextSvc () const
| get Algorithm Context Service
SmartIF< ISvcLocator > & | serviceLocator () const
| The standard service locator.
SmartIF< ISvcLocator > & | svcLoc () const
| shortcut for method serviceLocator
bool | registerContext () const
| register for Algorithm Context Service?
StatusCode | createSubAlgorithm (const std::string &type, const std::string &name, Algorithm *&pSubAlg)
| Create a sub algorithm.
std::vector< Algorithm * > * | subAlgorithms () const
| List of sub-algorithms. Returns a pointer to a vector of (sub) Algorithms.
virtual StatusCode | setProperty (const Property &p)
| Implementation of IProperty::setProperty.
virtual StatusCode | setProperty (const std::string &s)
| Implementation of IProperty::setProperty.
virtual StatusCode | setProperty (const std::string &n, const std::string &v)
| Implementation of IProperty::setProperty.
virtual StatusCode | getProperty (Property *p) const
| Implementation of IProperty::getProperty.
virtual const Property & | getProperty (const std::string &name) const
| Implementation of IProperty::getProperty.
virtual StatusCode | getProperty (const std::string &n, std::string &v) const
| Implementation of IProperty::getProperty.
virtual const std::vector < Property * > & | getProperties () const
| Implementation of IProperty::getProperties.
StatusCode | setProperties ()
| Set the algorithm's properties.
template<class T >
Property * | declareProperty (const std::string &name, T &property, const std::string &doc="none") const
| Declare the named property.
Property * | declareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") const
| Declare remote named properties.
SmartIF< IMonitorSvc > & | monitorSvc () const
| Access the monitor service.
template<class T >
void | declareInfo (const std::string &name, const T &var, const std::string &desc) const
| Declare monitoring information.
void | declareInfo (const std::string &name, const std::string &format, const void *var, int size, const std::string &desc) const
| Declare monitoring information (special case)
template<class TYPE >
StatusCode | setProperty (const std::string &name, const TYPE &value)
| set the property form the value

## Protected Member Functions
virtual StatusCode | writeObjects ()
| OutputStream override: Select the different objects and write them to file.
Protected Member Functions inherited from OutputStream
StatusCode | decodeAcceptAlgs ()
| Decode list of Algorithms that this stream accepts.
void | acceptAlgsHandler (Property &theProp)
| Handler for AcceptAlgs Property.
StatusCode | decodeRequireAlgs ()
| Decode list of Algorithms that this stream requires.
void | requireAlgsHandler (Property &theProp)
| Handler for RequireAlgs Property.
StatusCode | decodeVetoAlgs ()
| Decode list of Algorithms that this stream is vetoed by.
void | vetoAlgsHandler (Property &theProp)
| Handler for VetoAlgs Property.
StatusCode | decodeAlgorithms (StringArrayProperty &theNames, std::vector< Algorithm * > *theAlgs)
| Decode specified list of Algorithms.
bool | isEventAccepted () const
| Test whether this event should be output.
DataStoreItem * | findItem (const std::string &path)
| Find single item identified by its path (exact match)
virtual bool | hasInput () const
| Tell if the instance has been configured with input items or not.
Protected Member Functions inherited from Algorithm
bool | isInitialized () const
| Has the Algorithm already been initialized?
bool | isFinalized () const
| Has the Algorithm already been finalized?
int | outputLevel () const
| retrieve the Algorithm output level
IntegerProperty & | outputLevelProperty ()
| Accessor for the Message level property.
void | initOutputLevel (Property &prop)
| callback for output level property

## Private Member Functions
void | makeFilename ()

## Private Attributes
unsigned int | m_eventsPerFile
unsigned int | m_nNumbersAdded
bool | m_numericFilename
unsigned int | m_events
unsigned int | m_iFile

## Additional Inherited Members
Public Types inherited from OutputStream
typedef std::vector < DataStoreItem * > | Items
typedef std::vector< std::string > | ItemNames
Protected Attributes inherited from OutputStream
SmartIF< IIncidentSvc > | m_incidentSvc
| Reference to the incident service.
bool | m_doPreLoad
| Flag indicating whether data pre-loading should be performed.
bool | m_doPreLoadOpt
| Flag indicating whether optional items should be preloaded.
bool | m_verifyItems
| Flag to indicate that item consistency should be checked.
std::string | m_storeName
| Name of the service managing the data store.
std::string | m_persName
| Name of the persistency service capable to write data from the store.
std::string | m_output
| Name of the output file specification.
std::string | m_outputName
| Name of the output file.
std::string | m_outputType
| Output type: NEW(NEW,CREATE,WRITE,RECREATE), UPDATE)
OutputStreamAgent * | m_agent
| Keep reference of agent.
SmartIF< IDataProviderSvc > | m_pDataProvider
| Keep reference to the data provider service.
SmartIF< IDataManagerSvc > | m_pDataManager
| Keep reference to the data manager service.
SmartIF< IConversionSvc > | m_pConversionSvc
| Keep reference to the data conversion service.
DataStoreItem * | m_currentItem
| Keep track of the current item.
ItemNames | m_itemNames
| Vector of item names.
Items | m_itemList
| Vector of items to be saved to this stream.
ItemNames | m_optItemNames
| Vector of item names.
Items | m_optItemList
| Vector of optional items to be saved to this stream.
IDataSelector | m_objects
| Collection of objects being selected.
int | m_events
| Number of events written to this output stream.
StringArrayProperty | m_acceptNames
| Vector of names of Algorithms that this stream accepts.
StringArrayProperty | m_requireNames
| Vector of names of Algorithms that this stream requires.
StringArrayProperty | m_vetoNames
| Vector of names of Algorithms that this stream is vetoed by.
std::vector< Algorithm * > * | m_acceptAlgs
| Vector of Algorithms that this stream accepts.
std::vector< Algorithm * > * | m_requireAlgs
| Vector of Algorithms that this stream requires.
std::vector< Algorithm * > * | m_vetoAlgs
| Vector of Algorithms that this stream is vetoed by.
bool | m_fireIncidents
| should I fire incidents for writing opening/closing etc?

## Detailed Description

Extension of OutputStream to write run records after last event.

Author
  M.Frank

Version
  1.0

Definition at line 13 of file SequentialOutputStream.h.

## Constructor & Destructor Documentation

SequentialOutputStream::SequentialOutputStream | ( | const std::string & | nam,
|  | ISvcLocator * | svc
| ) |  |

Standard algorithm Constructor.

Definition at line 26 of file SequentialOutputStream.cpp.

: OutputStream( name, svc ), m_events( 0 ), m_iFile( 1 )
{
declareProperty( "EventsPerFile", m_eventsPerFile
= boost::numeric::bounds< unsigned int>::highest() );
declareProperty( "NumericFilename", m_numericFilename = false );
declareProperty( "NumbersAdded", m_nNumbersAdded = 6 );
}

virtual SequentialOutputStream::~SequentialOutputStream | ( |  | ) |
| inline virtual

Standard Destructor.

Definition at line 25 of file SequentialOutputStream.h.

{}

## Member Function Documentation

StatusCode SequentialOutputStream::execute | ( |  | ) |
| virtual

Working entry point.

Reimplemented from OutputStream.

Definition at line 50 of file SequentialOutputStream.cpp.

{
// Clear any previously existing item list
clearSelection();
// Test whether this event should be output
if ( isEventAccepted() ) {
StatusCode sc = writeObjects();
clearSelection();
m_events++;
return sc;
}
return StatusCode::SUCCESS;
}

void SequentialOutputStream::makeFilename | ( |  | ) |
| private

Definition at line 65 of file SequentialOutputStream.cpp.

{
if ( m_events % m_eventsPerFile != 0 ) return;
bf::path outputPath( m_outputName );
string filename = outputPath.filename().string();
bf::path dir = outputPath.parent_path();
string stem = outputPath.stem().string();
string extension = outputPath.extension().string();
if ( !dir.empty() ) {
if ( !bf::exists( dir ) ) {
stringstream stream;
stream << "Directory " << dir << " does not exist.";
throw GaudiException( stream.str(), "error", StatusCode::FAILURE );
}
}
if ( m_numericFilename ) {
if ( m_events == 0 ) {
try {
m_iFile = lexical_cast< unsigned int >( stem );
} catch( const bad_lexical_cast& /* cast */ ) {
stringstream stream;
stream << "Filename " << filename
<< " is not a number, which was needed.";
throw GaudiException( stream.str(), "error", StatusCode::FAILURE );
}
}
stringstream iFileStream;
iFileStream << m_iFile;
string iFile( iFileStream.str() );
unsigned int length = 0;
if ( stem.length() > iFile.length() ) {
length = stem.length() - iFile.length();
}
stringstream name;
if ( !dir.empty() ) {
name << dir << "/";
}
for ( unsigned int i = 0; i < length; ++i ) {
name << "0";
}
name << iFile << extension;
m_outputName = name.str();
} else {
if ( m_iFile != 1 ) {
size_t pos = stem.rfind( "_" );
stem = stem.substr( 0, pos );
}
stringstream iFileStream;
iFileStream << m_iFile;
string iFile( iFileStream.str() );
unsigned int length = 0;
if ( m_nNumbersAdded > iFile.length() ) {
length = m_nNumbersAdded - iFile.length();
}
stringstream name;
name << dir << "/" << stem;
for ( unsigned int i = 0; i < length; ++i ) {
if ( i == 0 ) name << "_";
name << "0";
}
name << iFile << extension;
m_outputName = name.str();
}
++m_iFile;
}

StatusCode SequentialOutputStream::writeObjects | ( |  | ) |
| protected virtual

OutputStream override: Select the different objects and write them to file.

Reimplemented from OutputStream.

Definition at line 37 of file SequentialOutputStream.cpp.

{
try {
makeFilename();
} catch ( const GaudiException& except ) {
MsgStream log(msgSvc(), name());
log << MSG::ERROR << except.message() << endmsg;
return StatusCode::FAILURE;
}
return OutputStream::writeObjects();
}

## Member Data Documentation

unsigned int SequentialOutputStream::m_events
| private

Definition at line 37 of file SequentialOutputStream.h.

unsigned int SequentialOutputStream::m_eventsPerFile
| private

Definition at line 32 of file SequentialOutputStream.h.

unsigned int SequentialOutputStream::m_iFile
| private

Definition at line 38 of file SequentialOutputStream.h.

unsigned int SequentialOutputStream::m_nNumbersAdded
| private

Definition at line 33 of file SequentialOutputStream.h.

bool SequentialOutputStream::m_numericFilename
| private

Definition at line 34 of file SequentialOutputStream.h.

The documentation for this class was generated from the following files:

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v25r0/GaudiCommonSvc/src/PersistencySvc/SequentialOutputStream.h
- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v25r0/GaudiCommonSvc/src/PersistencySvc/SequentialOutputStream.cpp