ROOT logo
#ifndef HSTART2CALPAR_H
#define HSTART2CALPAR_H

#include "TObjArray.h"
#include "TObject.h"

#include "hparset.h"

class HStart2CalparCell : public TObject {
protected:
   Float_t tdcSlope;  // TDC slope
   Float_t tdcOffset; // TDC offset
   Float_t adcSlope;  // ADC slope
   Float_t adcOffset; // ADC offset
public:
   HStart2CalparCell() {
      clear();
   }
   ~HStart2CalparCell() {
      ;
   }
   void clear() {
      tdcSlope = 1.F;
      tdcOffset = 0.F;
      adcSlope = 1.F;
      adcOffset = 0.F;
   }
   Float_t getTdcSlope(void)  {
      return tdcSlope;
   }
   Float_t getTdcOffset(void) {
      return tdcOffset;
   }
   Float_t getAdcSlope(void)  {
      return adcSlope;
   }
   Float_t getAdcOffset(void) {
      return adcOffset;
   }
   void getData(Float_t* data) {
      data[0] = tdcSlope;
      data[1] = tdcOffset;
      data[2] = adcSlope;
      data[3] = adcOffset;
   }
   void setTdcSlope(Float_t s)  {
      tdcSlope = s;
   }
   void setTdcOffset(Float_t o) {
      tdcOffset = o;
   }
   void setAdcSlope(Float_t s)  {
      adcSlope = s;
   }
   void setAdcOffset(Float_t o) {
      adcOffset = o;
   }
   void fill(Float_t ts, Float_t to, Float_t as, Float_t ao) {
      tdcSlope = ts;
      tdcOffset = to;
      adcSlope = as;
      adcOffset = ao;
   }
   void fill(Float_t* data) {
      tdcSlope = data[0];
      tdcOffset = data[1];
      adcSlope = data[2];
      adcOffset = data[3];
   }
   void fill(HStart2CalparCell& r) {
      tdcSlope  = r.getTdcSlope();
      tdcOffset = r.getTdcOffset();
      adcSlope  = r.getAdcSlope();
      adcOffset = r.getAdcOffset();
   }
   ClassDef(HStart2CalparCell, 1) // Chan level of the START2 calibration parameters
};


class HStart2CalparMod: public TObject {
protected:
   TObjArray* array;  // pointer array containing HStart2CalparCell objects
public:
   HStart2CalparMod(Int_t n = 128);
   ~HStart2CalparMod();
   HStart2CalparCell& operator[](Int_t i) {
      return *static_cast<HStart2CalparCell*>((*array)[i]);
   }
   Int_t getSize() {
      return array->GetEntries();
   }
   ClassDef(HStart2CalparMod, 1) // Module level of Start2 Calibration parameters
};


class HStart2Calpar : public HParSet {
protected:
   TObjArray* array;     // array of pointers of type HStart2CalparMod
public:
   HStart2Calpar(const Char_t* name = "Start2Calpar",
                 const Char_t* title = "Calibration parameters for Start2",
                 const Char_t* context = "Start2CalparProduction");
   ~HStart2Calpar();
   HStart2CalparMod& operator[](Int_t i) {
      return *static_cast<HStart2CalparMod*>((*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, Int_t);

   Bool_t isInTable(Int_t mod,Int_t strip, Bool_t silent=kFALSE);
   ClassDef(HStart2Calpar, 1) // Container for the START2 calibration parameters
};

#endif  /*!HSTART2CALPAR_H*/
 hstart2calpar.h:1
 hstart2calpar.h:2
 hstart2calpar.h:3
 hstart2calpar.h:4
 hstart2calpar.h:5
 hstart2calpar.h:6
 hstart2calpar.h:7
 hstart2calpar.h:8
 hstart2calpar.h:9
 hstart2calpar.h:10
 hstart2calpar.h:11
 hstart2calpar.h:12
 hstart2calpar.h:13
 hstart2calpar.h:14
 hstart2calpar.h:15
 hstart2calpar.h:16
 hstart2calpar.h:17
 hstart2calpar.h:18
 hstart2calpar.h:19
 hstart2calpar.h:20
 hstart2calpar.h:21
 hstart2calpar.h:22
 hstart2calpar.h:23
 hstart2calpar.h:24
 hstart2calpar.h:25
 hstart2calpar.h:26
 hstart2calpar.h:27
 hstart2calpar.h:28
 hstart2calpar.h:29
 hstart2calpar.h:30
 hstart2calpar.h:31
 hstart2calpar.h:32
 hstart2calpar.h:33
 hstart2calpar.h:34
 hstart2calpar.h:35
 hstart2calpar.h:36
 hstart2calpar.h:37
 hstart2calpar.h:38
 hstart2calpar.h:39
 hstart2calpar.h:40
 hstart2calpar.h:41
 hstart2calpar.h:42
 hstart2calpar.h:43
 hstart2calpar.h:44
 hstart2calpar.h:45
 hstart2calpar.h:46
 hstart2calpar.h:47
 hstart2calpar.h:48
 hstart2calpar.h:49
 hstart2calpar.h:50
 hstart2calpar.h:51
 hstart2calpar.h:52
 hstart2calpar.h:53
 hstart2calpar.h:54
 hstart2calpar.h:55
 hstart2calpar.h:56
 hstart2calpar.h:57
 hstart2calpar.h:58
 hstart2calpar.h:59
 hstart2calpar.h:60
 hstart2calpar.h:61
 hstart2calpar.h:62
 hstart2calpar.h:63
 hstart2calpar.h:64
 hstart2calpar.h:65
 hstart2calpar.h:66
 hstart2calpar.h:67
 hstart2calpar.h:68
 hstart2calpar.h:69
 hstart2calpar.h:70
 hstart2calpar.h:71
 hstart2calpar.h:72
 hstart2calpar.h:73
 hstart2calpar.h:74
 hstart2calpar.h:75
 hstart2calpar.h:76
 hstart2calpar.h:77
 hstart2calpar.h:78
 hstart2calpar.h:79
 hstart2calpar.h:80
 hstart2calpar.h:81
 hstart2calpar.h:82
 hstart2calpar.h:83
 hstart2calpar.h:84
 hstart2calpar.h:85
 hstart2calpar.h:86
 hstart2calpar.h:87
 hstart2calpar.h:88
 hstart2calpar.h:89
 hstart2calpar.h:90
 hstart2calpar.h:91
 hstart2calpar.h:92
 hstart2calpar.h:93
 hstart2calpar.h:94
 hstart2calpar.h:95
 hstart2calpar.h:96
 hstart2calpar.h:97
 hstart2calpar.h:98
 hstart2calpar.h:99
 hstart2calpar.h:100
 hstart2calpar.h:101
 hstart2calpar.h:102
 hstart2calpar.h:103
 hstart2calpar.h:104
 hstart2calpar.h:105
 hstart2calpar.h:106
 hstart2calpar.h:107
 hstart2calpar.h:108
 hstart2calpar.h:109
 hstart2calpar.h:110
 hstart2calpar.h:111
 hstart2calpar.h:112
 hstart2calpar.h:113
 hstart2calpar.h:114
 hstart2calpar.h:115
 hstart2calpar.h:116
 hstart2calpar.h:117
 hstart2calpar.h:118
 hstart2calpar.h:119
 hstart2calpar.h:120
 hstart2calpar.h:121
 hstart2calpar.h:122