ATLAS Offline Software
Loading...
Searching...
No Matches
MM_RawDataContainerCnv.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
8
9
11 MM_RawDataContainerCnvBase(svcloc, "MM_RawDataContainerCnv")
12{
13}
14
16
18 // Call base clase initialize
20
21 // Get the helper from the detector store
22 const MmIdHelper *idHelper;
23 ATH_CHECK( detStore()->retrieve(idHelper) );
24
25 m_TPConverter_p1.initialize(idHelper);
26 m_TPConverter_p2.initialize(idHelper);
27 m_TPConverter_p3.initialize(idHelper);
28
29 return StatusCode::SUCCESS;
30}
31
35
38{
39 using namespace Muon;
40
41 MM_RawDataContainer *transCont = nullptr;
42 static const pool::Guid p1_guid("5F202045-CE2C-4AD4-96BA-7DA18053B90F");
43 static const pool::Guid p2_guid("A49EBDAC-A190-4198-95DF-BF75FBBB487F");
44 static const pool::Guid p3_guid("229DDB7E-59D3-4BE5-B3D5-B873EBC5C9AA");
45
46 if( compareClassGuid(p1_guid) ) {
47 std::unique_ptr< MM_RawDataContainer_p1 > cont( this->poolReadObject<MM_RawDataContainer_p1>() );
48 const MM_RawDataContainer_p1* constCont = cont.get();
49 transCont = m_TPConverter_p1.createTransient( constCont, msg() );
50 }
51 // ----------------------------------------------
52 // p2 has the relBCID included
53 else if( compareClassGuid(p2_guid) ) {
54 std::unique_ptr< MM_RawDataContainer_p2 > cont( this->poolReadObject<MM_RawDataContainer_p2>() );
55 const MM_RawDataContainer_p2* constCont = cont.get();
56 transCont = m_TPConverter_p2.createTransient( constCont, msg() );
57 }
58 // ----------------------------------------------
59 // p3 has timeAndChargeInCounts switch included
60 else if( compareClassGuid(p3_guid) ) {
61 std::unique_ptr< MM_RawDataContainer_p3 > cont( this->poolReadObject<MM_RawDataContainer_p3>() );
62 const MM_RawDataContainer_p3* constCont = cont.get();
63 transCont = m_TPConverter_p3.createTransient( constCont, msg() );
64 }
65 // ----------------------------------------------
66 else {
67 throw std::runtime_error("Unsupported persistent version of MM Raw Data (RDO) container");
68 }
69 return transCont;
70}
#define ATH_CHECK
Evaluate an expression and check for errors.
Muon::MM_RawDataContainer_p3 MM_RawDataContainer_PERS
T_AthenaPoolCustomCnv< Muon::MM_RawDataContainer, MM_RawDataContainer_PERS > MM_RawDataContainerCnvBase
Muon::MM_RawDataContainerCnv_p2 m_TPConverter_p2
MM_RawDataContainerCnv(ISvcLocator *svcloc)
virtual StatusCode initialize()
Gaudi Service Interface method implementations:
Muon::MM_RawDataContainerCnv_p3 m_TPConverter_p3
virtual MM_RawDataContainer_PERS * createPersistent(Muon::MM_RawDataContainer *transCont)
Muon::MM_RawDataContainerCnv_p1 m_TPConverter_p1
virtual Muon::MM_RawDataContainer * createTransient()
virtual ~MM_RawDataContainerCnv()
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.