Dear experts,
we would like to pipe the output (tracks) of the o2-tpc-reco-workflow directly into o2-qc via
o2-tpc-reco-workflow --infile tpcdigits.root --output-type tracks | o2-qc --config json://PATH/TO/.json
I assume what needs to be done is to change the output in a way that it is not written to file anymore but provided as “TPC”, “TRACKS” in some kind of DataProcessorSpec. I think this can be done in O2/Detectors/TPC/workflow/src/RecoWorkflow.cxx
, since there the writing-to-file is defined. I naively removed this part and added
DataProcessorSpec trackHandler{
"tpc-track-handler",
Inputs{{"inputTracks", {"TPC", "TRACKS"}}},
Outputs{
{ "TPC", "TRACKS", 0, Lifetime::Timeframe } },
};
instead.
{"inputTracks", {"TPC", "TRACKS"}}
is the InputSpec that was given to the TreeWriter before and
Outputs{
{ "TPC", "TRACKS", 0, Lifetime::Timeframe } },
comes from our file reader in Modules/TPC/run
and there it is working as proper output.
There is for sure a better way to do this but in principle I guess a DataProcessorSpec that takes the tracks, that come from the tpc-tracker
and provide it to the devices in the DPL as TPC TRACKS should somehow do the trick.
However, looking at the debug GUI it seems like the connection between the devices in DPL is wrong.
Here you can fin a screenshot of the GUI. I don’t understand why the tpc-tracker
would directly go to QC-TASK-RUNNER-PIDtest
and also why the tpc-track-handler
makes a loop around the QC-TASK-RUNNER-PIDtest
.
If I remove the track-handler
, everything is the same except that obviously this nonsensical loop is missing.
The errors I get in the log are the following:
For the tpc-tracker:
[3774:tpc-tracker]: [19:42:07][ERROR] Failed to open input file matbud.root
[3774:tpc-tracker]: [19:42:23][ERROR] requested channel has not been configured? check channel names/configuration.
[3774:tpc-tracker]: [19:42:23][ERROR] channel: from_tpc-tracker_to_tpc-track-handler, index: 0
[3774:tpc-tracker]: [19:42:23][ERROR] out of range: _Map_base::at
[3774:tpc-tracker]: [19:42:23][ERROR] Exception caught: _Map_base::at
[3774:tpc-tracker]: [19:42:23][ERROR] requested channel has not been configured? check channel names/configuration.
[3774:tpc-tracker]: [19:42:23][ERROR] channel: from_tpc-tracker_to_tpc-track-handler, index: 0
[3774:tpc-tracker]: [19:42:23][ERROR] out of range: _Map_base::at
[3774:tpc-tracker]: [19:42:23][ERROR] out of range: _Map_base::at
[3774:tpc-tracker]: [19:42:23][ERROR] incorrect/incomplete channel configuration?
[3774:tpc-tracker]: [19:42:23][ERROR] Unhandled exception reached the top of main: _Map_base::at, device shutting down.
and for the tpc-track-handler:
[3792:tpc-track-handler]: [19:42:06][ERROR] requested channel has not been configured? check channel names/configuration.
[3792:tpc-track-handler]: [19:42:06][ERROR] channel: from_tpc-tracker_to_tpc-track-handler, index: 0
[3792:tpc-track-handler]: [19:42:06][ERROR] out of range: _Map_base::at
[3792:tpc-track-handler]: [19:42:06][ERROR] out of range: _Map_base::at
[3792:tpc-track-handler]: [19:42:06][ERROR] incorrect/incomplete channel configuration?
[3792:tpc-track-handler]: [19:42:07][ERROR] Unhandled exception reached the top of main: _Map_base::at, device shutting down.
Clock and file sink have the same error setting up the workflow:
[3810:internal-dpl-clock]: [ERROR] error while setting up workflow: Error while parsing serialised workflow
A extensive log for a run with the handler can be found here.
Removing the tpc-track-handler
leads to similar problems.
[15812:tpc-track-writer]: [19:55:13][ERROR] requested channel has not been configured? check channel names/configuration.
[15812:tpc-track-writer]: [19:55:13][ERROR] channel: from_tpc-track-writer_to_QC-TASK-RUNNER-PIDtest, index: 0
[15812:tpc-track-writer]: [19:55:13][ERROR] out of range: _Map_base::at
[15812:tpc-track-writer]: [19:55:13][ERROR] out of range: _Map_base::at
[15812:tpc-track-writer]: [19:55:13][ERROR] incorrect/incomplete channel configuration?
[15812:tpc-track-writer]: [19:55:13][ERROR] Unhandled exception reached the top of main: _Map_base::at, device shutting down.
However, there are no clock and sink errors.
A extensive log for a run without the handler can be found here.
Again a screenshot of the debugGUI. Imho the QC-TASK-RUNNER-PIDtest
should not be connected to the tpc-track-writer
so it seems to me that the in- and outputs need to be properly defined but I do not really know how.
Any help is greatly appreciated! Thanks a lot for reading.
Cheers,
Thomas