#ifndef HFRPCSTRIPPAR_H #define HFRPCSTRIPPAR_H #include "hparset.h" #include #include class HFRpcStripParCell : public TObject { public: static const Int_t nzones = 25; protected: Float_t strip_pars[nzones]; // Q threshold for cross-talk rejection N-side public: HFRpcStripParCell() { clear(); } void clear(); void getData(Float_t data[nzones]) { memcpy(data, strip_pars, sizeof(strip_pars[0]) * nzones); } void fill(Float_t data[nzones]); void fill(HFRpcStripParCell &); ClassDef(HFRpcStripParCell, 1) // Chan level of the Emc calibration parameters }; class HFRpcStripParSec : public TObject { protected: TObjArray *array; // pointer array containing HFRpcStripParCell objects public: HFRpcStripParSec(Int_t n = 32); virtual ~HFRpcStripParSec(); HFRpcStripParCell &operator[](Int_t i) { return *static_cast((*array)[i]); } Int_t getSize() { return array->GetEntries(); } ClassDef(HFRpcStripParSec, 1) // Sector level of Emc calibration parameters }; class HFRpcStripPar : public HParSet { protected: TObjArray *array; // array of pointers of type HFRpcStripParSec public: HFRpcStripPar(const Char_t *name, const Char_t *title, const Char_t *context); HFRpcStripPar() : array(0) { ; } // for streamer? see segv in root file io JAM virtual ~HFRpcStripPar(); HFRpcStripParSec &operator[](Int_t i) { return *static_cast((*array)[i]); } Int_t getSize() { return array->GetEntries(); } Bool_t init(HParIo *input, Int_t *set); Int_t write(HParIo *output); void clear(); void printParams(); void readline(const Char_t *, Int_t *); void putAsciiHeader(TString &); void write(std::fstream &); ClassDef(HFRpcStripPar, 1) // Container for the calibration parameters of the Emc }; #endif /*!HFRPCSTRIPPAR_H*/