ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
LArCalorimeter
LArCnv
LArCondAthenaPool
src
LArSingleFloatConverter.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
//Dear emacs, this is -*-c++-*-
12
13
#ifndef LARCONDTPCNV_LARSINGLEFLOATCNV_H
14
#define LARCONDTPCNV_LARSINGLEFLOATCNV_H
15
16
#include "
AthenaPoolCnvSvc/T_AthenaPoolCoolMultChanCnv.h
"
17
#include "
LArRawConditions/LArSingleFloatP.h
"
18
#include "
LArCondTPCnv/LArSingleFloatSubsetCnv_p1.h
"
19
20
template
<
class
TransientClass>
21
class
LArSingleFloatConverter
:
22
public
T_AthenaPoolCoolMultChanCnv
<TransientClass, LArConditionsSubset<LArSingleFloatP>, LArSingleFloatSubset_p1> {
23
friend
class
CnvFactory
<
LArSingleFloatConverter
<TransientClass> >;
24
25
protected
:
26
typedef
T_AthenaPoolCoolMultChanCnv
< TransientClass,
27
LArConditionsSubset < LArSingleFloatP > ,
28
LArSingleFloatSubset_p1
>
cnvBase
;
29
30
LArSingleFloatConverter
(ISvcLocator* svcloc) :
cnvBase
(svcloc) {};
31
virtual
LArSingleFloatSubset_p1
*
createPersistent
(
LArConditionsSubset<LArSingleFloatP>
* transObj);
32
34
virtual
LArConditionsSubset<LArSingleFloatP>
*
createTransient
(
const
Token
* token);
35
37
LArConditionsSubset<LArSingleFloatP>
*
createTransientSingleFloat
(
const
Token
* token);
38
39
40
private
:
41
LArSingleFloatSubsetCnv_p1
m_TPconverter
;
42
};
43
44
template
<
class
TransientClass>
45
LArSingleFloatSubset_p1
*
LArSingleFloatConverter<TransientClass>::createPersistent
(
LArConditionsSubset<LArSingleFloatP>
* transObj) {
46
MsgStream log(this->msgSvc(),
"LArSingleFloatConverter"
);
47
LArSingleFloatSubset_p1
* persObj =
m_TPconverter
.createPersistent( transObj, log );
48
return
persObj;
49
}
50
51
template
<
class
TransientClass>
52
LArConditionsSubset<LArSingleFloatP>
*
LArSingleFloatConverter<TransientClass>::createTransientSingleFloat
(
const
Token
* token) {
53
static
const
pool::Guid
p1_guid(
"85C3E380-4F5C-4F2B-81F0-D7C08A446800"
);
54
if
(this->
compareClassGuid
(token,p1_guid) ) {
55
MsgStream log(this->msgSvc(),
"LArSingleFloatCompleteCnv"
);
56
LArSingleFloatSubset_p1
* p;
57
LArConditionsSubset<LArSingleFloatP>
* t;
58
if
(this->
poolToObject
(token,p).isFailure() ) {
59
throw
std::runtime_error(
"POOL read failed"
);
60
}
61
t=
m_TPconverter
.createTransient(p,log);
62
delete
p;
63
return
t;
64
}
65
return
NULL;
66
}
67
68
template
<
class
TransientClass>
69
LArConditionsSubset<LArSingleFloatP>
*
LArSingleFloatConverter<TransientClass>::createTransient
(
const
Token
* token) {
70
LArConditionsSubset<LArSingleFloatP>
* p=
createTransientSingleFloat
(token);
71
if
(p)
return
p;
72
throw
std::runtime_error(
"Unsupported persistent version of LArConditionsSubset<LArSingleFloat>"
);
73
}
74
75
#endif
76
LArSingleFloatP.h
LArSingleFloatSubsetCnv_p1.h
T_AthenaPoolCoolMultChanCnv.h
This templated class provides the POOL converter to translate a DataVector<T> to and from a CondAttrL...
CnvFactory
Abstract factory to create the converter.
Definition
ToyConverter.h:16
LArConditionsSubset
template class for use for I/O of conditions data
Definition
LArConditionsSubset.h:122
LArSingleFloatConverter::createTransientSingleFloat
LArConditionsSubset< LArSingleFloatP > * createTransientSingleFloat(const Token *token)
returns NULL if object is not a LArConditionsSubset<LArSingleFloatP>
Definition
LArSingleFloatConverter.h:52
LArSingleFloatConverter< LArDAC2uAComplete >::m_TPconverter
LArSingleFloatSubsetCnv_p1 m_TPconverter
Definition
LArSingleFloatConverter.h:41
LArSingleFloatConverter::createPersistent
virtual LArSingleFloatSubset_p1 * createPersistent(LArConditionsSubset< LArSingleFloatP > *transObj)
method to be implemented by the developer.
Definition
LArSingleFloatConverter.h:45
LArSingleFloatConverter< LArDAC2uAComplete >::cnvBase
T_AthenaPoolCoolMultChanCnv< LArDAC2uAComplete, LArConditionsSubset< LArSingleFloatP >, LArSingleFloatSubset_p1 > cnvBase
Definition
LArSingleFloatConverter.h:28
LArSingleFloatConverter::LArSingleFloatConverter
LArSingleFloatConverter(ISvcLocator *svcloc)
Definition
LArSingleFloatConverter.h:30
LArSingleFloatConverter::createTransient
virtual LArConditionsSubset< LArSingleFloatP > * createTransient(const Token *token)
Throws and exception if object is not a LArConditionsSubset<LArSingleFloatP>.
Definition
LArSingleFloatConverter.h:69
LArSingleFloatSubsetCnv_p1
Definition
LArSingleFloatSubsetCnv_p1.h:21
LArSingleFloatSubset_p1
persistent class container of LArConditionsSubset for LArSingleFloat data.
Definition
LArSingleFloatSubset_p1.h:30
T_AthenaPoolCoolMultChanCnv< TransientClass, LArConditionsSubset< LArSingleFloatP >, LArSingleFloatSubset_p1 >::T_AthenaPoolCoolMultChanCnv
T_AthenaPoolCoolMultChanCnv(ISvcLocator *svcloc)
T_AthenaPoolCoolMultChanCnv< TransientClass, LArConditionsSubset< LArSingleFloatP >, LArSingleFloatSubset_p1 >::compareClassGuid
virtual bool compareClassGuid(const Token *token, const Guid &clid) const
T_AthenaPoolCoolMultChanCnv< TransientClass, LArConditionsSubset< LArSingleFloatP >, LArSingleFloatSubset_p1 >::poolToObject
StatusCode poolToObject(const Token *token, P *&pObj)
Token
This class provides a token that identifies in a unique way objects on the persistent storage.
Definition
Token.h:22
pool::Guid
::Guid Guid
Definition
T_AthenaPoolCustCnv.h:19
Generated on
for ATLAS Offline Software by
1.17.0