40 return StatusCode::SUCCESS;
60 if(larBadChan.isValid()) {
61 timeSince = ctx.eventID().time_stamp() - larBadChan.getRange().start().time_stamp();
62 timeUntil = larBadChan.getRange().stop().time_stamp() - ctx.eventID().time_stamp();
76 if(!tobs1.isValid()) {
80 std::set<uint32_t> word0s2;
82 for(
const auto tob : *tobs2) {
83 word0s2.insert(tob->word0());
91 bool mismatches=
false;
95 for(
const auto tob : *tobs1) {
96 if(word0s2.find(tob->word0()) == word0s2.end()) {
101 if(tobs2.isValid() && tobs1->size() < tobs2->size()) {
112 auto& firstEvents = (fexReadout==1) ? m_firstEvents_DataTowers : m_firstEvents_EmulatedTowers;
115 auto itr = firstEvents.find(lbn);
116 if(itr==firstEvents.end()) {
118 itr = firstEvents.find(lbn);
120 lbnString = itr->second;
123 std::vector<float> detas{};std::vector<float> setas{};
124 std::vector<float> dphis{};std::vector<float> sphis{};
125 std::vector<unsigned int> dword0s{};std::vector<unsigned int> sword0s{};
136 std::set<uint32_t> word0s1;
137 for(
const auto tob : *tobs1) {
138 word0s1.insert(tob->word0());
142 for(
size_t i = 0;
i < tobs1->size();
i++) {
143 if(word0s2.find(tobs1->at(
i)->word0())==word0s2.end()) {
146 fill(signa +
"_mismatches",lbn,locIdx,simReady);
149 for(
size_t i = 0;
i < tobs2->size();
i++) {
150 if(word0s1.find(tobs2->at(
i)->word0())==word0s1.end()) {
153 fill(signa +
"_mismatches",lbn,locIdx,simReady);
158 fill(
"mismatches",tobMismatched,lbn,lbnString,evtNumber,dtobEtas,dtobPhis,dtobWord0s,stobEtas,stobPhis,stobWord0s,evtType,timeSince,timeUntil,IsDataTowers,IsEmulatedTowers,signature,simReady);
159 fill(
"mismatches_count",lbn,signature,simReady,evtType);
162 fill(
"mismatches",tobMismatched,lbn,signature,simReady,evtType);