ATLAS Offline Software
TrackParticleTruthCollectionCnv.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
14 
15 #include "GaudiKernel/StatusCode.h"
16 #include "GaudiKernel/MsgStream.h"
17 #include "GaudiKernel/ISvcLocator.h"
18 
19 // Athena
20 #include "StoreGate/StoreGateSvc.h"
21 
22 // This is release 12 guid for TrackParticleTruthVector.
23 constexpr pool::Guid s_p0_guid("B35041E8-D980-458E-AC06-79028CF79D5D");
24 constexpr pool::Guid s_p1_guid("D62AFEEE-EF2C-437A-B7BE-CA926D38CCFA");
25 constexpr pool::Guid s_p2_guid("D62AFEEE-EF2C-437A-B7BE-CA926D38CCFB");
26 constexpr pool::Guid s_p3_guid("018F1ACE-8405-7174-9305-46B503B5EF52");
27 
28 //================================================================
31 {}
32 
33 //================================================================
35  MsgStream log(msgSvc(), "TrackParticleTruthCollectionCnv");
36  log<<MSG::DEBUG<<"Writing TrackParticleTruthCollection_p2"<<endmsg;
38  m_converter_p3.transToPers(trans,pers,log);
39  return pers;
40 }
41 
42 //================================================================
44  MsgStream log(msgSvc(), "TrackParticleTruthCollectionCnv" );
45  std::unique_ptr<TrackParticleTruthCollection> trans(new TrackParticleTruthCollection());
46 
48  log<<MSG::DEBUG<<"Read TrackParticleTruthCollection_p3. GUID="<<m_classID.toString()<<endmsg;
49  Rec::TrackParticleTruthCollection_p3* pers=poolReadObject<Rec::TrackParticleTruthCollection_p3>();
50  m_converter_p3.persToTrans(pers, trans.get(), log);
51  delete pers;
52  }
53  else if (compareClassGuid(s_p2_guid)) {
54  log<<MSG::DEBUG<<"Read TrackParticleTruthCollection_p2. GUID="<<m_classID.toString()<<endmsg;
55  Rec::TrackParticleTruthCollection_p2* pers=poolReadObject<Rec::TrackParticleTruthCollection_p2>();
56  m_converter_p2.persToTrans(pers, trans.get(), log);
57  delete pers;
58  }
59  else if (compareClassGuid(s_p1_guid)) {
60  log<<MSG::DEBUG<<"Read TrackParticleTruthCollection_p1. GUID="<<m_classID.toString()<<endmsg;
61  Rec::TrackParticleTruthCollection_p1* pers=poolReadObject<Rec::TrackParticleTruthCollection_p1>();
62  m_converter_p1.persToTrans(pers, trans.get(), log);
63  delete pers;
64  }
65  else if (compareClassGuid(s_p0_guid)) {
66  log<<MSG::DEBUG<<"Read version p0 of TrackParticleTruthCollection. GUID="<<m_classID.toString()<<endmsg;
67  TrackParticleTruthVector *pers = poolReadObject<TrackParticleTruthVector>();
68  m_converter_p0.persToTrans(pers, trans.get(), log);
69  delete pers;
70  }
71  else {
72  log<<MSG::ERROR<<"Unsupported persistent version of TrackParticleTruthCollection. GUID="
74  throw std::runtime_error("Unsupported persistent version of Data Collection");
75  }
76 
77  return trans.release();
78 }
T_AthenaPoolCustCnv::m_classID
Guid m_classID
Definition: T_AthenaPoolCustCnv.h:96
Rec::TrackParticleTruthCollection_p3
Definition: TrackParticleTruthCollection_p3.h:16
Guid::toString
constexpr void toString(std::span< char, 36 > buf, bool uppercase=true) const noexcept
Automatic conversion to string representation.
Definition: Guid.h:179
Rec::TrackParticleTruthCollection_p2
Definition: TrackParticleTruthCollection_p2.h:16
TrackParticleTruthCollectionCnv::m_converter_p0
TrackParticleTruthCollectionCnv_p0 m_converter_p0
Definition: TrackParticleTruthCollectionCnv.h:33
TrackParticleTruthCollectionCnv::m_converter_p3
TrackParticleTruthCollectionCnv_p3 m_converter_p3
Definition: TrackParticleTruthCollectionCnv.h:36
s_p1_guid
constexpr pool::Guid s_p1_guid("D62AFEEE-EF2C-437A-B7BE-CA926D38CCFA")
TrackParticleTruthCollectionCnv::createPersistent
virtual TrackParticleTruthCollectionPERS * createPersistent(TrackParticleTruthCollection *)
Definition: TrackParticleTruthCollectionCnv.cxx:34
TrackParticleTruthCollectionCnv_p3::persToTrans
virtual void persToTrans(const Rec::TrackParticleTruthCollection_p3 *persObj, TrackParticleTruthCollection *transObj, MsgStream &msg) const override
Method creating the transient representation of Analysis::TrackParticleTruthCollection from its persi...
Definition: TrackParticleTruthCollectionCnv_p3.cxx:25
TrackParticleTruthCollectionCnv::TrackParticleTruthCollectionCnv
TrackParticleTruthCollectionCnv(ISvcLocator *svcloc)
Definition: TrackParticleTruthCollectionCnv.cxx:29
TrackParticleTruthCollectionCnv_p1::persToTrans
virtual void persToTrans(const Rec::TrackParticleTruthCollection_p1 *persObj, TrackParticleTruthCollection *transObj, MsgStream &msg) const override
Method creating the transient representation of Analysis::TrackParticleTruthCollection from its persi...
Definition: TrackParticleTruthCollectionCnv_p1.cxx:25
pool::Guid
::Guid Guid
Definition: T_AthenaPoolCustCnv.h:19
s_p2_guid
constexpr pool::Guid s_p2_guid("D62AFEEE-EF2C-437A-B7BE-CA926D38CCFB")
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
TrackParticleTruthCollection_p2.h
TrackParticleTruthCollectionCnv_p3::transToPers
virtual void transToPers(const TrackParticleTruthCollection *transObj, Rec::TrackParticleTruthCollection_p3 *persObj, MsgStream &msg) const override
Method creating the persistent representation TrackParticleTruthCollection_p3 from its transient repr...
Definition: TrackParticleTruthCollectionCnv_p3.cxx:46
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
TrackParticleTruthCollection_p3.h
TrackParticleTruthCollectionCnv_p1.h
TrackParticleTruthCollectionPERS
Rec::TrackParticleTruthCollection_p3 TrackParticleTruthCollectionPERS
Definition: TrackParticleTruthCollectionCnv.h:19
TrackParticleTruthCollectionCnv_p0::persToTrans
virtual void persToTrans(const Rec::TrackParticleTruthCollection_p0 *persObj, TrackParticleTruthCollection *transObj, MsgStream &msg)
Method creating the transient representation of Analysis::TrackParticleTruthCollection from its persi...
Definition: TrackParticleTruthCollectionCnv_p0.cxx:21
TrackParticleTruthCollection
Athena::TPCnvVers::Old TrackParticleTruthCollection
Definition: TrackParticleTruthTPCnv.cxx:49
TrackParticleTruthCollectionCnv::m_converter_p1
TrackParticleTruthCollectionCnv_p1 m_converter_p1
Definition: TrackParticleTruthCollectionCnv.h:34
TrackParticleTruthCollectionCnv::m_converter_p2
TrackParticleTruthCollectionCnv_p2 m_converter_p2
Definition: TrackParticleTruthCollectionCnv.h:35
TrackParticleTruthCollection_p0.h
TrackParticleTruthCollectionCnv::createTransient
virtual TrackParticleTruthCollection * createTransient()
Definition: TrackParticleTruthCollectionCnv.cxx:43
TrackParticleTruthCollection_p1.h
TrackParticleTruthCollectionCnv_p2.h
TrackParticleTruthCollection
Definition: TrackParticleTruthCollection.h:18
DEBUG
#define DEBUG
Definition: page_access.h:11
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
s_p3_guid
constexpr pool::Guid s_p3_guid("018F1ACE-8405-7174-9305-46B503B5EF52")
s_p0_guid
constexpr pool::Guid s_p0_guid("B35041E8-D980-458E-AC06-79028CF79D5D")
TrackParticleTruthVector
Definition: TrackParticleTruthVector.h:16
Rec::TrackParticleTruthCollection_p1
Definition: TrackParticleTruthCollection_p1.h:16
TrackParticleTruthCollectionCnv_p3.h
T_AthenaPoolCustCnv::compareClassGuid
virtual bool compareClassGuid(const Guid &clid) const
Compare POOL class GUID with the one of the object being read.
TrackParticleTruthCollectionCnv_p2::persToTrans
virtual void persToTrans(const Rec::TrackParticleTruthCollection_p2 *persObj, TrackParticleTruthCollection *transObj, MsgStream &msg) const override
Method creating the transient representation of Analysis::TrackParticleTruthCollection from its persi...
Definition: TrackParticleTruthCollectionCnv_p2.cxx:25
StoreGateSvc.h
TrackParticleTruthCollectionCnv.h