Add ROOT service and monitoring functions to lines
A first implementation towards a service to handle ROOT
objects with the following functionalities:
- Manage
TFile
s: preventing recreating them if trying to access an existing one. (https://gitlab.cern.ch/lhcb/Allen/-/blob/acasaisv-rootservice/main/src/ROOTService.cpp#L30) -
TTree
s insideTFile
s similarly can be overwritten (https://gitlab.cern.ch/lhcb/Allen/-/blob/acasaisv-rootservice/main/src/ROOTService.cpp#L54)
2.1) This overwriting functionality is necessary if one wants to monitor all events in the same Tree since events are loaded in bunches - Allows multithreading by addidng a
mutex
than can be locked at the start and unlocked once one is done writing files. (https://gitlab.cern.ch/lhcb/Allen/-/blob/acasaisv-rootservice/main/src/ROOTService.cpp#L67)
Additionally the baseclass for lines has been slightly modified to accomodate the necessary monitoring functions:
- One to fill the arrays from the decisions
- Writing the ROOT objects
Also provides an implementation to monitor Hlt1Lines
by doing slight modifications to Line.cuh
an adding such example to a newly added KsToPiPiLine
.
Edited by Adrian Casais Vidal