2#include "GaudiKernel/Kernel.h"
3#include "GaudiKernel/IInterface.h"
4#include "GaudiKernel/IIncidentSvc.h"
5#include "GaudiKernel/Incident.h"
6#include "GaudiKernel/IIncidentListener.h"
7#include "GaudiKernel/StatusCode.h"
8#include "GaudiKernel/SvcFactory.h"
9#include "GaudiKernel/MsgStream.h"
10#include "GaudiKernel/IDataProviderSvc.h"
11#include "GaudiKernel/SmartDataPtr.h"
12#include "GaudiKernel/DataSvc.h"
16#include "GaudiKernel/ThreadGaudi.h"
26 base_class (name, svcloc) {
28 declareProperty(
"OutputLevel", m_outputLevel=MSG::WARNING);
29 declareProperty(
"skipLayers", m_skipLayers);
30 declareProperty(
"MdcWireEffThreshold", m_effThreshold=0.9);
31 declareProperty(
"MdcAdcThreshold", m_adcThresholds);
32 declareProperty(
"EmcELow", m_elow=0);
33 declareProperty(
"EmcTLow", m_tlow=0);
34 declareProperty(
"EmcTHigh", m_thigh=60);
35 declareProperty(
"EmcHotCrystals", m_hotVec);
36 declareProperty(
"EmcDeadCrystals", m_deadVec);
37 declareProperty(
"EmcDeadCrystals", m_deadVec);
38 declareProperty(
"OnlineMode", m_onlineMode=0);
48 if(m_mdcProvider)
delete m_mdcProvider;
49 if(m_tofProvider)
delete m_tofProvider;
50 if(m_emcProvider)
delete m_emcProvider;
55 MsgStream log(messageService(), name());
56 log << MSG::INFO <<
"RawDataProviderSvc::initialize()" << endreq;
58 StatusCode sc = Service::initialize();
59 if( sc.isFailure() )
return sc;
62 std::string incidentSvc_name(
"IncidentSvc");
68 sc = service(incidentSvc_name.c_str(), incsvc);
71 incsvc -> addListener(
this,
"BeginEvent", priority);
75 if( sc.isFailure() )
return sc;
79 if( sc.isFailure() )
return sc;
81 if( m_skipLayers.size()>0 ) m_mdcProvider->
setSkipLayers( m_skipLayers );
83 if(m_adcThresholds.size()>0) m_mdcProvider->
setAdcThresholds( m_adcThresholds );
90 sc = m_emcProvider->
initialize(m_onlineMode,serviceLocator());
91 if( sc.isFailure() )
return sc;
94 return StatusCode::SUCCESS;
98 MsgStream log(messageService(), name());
99 log << MSG::INFO <<
"RawDataProviderSvc::finalize()" << endreq;
101 return StatusCode::SUCCESS;
116 MsgStream log( messageService(), name() );
117 log << MSG::DEBUG <<
"handle: " << inc.type() << endreq;
118 if ( inc.type() ==
"BeginEvent" ){
119 log << MSG::DEBUG <<
"Begin Event" << endreq;
120 m_tofProvider->
handle( inc );
121 m_emcProvider->
handle( inc );
122 m_mdcProvider->
handle( inc );
void setTLowThreshold(const uint32_t low)
void setHotCrystals(const std::vector< uint32_t > &idVec)
void setELowThreshold(const uint32_t low)
void handle(const Incident &)
virtual StatusCode initialize(bool mode=0, ISvcLocator *svcLoc=0, IMessageSvc *pMsg=0)
void setTHighThreshold(const uint32_t high)
void handle(const Incident &)
void setAdcThresholds(const std::vector< float > &adcThresholds)
StatusCode initialize(ISvcLocator *svcLoc=0, IMessageSvc *pMsg=0)
void setSkipLayers(const std::vector< int > &skipLayers)
void setEffThreshold(float effThreshold)
virtual StatusCode finalize()
void handle(const Incident &)
virtual StatusCode initialize()
static int EmcChargeChannel(double charge)
void handle(const Incident &)
StatusCode initialize(bool mode=false, ISvcLocator *svcLoc=0, IMessageSvc *pMsg=0)