-
Notifications
You must be signed in to change notification settings - Fork 1
need to enter the output event file before creating and writing #93
Conversation
ROOT requires us to be in the correct directory when we create the output TTree for us to have it written into the correct location. In order to allow downstream processors to `getHistoDirectory()` and enter that directory for the histograms we need to enter the output event file again here so that our run tree ends up in the correct location.
Alright, I added a fake analyzer to the framework-testbench that just calls I can confirm the issues observed in LDMX-Software/ldmx-sw#1255 and LDMX-Software/ldmx-sw#1256 by running this analyzer with Framework v1.4.1 (current trunk).
Re-compiling with this branch and re-running this config resolves this issue:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Alright, I've checked that the different configs in framework-testbench are functional and this doesn't introduce a regression of any kind.
I also checked to see if we could move the writeRunTree
call to within the destructor and the answer is No. Because we are just holding an address to a RunHeader that is owned by Process during a production run, there can be a seg vio at the end of running if the RunHeader is de-allocated before the EventFile is. It is just easier to call writeRunTree when we are cleanly ending a run (production or recon).
ROOT requires us to be in the correct directory when we create
the output TTree for us to have it written into the correct
location.
In order to allow downstream processors to
getHistoDirectory()
and enter that directory for the histograms we need to enter
the output event file again here so that our run tree ends up
in the correct location.