ROOT logo
#ifndef HEMCCALPAR_H
#define HEMCCALPAR_H

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

class HEmcCalParCell : public TObject {
protected:
  Float_t tdcSlope;  // TDC slope
  Float_t tdcOffset; // TDC offset
  Float_t adcPar0;   // ADC par 0 (par2 * x^0)
  Float_t adcPar1;   // ADC par 1 (par1 * x^1)
  Float_t adcPar2;   // ADC par 2 (par0 * x^2)
  Float_t twcPar0;   // TWC par 0
  Float_t twcPar1;   // TWC par 1
  Float_t twcPar2;   // TWC par 2
public:
  HEmcCalParCell()  {clear();}
  virtual ~HEmcCalParCell() {}
  void clear();
  Float_t getTdcSlope(void)  {return tdcSlope;}
  Float_t getTdcOffset(void) {return tdcOffset;}
  Float_t getAdcPar0(void)   {return adcPar0;}
  Float_t getAdcPar1(void)   {return adcPar1;}
  Float_t getAdcPar2(void)   {return adcPar2;}
  Float_t getTwcPar0(void)   {return twcPar0;}
  Float_t getTwcPar1(void)   {return twcPar1;}
  Float_t getTwcPar2(void)   {return twcPar2;}
  void getData(Float_t* data) {
    data[0] = tdcSlope;
    data[1] = tdcOffset;
    data[2] = adcPar0;
    data[3] = adcPar1;
    data[4] = adcPar2;
    data[5] = twcPar0;
    data[6] = twcPar1;
    data[7] = twcPar2;
  }
  void setTdcSlope(Float_t s)  {tdcSlope = s;}
  void setTdcOffset(Float_t o) {tdcOffset = o;}
  void setAdcPar0(Float_t p)  {adcPar0 = p;}
  void setAdcPar1(Float_t p)  {adcPar1 = p;}
  void setAdcPar2(Float_t p)  {adcPar2 = p;}
  void setTwcPar0(Float_t t)   {twcPar0 = t;}
  void setTwcPar1(Float_t t)   {twcPar1 = t;}
  void setTwcPar2(Float_t t)   {twcPar2 = t;}
  void fill(Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t);
  void fill(Float_t*);
  void fill(HEmcCalParCell&);
  ClassDef(HEmcCalParCell, 1) // Chan level of the Emc calibration parameters
};


class HEmcCalParSec: public TObject {
protected:
  TObjArray* array;  // pointer array containing HEmcCalParCell objects
public:
  HEmcCalParSec(Int_t n = 255);
  virtual ~HEmcCalParSec();
  HEmcCalParCell& operator[](Int_t i) {
    return *static_cast<HEmcCalParCell*>((*array)[i]);
  }
  Int_t getSize() {return array->GetEntries();}
  ClassDef(HEmcCalParSec, 1) // Sector level of Emc calibration parameters
};


class HEmcCalPar : public HParSet {
protected:
  TObjArray* array;     // array of pointers of type HEmcCalParSec
public:
  HEmcCalPar(const Char_t* name,// = "EmcCalPar",
             const Char_t* title,// = "Calibration parameters of the Emc",
             const Char_t* context) ;// = "EmcCalParProduction");

  HEmcCalPar() : array(0) {;} // for streamer? see segv in root file io JAM
  virtual ~HEmcCalPar();

  HEmcCalParSec& operator[](Int_t i) {
    return *static_cast<HEmcCalParSec*>((*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(fstream&);
  ClassDef(HEmcCalPar, 1) // Container for the calibration parameters of the Emc
};

#endif  /*!HEMCCALPAR_H*/
 hemccalpar.h:1
 hemccalpar.h:2
 hemccalpar.h:3
 hemccalpar.h:4
 hemccalpar.h:5
 hemccalpar.h:6
 hemccalpar.h:7
 hemccalpar.h:8
 hemccalpar.h:9
 hemccalpar.h:10
 hemccalpar.h:11
 hemccalpar.h:12
 hemccalpar.h:13
 hemccalpar.h:14
 hemccalpar.h:15
 hemccalpar.h:16
 hemccalpar.h:17
 hemccalpar.h:18
 hemccalpar.h:19
 hemccalpar.h:20
 hemccalpar.h:21
 hemccalpar.h:22
 hemccalpar.h:23
 hemccalpar.h:24
 hemccalpar.h:25
 hemccalpar.h:26
 hemccalpar.h:27
 hemccalpar.h:28
 hemccalpar.h:29
 hemccalpar.h:30
 hemccalpar.h:31
 hemccalpar.h:32
 hemccalpar.h:33
 hemccalpar.h:34
 hemccalpar.h:35
 hemccalpar.h:36
 hemccalpar.h:37
 hemccalpar.h:38
 hemccalpar.h:39
 hemccalpar.h:40
 hemccalpar.h:41
 hemccalpar.h:42
 hemccalpar.h:43
 hemccalpar.h:44
 hemccalpar.h:45
 hemccalpar.h:46
 hemccalpar.h:47
 hemccalpar.h:48
 hemccalpar.h:49
 hemccalpar.h:50
 hemccalpar.h:51
 hemccalpar.h:52
 hemccalpar.h:53
 hemccalpar.h:54
 hemccalpar.h:55
 hemccalpar.h:56
 hemccalpar.h:57
 hemccalpar.h:58
 hemccalpar.h:59
 hemccalpar.h:60
 hemccalpar.h:61
 hemccalpar.h:62
 hemccalpar.h:63
 hemccalpar.h:64
 hemccalpar.h:65
 hemccalpar.h:66
 hemccalpar.h:67
 hemccalpar.h:68
 hemccalpar.h:69
 hemccalpar.h:70
 hemccalpar.h:71
 hemccalpar.h:72
 hemccalpar.h:73
 hemccalpar.h:74
 hemccalpar.h:75
 hemccalpar.h:76
 hemccalpar.h:77
 hemccalpar.h:78
 hemccalpar.h:79
 hemccalpar.h:80
 hemccalpar.h:81
 hemccalpar.h:82
 hemccalpar.h:83
 hemccalpar.h:84
 hemccalpar.h:85
 hemccalpar.h:86
 hemccalpar.h:87
 hemccalpar.h:88
 hemccalpar.h:89
 hemccalpar.h:90
 hemccalpar.h:91
 hemccalpar.h:92
 hemccalpar.h:93
 hemccalpar.h:94
 hemccalpar.h:95