Add ROOT service and monitoring functions to lines
A first implementation towards a service to handle ROOTobjects with the following functionalities:
- Manage
TFiles: preventing recreating them if trying to access an existing one. (https://gitlab.cern.ch/lhcb/Allen/-/blob/acasaisv-rootservice/main/src/ROOTService.cpp#L30) -
TTrees insideTFiles 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
mutexthan 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