eeQuickDisp -- a Quick 'n' Dirty Event Display

A quick howto, explaining how to run a very simple event display in root (nothing more than overly glorified histograms).

Installation

$ cvs checkout offline/EEpromis/ezGames

$ cd offline/EEpromis/ezGames/

$ make -f macros/Makefile

Already installed on rcas under ~eemcdb/ezGames.

Running

Log into rcas as eemcdb...

$ cd ezGames

$ root

Then at the root prompt, type in the following commands:


// Start the macro. The first argument is ignored for now.
// The second arguement is a space-separated list of runs.
// The third and fourth arguements specify the active range
// of sectors. The fifth arguement is a "conversion mode"
// (0 for raw ADC, 1 for pedestal subtraction, 2 for full
// ADC --> E). The last arguement is the full path to the
// .ez.root files.

.x macros/eeQuickDisp.C(100," R5011048 R5011050",1,12,1,"/star/data04/sim/balewski/daq/ezTree/")


// Next, start some windows for viewing the endcap.

// Show a view of the endcap from the viewpoint of the beam. To
// switch to a log scale (recommended), right-click somewhere near
// the edge of the window and select "SetLogz". The (first)
// arguement determines whether towers (0), preshower (1,2) or
// postshower (3) data will be displayed.
qdPlotTowers(0);

// Same histogram, viewed from 50 degrees below the beam. The last
// arguement is an alternate name for the canvas, which is required
// for each call to qdPlotTowers after the first. The second arguement
// is passed directly TH2F::Draw()... i.e. they are the "options"
// for drawing the histogram.
qdPlotTowers(0,"pol lego2",40.,90.,"altname");

// Eta bin vs phi bin plot. For fun, try passing a second
// arguement like "lego2".
qdPlotTowersIndex(0);

// To process the next event in the file, do the following.
// All windows will automagically update.
processEvent();

// Plot the next event in the file every 10 seconds
StartSlideShow(10);

// Once you get bored...
StopSlideShow();

This screenshot shows the resulting three displays from the above calls after one event.


// Show 1D histograms for ADC vs SMD strip number in sector 5.
// Note that this routine expects a c++ index, so subtract 1.
qdPlotSmdPlane(4,0); // U plane
qdPlotSmdPlane(4,1); // V plane

More object-oriented fun

I made the histogram maker available as a global variable. One can access it's public member functions thusly:


m_EEmcQDisp -> setNSigma(3.0);
m_EEmcQDisp -> setMode(2);
m_EEmcQDisp -> setHotTower("05TA05");

The first call would raise the threshold for binning data to 3.0 times the pedestal width (as reported in the database). The second call switches from binning ADC - pedestal to energy. The third call is not yet implemented, but when it is it will allow one to mask off the specified tower.

This screenshot shows what may be the first pi0 candidate observed with the SMD. The SMD distributions at the right of the screen are shown for the range covered by towers 05TC02, 05TC03 and 05TD01. Run is smd timing run549, event number 1 (lucky to see an interesting event here).

Screenshot of same event w/ pre- and postshower displays.


Jason C. Webb
Last modified: Thu Jan 22 13:49:15 EST 2004