Other eventDisplay/quickstart

Table Of Contents

Previous topic


Next topic


This Page

Daya Bay Links

Content Skeleton

Event Display

A Plain Event Display: EvtDsp

A plain event display module, EvtDsp, is available for users. It makes use of the basic graphic features of the “ROOT” package to show the charge and time distributions of an event within one plot. One example is shown in Fig. fig:evtdsp. A lot of features of ROOT are immediately available, like “save as” a postscript file. All PMTs are projected to a 2-D plain. Each PMT is represented by a filled circle. The radii of them characterize the relative charge differences. The colors of them show the times of them, i.e. the red indicates the smallest time and the blue indicates the largest time.

Simple Mode

One can use a default simple algorithm to invoke the EvtDsp module. The charge and time of the first hit of each channel will be shown. Once setting up the nuwa environment, the following commands can be used to show events.

shell> nuwa.py -n -1 -m EvtDsp DayaBayDataFile.data
shell> nuwa.py --dbconf "offline_db" -n -1 -m "EvtDsp -C" DayaBayDataFile.data
shell> nuwa.py -n -1 -m "EvtDsp -S" DayaBaySimulatedFile.root

where the first one, by default, will show the raw information, i.e. delta ADC (ADC-preADC) and TDC distributions from ReadoutHeader, the second one will show calibrated result, CalibReadoutHeader, in PE and ns, as seen in Fig. fig:evtdsp and the last line is for SimHeader, i.e. information is directly extracted from MC truth.

A simple readouts grouping was implemented. Readouts with delta trigger times within 2\mu s are considered as one event and shown together. But an event only allows one readout for one detector. For example a very close retrigger after an energetic muon in the same AD will start a new event. This algorithm also works for calibReadout and simHeader.



A snapshot for EvtDsp for a muon event which passed outer and inner water pool and struck AD No. 2, while AD No. 1 was quiet. The time and charge patterns of the AD and water pool hits are clearly seen.

Advance Mode

One can also directly call the Gaudi Tool, EvtDsp, and plot the charges and times calculated in a different manner. In the simple mode, no selection is applied to select hits, however this is not the best choice in some cases, for example, some hits’ times are out of the physically allowed window, like the blue hit in the inner water shield in Fig. fig:evtdsp seems like a noise hit. One can also make a selection in an analysis algorithm to show only a fraction of interesting events or have a different event grouping algorithm. To use this feature one need to follow the standard Gaudi procedure to locate a tool “EvtDsp” first, i.e., add use EvtDsp module in cmt requirements file

use EvtDsp v*  Visualization

then get access to this tool

#include "EvtDsp/IEvtDsp.h"

IEvtDsp* m_evtDsp
StatusCode sc = toolSvc()->retrieveTool("EvtDsp","EvtDsp",m_evtDsp);

After this three simple interfaces are available and they can be plugged into anywhere of a user code.

/// Plot AD
virtual StatusCode plotAD(DayaBay::Detector det,
                          double chrg[8][24],       double time[8][24],
                          const char* chrgunit = 0, const char* timeunit = 0,
                          const char* info = 0 ) = 0;

/// Plot pool
virtual StatusCode plotPool(DayaBay::Detector det,
                            double chrg[9][24][2],  double time[9][24][2],
                            const char* chrgunit = 0, const char* timeunit = 0,
                            const char* info = 0 ) =0;

/// A pause method for user. After this all displayed stuff will be flushed.
virtual StatusCode pause() = 0;

where for AD, chrg and time are arrays indexed by ring-1 and column-1, while for water pool, chrg and time arrays are indexed by wall-1,spot-1 and inward.