-
Notifications
You must be signed in to change notification settings - Fork 4
ExampleProducer
If you have followed the eudaq manual, you are aware of ExampleProducer codes available in the core of eudaq. This producer was modified a bit in our fork to make it generate more realistic data.
- From the root of eudaq, run:
./STARTRUN example
This will start: euRun control, euLog collector, DataColector and finally, ExampleProducer - To configure load file: conf/ExampleConfig.conf
-
Startthe run! Observe...
-
The core of this producer is ExampleHardware.cc file, which contains MakeRawEvent() function. In this function we have implemented data generator for 8 detector planes, each of which consists of 4 skiroc chips (width of the planes), each of which has 64 channels (height of the planes).
- To simulate a charge in the detector, hot region is created with signal around the pixel at position defined by: hotX=2 (skiroc number), hotY=42 (channel number).
- The data is generated in two modes: full and zero-suppressed, alternating by the plane number. This is done in ReadSensor() method.
-
ReadSensor() method is called by ExampleProducer.cxx in its ReadOutLoop(). This producer is a template of any producer in eudaq. It responds to
Configure/Start/Stopbuttons of the RunControl window. It reads raw data generated by ReadSensor() and adds this data into eudaq's RawDataEvent object with ev.AddBlock() methods.
Then RawDataEvent is (a) saved by eudaq in ./data/ directory, and (b) sent to a converter plugin. -
ExampleConverterPlugin.cc is a generic converter plugin of eudaq. It converts raw data into so-called StandardEvents, which contain StandardPlanes. In other words, it converts data into detector format, which is represented by planes of pixels (in our case these are full hexagon modules). The code inside GetStandardSubEvent() method must be modified to convert the data.
- Having the converter plugin, one should be able to also convert files from raw eudaq format into root trees (not tested yet).
-
Once the conversion is implemented, the data is readable by the onlineMonitor. When onlineMonitor is running, it shows some basic occupancy distributions in each plane and their correlations.
- Caveat: the data is assumed to be zero-suppressed for this monitor to be useful.
- It looks like this producer skips first ~20 events in the beginning of the run. Not clear why.
- In the DQM occupancy plots, the bin at 0,0 is always fills. Not clear if it's due to my fake data generator, or the histogram maker on the DQM side
- Fixed in latest commit. It was due to wrong counting of number of hits.
- Not clear which frame is used for the DQM plots.
- In occupancy plots there is a loop over all frames. If a hit in any frame is present, it's counted.