14#include "Identifier/Identifier.h"
27 base_class(
type, name, parent)
41 return StatusCode::SUCCESS;
48 return StatusCode::SUCCESS;
64 if (condDataNoise==
nullptr) {
65 ATH_MSG_ERROR(
"In isGood, SCT_NoiseCalibData cannot be retrieved");
76 ATH_MSG_ERROR(
"This NoiseOccupancy noise data does not exist");
84 const int side{
static_cast<int>(elementHashId%2)};
89 for (; chip!=endChip; ++chip) {
90 float chipNoise{moduleNoiseData[chip]};
97 throw std::runtime_error(
"SCT_ReadCalibChipDataTool::isGood: nChips is zero.");
99 const float meanNoiseValue{sum/nChips};
108 if (not condDataHandle.
isValid() ) {
117 if (status.empty()) {
118 status.resize(
m_id_sct->wafer_hash_max(),
true);
120 unsigned int element_i=0;
124 ATH_MSG_ERROR(
"This NoiseOccupancy noise data does not exist");
129 for (
unsigned int side_i=0; side_i<2; ++side_i) {
132 unsigned int nChips{0};
135 for (; chip!=endChip; ++chip) {
136 float chipNoise{moduleNoiseData[chip]};
137 if (chipNoise!=0.0) {
142 const float meanNoiseValue{ nChips>0 ? sum/nChips : 0.f};
143 status.at(element_i) = status.at(element_i) && (meanNoiseValue <
m_noiseLevel);
156 return isGood(elementIdHash, ctx);
159 ATH_MSG_WARNING(
"summary(): " <<
h <<
"good/bad is not applicable for Calibration data");
169 std::vector<float> waferData;
173 if (condDataGain==
nullptr) {
174 ATH_MSG_ERROR(
"In getNPtGainData, SCT_GainCalibData cannot be retrieved");
188 ATH_MSG_ERROR(
"This N-point gain data: " << datatype <<
" does not exist");
194 SCT_ModuleCalibParameter::const_iterator it{moduleGains.begin() + startOffset};
195 SCT_ModuleCalibParameter::const_iterator end{moduleGains.begin() + endOffset};
197 if (*it != *it)
return waferData;
200 waferData.assign(it, end);
202 }
catch (
const std::out_of_range& e) {
212 std::vector<float> waferData;
216 if (condDataNoise==
nullptr) {
217 ATH_MSG_ERROR(
"In getNPtNoiseData, SCT_NoiseCalibData cannot be retrieved");
232 ATH_MSG_ERROR(
"This Noise Occupancy data: " << datatype <<
" does not exist");
238 SCT_ModuleCalibParameter::const_iterator it{moduleNoise.begin() + startOffset};
239 SCT_ModuleCalibParameter::const_iterator end{moduleNoise.begin() + endOffset};
241 if (*it != *it)
return waferData;
242 waferData.assign(it, end);
244 }
catch (
const std::out_of_range& e) {
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
std::array< SCT_ModuleGainCalibData, SCT_ConditionsData::NUMBER_OF_MODULES > SCT_GainCalibData
Typedef for data object used in SCT_ReadCalibChipGainCondAlg and SCT_ReadCalibChipDataTool.
This is an Identifier helper class for the SCT subdetector.
header file for data object for a calibration parameter per chip of a module
std::array< float, SCT_ConditionsData::CHIPS_PER_MODULE > SCT_ModuleCalibParameter
typedef for SCT_ReadCalibChipGainCondAlg, SCT_ReadCalibChipNoiseCondAlg, SCT_ReadCalibChipDataTool.
std::array< SCT_ModuleCalibParameter, SCT_ConditionsData::N_NPTGAIN > SCT_ModuleGainCalibData
Typedef for data object used in SCT_ReadCalibChipGainCondAlg and SCT_ReadCalibChipDataTool.
std::array< SCT_ModuleCalibParameter, SCT_ConditionsData::N_NOISEOCC > SCT_ModuleNoiseCalibData
Typedef for data object used in SCT_ReadCalibChipNoiseCondAlg and SCT_ReadCalibChipDataTool.
std::array< SCT_ModuleNoiseCalibData, SCT_ConditionsData::NUMBER_OF_MODULES > SCT_NoiseCalibData
Class for data object used in SCT_ReadCalibChipNoiseCondAlg and SCT_ReadCalibChipDataTool.
This is a "hash" representation of an Identifier.
const std::vector< bool > & getElementStatus() const
const_pointer_type retrieve()
const_pointer_type cptr()
void addDependency(const EventIDRange &range)
const std::array< std::string, SCT_ConditionsData::N_NPTGAIN > nPtGainParameterNames
const std::array< std::string, SCT_ConditionsData::N_NOISEOCC > noiseOccParameterNames