42 std::unique_ptr<SiPixelFedCablingTree>
cabling_;
53 errorPutToken_{produces<edm::DetSetVector<SiPixelRawDataError>>()},
54 tkErrorPutToken_{produces<DetIdCollection>()},
55 userErrorPutToken_{produces<DetIdCollection>(
"UserErrorModules")},
56 disabledChannelPutToken_{produces<edmNew::DetSetVector<PixelFEDChannel>>()},
57 tkerrorlist_(iConfig.getParameter<std::vector<int>>(
"ErrorList")),
58 usererrorlist_(iConfig.getParameter<std::vector<int>>(
"UserErrorList")),
59 usePhase1_(iConfig.getParameter<
bool>(
"UsePhase1")) {}
65 desc.add<
std::string>(
"CablingMapLabel",
"")->setComment(
"CablingMap label");
66 desc.add<
bool>(
"UsePhase1",
false)->setComment(
"## Use phase1");
67 desc.add<std::vector<int>>(
"ErrorList", std::vector<int>{29})
68 ->setComment(
"## ErrorList: list of error codes used by tracking to invalidate modules");
69 desc.add<std::vector<int>>(
"UserErrorList", std::vector<int>{40})
70 ->setComment(
"## UserErrorList: list of error codes used by Pixel experts for investigation");
94 assert(formatterErrors !=
nullptr);
95 auto errors = *formatterErrors;
98 auto size = digiErrors.size();
101 if (
err.errorType != 0) {
107 constexpr uint32_t dummydetid = 0xffffffff;
108 typedef PixelDataFormatter::Errors::iterator IE;
110 uint32_t errordetid =
error.first;
111 if (errordetid == dummydetid) {
112 nodeterrors.insert(nodeterrors.end(),
errors[errordetid].begin(),
errors[errordetid].end());
115 errorDetSet.
data.insert(errorDetSet.
data.end(),
error.second.begin(),
error.second.end());
121 std::vector<PixelFEDChannel> disabledChannelsDetSet;
123 for (
auto const& aPixelError : errorDetSet) {
126 if (aPixelError.getType() == 25) {
127 int fedId = aPixelError.getFedId();
130 cms_uint32_t linkId = formatter.linkId(aPixelError.getWord32());
136 for (
unsigned int iRoc = 1; iRoc <=
link->numberOfROCs(); iRoc++) {
143 disabledChannelsDetSet.push_back(ch);
151 tkerror_detidcollection.push_back(errordetid);
160 usererror_detidcollection.push_back(errordetid);
166 if (!disabledChannelsDetSet.empty()) {
167 disabled_channelcollection.insert(errordetid, disabledChannelsDetSet.data(), disabledChannelsDetSet.size());
174 errorDetSet.
data = nodeterrors;