/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Event/RunEventNumberAlg/RunEventNumberAlg-00-00-02/src/RunEventNumber.cxx

Go to the documentation of this file.
00001 #include "GaudiKernel/MsgStream.h"
00002 #include "GaudiKernel/AlgFactory.h"
00003 #include "GaudiKernel/ISvcLocator.h"
00004 #include "GaudiKernel/SmartDataPtr.h"
00005 #include "GaudiKernel/IDataProviderSvc.h"
00006 #include "GaudiKernel/PropertyMgr.h"
00007 #include "GaudiKernel/Bootstrap.h"
00008 
00009 #include "EventModel/EventModel.h"
00010 #include "EventModel/Event.h"
00011 #include "EventModel/EventHeader.h"
00012 
00013 #include "RunEventNumberAlg/RunEventNumber.h"
00014 #include <time.h>
00015 
00016 time_t rawtime;
00017 
00018 
00020 
00021 
00022 RunEventNumber::RunEventNumber(const std::string& name, ISvcLocator* pSvcLocator) :
00023   Algorithm(name, pSvcLocator) {
00024   
00025   //Declare the properties  
00026   declareProperty("Period", m_period = 0);
00027 
00028 }
00029 
00030 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
00031 StatusCode RunEventNumber::initialize(){
00032   MsgStream log(msgSvc(), name());
00033 
00034   log << MSG::INFO << "in initialize()" << endmsg;
00035   StatusCode sc;
00036   
00037   numEvents = 0;
00038   numRuns = 0;
00039   prevRun = 0;
00040 
00041   log << MSG::INFO << "successfully return from initialize()" <<endmsg;
00042   return StatusCode::SUCCESS;
00043 
00044 }
00045 
00046 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
00047 StatusCode RunEventNumber::execute() {
00048   
00049   MsgStream log(msgSvc(), name());
00050   log << MSG::INFO << "in execute()" << endreq;
00051 
00052   numEvents++;
00053 
00054   SmartDataPtr<Event::EventHeader> eventHeader(eventSvc(),"/Event/EventHeader");
00055   int runNum=eventHeader->runNumber();
00056   int eventNum=eventHeader->eventNumber();
00057 
00058   if(runNum != prevRun) {
00059     numRuns++;
00060     prevRun = runNum;
00061   }
00062 
00063   if((m_period != 0)&&(numEvents % m_period == 0)) {
00064     time ( &rawtime );
00065     std::cout << " RunEventNumberAlg: Run, event, time = " 
00066               << runNum << ", " << eventNum << ", " << asctime(localtime(&rawtime));
00067   }
00068 
00069   return StatusCode::SUCCESS;
00070 }
00071 
00072 
00073 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
00074 StatusCode RunEventNumber::finalize() {
00075 
00076   MsgStream log(msgSvc(), name());
00077   log << MSG::INFO << "in finalize()" << endmsg;
00078 
00079   std::cout << std::endl;
00080   std::cout << " RunEventNumberAlg: Number of processed runs = " << numRuns << std::endl;
00081   std::cout << " RunEventNumberAlg: Number of processed events = " << numEvents << std::endl;
00082   std::cout << std::endl;
00083 
00084   return StatusCode::SUCCESS;
00085 }
00086 

Generated on Tue Nov 29 23:11:43 2016 for BOSS_7.0.2 by  doxygen 1.4.7