ATLAS Offline Software
TileOFC2DBAlg.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 //=== Event Info
8 
9 //=== AttributeList
10 //#include "CoralBase/Attribute.h"
11 #include "CoralBase/Blob.h"
12 #include "CoralBase/AttributeListSpecification.h"
14 
15 //=== Tile includes
16 #include "TileOFC2DBAlg.h"
20 
21 #include <vector>
22 
23 TileOFC2DBAlg::TileOFC2DBAlg(const std::string& name, ISvcLocator* pSvcLocator)
24  : AthAlgorithm(name, pSvcLocator)
25  , m_regSvc("IOVRegistrationSvc", name)
26 
27 {
28  declareProperty("OF2", m_of2 = true,"true => OF2, false => OF1");
33  declareProperty("FixedPhases", m_fixedPhases = true, "calculate OFCs for fixed phases" );
34  declareProperty("RunType", m_runType = "PHY", "PHY or LAS");
35 
36  declareProperty("FixedPhasesNumber", m_nFixedPhases = 100);
37  declareProperty("PhaseStep", m_phaseStep = 0.5);
38  declareProperty("MaxChan", m_maxChan = 1, "Number of channels for which OFCs will be created with fixed phases");
39  declareProperty("Modules", m_modules = {"AUX01"}, "Modules for which OFC should be stored in DB");
40  declareProperty("CreateAllModules", m_creatAllModules = true, "All missing modules is written to DB with zero size (empty)");
41 }
42 
44 }
45 
46 
47 //____________________________________________________________________________
49 
50  ATH_MSG_INFO( "Initializing for " << m_runType );
51 
52  //=== EventInfo key
54 
55  //=== get TileToolTiming
56  CHECK( m_tileToolTiming.retrieve() );
57 
58  //=== get TileCondToolOfc
59  CHECK( m_tileCondToolOfc.retrieve() );
60 
61  //=== IOVRegistrationSvc
62  CHECK( m_regSvc.retrieve() );
63 
64  std::map<std::string, unsigned int> roses = { {"AUX", 0}, {"LBA", 1}, {"LBC", 2}, {"EBA", 3}, {"EBC", 4} };
65 
66  msg(MSG::INFO) << "OFC will be stored in DB for the following modules:";
67  for (const std::string& module : m_modules) {
68  msg(MSG::INFO) << " " << module;
69  m_drawerIdxs.push_back( TileCalibUtils::getDrawerIdx(roses[module.substr(0, 3)], std::stoi(module.substr(3, 2)) - 1) );
70  }
71  msg(MSG::INFO) << endmsg;
72 
73  if (m_creatAllModules) ATH_MSG_INFO("All other missing modules will be stored in DB with zero size");
74 
75  return StatusCode::SUCCESS;
76 }
77 
78 //
79 //_________________________________________________________________________
81  const EventContext &ctx = Gaudi::Hive::currentContext();
82 
83  //=== print run/evt/lbn/time info for each event
85  ATH_CHECK( eventInfo.isValid() );
86 
87  ATH_MSG_DEBUG( "Event: ["
88  << eventInfo->runNumber() << ","
89  << eventInfo->eventNumber() << ":"
90  << eventInfo->timeStamp() << "]" );
91 
92 
93  //=== Create conditions objects only at run == ?, event == ?
94  if (1 != eventInfo->eventNumber()) {
95  ATH_MSG_DEBUG( "Event NOT selected for creating conditions objects " );
96  return StatusCode::SUCCESS;
97  } else {
98  ATH_MSG_DEBUG( "Creating conditions objects " );
99  }
100 
101  //unsigned int objVersion = (m_of2) ? 3 : 1;
102  unsigned int objVersion = 3; // non efficient, but allows to keep dG also for OF1
103 
104  //=== build the IOV range
106 
107  //=== build COOL folder name based on ???????
108  std::string folder("/TILE/ONL01/FILTER/");
109  if (m_of2) folder += "OF2/" + m_runType;
110  else folder += "OF1/" + m_runType;
111  m_folders.insert(folder);
112 
113  //=== create the folder layout
114  coral::AttributeListSpecification* spec = new coral::AttributeListSpecification();
115  spec->extend("TileCalibBlobOfc", "blob");
116 
117  //=== create the collection of attribute lists
118  CondAttrListCollection* attrListColl = new CondAttrListCollection(true);
119 
120  float zeroPhase(0.0);
122  ATH_CHECK( m_tileCondToolOfc->getOfcWeights(0, 0, 0, zeroPhase, true, weights, ctx) );
123  int ndig = weights.n_samples;
124 
125  // ---------- create fixed phases
126  if (m_fixedPhases) {
127  ATH_MSG_DEBUG( "Fixed phases: " << m_fixedPhases
128  << ", number of fixed phases: " << m_nFixedPhases
129  << ", phase step: " << m_phaseStep);
130 
131  std::vector<float> phases;
132  phases.reserve(m_nFixedPhases * 2 + 1);
133 
134  //=== create attribute list
135  coral::AttributeList ofcList(*spec);
136  coral::Blob& blob = ofcList["TileCalibBlobOfc"].data<coral::Blob>();
137 
138  std::vector<bool> coolChannelCreated(TileCalibUtils::MAX_DRAWERIDX, false);
139 
140  for (int iPhase = - m_nFixedPhases; iPhase <= m_nFixedPhases; ++iPhase) {
141  phases.push_back(iPhase * m_phaseStep);
142  }
143 
144  int nPhases = phases.size();
146 
147  for (unsigned int drawerIdx : m_drawerIdxs) {
148  coolChannelCreated[drawerIdx] = true;
149  drawerOfc = TileCalibDrawerOfc::getInstance(blob, objVersion, ndig, -nPhases, m_maxChan, TileCalibUtils::MAX_GAIN); // nPhases, nChann, nGains
150 
151  drawerOfc->setPhases(0, 0, phases);
152 
153  for (unsigned int channel = 0; channel < m_maxChan; ++channel) {
154  for (unsigned int gain = 0; gain < TileCalibUtils::MAX_GAIN; ++gain) {
155 
156  for (float phase : phases) {
157  ATH_CHECK( m_tileCondToolOfc->getOfcWeights(drawerIdx, channel, gain, phase, m_of2, weights, ctx) );
158  for (int isam = 0; isam < ndig; isam++) {
159  drawerOfc->setOfc(TileCalibDrawerOfc::FieldA, channel, gain, phase, isam, weights.w_a[isam]);
160  drawerOfc->setOfc(TileCalibDrawerOfc::FieldB, channel, gain, phase, isam, weights.w_b[isam]);
161  drawerOfc->setOfc(TileCalibDrawerOfc::FieldG, channel, gain, phase, isam, weights.g[isam]);
162  if (objVersion == 3) {
163  drawerOfc->setOfc(TileCalibDrawerOfc::FieldC, channel, gain, phase, isam, weights.w_c[isam]);
164  drawerOfc->setOfc(TileCalibDrawerOfc::FieldDG, channel, gain, phase, isam, weights.dg[isam]);
165  }
166  }
167 
168 
169  if (msgLvl(MSG::DEBUG)) {
170 
171  msg(MSG::DEBUG) << " N Samples " << ndig
172  << " channel " << channel
173  << " drawerIdx " << drawerIdx
174  << " gain " << gain
175  << " phase = " << phase << endmsg;
176 
177  msg(MSG::DEBUG) << "gain " << gain << " w_a, phase " << phase << " ";
178  for (int isam = 0; isam < ndig; ++isam)
179  msg(MSG::DEBUG) << " " << weights.w_a[isam];
180  msg(MSG::DEBUG) << endmsg;
181 
182  msg(MSG::DEBUG) << "gain " << gain << " w_b, phase " << phase << " ";
183  for (int isam = 0; isam < ndig; isam++)
184  msg(MSG::DEBUG) << " " << weights.w_b[isam];
185  msg(MSG::DEBUG) << endmsg;
186 
187  if (m_of2) {
188  msg(MSG::DEBUG) << "gain " << gain << " w_c, phase " << phase << " ";
189  for (int isam = 0; isam < ndig; isam++)
190  msg(MSG::DEBUG) << " " << weights.w_c[isam];
191  msg(MSG::DEBUG) << endmsg;
192  }
193 
194  msg(MSG::DEBUG) << "gain " << gain << " g, phase " << phase << " ";
195  for (int isam = 0; isam < ndig; isam++)
196  msg(MSG::DEBUG) << " " << weights.g[isam];
197  msg(MSG::DEBUG) << endmsg;
198 
199  }
200 
201  }
202  }
203 
204 
205  }
206 
207  //=== use DrawerHash as channel number
208  attrListColl->add(drawerIdx, ofcList);
209 
210  //=== add the IOV range for this collection
211  attrListColl->add(drawerIdx, range);
212  // drawerOfc->dump();
213  delete drawerOfc;
214 
215  }
216 
217  //=== Create empty blobs for all COOL channels (for missing drawers)
218  if (m_creatAllModules) {
219  for (unsigned int coolChannel = 0; coolChannel < TileCalibUtils::MAX_DRAWERIDX; ++coolChannel) {
220  if (coolChannelCreated[coolChannel]) continue;
221  //=== create attribute list for this drawer
222  coral::AttributeList ofcList(*spec);
223  //coral::Blob& blob=ofcList["TileCalibBlobOfc"].data<coral::Blob>();
224  attrListColl->add(coolChannel, ofcList);
225  attrListColl->add(coolChannel, range);
226  }
227  }
228 
229  } else { // take best phase from DB and calculate OFCs for each channel
230 
231  std::vector<float> phases(TileCalibUtils::MAX_CHAN);
232 
233  //=== create attribute list
234  coral::AttributeList ofcList(*spec);
235  coral::Blob& blob = ofcList["TileCalibBlobOfc"].data<coral::Blob>();
236 
237  //=== create an OFC blob interpreter
238  TileCalibDrawerOfc* drawerOfc = TileCalibDrawerOfc::getInstance(blob, objVersion, ndig, -48, 256, 2); // nPhases, nChann, nGains
239 
240  for (unsigned int channel = 0; channel < TileCalibUtils::MAX_CHAN; ++channel)
241  phases[channel] = (float) channel;
242 
243  for (unsigned int ros = 1; ros < TileCalibUtils::MAX_ROS; ++ros) {
244  for (unsigned int drawer = 0; drawer < TileCalibUtils::getMaxDrawer(ros); ++drawer) {
245  unsigned int drawerIdx = TileCalibUtils::getDrawerIdx(ros, drawer);
246  drawerOfc->setPhases(drawerIdx, 0, phases);
247 
248  for (unsigned int channel = 0; channel < TileCalibUtils::MAX_CHAN; ++channel) {
249 
250  for (unsigned int gain = 0; gain < TileCalibUtils::MAX_GAIN; ++gain) {
251 
252  float phase = m_tileToolTiming->getSignalPhase(drawerIdx, channel, gain);
253  ATH_MSG_DEBUG( "m_tileToolTiming:"
254  << " drawerIdx " << drawerIdx
255  << " channel " << channel
256  << " gain " << gain
257  << " phase " << phase );
258 
259  ATH_CHECK( m_tileCondToolOfc->getOfcWeights(drawerIdx, channel, gain, phase, m_of2, weights, ctx) );
260  ATH_MSG_DEBUG( " N Samples " << ndig
261  << " ros " << ros
262  << " drawer " << drawer
263  << " channel " << channel
264  << " drawerIdx " << drawerIdx
265  << " gain " << gain
266  << " phase = " << phase );
267 
268  double w_a_sum = 0, w_b_sum = 0, w_c_sum = 0;
269  for (int isam = 0; isam < ndig; isam++) {
270  if (m_of2) {
271  ATH_MSG_DEBUG( " sampling " << isam
272  << " w_a " << weights.w_a[isam]
273  << " w_b " << weights.w_b[isam]
274  << " w_c " << weights.w_c[isam]
275  << " g " << weights.g[isam] );
276 
277  } else {
278  ATH_MSG_DEBUG( " sampling " << isam
279  << " w_a " << weights.w_a[isam]
280  << " w_b " << weights.w_b[isam]
281  << " g " << weights.g[isam] );
282 
283  }
284 
285  w_a_sum += weights.w_a[isam];
286  w_b_sum += weights.w_b[isam];
287  w_c_sum += weights.w_c[isam];
288 
289  drawerOfc->setOfc(0, drawerIdx, gain, channel, isam, weights.w_a[isam]);
290  drawerOfc->setOfc(1, drawerIdx, gain, channel, isam, weights.w_b[isam]);
291  if (m_of2) {
292  drawerOfc->setOfc(2, drawerIdx, gain, channel, isam, weights.w_c[isam]);
293  drawerOfc->setOfc(3, drawerIdx, gain, channel, isam, weights.g[isam]);
294  } else {
295  drawerOfc->setOfc(2, drawerIdx, gain, channel, isam, weights.g[isam]);
296  }
297  }
298 
299  if (m_of2) ATH_MSG_DEBUG( " *** SUM: a,b,c " << w_a_sum << " " << w_b_sum << " " << w_c_sum );
300 
301  } // for ... gain
302  } // for ... channel
303 
304  //=== use DrawerHash as channel number
305  attrListColl->add(drawerIdx, ofcList);
306 
307  //=== add the IOV range for this collection
308  attrListColl->add(drawerIdx, range);
309  // drawerOfc->dump();
310  } // for ... drawer
311  } // for ... ros
312  delete drawerOfc;
313  }
314 
315  //=== add the comment in the comment channel
316  coral::AttributeList attrList(*spec);
317  coral::Blob& blob = attrList["TileCalibBlobOfc"].data<coral::Blob>();
318  const char* user = getenv("USER");
319  TileCalibDrawerCmt* comment = TileCalibDrawerCmt::getInstance(blob, (user ? user : "tilecomm"), "OFC weights calculated by TileCondToolOfc");
320  delete comment;
321  attrListColl->add(TileCalibUtils::getCommentChannel(), attrList);
322  attrListColl->add(TileCalibUtils::getCommentChannel(), range);
323 
324  spec->release();
325  // cppcheck-suppress memleak
326  spec = nullptr;
327 
328  //=== recored collection in store gate
329  CHECK( detStore()->record(attrListColl, folder) );
330 
331  //=======================================
332  //=== Print conditions data in detector store
333  //=======================================
334  ATH_MSG_DEBUG( "Calling printCondObjects" );
335 
336  CHECK( printCondObjects() );
337 
338  return StatusCode::SUCCESS;
339 }
340 
341 //
342 //________________________________________________________________________
344 
345  ATH_MSG_INFO( "in finalize()" );
346 
347  //=== Register objects in DB
349 
350  ATH_MSG_DEBUG( "Register OK " );
351 
352  return StatusCode::SUCCESS;
353 }
354 
355 
356 //
357 //___________________________________________________________________
359 
360  ATH_MSG_DEBUG( "entering registerCondObject " );
361 
362  for (std::set<std::string>::const_iterator iFolder = m_folders.begin();
363  iFolder != m_folders.end(); ++iFolder) {
364 
365  const CondAttrListCollection* attrListColl = nullptr;
366  CHECK( detStore()->retrieve(attrListColl, *iFolder) );
367 
368  if (nullptr == attrListColl) {
369  ATH_MSG_ERROR( "Has not retrieved AttributeListCollection (ptr is 0) from " << *iFolder );
370  return (StatusCode::FAILURE);
371  } else {
372  ATH_MSG_DEBUG( "Retrieved AttributeListCollection from " << *iFolder );
373  }
374 
375  //=== register in COOL
376  std::string tag = "";
377  CHECK( m_regSvc->registerIOV("CondAttrListCollection", *iFolder, tag) );
378 
379  ATH_MSG_DEBUG( "Registered folder " << *iFolder << " with tag " << tag );
380 
381  } //end iFolder
382 
383  return StatusCode::SUCCESS;
384 }
385 
386 //
387 //__________________________________________________________________
389 
390  ATH_MSG_INFO( "in printCondObjects()" );
391 
392  //=== loop over all folders
393  for (std::set<std::string>::const_iterator iFolder = m_folders.begin();
394  iFolder != m_folders.end(); ++iFolder) {
395 
396  ATH_MSG_DEBUG( "Printing content of folder: " << *iFolder );
397 
398  //=== determine blob name
399  std::string blobName("TileCalibBlob");
400  if (iFolder->find("/TILE/ONL01/FILTER") != std::string::npos) {
401  blobName += "Ofc";
402  }
403 
404  ATH_MSG_DEBUG( "The blob name is: " << blobName );
405 
406  const CondAttrListCollection* attrListColl(nullptr);
407  CHECK( detStore()->retrieve(attrListColl, *iFolder) );
408 
409  if (!attrListColl) {
410  ATH_MSG_ERROR("Has not retrieved AttributeListCollection (ptr is 0) from " << *iFolder );
411  return StatusCode::FAILURE;
412  }
413 
414  //=== find the general comment
415  std::string generalComment("");
417  if (iComment != attrListColl->end()) {
418  const coral::Blob& blob = (iComment->second)[blobName].data<coral::Blob>();
420  generalComment = cmt->getFullComment();
421  delete cmt;
422  }
423 
424  //=== loop over collection
425  CondAttrListCollection::const_iterator iColl = attrListColl->begin();
426  CondAttrListCollection::const_iterator last = attrListColl->end();
427  for (; iColl != last; ++iColl) {
428 
429  //=== do not print comment channel
430  if (iColl == iComment) continue;
431 
432  //=== try to find comment for this drawer
433  const coral::Blob& blob = (iColl->second)[blobName].data<coral::Blob>();
434  //=== do not print empty blobs
435  if (!blob.size()) {
436  continue;
437  }
438 
440  std::ostringstream attrStr1;
441  (*iColl).second.toOutputStream(attrStr1);
442  ATH_MSG_DEBUG( "ChanNum " << (*iColl).first << " Attribute list " << attrStr1.str() );
443 
444  // Print out range if it exits
445  CondAttrListCollection::ChanNum chanNum = (*iColl).first;
447  if (iovIt != attrListColl->iov_end()) {
448  const IOVRange& range = (*iovIt).second;
449  if (range.start().isTimestamp()) {
450  ATH_MSG_DEBUG( "Range timestamp :"
451  << " since " << range.start().timestamp()
452  << " till " << range.stop().timestamp() );
453 
454  } else {
455  ATH_MSG_DEBUG( "Range R/LB :"
456  << " since " << range.start().run() << " " << range.start().event()
457  << " till " << range.stop().run() << " " << range.stop().event() );
458  }
459  } else {
460  ATH_MSG_DEBUG( "No range found " );
461  }
462 
463  //=== print the comment
464  std::string comment = cmt->getFullComment();
465  if (comment.empty()) {
466  comment = generalComment;
467  }
468  ATH_MSG_DEBUG( "Comment: " << comment );
469  delete cmt;
470 
471  }
472  } //end iFolder
473 
474  return StatusCode::SUCCESS;
475 }
476 
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
TileOFC2DBAlg::initialize
StatusCode initialize()
Definition: TileOFC2DBAlg.cxx:48
TileOFC2DBAlg::m_runIOVSince
UnsignedIntegerProperty m_runIOVSince
Definition: TileOFC2DBAlg.h:63
CondAttrListCollection::end
const_iterator end() const
Definition: CondAttrListCollection.h:315
ReadOfcFromCool.phase
phase
Definition: ReadOfcFromCool.py:127
TileOFC2DBAlg::m_runType
std::string m_runType
Definition: TileOFC2DBAlg.h:70
TileOFC2DBAlg::m_eventInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Definition: TileOFC2DBAlg.h:59
TileOFC2DBAlg::m_creatAllModules
bool m_creatAllModules
Definition: TileOFC2DBAlg.h:86
IOVRange
Validity Range object. Holds two IOVTimes (start and stop)
Definition: IOVRange.h:30
TileCalibUtils::getMaxDrawer
static unsigned int getMaxDrawer(unsigned int ros)
Returns the maximal channel number for a given drawer.
Definition: TileCalibUtils.cxx:136
CondAttrListCollection::iov_end
iov_const_iterator iov_end() const
Definition: CondAttrListCollection.h:343
IOVTime::MAXRUN
static constexpr uint32_t MAXRUN
Definition: IOVTime.h:48
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:24
CondAttrListCollection.h
This file defines the class for a collection of AttributeLists where each one is associated with a ch...
TileOFC2DBAlg::printCondObjects
StatusCode printCondObjects()
Definition: TileOFC2DBAlg.cxx:388
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
xAOD::EventInfo_v1::eventNumber
uint64_t eventNumber() const
The current event's event number.
TileCalibBlobPython_writeOfc.phases
phases
Definition: TileCalibBlobPython_writeOfc.py:89
CaloCondBlobAlgs_fillNoiseFromASCII.spec
spec
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:47
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
TileCalibUtils::MAX_DRAWERIDX
static const unsigned int MAX_DRAWERIDX
Maximal drawer index
Definition: TileCalibUtils.h:143
TileOFC2DBAlg::finalize
StatusCode finalize()
Definition: TileOFC2DBAlg.cxx:343
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:110
TileOFC2DBAlg::~TileOFC2DBAlg
~TileOFC2DBAlg()
Definition: TileOFC2DBAlg.cxx:43
AthCommonMsg< Algorithm >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
CondAttrListCollection::begin
const_iterator begin() const
Access to Chan/AttributeList pairs via iterators.
Definition: CondAttrListCollection.h:309
python.subdetectors.tile.Blob
Blob
Definition: tile.py:17
TileCalibUtils.h
python.PyKernel.AttributeList
AttributeList
Definition: PyKernel.py:36
CondAttrListCollection
This class is a collection of AttributeLists where each one is associated with a channel number....
Definition: CondAttrListCollection.h:52
TileCalibBlobPython_writeOfc.cmt
cmt
Definition: TileCalibBlobPython_writeOfc.py:142
TileOFC2DBAlg::m_lbnIOVUntil
UnsignedIntegerProperty m_lbnIOVUntil
Definition: TileOFC2DBAlg.h:66
Example_ReadSampleNoise.drawer
drawer
Definition: Example_ReadSampleNoise.py:39
CondAttrListCollection::iov_const_iterator
ChanIOVMap::const_iterator iov_const_iterator
Definition: CondAttrListCollection.h:66
xAOD::EventInfo_v1::runNumber
uint32_t runNumber() const
The current event's run number.
TileOFC2DBAlg::m_lbnIOVSince
UnsignedIntegerProperty m_lbnIOVSince
Definition: TileOFC2DBAlg.h:65
TileCalibBlobPython_writeOfc.objVersion
objVersion
Definition: TileCalibBlobPython_writeOfc.py:71
AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
IOVTime::MINRUN
static constexpr uint32_t MINRUN
Definition: IOVTime.h:44
python.PyAthena.module
module
Definition: PyAthena.py:131
IOVTime
Basic time unit for IOVSvc. Hold time as a combination of run and event numbers.
Definition: IOVTime.h:33
TileOFC2DBAlg::m_runIOVUntil
UnsignedIntegerProperty m_runIOVUntil
Definition: TileOFC2DBAlg.h:64
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
TileOFC2DBAlg::m_drawerIdxs
std::vector< unsigned int > m_drawerIdxs
Definition: TileOFC2DBAlg.h:85
checkCoolLatestUpdate.chanNum
chanNum
Definition: checkCoolLatestUpdate.py:27
TileOFC2DBAlg::m_of2
bool m_of2
Definition: TileOFC2DBAlg.h:68
TileOFC2DBAlg::m_tileCondToolOfc
ToolHandle< ITileCondToolOfc > m_tileCondToolOfc
Definition: TileOFC2DBAlg.h:76
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
TileOfcWeightsStruct
Definition: ITileCondToolOfc.h:13
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
TileOFC2DBAlg::registerCondObjects
StatusCode registerCondObjects()
Definition: TileOFC2DBAlg.cxx:358
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
TileCalibUtils::MAX_ROS
static const unsigned int MAX_ROS
Number of ROSs
Definition: TileCalibUtils.h:138
maskDeadModules.ros
ros
Definition: maskDeadModules.py:35
TileOFC2DBAlg::m_fixedPhases
bool m_fixedPhases
Definition: TileOFC2DBAlg.h:69
CondAttrListCollection::ChanNum
unsigned int ChanNum
Definition: CondAttrListCollection.h:55
AthAlgorithm
Definition: AthAlgorithm.h:47
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
IOVTime::MAXEVENT
static constexpr uint32_t MAXEVENT
Definition: IOVTime.h:51
TileOFC2DBAlg::m_regSvc
ServiceHandle< IIOVRegistrationSvc > m_regSvc
Definition: TileOFC2DBAlg.h:73
CaloCondBlobAlgs_fillNoiseFromASCII.comment
string comment
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:27
TileCalibDrawerOfc::FieldC
@ FieldC
Definition: TileCalibDrawerOfc.h:45
TileOFC2DBAlg::m_modules
std::vector< std::string > m_modules
Definition: TileOFC2DBAlg.h:84
TileOFC2DBAlg::m_maxChan
UnsignedIntegerProperty m_maxChan
Definition: TileOFC2DBAlg.h:67
TileCalibBlobPython_writeOfc.drawerOfc
drawerOfc
Definition: TileCalibBlobPython_writeOfc.py:87
TileCalibUtils::getCommentChannel
static unsigned int getCommentChannel()
Returns the COOL channel number for the comment channel.
Definition: TileCalibUtils.h:82
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
errorcheck.h
Helpers for checking error return status codes and reporting errors.
weights
Definition: herwig7_interface.h:38
WriteBchToCool.user
user
Definition: WriteBchToCool.py:76
TileOFC2DBAlg.h
IOVTime::MINEVENT
static constexpr uint32_t MINEVENT
Definition: IOVTime.h:50
TileCalibDrawerOfc::FieldB
@ FieldB
Definition: TileCalibDrawerOfc.h:45
EventInfo.h
TileOFC2DBAlg::m_phaseStep
double m_phaseStep
Definition: TileOFC2DBAlg.h:83
CondAttrListCollection::chanAttrListPair
const_iterator chanAttrListPair(ChanNum chanNum) const
Access to Chan/AttributeList pairs via channel number: returns map iterator.
Definition: CondAttrListCollection.h:301
TileCalibDrawerOfc
Definition: TileCalibDrawerOfc.h:40
TileOFC2DBAlg::execute
StatusCode execute()
Definition: TileOFC2DBAlg.cxx:80
TileCalibDrawerOfc::getInstance
static TileCalibDrawerOfc * getInstance(coral::Blob &blob, uint16_t objVersion, uint32_t nSamples, int32_t nPhases, uint16_t nChans, uint16_t nGains, const std::string &author="", const std::string &comment="", uint64_t timeStamp=0)
Returns a pointer to a non-const TileCalibDrawerOfc.
Definition: TileCalibDrawerOfc.cxx:14
SCT_ConditionsAlgorithms::CoveritySafe::getenv
std::string getenv(const std::string &variableName)
get an environment variable
Definition: SCT_ConditionsUtilities.cxx:17
TileOFC2DBAlg::m_tileToolTiming
ToolHandle< TileCondToolTiming > m_tileToolTiming
Definition: TileOFC2DBAlg.h:74
CondAttrListCollection::const_iterator
ChanAttrListMap::const_iterator const_iterator
Definition: CondAttrListCollection.h:63
TileCalibDrawerCmt::getInstance
static const TileCalibDrawerCmt * getInstance(const coral::Blob &blob)
Returns a pointer to a const TileCalibDrawerCmt.
Definition: TileCalibDrawerCmt.cxx:24
DEBUG
#define DEBUG
Definition: page_access.h:11
TileCalibDrawerOfc::FieldDG
@ FieldDG
Definition: TileCalibDrawerOfc.h:45
AthCommonMsg< Algorithm >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
xAOD::EventInfo_v1::timeStamp
uint32_t timeStamp() const
POSIX time in seconds from 1970. January 1st.
TileCalibDrawerOfc::FieldA
@ FieldA
Definition: TileCalibDrawerOfc.h:45
CaloCondBlobAlgs_fillNoiseFromASCII.folder
folder
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:56
TileOFC2DBAlg::m_folders
std::set< std::string > m_folders
Definition: TileOFC2DBAlg.h:80
TileCalibDrawerCmt
Class to store comments in BLOB without any data.
Definition: TileCalibDrawerCmt.h:20
TileCalibUtils::getDrawerIdx
static unsigned int getDrawerIdx(unsigned int ros, unsigned int drawer)
Returns a drawer hash.
Definition: TileCalibUtils.cxx:60
CaloCondBlobAlgs_fillNoiseFromASCII.tag
string tag
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:24
TileCalibDrawerOfc.h
TileCalibUtils::MAX_CHAN
static const unsigned int MAX_CHAN
Number of channels in drawer.
Definition: TileCalibUtils.h:141
CondAttrListCollection::chanIOVPair
iov_const_iterator chanIOVPair(ChanNum chanNum) const
Access to Chan/IOV pairs via channel number: returns map iterator.
Definition: CondAttrListCollection.h:330
TileOFC2DBAlg::TileOFC2DBAlg
TileOFC2DBAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: TileOFC2DBAlg.cxx:23
TileCalibDrawerCmt.h
CondAttrListCollection::add
bool add(ChanNum chanNum, const AttributeList &attributeList)
Adding in chan/attrList pairs.
Definition: CondAttrListCollection.h:452
TileCalibDrawerOfc::FieldG
@ FieldG
Definition: TileCalibDrawerOfc.h:45
CaloCondBlobAlgs_fillNoiseFromASCII.blob
blob
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:96
TileOFC2DBAlg::m_nFixedPhases
int m_nFixedPhases
Definition: TileOFC2DBAlg.h:82
TileCalibUtils::MAX_GAIN
static const unsigned int MAX_GAIN
Number of gains per channel
Definition: TileCalibUtils.h:142