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) {
97 if(word0s2.find(tob->word0()) == word0s2.end()) {
102 fill(
"mismatches",signature,evtType,tobMismatched);
104 if(tobs2.isValid() && tobs1->size() < tobs2->size()) {
107 for(
unsigned int i=0;
i<(tobs2->size()-tobs1->size());
i++) {
108 fill(
"mismatches",signature,tobMismatched,evtType);
116 auto& firstEvents = (fexReadout==1) ? m_firstEvents_DataTowers : m_firstEvents_EmulatedTowers;
119 auto itr = firstEvents.find(
lbn);
120 if(itr==firstEvents.end()) {
122 itr = firstEvents.find(
lbn);
124 lbnString = itr->second;
127 std::vector<float> detas{};std::vector<float> setas{};
128 std::vector<float> dphis{};std::vector<float> sphis{};
129 std::vector<unsigned int> dword0s{};std::vector<unsigned int> sword0s{};
141 std::set<uint32_t> word0s1;
142 for(
const auto tob : *tobs1) {
143 word0s1.insert(tob->word0());
147 for(
size_t i = 0;
i < sword0s.size();
i++) {
148 if(word0s2.find(sword0s.at(
i))==word0s2.end()) {
150 fill(signa +
"_mismatches",
lbn,locIdx,simReady);
153 for(
size_t i = 0;
i < dword0s.size();
i++) {
154 if(word0s1.find(dword0s.at(
i))==word0s1.end()) {
156 fill(signa +
"_mismatches",
lbn,locIdx,simReady);
161 fill(
"mismatches",
lbn,lbnString,evtNumber,dtobEtas,dtobPhis,dtobWord0s,stobEtas,stobPhis,stobWord0s,evtType,timeSince,timeUntil,IsDataTowers,IsEmulatedTowers,signature,simReady);