ATLAS Offline Software
Functions | Variables
SCTCalibWriteTool.cxx File Reference

Implementation file for uploading to DB on CAF. More...

#include "SCT_CalibAlgs/SCTCalibWriteTool.h"
#include "RegistrationServices/IIOVRegistrationSvc.h"
#include "AthenaKernel/IAthenaOutputStreamTool.h"
#include "CoralBase/Attribute.h"
#include "Identifier/IdentifierHash.h"
#include "Identifier/Identifier.h"
#include "InDetIdentifier/SCT_ID.h"
#include "PathResolver/PathResolver.h"
#include "GaudiKernel/StatusCode.h"
#include "GaudiKernel/IToolSvc.h"
#include <fstream>
#include <iostream>
#include <istream>
#include <iterator>
#include <sstream>

Go to the source code of this file.

Functions

StatusCode SCTCalibWriteTool::createCondObjects ATLAS_NOT_THREAD_SAFE (const Identifier &wafer_id, const SCT_ID *sctId, const int samplesize, const std::string &defectType, const float threshold, const std::string &defectList) const
 
StatusCode SCTCalibWriteTool::createListEff ATLAS_NOT_THREAD_SAFE (const Identifier &wafer_id, const SCT_ID *sctId, const int samplesize, const float eff) const
 
StatusCode SCTCalibWriteTool::createListBSErr ATLAS_NOT_THREAD_SAFE (const Identifier &wafer_id, const SCT_ID *sctId, const int samplesize, const std::string &errorList, const std::string &probList) const
 
StatusCode SCTCalibWriteTool::createListLA ATLAS_NOT_THREAD_SAFE (const Identifier &wafer_id, const SCT_ID *sctId, const int samplesize, int module, const float lorentz, const float err_lorentz, const float chisq, const float fitParam_a, const float err_a, const float fitParam_b, const float err_b, const float fitParam_sigma, const float err_sigma, const float MCW, const float err_MCW) const
 

Variables

const bool becCapsFormat {true}
 
const bool becUnderscoreFormat {false}
 

Detailed Description

Implementation file for uploading to DB on CAF.

Author
Jose E. Garcia

Definition in file SCTCalibWriteTool.cxx.

Function Documentation

◆ ATLAS_NOT_THREAD_SAFE() [1/4]

StatusCode SCTCalibWriteTool::createListRawOccu ATLAS_NOT_THREAD_SAFE ( const Identifier wafer_id,
const SCT_ID sctId,
const int  samplesize,
const float  eff 
) const

Definition at line 294 of file SCTCalibWriteTool.cxx.

295  {
296  if (!m_writeCondObjs) {
297  return StatusCode::SUCCESS;
298  }
299 
300  coral::AttributeListSpecification* attrSpec{createBasicDbSpec(becUnderscoreFormat)};
301  attrSpec->extend("Efficiency", "float");
302  if (!attrSpec->size()) {
303  ATH_MSG_ERROR(" Attribute list specification is empty");
304  return StatusCode::FAILURE;
305  }
306 
307  coral::AttributeList attrList0{*attrSpec};
308  setBasicValues(attrList0, wafer_id, samplesize,sctId,becUnderscoreFormat);
309  attrList0["Efficiency"].setValue(static_cast<float>(eff));
310 
311  std::ostringstream attrStr2;
312  attrList0.toOutputStream(attrStr2);
313  m_attrListColl_eff->add(wafer_id.get_identifier32().get_compact(), attrList0);
314 
315  return StatusCode::SUCCESS;
316 }

◆ ATLAS_NOT_THREAD_SAFE() [2/4]

StatusCode SCTCalibWriteTool::createListChip ATLAS_NOT_THREAD_SAFE ( const Identifier wafer_id,
const SCT_ID sctId,
const int  samplesize,
const std::string &  defectType,
const float  threshold,
const std::string &  defectList 
) const

Definition at line 199 of file SCTCalibWriteTool.cxx.

200  {
201  if (!m_writeCondObjs) {
202  return StatusCode::SUCCESS;
203  }
204  coral::AttributeListSpecification* attrSpec{createBasicDbSpec(becCapsFormat)};
205  attrSpec->extend("DefectType", "string");
206  attrSpec->extend("Threshold", "float");
207  attrSpec->extend("DefectList", "string");
208 
209  if (!attrSpec->size()) {
210  ATH_MSG_ERROR(" Attribute list specification is empty");
211  return StatusCode::FAILURE;
212  }
213 
214  coral::AttributeList attrList0{*attrSpec};
215  setBasicValues(attrList0, wafer_id, samplesize,sctId,becCapsFormat);
216  attrList0["DefectType"].setValue(static_cast<std::string>(defectType));
217  attrList0["Threshold"].setValue(static_cast<float>(threshold));
218  attrList0["DefectList"].setValue(static_cast<std::string>(defectList));
219  std::ostringstream attrStr2;
220  attrList0.toOutputStream(attrStr2);
221  m_attrListColl->add(wafer_id.get_identifier32().get_compact(), attrList0);
222  return StatusCode::SUCCESS;
223 }

◆ ATLAS_NOT_THREAD_SAFE() [3/4]

StatusCode SCTCalibWriteTool::createListBSErr ATLAS_NOT_THREAD_SAFE ( const Identifier wafer_id,
const SCT_ID sctId,
const int  samplesize,
const std::string &  errorList,
const std::string &  probList 
) const

Definition at line 374 of file SCTCalibWriteTool.cxx.

375  {
376  if (!m_writeCondObjs) {
377  return StatusCode::SUCCESS;
378  }
379 
380  coral::AttributeListSpecification* attrSpec{createBasicDbSpec(becUnderscoreFormat)};
381  attrSpec->extend("BSErrors", "string");
382  attrSpec->extend("BadFraction", "string");
383 
384  if (!attrSpec->size()) {
385  ATH_MSG_ERROR(" Attribute list specification is empty");
386  return StatusCode::FAILURE;
387  }
388 
389  coral::AttributeList attrList0{*attrSpec};
390  setBasicValues(attrList0, wafer_id, samplesize, sctId, becUnderscoreFormat);
391  attrList0["BSErrors"].setValue(static_cast<std::string>(errorList));
392  attrList0["BadFraction"].setValue(static_cast<std::string>(probList));
393 
394  std::ostringstream attrStr2;
395  attrList0.toOutputStream(attrStr2);
396  m_attrListColl_BSErr->add(wafer_id.get_identifier32().get_compact(), attrList0);
397  return StatusCode::SUCCESS;
398 }

◆ ATLAS_NOT_THREAD_SAFE() [4/4]

StatusCode SCTCalibWriteTool::createListLA ATLAS_NOT_THREAD_SAFE ( const Identifier wafer_id,
const SCT_ID sctId,
const int  samplesize,
int  module,
const float  lorentz,
const float  err_lorentz,
const float  chisq,
const float  fitParam_a,
const float  err_a,
const float  fitParam_b,
const float  err_b,
const float  fitParam_sigma,
const float  err_sigma,
const float  MCW,
const float  err_MCW 
) const

Definition at line 403 of file SCTCalibWriteTool.cxx.

404  {
405  if (!m_writeCondObjs) return StatusCode::SUCCESS;
406  int barrel_ec{sctId->barrel_ec(wafer_id)};
407  int layer{sctId->layer_disk(wafer_id)};
408  int side{sctId->side(wafer_id)};
409 
410  coral::AttributeListSpecification* attrSpec{new coral::AttributeListSpecification{}};
411  attrSpec->extend("SampleSize", "int");
412  attrSpec->extend("barrel_endcap", "int");
413  attrSpec->extend("Layer", "int");
414  attrSpec->extend("Side", "int");
415  attrSpec->extend("moduleType", "int");
416  attrSpec->extend("lorentzAngle", "float");
417  attrSpec->extend("err_lorentzAngle", "float");
418  attrSpec->extend("chisq", "float");
419  attrSpec->extend("fitParam_a", "float");
420  attrSpec->extend("err_a", "float");
421  attrSpec->extend("fitParam_b", "float");
422  attrSpec->extend("err_b", "float");
423  attrSpec->extend("fitParam_sigma", "float");
424  attrSpec->extend("err_sigma", "float");
425  attrSpec->extend("minClusterWidth", "float");
426  attrSpec->extend("err_minClusterWidth", "float");
427 
428  if (!attrSpec->size()) {
429  ATH_MSG_ERROR(" Attribute list specification is empty");
430  return StatusCode::FAILURE;
431  }
432 
433  // Add three attr lists
434  coral::AttributeList attrList0{*attrSpec};
435  attrList0["SampleSize"].setValue(static_cast<int>(samplesize));
436  attrList0["barrel_endcap"].setValue(static_cast<int>(barrel_ec));
437  attrList0["Layer"].setValue(static_cast<int>(layer));
438  attrList0["Side"].setValue(static_cast<int>(side));
439  attrList0["moduleType"].setValue(static_cast<int>(module));
440  attrList0["lorentzAngle"].setValue(static_cast<float>(lorentz));
441  attrList0["err_lorentzAngle"].setValue(static_cast<float>(err_lorentz));
442  attrList0["chisq"].setValue(static_cast<float>(chisq));
443  attrList0["fitParam_a"].setValue(static_cast<float>(fitParam_a));
444  attrList0["err_a"].setValue(static_cast<float>(err_a));
445  attrList0["fitParam_b"].setValue(static_cast<float>(fitParam_b));
446  attrList0["err_b"].setValue(static_cast<float>(err_b));
447  attrList0["fitParam_sigma"].setValue(static_cast<float>(fitParam_sigma));
448  attrList0["err_sigma"].setValue(static_cast<float>(err_sigma));
449  attrList0["minClusterWidth"].setValue(static_cast<float>(MCW));
450  attrList0["err_minClusterWidth"].setValue(static_cast<float>(err_MCW));
451 
452  std::ostringstream attrStr2;
453  attrList0.toOutputStream(attrStr2);
454  m_attrListColl_LA->add(wafer_id.get_identifier32().get_compact(), attrList0);
455 
456  return StatusCode::SUCCESS;
457 }

Variable Documentation

◆ becCapsFormat

const bool becCapsFormat {true}

Definition at line 50 of file SCTCalibWriteTool.cxx.

◆ becUnderscoreFormat

const bool becUnderscoreFormat {false}

Definition at line 51 of file SCTCalibWriteTool.cxx.

SCT_ID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: SCT_ID.h:728
python.PyKernel.AttributeList
AttributeList
Definition: PyKernel.py:36
becUnderscoreFormat
const bool becUnderscoreFormat
Definition: SCTCalibWriteTool.cxx:51
TRT::Hit::side
@ side
Definition: HitInfo.h:83
python.PyAthena.module
module
Definition: PyAthena.py:134
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Identifier32::get_compact
value_type get_compact(void) const
Get the compact id.
Definition: Identifier32.h:171
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
becCapsFormat
const bool becCapsFormat
Definition: SCTCalibWriteTool.cxx:50
threshold
Definition: chainparser.cxx:74
SCT_ID::layer_disk
int layer_disk(const Identifier &id) const
Definition: SCT_ID.h:734
SCT_ID::side
int side(const Identifier &id) const
Definition: SCT_ID.h:752
dqt_zlumi_alleff_HIST.eff
int eff
Definition: dqt_zlumi_alleff_HIST.py:113
Identifier::get_identifier32
Identifier32 get_identifier32(void) const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.