1#include "CLHEP/Vector/ThreeVector.h"
2#include "GaudiKernel/DataSvc.h"
3#include "GaudiKernel/IIncidentListener.h"
4#include "GaudiKernel/IIncidentSvc.h"
5#include "GaudiKernel/IInterface.h"
6#include "GaudiKernel/Incident.h"
7#include "GaudiKernel/Kernel.h"
8#include "GaudiKernel/MsgStream.h"
9#include "GaudiKernel/Service.h"
10#include "GaudiKernel/SmartDataPtr.h"
11#include "GaudiKernel/StatusCode.h"
19#include "CalibData/CalibModel.h"
20#include "CalibData/Dedx/DedxCalibData.h"
21#include "CalibData/Dedx/DedxSimData.h"
22#include "EventModel/EventHeader.h"
23#include "Identifier/Identifier.h"
28using CLHEP::Hep3Vector;
33 : base_class( name, svcloc ) {}
48 MsgStream log(
msgSvc(), name() );
49 log << MSG::INFO << name() <<
"DedxSimSvc::initialize()" << endmsg;
51 StatusCode sc = Service::initialize();
52 if ( sc.isFailure() )
return sc;
55 sc = service(
"IncidentSvc", incsvc );
57 if ( sc.isSuccess() ) { incsvc->addListener(
this,
"NewRun", priority ); }
58 sc = serviceLocator()->service(
"EventDataSvc", m_eventSvc,
true );
61 log << MSG::ERROR <<
"Unable to find EventDataSvc " << endmsg;
71 m_dedx_hists =
nullptr;
73 return StatusCode::SUCCESS;
77 MsgStream log(
msgSvc(), name() );
78 log << MSG::INFO << name() <<
"DedxSimSvc::finalize()" << endmsg;
79 return StatusCode::SUCCESS;
83 MsgStream log(
msgSvc(), name() );
84 log << MSG::DEBUG <<
"handle: " << inc.type() << endmsg;
86 if ( inc.type() ==
"NewRun" )
88 log << MSG::DEBUG <<
"New Run" << endmsg;
89 SmartDataPtr<Event::EventHeader> evt( m_eventSvc,
"/Event/EventHeader" );
93 runNo = evt->runNumber();
94 log << MSG::DEBUG <<
"The runNumber of current event is " <<
runNo << endmsg;
96 else { log << MSG::ERROR <<
"ERROR accessing Event" << endmsg; }
101void DedxSimSvc::update_param_svc() {
102 MsgStream log(
msgSvc(), name() );
103 IDataProviderSvc* pCalibDataSvc;
104 StatusCode sc = Gaudi::svcLocator()->service(
"CalibDataSvc", pCalibDataSvc,
true );
105 if ( !sc.isSuccess() )
107 log << MSG::ERROR <<
"Could not get IDataProviderSvc interface of CalibXmlCnvSvc"
112 { log << MSG::DEBUG <<
"Retrieved IDataProviderSvc interface of CalibXmlCnvSvc" << endmsg; }
114 SmartDataPtr<CalibData::DedxSimData> pDedxSimData( pCalibDataSvc,
"/Calib/DedxSim" );
115 m_runfrom = pDedxSimData->getrunfrm();
116 m_runto = pDedxSimData->getrunto();
117 m_version = pDedxSimData->getVersion();
118 m_numDedxHists = pDedxSimData->gethistNo();
119 m_numBg = pDedxSimData->getRangeNo();
120 if ( m_version == 0 ) m_numTheta = 10;
121 else m_numTheta = pDedxSimData->getThetaNo();
122 m_dedx_hists = pDedxSimData->getHist();
123 m_bgRange = pDedxSimData->getRange();
124 log << MSG::DEBUG <<
"DedxSimSvc::update_param_svc() finish" << endmsg;
DECLARE_COMPONENT(BesBdkRc)
virtual StatusCode finalize()
DedxSimSvc(const std::string &name, ISvcLocator *svcloc)
virtual StatusCode initialize()
void handle(const Incident &)