21 ATH_MSG_WARNING(
"No decoration prefix name provided for the output of EventInfoPixelModuleStatusMonitoring!");
41 std::vector<std::string> moduleConditionList;
42 moduleConditionList.emplace_back(
"PixelBiasVoltagePerLB");
43 moduleConditionList.emplace_back(
"PixelTemperaturePerLB");
48 std::vector<std::string> moduleFEmaskList;
49 moduleFEmaskList.emplace_back(
"PixelFEmaskIndex");
50 moduleFEmaskList.emplace_back(
"PixelFEmaskPerLB");
51 moduleFEmaskList.emplace_back(
"PixelDCSStatePerLB");
52 moduleFEmaskList.emplace_back(
"PixelDCSStatusPerLB");
57 std::vector<std::string> moduleBSErrList;
58 moduleBSErrList.emplace_back(
"PixelBSErrIndex");
59 moduleBSErrList.emplace_back(
"PixelBSErrWord");
63 return StatusCode::SUCCESS;
67 return StatusCode::SUCCESS;
81 if (chkLB==0) { chkLB=-1; }
93 std::vector<float> biasVoltage;
94 std::vector<float> temperature;
95 std::vector<int> activeState;
96 std::vector<int> activeStatus;
97 std::vector<int> feMaskIndex;
98 std::vector<int> feMaskStatus;
114 for (
int ihash=0; ihash<maxHash; ihash++) {
122 if (moduleStatus || chipStatus) {
123 feMaskIndex.push_back(ihash);
125 feMaskStatus.push_back(0);
128 feMaskStatus.push_back(chipStatus);
167 std::vector<uint64_t> bsErrIndex;
168 std::vector<uint64_t> bsErrWord;
181 for (
int ihash=0; ihash<maxHash; ihash++) {
182 for (
int chFE=0; chFE<16; chFE++) {
183 int indexFE = (1+chFE)*maxHash+ihash;
192 bsErrIndex.push_back(indexFE);
193 bsErrWord.push_back(word);
198 int indexOffset = 17*maxHash;
199 for (
int ihash=156; ihash<436; ihash++) {
200 for (
int chFE=0; chFE<2; chFE++) {
201 for (
int serviceCode=0; serviceCode<32; serviceCode++) {
202 int indexSvcCounter = indexOffset+serviceCode*280*2+2*(ihash-156)+chFE;
211 bsErrIndex.push_back(indexSvcCounter);
212 bsErrWord.push_back(word);
220 assert(decorModuleCondition.size()==2);
221 decorModuleCondition[0](*eventInfo) = std::move(biasVoltage);
222 decorModuleCondition[1](*eventInfo) = std::move(temperature);
225 assert(decorModuleFEmask.size()==2);
226 decorModuleFEmask[0](*eventInfo) = std::move(feMaskIndex);
227 decorModuleFEmask[1](*eventInfo) = std::move(feMaskStatus);
228 decorModuleFEmask[2](*eventInfo) = std::move(activeState);
229 decorModuleFEmask[3](*eventInfo) = std::move(activeStatus);
232 assert(decorModuleBSErr.size()==2);
233 decorModuleBSErr[0](*eventInfo) = std::move(bsErrIndex);
234 decorModuleBSErr[1](*eventInfo) = std::move(bsErrWord);
236 return StatusCode::SUCCESS;