#ifndef HSTSCALPAR_H #define HSTSCALPAR_H #include "hparset.h" #include #include #include "stsdef.h" class HStsCalParCellKind : public TObject { protected: Float_t timeOffset; // drift time offset Float_t timeMax; // drift time length Float_t timeSlope; // drift time m-slope Float_t tofReference; // drift time offset frpc tof reference Float_t isoPar0; // isochrone calibration par0 Float_t isoPar1; // isochrone calibration par1 Float_t isoPar2; // isochrone calibration par2 Float_t isoPar3; // isochrone calibration par3 Float_t isoPar4; // isochrone calibration par4 Float_t totPar0; // tot calibration par0 Float_t totPar1; // tot calibration par1 public: HStsCalParCellKind() { clear(); } void clear(); Float_t getTimeOffset() { return timeOffset; } Float_t getTimeMax() { return timeMax; } Float_t getTimeSlope() { return timeSlope; } Float_t getTofReference() { return tofReference; } Float_t getIsoPar0() { return isoPar0; } Float_t getIsoPar1() { return isoPar1; } Float_t getIsoPar2() { return isoPar2; } Float_t getIsoPar3() { return isoPar3; } Float_t getIsoPar4() { return isoPar4; } Float_t getTotPar0() { return totPar0; } Float_t getTotPar1() { return totPar1; } void getData(Float_t *data) { data[0] = timeOffset; data[1] = timeMax; data[2] = timeSlope; data[3] = tofReference; data[4] = isoPar0; data[5] = isoPar1; data[6] = isoPar2; data[7] = isoPar3; data[8] = isoPar4; data[9] = totPar0; data[10] = totPar1; } void setTimeOffset(Float_t v) { timeOffset = v; } void setTimeMax(Float_t v) { timeMax = v; } void setTimeSlope(Float_t v) { timeSlope = v; } void setTofReference(Float_t v) { tofReference = v; } void setIsoPar0(Float_t v) { isoPar0 = v; } void setIsoPar1(Float_t v) { isoPar1 = v; } void setIsoPar2(Float_t v) { isoPar2 = v; } void setIsoPar3(Float_t v) { isoPar3 = v; } void setIsoPar4(Float_t v) { isoPar4 = v; } void setTotPar0(Float_t v) { totPar0 = v; } void setTotPar1(Float_t v) { totPar1 = v; } void fill(Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t); void fill(Float_t *); void fill(HStsCalParCellKind &); ClassDef(HStsCalParCellKind, 1) // Chan level of the Emc calibration parameters }; class HStsCalParCell : public TObject { protected: TObjArray *array; // pointer array containing HStsCalParCell objects public: HStsCalParCell(Int_t n = STS_MAX_UDCONF); virtual ~HStsCalParCell(); HStsCalParCellKind &operator[](Int_t i) { return *static_cast((*array)[i]); } Int_t getSize() { return array->GetEntries(); } ClassDef(HStsCalParCell, 1) // Sector level of Emc calibration parameters }; class HStsCalParSec : public TObject { protected: TObjArray *array; // pointer array containing HStsCalParCell objects public: HStsCalParSec(Int_t n = STS_MAX_CELLS); virtual ~HStsCalParSec(); HStsCalParCell &operator[](Int_t i) { return *static_cast((*array)[i]); } Int_t getSize() { return array->GetEntries(); } ClassDef(HStsCalParSec, 1) // Sector level of Emc calibration parameters }; class HStsCalParMod : public TObject { protected: TObjArray *array; // pointer array containing HStsCalParCell objects public: HStsCalParMod(Int_t n = STS_MAX_LAYERS); virtual ~HStsCalParMod(); HStsCalParSec &operator[](Int_t i) { return *static_cast((*array)[i]); } Int_t getSize() { return array->GetEntries(); } ClassDef(HStsCalParMod, 1) // Sector level of Emc calibration parameters }; class HStsCalPar : public HParSet { protected: TObjArray *array; // array of pointers of type HStsCalParSec public: HStsCalPar(const Char_t *name, const Char_t *title, const Char_t *context); HStsCalPar() : array(0) { ; } // for streamer? see segv in root file io JAM virtual ~HStsCalPar(); HStsCalParMod &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(HStsCalPar, 1) // Container for the calibration parameters of the Emc }; #endif /*!HSTSCALPAR_H*/