ATLAS Offline Software
Loading...
Searching...
No Matches
SiHitCollectionCnv.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
11#include "SiHitCollectionCnv.h"
12
13
15 MsgStream mlog(msgSvc(), "SiHitCollectionConverter" );
17 SiHitCollection_PERS *persObj = converter.createPersistent( transCont, mlog );
18 return persObj;
19}
20
21
23 MsgStream mlog(msgSvc(), "SiHitCollectionConverter" );
24 SiHitCollectionCnv_p1 converter_p1;
25 SiHitCollectionCnv_p2 converter_p2;
26 SiHitCollectionCnv_p3 converter_p3;
27 SiHitCollectionCnv_p4 converter_p4;
28
29 static const pool::Guid p1_guid("36D1FF8E-5734-4A93-A133-F286CF47DB72");
30 static const pool::Guid p2_guid("BD1469C5-C904-40B8-82B9-43D25888D884");
31 static const pool::Guid p3_guid("59E13FDA-2799-4362-8423-44D57F08734D");
32 static const pool::Guid p4_guid("018E1E2B-6C61-752E-B26D-6ABB05FBD4D9");
33 static const pool::Guid old_guid("1EC39DA3-14F9-4901-88C7-F6909B064574");
34
35 SiHitCollection *trans_cont(nullptr);
36 if( this->compareClassGuid(p3_guid)) {
37 std::unique_ptr< SiHitCollection_p3 > col_vect( this->poolReadObject< SiHitCollection_p3 >() );
38 trans_cont = converter_p3.createTransient( col_vect.get(), mlog );
39 }
40 else if( this->compareClassGuid(p1_guid)) {
41 std::unique_ptr< SiHitCollection_p1 > col_vect( this->poolReadObject< SiHitCollection_p1 >() );
42 trans_cont = converter_p1.createTransient( col_vect.get(), mlog );
43 }
44 else if( this->compareClassGuid(p2_guid)) { // version p2
45 std::unique_ptr< SiHitCollection_p2 > col_vect( this->poolReadObject< SiHitCollection_p2 >() );
46 trans_cont = converter_p2.createTransient( col_vect.get(), mlog );
47 }
48 else if( this->compareClassGuid(p4_guid)) { // version p4
49 std::unique_ptr< SiHitCollection_p4 > col_vect( this->poolReadObject< SiHitCollection_p4 >() );
50 trans_cont = converter_p4.createTransient( col_vect.get(), mlog );
51 }
52 else if( this->compareClassGuid(old_guid)) {
53 // old version from before TP separation, just return it
55 size_t size = oldColl->size();
56 trans_cont=new SiHitCollection("DefaultCollectionName",size);
57 //do the copy
58 for (SiHit* hit : *oldColl) {
59 trans_cont->push_back(*hit);
60 }
61 delete oldColl;
62 } else {
63 throw std::runtime_error("Unsupported persistent version of Data container");
64 }
65 return trans_cont;
66}
SiHitCollectionCnv_p3 SiHitCollectionCnv_PERS
SiHitCollection_p3 SiHitCollection_PERS
T_AtlasHitsVectorCnv< SiHitCollection, SiHitCollection_p1, SiHitCnv_p1 > SiHitCollectionCnv_p1
AtlasHitsVector< SiHit > SiHitCollection
size_type size() const
void push_back(const T &t)
virtual SiHitCollection * createTransient(const SiHitCollection_p2 *persObj, MsgStream &log)
virtual SiHitCollection * createTransient(const SiHitCollection_p3 *persObj, MsgStream &log)
virtual SiHitCollection * createTransient(const SiHitCollection_p4 *persObj, MsgStream &log)
SiHitCollection_PERS * createPersistent(SiHitCollection *transCont)
SiHitCollection * createTransient()
Definition SiHit.h:19
virtual PERS * createPersistent(const TRANS *transObj, MsgStream &log)
Create persistent representation of a transient object.
virtual TRANS * createTransient(const PERS *persObj, MsgStream &log)