Fill metaDataStore and ntuples.
154 auto piovComplete = std::make_unique<xAOD::LumiBlockRangeContainer>();
155 auto piovCompleteAux = std::make_unique<xAOD::LumiBlockRangeAuxContainer>();
156 piovComplete->setStore( piovCompleteAux.get() );
158 auto piovUnfinished = std::make_unique<xAOD::LumiBlockRangeContainer>();
159 auto piovUnfinishedAux = std::make_unique<xAOD::LumiBlockRangeAuxContainer>();
160 piovUnfinished->setStore( piovUnfinishedAux.get() );
162 auto piovSuspect = std::make_unique<xAOD::LumiBlockRangeContainer>();
163 auto piovSuspectAux = std::make_unique<xAOD::LumiBlockRangeAuxContainer>();
164 piovSuspect->setStore( piovSuspectAux.get() );
169 auto iovr = std::make_unique<xAOD::LumiBlockRange>(*
range);
170 piovSuspect->push_back(std::move(iovr));
181 tempLBColl.setStore( &tempAuxLBColl );
190 << (*i)->startRunNumber() <<
" LB " << (*i)->startLumiBlockNumber() <<
" events seen "
191 << (*ilast)->eventsSeen() <<
" expected " << (*i)->eventsExpected());
194 if( ((*i)->startRunNumber()==(*ilast)->startRunNumber()) &&
195 ((*i)->stopRunNumber()==(*ilast)->stopRunNumber()) &&
196 ((*i)->startLumiBlockNumber()==(*ilast)->startLumiBlockNumber()) &&
197 ((*i)->stopLumiBlockNumber()==(*ilast)->stopLumiBlockNumber()) ) {
199 if((*ilast)->eventsExpected()!=(*i)->eventsExpected()) {
200 ATH_MSG_WARNING(
"Error: tmpLBColl with run " << (*i)->startRunNumber() <<
" LB " << (*i)->startLumiBlockNumber() <<
" events expected "
201 << (*ilast)->eventsExpected() <<
" and " << (*i)->eventsExpected() );
204 ATH_MSG_VERBOSE(
"Merge Run " << (*i)->startRunNumber() <<
" LB " << (*i)->startLumiBlockNumber()
205 <<
" events seen " << iovr->
eventsSeen() <<
"+"
206 << (*i)->eventsSeen() <<
" and events expected "
213 iovr = tempLBColl.
push_back(std::make_unique<xAOD::LumiBlockRange>(*(*
i)));
224 for (
const auto range : tempLBColl) {
225 auto iovr = std::make_unique<xAOD::LumiBlockRange>(*
range);
226 if(
range->eventsSeen() ==
range->eventsExpected() ) {
227 piovComplete->push_back(std::move(iovr));
229 else if(
range->eventsSeen() >
range->eventsExpected() ) {
230 piovSuspect->push_back(std::move(iovr));
233 piovUnfinished->push_back(std::move(iovr));
239 if(!piovComplete->empty()) {
240 ATH_MSG_DEBUG(
"Number of Complete LumiBlocks:" << piovComplete->size() );
241 for (
const auto range : *piovComplete) {
243 <<
range->startRunNumber() <<
"," <<
range->startLumiBlockNumber()
245 <<
range->startRunNumber() <<
"," <<
range->startLumiBlockNumber()
246 <<
") eventsSeen = " <<
range->eventsSeen()
247 <<
", eventsExpected = " <<
range->eventsExpected()
252 if(!piovUnfinished->empty()) {
253 ATH_MSG_DEBUG(
"Number of Unfinished LumiBlocks:" << piovUnfinished->size() );
254 for (
const auto range : *piovUnfinished) {
256 <<
range->startRunNumber() <<
"," <<
range->startLumiBlockNumber()
258 <<
range->startRunNumber() <<
"," <<
range->startLumiBlockNumber()
259 <<
") eventsSeen = " <<
range->eventsSeen()
260 <<
", eventsExpected = " <<
range->eventsExpected()
264 if(!piovSuspect->empty()) {
265 ATH_MSG_DEBUG(
"Number of Suspect LumiBlocks:" << piovSuspect->size() );
266 for (
const auto range : *piovSuspect) {
268 <<
range->startRunNumber() <<
"," <<
range->startLumiBlockNumber()
270 <<
range->startRunNumber() <<
"," <<
range->startLumiBlockNumber()
271 <<
") eventsSeen = " <<
range->eventsSeen()
272 <<
", eventsExpected = " <<
range->eventsExpected()
279 if (!piovComplete->empty()) {
280 ATH_MSG_INFO(
"Write Complete LumiBlocks with size " << piovComplete->size());
284 "Complete LumiBlocks container with key "
286 <<
" already exists. Updating if there are missing LumiBlocks.");
290 for (
const auto range : *piovComplete) {
293 for (
const auto existing : *complete) {
294 if ((existing->startRunNumber() ==
range->startRunNumber()) &&
295 (existing->stopRunNumber() ==
range->stopRunNumber()) &&
296 (existing->startLumiBlockNumber() ==
range->startLumiBlockNumber()) &&
297 (existing->stopLumiBlockNumber() ==
range->stopLumiBlockNumber()) &&
298 (existing->eventsSeen() ==
range->eventsSeen()) &&
299 (existing->eventsExpected() ==
range->eventsExpected())) {
309 "Copying LumiBlock: [ ("
310 <<
range->startRunNumber() <<
"," <<
range->stopLumiBlockNumber()
311 <<
"):(" <<
range->startRunNumber() <<
","
312 <<
range->stopLumiBlockNumber()
313 <<
") eventsSeen = " <<
range->eventsSeen()
314 <<
", eventsExpected = " <<
range->eventsExpected() <<
" ]");
315 *complete->push_back(std::make_unique<xAOD::LumiBlockRange>()) = *
range;
320 <<
" LumiBlockRangeContainer in output MetaDataStore");
326 if (!piovUnfinished->empty()) {
327 ATH_MSG_INFO(
"Write Unfinished LumiBlocks with size " << piovUnfinished->size());
331 "Unfinished LumiBlocks container with key "
333 <<
" already exists. Updating if there are missing LumiBlocks.");
337 for (
const auto range : *piovUnfinished) {
340 for (
const auto existing : *unfinished) {
341 if ((existing->startRunNumber() ==
range->startRunNumber()) &&
342 (existing->stopRunNumber() ==
range->stopRunNumber()) &&
343 (existing->startLumiBlockNumber() ==
range->startLumiBlockNumber()) &&
344 (existing->stopLumiBlockNumber() ==
range->stopLumiBlockNumber()) &&
345 (existing->eventsSeen() ==
range->eventsSeen()) &&
346 (existing->eventsExpected() ==
range->eventsExpected())) {
356 "Copying LumiBlock: [ ("
357 <<
range->startRunNumber() <<
"," <<
range->stopLumiBlockNumber()
358 <<
"):(" <<
range->startRunNumber() <<
","
359 <<
range->stopLumiBlockNumber()
360 <<
") eventsSeen = " <<
range->eventsSeen()
361 <<
", eventsExpected = " <<
range->eventsExpected() <<
" ]");
362 *unfinished->push_back(std::make_unique<xAOD::LumiBlockRange>()) = *
range;
367 <<
" LumiBlockRangeContainer in output MetaDataStore");
373 if (!piovSuspect->empty()) {
374 ATH_MSG_INFO(
"Write Suspect LumiBlocks with size " << piovSuspect->size());
378 "Suspect LumiBlocks container with key "
380 <<
" already exists. Updating if there are missing LumiBlocks.");
384 for (
const auto range : *piovSuspect) {
387 for (
const auto existing : *suspect) {
388 if ((existing->startRunNumber() ==
range->startRunNumber()) &&
389 (existing->stopRunNumber() ==
range->stopRunNumber()) &&
390 (existing->startLumiBlockNumber() ==
range->startLumiBlockNumber()) &&
391 (existing->stopLumiBlockNumber() ==
range->stopLumiBlockNumber()) &&
392 (existing->eventsSeen() ==
range->eventsSeen()) &&
393 (existing->eventsExpected() ==
range->eventsExpected())) {
403 "Copying LumiBlock: [ ("
404 <<
range->startRunNumber() <<
"," <<
range->stopLumiBlockNumber()
405 <<
"):(" <<
range->startRunNumber() <<
","
406 <<
range->stopLumiBlockNumber()
407 <<
") eventsSeen = " <<
range->eventsSeen()
408 <<
", eventsExpected = " <<
range->eventsExpected() <<
" ]");
409 *suspect->push_back(std::make_unique<xAOD::LumiBlockRange>()) = *
range;
414 <<
" LumiBlockRangeContainer in output MetaDataStore");
420 return(StatusCode::SUCCESS);