ROOT logo
#ifndef HMDCCALPARRAW_H
#define HMDCCALPARRAW_H

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

class HMdcCalParTdc : public TObject {
protected:
    Float_t slope;       // gain
    Float_t offset;      // offset
    Float_t slopeErr;    // error of gain
    Float_t offsetErr;   // error of offset
    Int_t slopeMethod;   // number of method used to determine the slope
    Int_t offsetMethod;  // number of method used to determine the offset
public:
    HMdcCalParTdc() : slope(1.F), offset(0.F), slopeErr(0.F), offsetErr(0.F),
                      slopeMethod(0), offsetMethod(0) {;}
    ~HMdcCalParTdc() {;}
    Float_t getSlope()  {return slope;}
    Float_t getOffset() {return offset;}
    Float_t getSlopeErr() {return slopeErr;}
    Float_t getOffsetErr() {return offsetErr;}
    Int_t getSlopeMethod() {return slopeMethod;}
    Int_t getOffsetMethod() {return offsetMethod;}
    void fill(Float_t s,Float_t o, Float_t sE,Float_t oE,Int_t sM,Int_t oM)
    {
      slope=s;
      offset=o;
      slopeErr=sE;
      offsetErr=oE;
      slopeMethod=sM;
      offsetMethod=oM;
    }
    void fill(HMdcCalParTdc&);
    void setSlope(Float_t s)  {slope=s;}
    void setOffset(Float_t o) {offset=o;}
    void setSlopeErr(Float_t sE){slopeErr=sE;}
    void setOffsetErr(Float_t oE){offsetErr=oE;}
    void setSlopeMethod(Int_t sM) {slopeMethod=sM;}
    void setOffsetMethod(Int_t oM) {offsetMethod=oM;}
    void clear() {
      slope       =1.F;
      offset      =0.F;
      slopeErr    =0.F;
      offsetErr   =0.F;
      slopeMethod =0;
      offsetMethod=0;
    }
    ClassDef(HMdcCalParTdc,1) // Tdc level of the MDC calibration parameters
};


class HMdcCalParMbo : public TNamed {
protected:
    TObjArray *array; // array of pointers of type HMdcCalParTdc
public:
    HMdcCalParMbo(Int_t tdc = 96, const Text_t* name="");
    ~HMdcCalParMbo();
    HMdcCalParTdc& operator[](Int_t i) {
      return *static_cast<HMdcCalParTdc*>((*array)[i]);
    }
    Int_t getSize() {return array->GetEntries();}
    ClassDef(HMdcCalParMbo,1) // Mbo level of the MDC calibration parameters
};


class HMdcCalParRawMod : public TObject {
protected:
    TObjArray *array;   // array of pointers of type HMdcCalParMbo
public:
    HMdcCalParRawMod(Int_t mbo = 16);
    ~HMdcCalParRawMod();
    HMdcCalParMbo& operator[](Int_t i) {
      return *static_cast<HMdcCalParMbo*>((*array)[i]);
    }
    Int_t getSize() {return array->GetEntries();}
    void createMbo(Int_t, Int_t, const Char_t*);
    ClassDef(HMdcCalParRawMod,1) // Module level of the MDC calibration parameters
};


class HMdcCalParRawSec : public TObject {
protected:
    TObjArray* array;   // array of pointers of type HMdcCalParRawMod

public:
    HMdcCalParRawSec(Int_t mod = 4);
    ~HMdcCalParRawSec();
    HMdcCalParRawMod& operator[](Int_t i) {
      return *static_cast<HMdcCalParRawMod*>((*array)[i]);
    }
    Int_t getSize() {return array->GetEntries();}
    ClassDef(HMdcCalParRawSec,1) // Sector level of the MDC calibration parameters
};


class HMdcCalParRaw : public HParSet {
protected:
    TObjArray* array;      // array of pointers of type HMdcCalParRawSec
public:
    HMdcCalParRaw(const Char_t* name="MdcCalParRaw",
                  const Char_t* title="raw calibration parameters for Mdc",
                  const Char_t* context="MdcCalParRawProduction",
                  Int_t n=6);
    ~HMdcCalParRaw();
    HMdcCalParRawSec& operator[](Int_t i) {
        return *static_cast<HMdcCalParRawSec*>((*array)[i]);
    }
    Int_t getSize() {return array->GetEntries();}
    Bool_t init(HParIo*, Int_t*);
    Int_t write(HParIo*);
    void readline(const Char_t*, Int_t*);
    void putAsciiHeader(TString&);
    Bool_t writeline(Char_t*, Int_t, Int_t, Int_t, Int_t);
    void clear();
    void printParam();
    ClassDef(HMdcCalParRaw,2) // Container for the MDC calibration parameters on raw level
};

#endif  /*!HMDCCALPARRAW_H*/

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