12 #include "CoralBase/Blob.h"
17 ISvcLocator* pSvcLocator ) :
20 m_onlineID(nullptr), m_onlineSCID(nullptr)
28 return StatusCode::SUCCESS;
34 const std::string&
outputName,
const unsigned nGain) {
37 unsigned nCopiedEMPS=0;
40 coral::AttributeListSpecification*
spec =
new coral::AttributeListSpecification();
41 spec->extend(blobName,
"blob");
42 spec->extend<
unsigned>(
"version");
43 std::unique_ptr<CondAttrListCollection> coll= std::make_unique<CondAttrListCollection>(
true);
45 std::ifstream myfile(
input);
47 std::vector< std::vector<float> >
values(nGain, std::vector<float>(
m_hashMax,1.0
f));
51 while (std::getline(myfile,
line)) {
52 std::stringstream
st(
line);
54 st>>std::dec>>
id>>std::dec>>
value;
77 auto attrList = std::make_unique<coral::AttributeList>(*
spec);
78 (*attrList)[
"version"].setValue(0U);
81 float* pblob=
static_cast<float*
>(
blob.startingAddress());
86 unsigned coolChan=
gain;
88 coll->add(coolChan,*attrList.release());
91 ATH_MSG_INFO(
"Converted " << blobName <<
" to inline storage. Total number of channels=" <<
nChannels );
92 ATH_MSG_INFO(
"Number of channels filled with default value (1.0) " << nDefault <<
" (including disconnected)" );
94 ATH_MSG_INFO(
"\t Number of low gain EMBPS channels copied from medium gain" << nCopiedEMPS );
108 std::vector<std::vector<std::vector<float> > > vofc_a;
109 std::vector<std::vector<std::vector<float> > > vofc_b;
117 std::ifstream myfile(
input);
121 unsigned long id, id1;
122 unsigned hash, hash1;
123 char mychar, mychar1;
124 while (std::getline(myfile,
line),std::getline(myfile,
line1)) {
125 std::stringstream
st(
line);
126 st>>std::hex>>
id>>std::dec>>
hash;
127 std::stringstream st1(
line1);
128 st>>std::hex>>id1>>std::dec>>hash1;
130 if(
id != id1 ||
hash != hash1) {
137 if(mychar !=
'a' || mychar1 !=
'b') {
148 coral::AttributeListSpecification*
spec =
new coral::AttributeListSpecification();
149 spec->extend(
"OFCa",
"blob");
150 spec->extend(
"OFCb",
"blob");
151 spec->extend(
"TimeOffset",
"blob");
152 spec->extend<
unsigned>(
"nSamples");
153 spec->extend<
unsigned>(
"version");
154 auto collOFC = std::make_unique<CondAttrListCollection>(
true);
160 auto attrList = std::make_unique<coral::AttributeList>(*
spec);
161 (*attrList)[
"version"].setValue(0U);
166 (*attrList)[
"nSamples"].setValue(
m_nsample);
171 float* pOfca=
static_cast<float*
>(ofcaBlob.startingAddress());
172 float* pOfcb=
static_cast<float*
>(ofcbBlob.startingAddress());
173 float* pTimeOffset=
static_cast<float*
>(toBlob.startingAddress());
186 message <<
"Number of samples don't match. Expect " <<
m_nsample <<
", got " << ofca.size() <<
".";
201 message <<
"Number of samples don't match. Expect " <<
m_nsample <<
", got " << ofcb.size() <<
".";
207 pTimeOffset[
hs]=timeOffset;
211 collOFC->add(
gain,*(attrList.release()));
215 if (
sc.isFailure()) {
221 ATH_MSG_INFO(
"Number of channels filled with default OFCs {1,1,1,1} " << nDefault <<
" (including disconnected)" );
244 myfile.unsetf(std::ios_base::skipws);
247 unsigned line_count =
std::count( std::istream_iterator<char>(myfile),
248 std::istream_iterator<char>(),
'\n');
252 return StatusCode::FAILURE;
265 myfile.unsetf(std::ios_base::skipws);
268 unsigned line_count =
std::count( std::istream_iterator<char>(myfile),
269 std::istream_iterator<char>(),
'\n');
274 return StatusCode::FAILURE;
280 return StatusCode::SUCCESS;
296 if (
cabling->isOnlineConnected(chid)) {