#ifndef HFRPCCALPAR_H #define HFRPCCALPAR_H #include "hparset.h" #include #include class HFRpcCalParCell : public TObject { protected: Float_t qThresholdN; // Q threshold for cross-talk rejection N-side Float_t qThresholdF; // Q threshold for cross-talk rejection F-side Float_t timeOffset; // Time offset Float_t posOffset; // Position offset Float_t propCorr; // Signal propagation speed correction Float_t twcPar0; // TWC par 0 Float_t twcPar1; // TWC par 1 Float_t twcPar2; // TWC par 2 public: HFRpcCalParCell() { clear(); } void clear(); Float_t getQthresholdN() { return qThresholdN; } Float_t getQthresholdF() { return qThresholdF; } Float_t getTimeOffset() { return timeOffset; } Float_t getPosOffset() { return posOffset; } Float_t getPropCorr() { return propCorr; } Float_t getTwcPar0() { return twcPar0; } Float_t getTwcPar1() { return twcPar1; } Float_t getTwcPar2() { return twcPar2; } void getData(Float_t *data) { data[0] = qThresholdN; data[1] = qThresholdF; data[2] = timeOffset; data[3] = posOffset; data[4] = propCorr; data[5] = twcPar0; data[6] = twcPar1; data[7] = twcPar2; } void setQthresholdN(Float_t o) { qThresholdN = o; } void setQthresholdF(Float_t o) { qThresholdF = o; } void setTimeOffset(Float_t o) { timeOffset = o; } void setPosOffset(Float_t o) { posOffset = o; } void setPropCorr(Float_t o) { propCorr = o; } void setTwcPar0(Float_t o) { twcPar0 = o; } void setTwcPar1(Float_t o) { twcPar1 = o; } void setTwcPar2(Float_t o) { twcPar2 = o; } void fill(Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t); void fill(Float_t *); ClassDef(HFRpcCalParCell, 1) // Chan level of the Emc calibration parameters }; class HFRpcCalParSec : public TObject { protected: TObjArray *array; // pointer array containing HFRpcCalParCell objects public: HFRpcCalParSec(Int_t n = 32); virtual ~HFRpcCalParSec(); HFRpcCalParCell &operator[](Int_t i) { return *static_cast((*array)[i]); } Int_t getSize() { return array->GetEntries(); } ClassDef(HFRpcCalParSec, 1) // Sector level of Emc calibration parameters }; class HFRpcCalPar : public HParSet { protected: TObjArray *array; // array of pointers of type HFRpcCalParSec public: HFRpcCalPar(const Char_t *name, const Char_t *title, const Char_t *context); HFRpcCalPar() : array(0) { ; } // for streamer? see segv in root file io JAM virtual ~HFRpcCalPar(); HFRpcCalParSec &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(HFRpcCalPar, 1) // Container for the calibration parameters of the Emc }; #endif /*!HFRPCCALPAR_H*/