ATLAS Offline Software
MuonCalibStreamAddressProviderSvc.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
5 
6 #include "GaudiKernel/IClassIDSvc.h"
7 #include "GaudiKernel/TypeNameString.h"
10 
13  AthService(name, svc), m_dataSvc(nullptr) {
14  m_typeNames.push_back("Muon::MdtPrepDataContainer/MDT_DriftCircles");
15  m_typeNames.push_back("RpcPadContainer/RPCPAD");
16  m_typeNames.push_back("TgcRdoContainer/TGCRDO");
17  //m_typeNames.push_back("CscRawDataContainer/CSCRDO");
18  m_typeNames.push_back("xAOD::EventInfo");
19  declareProperty("TypeNames", m_typeNames);
20 }
21 
24 
27  ATH_CHECK(service("MuonCalibStreamDataProviderSvc", m_dataSvc));
28  ATH_MSG_INFO(" initialized ");
29  return StatusCode::SUCCESS;
30 }
31 
33  ATH_MSG_DEBUG(" call MuonCalibStreamAddressProviderSvc::preLoadAddresses");
34 
35  if (idp != StoreID::EVENT_STORE) {
36  ATH_MSG_DEBUG("idp = " << idp << " != StoreID::EVENT_STORE; not creating TADs");
37  return StatusCode::SUCCESS;
38  } else {
39  ATH_MSG_DEBUG("idp = " << idp << " == StoreID::EVENT_STORE; Creating TADs for muon detectors!");
40  }
41 
42  // only deal with event store.
43  std::vector<std::string>::const_iterator it = m_typeNames.begin();
44  std::vector<std::string>::const_iterator it_e = m_typeNames.end();
45 
46  IClassIDSvc *clidSvc;
47  ATH_CHECK(service("ClassIDSvc", clidSvc));
48 
49  for (; it != it_e; ++it) {
50  Gaudi::Utils::TypeNameString item(*it);
51  std::string t = item.type();
52  std::string nm = item.name();
53 
54  CLID id;
55  ATH_CHECK(clidSvc->getIDOfTypeName(t, id));
56 
58  tlist.push_back(tad);
59  ATH_MSG_DEBUG(" created TAD for (type,clid,name,TAD)" << t << " " << id << " " << nm);
60 
61  // save the clid and key.
62  m_clidKey[id].insert(nm);
63  }
64  return StatusCode::SUCCESS;
65 } // MuonCalibStreamAddressProviderSvc::preLoadAddresses()
66 
67 // update an existing transient Address
69  CLID clid = tad->clID();
70  std::string nm = tad->name();
71  std::map<CLID, std::set<std::string> >::const_iterator it = m_clidKey.find(clid);
72 
73  if (it == m_clidKey.end()) return StatusCode::FAILURE;
74 
75  if ((*it).second.count(nm) == 0) return StatusCode::FAILURE;
76 
77  ATH_MSG_DEBUG(" creating address for " << clid << " " << nm);
78 
80  tad->setAddress(add);
81  return StatusCode::SUCCESS;
82 }
MuonCalibStreamAddressProviderSvc.h
MuonCalibStreamAddress.h
MuonCalibStreamAddressProviderSvc::m_dataSvc
IMuonCalibStreamDataProviderSvc * m_dataSvc
Definition: MuonCalibStreamAddressProviderSvc.h:37
MuonCalibStreamAddressProviderSvc::initialize
virtual StatusCode initialize()
Initialize the service.
Definition: MuonCalibStreamAddressProviderSvc.cxx:26
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
MuonCalibStreamAddressProviderSvc::MuonCalibStreamAddressProviderSvc
MuonCalibStreamAddressProviderSvc(const std::string &name, ISvcLocator *svcloc)
Standard constructor.
Definition: MuonCalibStreamAddressProviderSvc.cxx:12
MuonCalibStreamAddressProviderSvc::~MuonCalibStreamAddressProviderSvc
virtual ~MuonCalibStreamAddressProviderSvc()
Standard Destructor.
Definition: MuonCalibStreamAddressProviderSvc.cxx:23
query_example.tlist
tlist
Definition: query_example.py:25
skel.it
it
Definition: skel.GENtoEVGEN.py:423
SG::TransientAddress
Definition: TransientAddress.h:32
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
SG::TransientAddress::name
const std::string & name() const
Get the primary (hashed) SG key.
Definition: TransientAddress.h:208
PyPoolBrowser.item
item
Definition: PyPoolBrowser.py:129
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
AthService
Definition: AthService.h:32
SG::TransientAddress::clID
CLID clID() const
Retrieve string key:
Definition: TransientAddress.h:201
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
add
bool add(const std::string &hname, TKey *tobj)
Definition: fastadd.cxx:55
Handler::svc
AthROOTErrorHandlerSvc * svc
Definition: AthROOTErrorHandlerSvc.cxx:10
CLID
uint32_t CLID
The Class ID type.
Definition: Event/xAOD/xAODCore/xAODCore/ClassID_traits.h:47
MuonCalibStreamAddressProviderSvc::updateAddress
virtual StatusCode updateAddress(StoreID::type tp, SG::TransientAddress *tad, const EventContext &)
update an existing transient Address
Definition: MuonCalibStreamAddressProviderSvc.cxx:68
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:220
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
item
Definition: ItemListSvc.h:43
SG::TransientAddress::setAddress
void setAddress(IOpaqueAddress *pAddress)
Retrieve primary clid.
Definition: TransientAddress.cxx:172
MuonCalibStreamAddressProviderSvc::m_clidKey
std::map< CLID, std::set< std::string > > m_clidKey
Definition: MuonCalibStreamAddressProviderSvc.h:38
CalibCoolCompareRT.nm
nm
Definition: CalibCoolCompareRT.py:110
StoreID::type
type
Definition: StoreID.h:24
TransientAddress.h
IAddressProvider::tadList
std::list< SG::TransientAddress * > tadList
Definition: IAddressProvider.h:32
StoreID::EVENT_STORE
@ EVENT_STORE
Definition: StoreID.h:26
MuonCalibStreamAddress
Definition: MuonCalibStreamAddress.h:14
MuonCalibStreamAddressProviderSvc::preLoadAddresses
virtual StatusCode preLoadAddresses(StoreID::type id, tadList &tlist)
get all addresses from Provider : Called before Begin Event
Definition: MuonCalibStreamAddressProviderSvc.cxx:32
MuonCalibStreamAddressProviderSvc::m_typeNames
std::vector< std::string > m_typeNames
Definition: MuonCalibStreamAddressProviderSvc.h:36