#ifndef HWALLCALPAR_H
#define HWALLCALPAR_H
using namespace std;
#include "TObject.h"
#include "TObjArray.h"
#include "hparset.h"
#include <iostream>
#include <iomanip>
class HWallCalParCell : public TObject {
protected:
Float_t TDC_slope;
Float_t TDC_offset;
Float_t TDC_WalkCorr1;
Float_t TDC_WalkCorr2;
Float_t ADC_slope;
Float_t ADC_offset;
public:
HWallCalParCell() { clear(); }
~HWallCalParCell() {;}
Float_t getTDC_Slope() { return TDC_slope; }
Float_t getTDC_Offset() { return TDC_offset; }
Float_t getTDC_WalkCorr1() { return TDC_WalkCorr1; }
Float_t getTDC_WalkCorr2() { return TDC_WalkCorr2; }
Float_t getADC_Slope() { return ADC_slope; }
Float_t getADC_Offset() { return ADC_offset; }
void fill(Float_t Ts,Float_t To,Float_t Twc1,Float_t Twc2,Float_t As,Float_t Ao) {
TDC_slope =Ts;
TDC_offset=To;
TDC_WalkCorr1=Twc1;
TDC_WalkCorr2=Twc2;
ADC_slope =As;
ADC_offset=Ao;
}
void fill(HWallCalParCell& r) {
TDC_slope =r.getTDC_Slope();
TDC_offset=r.getTDC_Offset();
TDC_WalkCorr1=r.getTDC_WalkCorr1();
TDC_WalkCorr2=r.getTDC_WalkCorr2();
ADC_slope =r.getADC_Slope();
ADC_offset=r.getADC_Offset();
}
void setTDC_Slope(Float_t Ts) { TDC_slope =Ts; }
void setTDC_Offset(Float_t To) { TDC_offset=To; }
void setTDC_WalkCorr1(Float_t Twc1) { TDC_WalkCorr1=Twc1; }
void setTDC_WalkCorr2(Float_t Twc2) { TDC_WalkCorr2=Twc2; }
void setADC_Slope(Float_t As) { ADC_slope =As; }
void setADC_Offset(Float_t Ao) { ADC_offset=Ao; }
void clear() {
TDC_slope =0.F;
TDC_offset=0.F;
TDC_WalkCorr1=0.F;
TDC_WalkCorr2=0.F;
ADC_slope =0.F;
ADC_offset=0.F;
}
ClassDef(HWallCalParCell,1)
};
class HWallCalPar : public HParSet {
protected:
TObjArray* array;
public:
HWallCalPar(const Char_t* name="WallCalPar",
const Char_t* title="Calibration parameters for Forward Wall",
const Char_t* context="WallCalProduction");
~HWallCalPar();
HWallCalParCell& operator[](Int_t i) {
return *static_cast<HWallCalParCell*>((*array)[i]);
}
Int_t getSize() { return array->GetEntries(); }
Bool_t init(HParIo* input,Int_t* set);
Int_t write(HParIo* output);
void clear();
void printParam();
void readline(const Char_t*, Int_t*);
void putAsciiHeader(TString&);
Bool_t writeline(Char_t*, Int_t);
ClassDef(HWallCalPar,1)
};
#endif /*!HWALLCALPAR_H*/