[BDXlist] EPICS-data reconstruction available
Andrea Celentano
Andrea.Celentano at ge.infn.it
Mon Mar 12 05:24:27 EDT 2018
Dear all,
EPICS data is now correctly reconstructed by the bdxReco software, both for single-thread and multi-thread run. Few details follow.
EPICS data is recorded in the same evio file where DAQ events are saved. This happens every ~ 10 s. EPICS data is saved as a special EVIO event, and this operation is asynchronous with respect to DAQ-data saving. Therefore, denoting by “XN” an epics event and by “A” a DAQ event, the sequence of data that will be present in the file will be like:
AAAAAA X1 AAAAAA X2 AAAAA X3 … (where the file can start both with an “A” or with an “X”)
In the reconstruction, EPICS data is associated to each DAQ event as follow: all DAQ events after an epics event are associated with the data of that epics event - until a new epics event is found.
In the example before, first event (before X1) do not have any epics information, events between X1 and X2 are associated with X1, events between X3 and X2 are associated with X2, …
Each epicsData is formed by:
A string identifying the data (the name of the EPICS PV the data was obtained from)
A double with the data value
An int with the data time (see later)
EPICS data is saved in the TEvent header (accessible via the getEventHeader() method), as an “epicsData” object, available from the getEpicsData() method.
Relevant methods are “getDataValue(string id)” and “getDataTime(string id)”
If ID is not found, both methods will return “-999"
For example, to get the hallA current (hac_bcm_value): m_Event->getEventHeader->getEpicsData()->getDataValue(“hac_bcm_average”)
A small complication is due to the fact that non all EPICS evens have the same data: in the example before, “X1” may have data from hall-A current, and X2 may have data from FPGA scalers (but not from Hall-A current). In this case, all events after X1 will be associated to the hall-A current in X1, until a new epics event with a new value of the hall-A current is found
The “time” associated to the hall-A current, available from “getDataTime(string id)” is the time (unix format) of the epics event the data was obtained from (X1 in this case), to allow further analysis to properly bin the data.
You need to do a: git pull ; scons -c; scons
to get the new modifications.
An example for run 573, showing the hall-A current, as obtained from the method before for each event (x is event number, y is current in uA). The typical rate for the run was ~ 100 Hz.
Bests,
Andrea
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.jlab.org/pipermail/bdxlist/attachments/20180312/9d9a3cc3/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 573.png
Type: image/png
Size: 16409 bytes
Desc: not available
URL: <https://mailman.jlab.org/pipermail/bdxlist/attachments/20180312/9d9a3cc3/attachment-0001.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 1952 bytes
Desc: not available
URL: <https://mailman.jlab.org/pipermail/bdxlist/attachments/20180312/9d9a3cc3/attachment-0001.p7s>
More information about the BDXlist
mailing list