Skip to content

Add ROOT service and monitoring functions to lines

Adrian Casais Vidal requested to merge acasaisv-rootservice into master

A first implementation towards a service to handle ROOTobjects with the following functionalities:

  1. 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)
  2. TTrees inside TFiles 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
  3. 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:

  1. One to fill the arrays from the decisions
  2. 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

Merge request reports