ATLAS Offline Software
Loading...
Searching...
No Matches
LArFlatFromFile Class Reference

#include <LArFlatFromFile.h>

Inheritance diagram for LArFlatFromFile:
Collaboration diagram for LArFlatFromFile:

Public Member Functions

 LArFlatFromFile (const std::string &name, ISvcLocator *pSvcLocator)
 Constructor with parameters:
virtual ~LArFlatFromFile ()=default
 Destructor:
virtual StatusCode initialize () override
virtual StatusCode execute () override
virtual StatusCode finalize () override
virtual StatusCode stop () override
virtual StatusCode sysInitialize () override
 Override sysInitialize.
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

 LArFlatFromFile ()
 Default constructor:
void singleFloatFlat (const char *blobName, const std::string &input, const std::string &outputName, const unsigned nGain)
void ofcFlat (const std::string &input, const std::string &outputName)
void errIfConnected (const HWIdentifier chid, const int gain, const std::string &objName, const std::string &message="") const
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

unsigned m_hashMax {}
const LArOnlineIDm_onlineID {}
const LArOnline_SuperCellIDm_onlineSCID {}
SG::ReadCondHandleKey< LArOnOffIdMappingm_cablingKey {this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"}
Gaudi::Property< std::string > m_OFCInput {this, "OFCInput","","Input file name"}
 Input files.
Gaudi::Property< std::string > m_SingleInput {this, "SingleInput","","Input file name"}
Gaudi::Property< bool > m_isSC {this,"SuperCells",false,"Run for SC ?"}
Gaudi::Property< unsigned > m_ngain {this,"NGains",1,"Number of gains to process"}
Gaudi::Property< unsigned > m_nsample {this,"NSamples",4,"Number of samples to process"}
Gaudi::Property< std::string > m_Folder {this, "Folder","","Folder to create"}
Gaudi::Property< std::string > m_BlobName {this, "Blob","","Blob name"}
Gaudi::Property< bool > m_checkCompletness {this, "checkInput", true, "Check if input file is complete"}
bool m_forceStop {}
DataObjIDColl m_extendedExtraObjects
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Definition at line 17 of file LArFlatFromFile.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ LArFlatFromFile() [1/2]

LArFlatFromFile::LArFlatFromFile ( const std::string & name,
ISvcLocator * pSvcLocator )

Constructor with parameters:

Definition at line 16 of file LArFlatFromFile.cxx.

17 :
18 ::AthAlgorithm( name, pSvcLocator ),
19 m_hashMax(0),
20 m_onlineID(nullptr), m_onlineSCID(nullptr)
21{
22
23}
AthAlgorithm()
Default constructor:
const LArOnline_SuperCellID * m_onlineSCID
const LArOnlineID * m_onlineID

◆ ~LArFlatFromFile()

virtual LArFlatFromFile::~LArFlatFromFile ( )
virtualdefault

Destructor:

◆ LArFlatFromFile() [2/2]

LArFlatFromFile::LArFlatFromFile ( )
private

Default constructor:

Member Function Documentation

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ errIfConnected()

void LArFlatFromFile::errIfConnected ( const HWIdentifier chid,
const int gain,
const std::string & objName,
const std::string & message = "" ) const
private

Definition at line 291 of file LArFlatFromFile.cxx.

291 {
292
293 SG::ReadCondHandle<LArOnOffIdMapping> cablingHdl{m_cablingKey};
294 const LArOnOffIdMapping* cabling{*cablingHdl};
295 if(!cabling) {
296 ATH_MSG_ERROR( "Do not have cabling mapping from key " << m_cablingKey.key() );
297 return;
298 }
299
300 if (cabling->isOnlineConnected(chid)) {
301 if (! (gain==2 && m_onlineID->isEMBPS(chid))) { //No LG Presampler calibration
302 ATH_MSG_ERROR( "No valid " << objName << " found for channel " << m_onlineID->channel_name(chid) << ", gain " << gain << ". ");
303 if (!message.empty()) ATH_MSG_ERROR( message );
304 ATH_MSG_ERROR( " Filling with default value." );
305 }
306 }
307 return;
308}
#define ATH_MSG_ERROR(x)
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ execute()

virtual StatusCode LArFlatFromFile::execute ( )
inlineoverridevirtual

Definition at line 32 of file LArFlatFromFile.h.

32{return StatusCode::SUCCESS;}

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ extraOutputDeps()

const DataObjIDColl & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 50 of file AthAlgorithm.cxx.

51{
52 // If we didn't find any symlinks to add, just return the collection
53 // from the base class. Otherwise, return the extended collection.
54 if (!m_extendedExtraObjects.empty()) {
56 }
57 return Algorithm::extraOutputDeps();
58}
DataObjIDColl m_extendedExtraObjects

◆ finalize()

virtual StatusCode LArFlatFromFile::finalize ( )
inlineoverridevirtual

Definition at line 33 of file LArFlatFromFile.h.

33{return StatusCode::SUCCESS;}

◆ initialize()

StatusCode LArFlatFromFile::initialize ( )
overridevirtual

Definition at line 25 of file LArFlatFromFile.cxx.

26{
27 ATH_CHECK(m_cablingKey.initialize());
28 return StatusCode::SUCCESS;
29}
#define ATH_CHECK
Evaluate an expression and check for errors.

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Algorithm > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ msg()

MsgStream & AthCommonMsg< Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< Algorithm >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ ofcFlat()

void LArFlatFromFile::ofcFlat ( const std::string & input,
const std::string & outputName )
private

Definition at line 108 of file LArFlatFromFile.cxx.

108 {
109
110 ATH_MSG_INFO("LArFlatFromFile::ofcFlat, starting");
111 // parsing the file, fill OFC arrays
112 std::vector<std::vector<std::vector<float> > > vofc_a; //[ngain][nchannel][nsamples]
113 std::vector<std::vector<std::vector<float> > > vofc_b;
114 vofc_a.resize(m_ngain);
115 vofc_b.resize(m_ngain);
116 for (unsigned i=0; i<m_ngain; ++i) {
117 vofc_a[i].resize(m_hashMax);
118 vofc_b[i].resize(m_hashMax);
119 }
120
121 std::ifstream myfile(input);
122 // we expect two lines per channel with Id, hash and values
123 // it contains particular pattern, change it if formatting has changed
124 std::string line, line1;
125 unsigned long id, id1;
126 unsigned hash, hash1;
127 char mychar, mychar1;
128 while (std::getline(myfile, line),std::getline(myfile, line1)) {
129 std::stringstream st(line);
130 st>>std::hex>>id>>std::dec>>hash;
131 std::stringstream st1(line1);
132 st>>std::hex>>id1>>std::dec>>hash1;
133 // check equality of Id and has in both lines
134 if(id != id1 || hash != hash1) {
135 ATH_MSG_ERROR("Different input id or hash: "<<line<<" "<<line1);
136 continue;
137 }
138 // Now it should contain a and b chars
139 st>>mychar;
140 st1>>mychar1;
141 if(mychar != 'a' || mychar1 != 'b') {
142 ATH_MSG_ERROR("Wrong OFC type: "<<line<<" "<<line1);
143
144 }
145
146 // check if nsamples corresponds to asked one, we expect the same number in each gain
147 }
148
149 unsigned nChannels=0;
150 unsigned nDefault=0;
151
152 coral::AttributeListSpecification* spec = new coral::AttributeListSpecification();
153 spec->extend("OFCa", "blob");
154 spec->extend("OFCb", "blob");
155 spec->extend("TimeOffset","blob");
156 spec->extend<unsigned>("nSamples");
157 spec->extend<unsigned>("version");
158 auto collOFC = std::make_unique<CondAttrListCollection>(true);
159
160 float timeOffset=0.;
161
162 for (unsigned gain=0;gain<m_ngain;++gain) {
163
164 auto attrList = std::make_unique<coral::AttributeList>(*spec);
165 (*attrList)["version"].setValue(0U);
166 coral::Blob& ofcaBlob=(*attrList)["OFCa"].data<coral::Blob>();
167 coral::Blob& ofcbBlob=(*attrList)["OFCb"].data<coral::Blob>();
168 coral::Blob& toBlob=(*attrList)["TimeOffset"].data<coral::Blob>();
169
170 (*attrList)["nSamples"].setValue(m_nsample);
171
172 ofcaBlob.resize(m_hashMax*sizeof(float)*m_nsample);
173 ofcbBlob.resize(m_hashMax*sizeof(float)*m_nsample);
174 toBlob.resize(m_hashMax*sizeof(float));
175 float* pOfca=static_cast<float*>(ofcaBlob.startingAddress());
176 float* pOfcb=static_cast<float*>(ofcbBlob.startingAddress());
177 float* pTimeOffset=static_cast<float*>(toBlob.startingAddress());
178 for (unsigned hs=0;hs<m_hashMax;++hs) {
179 const HWIdentifier chid=m_onlineID->channel_Id(hs);
180 LArOFCFlat::OFCRef_t ofca(vofc_a[gain][hs]);
181 LArOFCFlat::OFCRef_t ofcb(vofc_b[gain][hs]);
182
183 if (ofca.size()==m_nsample) {
184 for (unsigned i=0;i<m_nsample;++i) {
185 pOfca[hs*m_nsample+i]=ofca[i];
186 }
187 }
188 else {
189 std::stringstream message;
190 message <<"Number of samples don't match. Expect " << m_nsample << ", got " << ofca.size() << ".";
191 errIfConnected(chid,gain,"OFCa", message.str());
192 for (unsigned i=0;i<m_nsample;++i) {
193 pOfca[hs*m_nsample+i]=1.0;
194 }
195 ++nDefault;
196 }
197
198 if (ofcb.size()==m_nsample) {
199 for (unsigned i=0;i<m_nsample;++i) {
200 pOfcb[hs*m_nsample+i]=ofcb[i];
201 }
202 }
203 else {
204 std::stringstream message;
205 message <<"Number of samples don't match. Expect " << m_nsample << ", got " << ofcb.size() << ".";
206 errIfConnected(chid,gain,"OFCb", message.str());
207 for (unsigned i=0;i<m_nsample;++i) {
208 pOfcb[hs*m_nsample+i]=0.0;
209 }
210 }
211 pTimeOffset[hs]=timeOffset;
212 ++nChannels;
213
214 }//end loop over hash ids
215 collOFC->add(gain,*(attrList.release()));
216 }//end loop over gains
217
218 StatusCode sc=detStore()->record(std::move(collOFC),outputName);//"/LAR/ElecCalibFlat/OFC");
219 if (sc.isFailure()) {
220 ATH_MSG_ERROR( "Failed to record CondAttrListCollection OFC with key " << outputName );
221 return;
222 }
223
224 ATH_MSG_INFO( "Converted OFCs to inline storage. Total number of channels=" << nChannels );
225 ATH_MSG_INFO( "Number of channels filled with default OFCs {1,1,1,1} " << nDefault << " (including disconnected)" );
226 return;
227}
#define ATH_MSG_INFO(x)
static Double_t sc
const ServiceHandle< StoreGateSvc > & detStore() const
void errIfConnected(const HWIdentifier chid, const int gain, const std::string &objName, const std::string &message="") const
Gaudi::Property< unsigned > m_ngain
Gaudi::Property< unsigned > m_nsample
ILArOFC::OFCRef_t OFCRef_t
Definition LArOFCFlat.h:24
::StatusCode StatusCode
StatusCode definition for legacy code.
unsigned int constexpr nChannels
Definition RPDUtils.h:23

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< Algorithm > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ singleFloatFlat()

void LArFlatFromFile::singleFloatFlat ( const char * blobName,
const std::string & input,
const std::string & outputName,
const unsigned nGain )
private

Definition at line 33 of file LArFlatFromFile.cxx.

34 {
35
36 unsigned nChannels=0;
37 unsigned nCopiedEMPS=0;
38 unsigned nDefault=0;
39
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);
44 // we expect line per channel with Id, hash and value
45 std::ifstream myfile(input);
46 std::string line;
47 std::vector< std::vector<float> > values(nGain, std::vector<float>(m_hashMax,1.0f));
48 unsigned id;
49 int hash;
50 float value;
51 while (std::getline(myfile, line)) {
52 std::stringstream st(line);
53 if(m_isSC) {
54 st>>std::dec>>id>>std::dec>>value;
55 hash=0;
56 } else {
57 st>>std::hex>>id>>std::dec>>hash>>value;
58 }
59 const HWIdentifier chid(id);
60 if (value < 0) {
61 errIfConnected(chid,hash,blobName);
62 value=1.0; //Default vaue is 1.0, since these are multiplicative constants
63 ++nDefault;
64 }
65 if (hash < 0) {
66 errIfConnected(chid,hash,blobName," Wrong hash !!!");
67 hash=0;
68 }
69 else if (hash >= static_cast<int>(nGain)) {
70 errIfConnected(chid,hash,blobName," Wrong Gain !!!");
71 hash=0;
72 }
73
74 if(m_isSC)
75 values[hash][m_onlineSCID->channel_Hash(chid)]=value;
76 else
77 values[hash][m_onlineID->channel_Hash(chid)]=value;
78 } // over the input file
79
80 for (unsigned gain=0;gain<nGain;++gain) {
81 auto attrList = std::make_unique<coral::AttributeList>(*spec);
82 (*attrList)["version"].setValue(0U);
83 coral::Blob& blob=(*attrList)[blobName].data<coral::Blob>();
84 blob.resize(m_hashMax*sizeof(float));
85 float* pblob=static_cast<float*>(blob.startingAddress());
86 for (unsigned hs=0;hs<m_hashMax;++hs) {
87 pblob[hs]=values[gain][hs];
88 ++nChannels;
89 }
90 unsigned coolChan=gain;
91
92 coll->add(coolChan,*attrList.release());
93 }
94
95 ATH_MSG_INFO( "Converted " << blobName << " to inline storage. Total number of channels=" << nChannels );
96 ATH_MSG_INFO( "Number of channels filled with default value (1.0) " << nDefault << " (including disconnected)" );
97 if (nCopiedEMPS)
98 ATH_MSG_INFO( "\t Number of low gain EMBPS channels copied from medium gain" << nCopiedEMPS );
99 StatusCode sc=detStore()->record(std::move(coll),outputName);
100 if (sc.isFailure()) {
101 ATH_MSG_ERROR( "Failed to record CondAttrListCollection with key" << outputName );
102 return;
103 }
104 return;
105}
Gaudi::Property< bool > m_isSC

◆ stop()

StatusCode LArFlatFromFile::stop ( )
overridevirtual

Definition at line 231 of file LArFlatFromFile.cxx.

231 {
232
233
236
237 if(m_isSC)
238 m_hashMax=m_onlineSCID->channelHashMax();
239 else
240 m_hashMax=m_onlineID->channelHashMax();
241
242
243
244 //OFC:
245 if (m_OFCInput.size()) {
246 std::ifstream myfile(m_OFCInput);
247 // new lines will be skipped unless we stop it from happening:
248 myfile.unsetf(std::ios_base::skipws);
249
250 // count the newlines with an algorithm specialized for counting:
251 unsigned line_count = std::count( std::istream_iterator<char>(myfile),
252 std::istream_iterator<char>(), '\n');
253 myfile.close();
254 if (m_checkCompletness && 2*m_hashMax != line_count) {
255 ATH_MSG_ERROR( "Failed to check file with OFCs" );
256 return StatusCode::FAILURE;
257 } else {
258 if(m_isSC)
259 ofcFlat(m_OFCInput,"/LAR/ElecCalibSC/OFC");
260 else
261 ofcFlat(m_OFCInput,"/LAR/ElecCalibFlat/OFC");
262 }
263 }//end have m_OFCInput
264
265 //SIngle:
266 if (m_SingleInput.size()) {
267 std::ifstream myfile(m_SingleInput);
268 // new lines will be skipped unless we stop it from happening:
269 myfile.unsetf(std::ios_base::skipws);
270
271 // count the newlines with an algorithm specialized for counting:
272 unsigned line_count = std::count( std::istream_iterator<char>(myfile),
273 std::istream_iterator<char>(), '\n');
274 myfile.close();
275 if (m_checkCompletness && m_ngain*m_hashMax != line_count) {
276 ATH_MSG_ERROR( "Failed to check input file "<<m_SingleInput );
277 ATH_MSG_ERROR( "Line count: "<<line_count<<" expected: "<<m_ngain*m_hashMax<<" "<<m_isSC);
278 return StatusCode::FAILURE;
279 } else {
281 }
282 }//end have m_SingleInput
283
284 return StatusCode::SUCCESS;
285}
void ofcFlat(const std::string &input, const std::string &outputName)
Gaudi::Property< std::string > m_Folder
Gaudi::Property< std::string > m_SingleInput
Gaudi::Property< bool > m_checkCompletness
Gaudi::Property< std::string > m_BlobName
Gaudi::Property< std::string > m_OFCInput
Input files.
void singleFloatFlat(const char *blobName, const std::string &input, const std::string &outputName, const unsigned nGain)
retrieve(aClass, aKey=None)
Definition PyKernel.py:110

◆ sysInitialize()

StatusCode AthAlgorithm::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Algorithm > >.

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, AthHistogramAlgorithm, and PyAthena::Alg.

Definition at line 66 of file AthAlgorithm.cxx.

66 {
68
69 if (sc.isFailure()) {
70 return sc;
71 }
72 ServiceHandle<ICondSvc> cs("CondSvc",name());
73 for (auto h : outputHandles()) {
74 if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
75 // do this inside the loop so we don't create the CondSvc until needed
76 if ( cs.retrieve().isFailure() ) {
77 ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
78 return StatusCode::SUCCESS;
79 }
80 if (cs->regHandle(this,*h).isFailure()) {
81 sc = StatusCode::FAILURE;
82 ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
83 << " with CondSvc");
84 }
85 }
86 }
87 return sc;
88}
#define ATH_MSG_WARNING(x)
virtual StatusCode sysInitialize() override
Override sysInitialize.
AthCommonDataStore(const std::string &name, T... args)
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Algorithm > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_BlobName

Gaudi::Property<std::string> LArFlatFromFile::m_BlobName {this, "Blob","","Blob name"}
private

Definition at line 68 of file LArFlatFromFile.h.

68{this, "Blob","","Blob name"};

◆ m_cablingKey

SG::ReadCondHandleKey<LArOnOffIdMapping> LArFlatFromFile::m_cablingKey {this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"}
private

Definition at line 53 of file LArFlatFromFile.h.

53{this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"};

◆ m_checkCompletness

Gaudi::Property<bool> LArFlatFromFile::m_checkCompletness {this, "checkInput", true, "Check if input file is complete"}
private

Definition at line 71 of file LArFlatFromFile.h.

71{this, "checkInput", true, "Check if input file is complete"};

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_Folder

Gaudi::Property<std::string> LArFlatFromFile::m_Folder {this, "Folder","","Folder to create"}
private

Definition at line 67 of file LArFlatFromFile.h.

67{this, "Folder","","Folder to create"};

◆ m_forceStop

bool LArFlatFromFile::m_forceStop {}
private

Definition at line 73 of file LArFlatFromFile.h.

73{};

◆ m_hashMax

unsigned LArFlatFromFile::m_hashMax {}
private

Definition at line 48 of file LArFlatFromFile.h.

48{};

◆ m_isSC

Gaudi::Property<bool> LArFlatFromFile::m_isSC {this,"SuperCells",false,"Run for SC ?"}
private

Definition at line 60 of file LArFlatFromFile.h.

60{this,"SuperCells",false,"Run for SC ?"};

◆ m_ngain

Gaudi::Property<unsigned> LArFlatFromFile::m_ngain {this,"NGains",1,"Number of gains to process"}
private

Definition at line 63 of file LArFlatFromFile.h.

63{this,"NGains",1,"Number of gains to process"};

◆ m_nsample

Gaudi::Property<unsigned> LArFlatFromFile::m_nsample {this,"NSamples",4,"Number of samples to process"}
private

Definition at line 64 of file LArFlatFromFile.h.

64{this,"NSamples",4,"Number of samples to process"};

◆ m_OFCInput

Gaudi::Property<std::string> LArFlatFromFile::m_OFCInput {this, "OFCInput","","Input file name"}
private

Input files.

Definition at line 56 of file LArFlatFromFile.h.

56{this, "OFCInput","","Input file name"};

◆ m_onlineID

const LArOnlineID* LArFlatFromFile::m_onlineID {}
private

Definition at line 49 of file LArFlatFromFile.h.

49{};

◆ m_onlineSCID

const LArOnline_SuperCellID* LArFlatFromFile::m_onlineSCID {}
private

Definition at line 50 of file LArFlatFromFile.h.

50{};

◆ m_SingleInput

Gaudi::Property<std::string> LArFlatFromFile::m_SingleInput {this, "SingleInput","","Input file name"}
private

Definition at line 57 of file LArFlatFromFile.h.

57{this, "SingleInput","","Input file name"};

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files: