3#include "GaudiKernel/Kernel.h"
4#include "GaudiKernel/IInterface.h"
5#include "GaudiKernel/StatusCode.h"
6#include "GaudiKernel/SvcFactory.h"
7#include "GaudiKernel/MsgStream.h"
8#include "GaudiKernel/IIncidentSvc.h"
9#include "GaudiKernel/Incident.h"
10#include "GaudiKernel/ISvcLocator.h"
11#include "GaudiKernel/Bootstrap.h"
12#include "GaudiKernel/SmartDataPtr.h"
13#include "GaudiKernel/DataSvc.h"
26 Service (name, svcloc) {
33 if( IID_IInjSigTimeSvc.versionMatch(riid) ){
36 return Service::queryInterface(riid, ppvInterface);
38 return StatusCode::SUCCESS;
42 MsgStream log(messageService(), name());
43 log << MSG::INFO <<
"InjSigTimeSvc::initialize()" << endreq;
45 StatusCode sc = Service::initialize();
46 if( sc.isFailure() )
return sc;
49 sc = service(
"IncidentSvc", incsvc);
52 incsvc -> addListener(
this,
"NewRun", priority);
55 sc = service(
"CalibDataSvc", m_pCalDataSvc,
true);
56 if( sc == StatusCode::SUCCESS ){
57 log << MSG::INFO <<
"Retrieve IDataProviderSvc" << endreq;
59 log << MSG::FATAL <<
"can not get IDataProviderSvc" << endreq;
62 return StatusCode::SUCCESS;
66 MsgStream log(messageService(), name());
67 log << MSG::INFO <<
"InjSigTimeSvc::finalize()" << endreq;
72 return StatusCode::SUCCESS;
76 MsgStream log( messageService(), name() );
77 log << MSG::DEBUG <<
"handle: " << inc.type() << endreq;
79 if ( inc.type() ==
"NewRun" ){
80 log << MSG::DEBUG <<
"NewRun" << endreq;
82 if( ! initCalibConst() ){
84 <<
"can not initilize InjSigTime Constants" << endreq;
90bool InjSigTimeSvc::initCalibConst(){
91 MsgStream log(messageService(), name());
92 log << MSG::INFO <<
"read calib const from TCDS" << endreq;
94 IDataProviderSvc* eventSvc =
NULL;
95 Gaudi::svcLocator()->service(
"EventDataSvc", eventSvc);
96 SmartDataPtr<Event::EventHeader> eventHeader(eventSvc,
"/Event/EventHeader");
98 log << MSG::FATAL <<
"Could not find Event Header" << endreq;
99 return( StatusCode::FAILURE);
106 string fullPath =
"/Calib/InjSigTime";
107 SmartDataPtr<CalibData::InjSigTimeCal> calConst(m_pCalDataSvc, fullPath);
109 log << MSG::ERROR <<
"can not get InjSigTime via SmartPtr"
114 m_npar = calConst->getNpar();
115 for(
int i=0; i<m_npar; i++){
116 m_IST.push_back(calConst->getIST(i));
117 m_flag.push_back(calConst->getFlag(i));
virtual StatusCode finalize()
InjSigTimeSvc(const std::string &name, ISvcLocator *svcloc)
void handle(const Incident &)
virtual StatusCode initialize()
virtual StatusCode queryInterface(const InterfaceID &riid, void **ppvUnknown)