/////////////////////////////////////////////////////////////////////////////
//
// EEezAnalysis
//
// The EEezAnalysis class is the main workhorse of the analysis code.
// It is responsible for taking the raw data from the ezTree, making
// the connection to the database to obtain and correct for pedestals
// and gains, and packing the data into the EEezTower objects. To keep
// the EEezTower class as simple as possible, all of the geometry
// information carried by the towers is initialized from the EEezAnalysis
// class. This has the side effect of making the cluster finder fairly
// independent of the EEMC geometry.
//
// The EEezAnalysis class has privately-held arrays to hold all detector
// elements:
// EEezTower m_Towers[720];
// EEezStrip m_Strips[12][2][288];
//
// Several inline member functions are available which provide direct
// access to the m_Towers array through pointers. Each element in
// m_Towers contains pointers to neighboring towers, and to the
// appropriate strips in the m_Strips array.
//
// One accesses the data stored in the m_Towers array by calling member
// functions of EEezAnalysis. These member functions return pointers into
// the m_Towers array. One should tread lightly, as any changes you make
// to a tower will be made for all running code which uses this instance
// of EEezAnalysis. (This is why I have not told you about all of the
// "set" methods on towers and strips!)
//
///////////////////////////////////////////////////////////////////////////////
#ifndef __EEezAnalysis_h__
#define __EEezAnalysis_h__
//
// EEmc EZ analysis
//
// Fills a 2D array of EEezTowers, which include pointers to
// neighboring towers (i.e. an automatic cluster finder).
//
#include
#include