ATLAS Offline Software
TrigSpacePointCountsCnv.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
11 
12 
15 
16 
18  MsgStream mlog(msgSvc(), "TrigSpacePointCountsConverter" );
19 
20  mlog << MSG::DEBUG << "TrigSpacePointCountsCnv::createPersistent" << endmsg;
21 
23 
24  return persObj;
25 }
26 
27 
29  MsgStream mlog(msgSvc(), "TrigSpacePointCountsConverter" );
30 
31  mlog << MSG::DEBUG << "TrigSpacePointCountsCnv::createTransient " << endmsg;
32 
33  static const pool::Guid p3_guid("43E61EDF-2902-4F64-8A89-F625DB7DA7CC");
34  static const pool::Guid p2_guid("3A6CFBCF-E2AE-4E3D-A965-091718A5CB9F");
35  static const pool::Guid p1_guid("8BF48F79-C6C2-4AA7-8180-16BC6C39280F");
36  static const pool::Guid p0_guid("1BCAD9FD-DAFE-4E50-9A37-C75E822E6D02");
37 
38  if(compareClassGuid(p3_guid)) {
39  std::unique_ptr<TrigSpacePointCounts_p3 > pers_ptr( poolReadObject< TrigSpacePointCounts_p3 >() );
40  return m_converter_p3.createTransient( pers_ptr.get(), mlog );
41  }
42  if(compareClassGuid(p2_guid)) {
43  std::unique_ptr<TrigSpacePointCounts_p2 > pers_ptr( poolReadObject< TrigSpacePointCounts_p2 >() );
44  return m_converter_p2.createTransient( pers_ptr.get(), mlog );
45  }
46  if(compareClassGuid(p1_guid)) {
47  std::unique_ptr<TrigSpacePointCounts_p1 > pers_ptr( poolReadObject< TrigSpacePointCounts_p1 >() );
48  return m_converter_p1.createTransient( pers_ptr.get(), mlog );
49  }
50  else if( compareClassGuid(p0_guid) ) {
51  // old version from before TP separation, just return it
52  return this->poolReadObject<TrigSpacePointCounts>();
53  }
54  else {
55  throw std::runtime_error("Unsupported persistent version");
56  }
57 
58 }
59 
60 namespace {
61  // Helper to be able to call thread-unsafe code during initialize as we
62  // currently cannot mark Converter::initialize() as thread-unsafe.
63  StatusCode loadConverter ATLAS_NOT_THREAD_SAFE() {
66  return StatusCode::SUCCESS;
67  }
68 }
69 
71 {
72  [[maybe_unused]] static const bool did_rootcnv = []{
73  StatusCode sc ATLAS_THREAD_SAFE = loadConverter();
74  return sc.isSuccess();
75  }();
76 
78 }
79 
TrigSpacePointCountsCnv::createPersistent
virtual TrigSpacePointCounts_PERS * createPersistent(TrigSpacePointCounts *transObj)
Definition: TrigSpacePointCountsCnv.cxx:17
ATLAS_NOT_THREAD_SAFE
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
Definition: checker_macros.h:212
TPPolyCnvBase::createTransient
virtual TRANS * createTransient(const PERS *persObj, MsgStream &log)
Create transient representation of a persistent object.
TrigSpacePointCountsCnv::m_converter_p2
TrigSpacePointCountsCnv_p2 m_converter_p2
Definition: TrigSpacePointCountsCnv.h:49
TPAbstractPolyCnvBase::createPersistent
virtual PERS * createPersistent(const TRANS *transObj, MsgStream &log)
Create persistent representation of a transient object.
TrigSpacePointCounts_p1_old_cnv
Definition: TrigSpacePointCounts_p1_old_cnv.h:19
TrigSpacePointCountsCnv::createTransient
virtual TrigSpacePointCounts * createTransient()
Definition: TrigSpacePointCountsCnv.cxx:28
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
AthMessaging::ATLAS_THREAD_SAFE
std::atomic_flag m_initialized ATLAS_THREAD_SAFE
Messaging initialized (initMessaging)
Definition: AthMessaging.h:141
pool::Guid
::Guid Guid
Definition: T_AthenaPoolCustCnv.h:19
TrigSpacePointCounts_p3.h
python.InDetPriVxFinderConfig.mlog
mlog
Definition: InDetPriVxFinderConfig.py:134
StdJOSetup.msgSvc
msgSvc
Provide convenience handles for various services.
Definition: StdJOSetup.py:36
T_AthenaPoolCustomCnv
Compatibility for old converter classes that don't get passed the key.
Definition: T_AthenaPoolCustomCnv.h:132
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TrigSpacePointCountsCnv::TrigSpacePointCountsCnv
TrigSpacePointCountsCnv(ISvcLocator *svcloc)
Definition: TrigSpacePointCountsCnv.cxx:13
TrigSpacePointCounts_p2.h
TrigSpacePointCounts_p1_old_cnv.h
TrigSpacePointCountsCnv.h
TrigSpacePointCounts_p1.h
TrigSpacePointCounts_p3
Definition: TrigSpacePointCounts_p3.h:25
TrigSpacePointCountsCnv::m_converter_p1
TrigSpacePointCountsCnv_p1 m_converter_p1
Definition: TrigSpacePointCountsCnv.h:48
TConverterRegistry::AddConverter
void AddConverter(TVirtualConverter *conv)
Add a new converter to the registry.
Definition: TConverterRegistry.cxx:36
TrigSpacePointCountsCnv::initialize
virtual StatusCode initialize()
Gaudi Service Interface method implementations:
Definition: TrigSpacePointCountsCnv.cxx:70
TConverterRegistry.h
Registry for Root converters.
TConverterRegistry::Instance
static TConverterRegistry * Instance()
Return a pointer to the global registry instance.
Definition: TConverterRegistry.cxx:143
TrigSpacePointCountsCnv::~TrigSpacePointCountsCnv
~TrigSpacePointCountsCnv()
Definition: TrigSpacePointCountsCnv.cxx:14
DEBUG
#define DEBUG
Definition: page_access.h:11
TrigSpacePointCountsCnv::m_converter_p3
TrigSpacePointCountsCnv_p3 m_converter_p3
Definition: TrigSpacePointCountsCnv.h:50
T_AthenaPoolCustCnv::compareClassGuid
virtual bool compareClassGuid(const Guid &clid) const
Compare POOL class GUID with the one of the object being read.
T_AthenaPoolCustCnv::initialize
virtual StatusCode initialize()
Gaudi Service Interface method implementations:
TrigSpacePointCounts
Definition: Trigger/TrigEvent/TrigInDetEvent/TrigInDetEvent/TrigSpacePointCounts.h:20