![]() |
Project
|
This is mostly for debug and/or usage with Run2 (converted) data.
The MCH digits can be stored in binary format for debug purpose.
The file they are stored in can currently be of two different formats : with or without associated ROFRecord. In both cases the digits themselves (currently) have the same version (named D0). The file version number changes whenever the file structure changes or the format of the objects it contain changes.
File version | Digit version | contains ROF | ROF version | support |
---|---|---|---|---|
0 | 0 | no | (0) | yes |
1 | 0 | yes | 1 | yes |
2 | 1 | yes | 1 | planned |
X | X | yes | X | xxxxxxx |
Reads a binary file containing digits. The binary format should be embedded in the file directly. If the reader cannot identify the format it will assume it is the V0 version, which might or not might be the case...
Take as input a list of digits in timeframes (and optionally their associated Orbits) and dump them into a file (binary or text if --txt
option is used) or to screen (if --no-file
option is used)
A device that reads digits with ids in Run2 convention and outputs digits with ids in Run3 convention. Note that expected input spec is MCH/DIGITSRUN2
and the output one is MCH/DIGITS
Generate a fixed number of digits (equal to the total number of MCH pads times the occupancy) per ROFRecord for a fixed number of ROFRecord per time frames, for a fixed number of timeframes.
Note that the occupancy must be strictly positive and less than or equal to 1.
Example of use : generate digits (with 1% occupancy, 128 ROFs per TF, 10 TFs) and dump them into debug binary form :
The generated digit file can then be injected into other workflows using o2-mch-digits-file-reader-workflow
described above. (digits do not need to be written to disc, the o2-mch-digits-random-generator-workflow
can of course also be used as the first stage of a multi device workflow using pipes).
The digit file dumper is not, in contrast to all the program above, a DPL worfklow, but a "regular" simple program, that dumps digit information on screen.
Take as input the list of all preclusters (PreCluster) in the current time frame, the list of all associated digits (Digit) and the list of ROF records (ROFRecord) pointing to the preclusters associated to each interaction, with the data description "PRECLUSTERS", "PRECLUSTERDIGITS" and "PRECLUSTERROFS", respectively, and write them event-by-event in the binary file preclusters.out
with the following format for each event:
Option --txt
allows to write the preclusters in the output file in text format.
Option --useRun2DigitUID
allows to convert the run3 pad ID stored in the digit data member mPadID into a digit UID in run2 format.
where clusters.in
is a binary file containing for each event:
Send the list of all clusters (Cluster) in the current time frame, with the data description "CLUSTERS" (or "GLOBALCLUSTERS" if --global
option is used), the list of ROF records (ROFRecord) pointing to the clusters associated to each interaction, with the data description "CLUSTERROFS", and the list of digits (Digit) associated to clusters, with the data description "CLUSTERDIGITS".
Option --nEventsPerTF xxx
allows to set the number of events (i.e. ROF records) to send per time frame (default = 1).
Option --no-digits
allows to do not send the associated digits.
Take as input the list of all clusters (Cluster) in the current time frame, the list of all associated digits (Digit), unless --no-digits
option is used, and the list of ROF records (ROFRecord) pointing to the clusters associated to each interaction, with the data description "CLUSTERS" (or "GLOBALCLUSTERS" if --global
option is used), "CLUSTERDIGITS" and "CLUSTERROFS", respectively, and write them event-by-event in the binary file clusters.out
with the following format for each event:
--no-digits
is used)--no-digits
is used)Option --txt
allows to write the clusters in the output file in text format.
Option --useRun2DigitUID
allows to convert the run3 pad ID stored in the digit data member mPadID into a digit UID in run2 format.
where tracks.in
is a binary file with the same format as the one written by the workflow o2-mch-tracks-sink-workflow
Send the list of all MCH tracks (TrackMCH) in the current time frame, the list of all associated clusters (Cluster) and the list of ROF records (ROFRecord) pointing to the tracks associated to each interaction in three separate messages with the data description "TRACKS", "TRACKCLUSTERS" and "TRACKROFS", respectively.
Option --forTrackFitter
allows to send the messages with the data description "TRACKSIN", "TRACKCLUSTERSIN" and TRACKROFSIN, respectively, as expected by the workflow o2-mch-tracks-to-tracks-workflow.
Option --nEventsPerTF xxx
allows to set the number of events (i.e. ROF records) to send per time frame (default = 1).
Take as input the list of all tracks at vertex (TrackAtVtxStruct) in the current time frame, the list of all MCH tracks (TrackMCH), the list of all associated clusters (Cluster) and the list of ROF records (ROFRecord) pointing to the MCH tracks associated to each interaction, with the data description "TRACKSATVERTEX", "TRACKS", "TRACKCLUSTERS" and "TRACKROFS", respectively, and write them event-by-event in the binary file tracks.out
with the following format for each event:
Option --tracksAtVertexOnly
allows to take as input and write only the tracks at vertex (number of MCH tracks and number of associated clusters = 0).
Option --mchTracksOnly
allows to take as input and write only the MCH tracks and associated clusters (number of tracks at vertex = 0).