ROOT logo
#ifndef HTOFCALPAR_H
#define HTOFCALPAR_H

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

class HTofCalParCell : public TObject {
private:
  Float_t leftK;      // left side TDC width channel
  Float_t rightK;     // right side TDC width channel
  Float_t vGroup;     // group velocity
  Float_t posK;       // position offset
  Float_t timK;       // timing offset
  Float_t pedestalL;  // ADC left pedestal
  Float_t pedestalR;  // ADC right pedestal
  Float_t attLen;     // Attenuation length
  Float_t gainAsym;   // Gain asymmetry
  Float_t edepK;      // amplitude to ADC channel conversion factor
  Float_t twC1;       // time walk correction (left)
  Float_t twC2;       // time walk correction (right)
  Float_t twC3;       // time walk correction of time offset
public:
  HTofCalParCell(void) { setDefaults(); }
  ~HTofCalParCell(void) {}
  Float_t getLeftK() { return leftK; }
  Float_t getRightK() { return rightK; }
  Float_t getVGroup() { return vGroup; }
  Float_t getPosK() { return posK; }
  Float_t getTimK() { return timK; }
  Float_t getPedestalL() { return pedestalL; }
  Float_t getPedestalR() { return pedestalR; }
  Float_t getAttLen() { return attLen; }
  Float_t getGainAsym() { return gainAsym; }
  Float_t getEdepK() { return edepK; }
  Float_t getTimeWalkC1() { return twC1; }
  Float_t getTimeWalkC2() { return twC2; }
  Float_t getTimeWalkC3() { return twC3; }
  void fill(HTofCalParCell& c) {
    leftK=c.getLeftK();
    rightK=c.getRightK();
    vGroup=c.getVGroup();
    posK=c.getPosK();
    timK=c.getTimK();
    pedestalL=c.getPedestalL();
    pedestalR=c.getPedestalR();
    attLen=c.getAttLen();
    gainAsym=c.getGainAsym();
    edepK=c.getEdepK();
    twC1=c.getTimeWalkC1();
    twC2=c.getTimeWalkC2();
    twC3=c.getTimeWalkC3();
  }
  void setLeftK(Float_t f) { leftK = f; }
  void setRightK(Float_t f) { rightK = f; }
  void setVGroup(Float_t f) { vGroup = f; }
  void setPosK(Float_t f) { posK = f; }
  void setTimK(Float_t f) { timK = f; }
  void setPedestalL(Float_t f) { pedestalL=f; }
  void setPedestalR(Float_t f) { pedestalR=f; }
  void setAttLen(Float_t f) { attLen=f; }
  void setGainAsym(Float_t f) { gainAsym=f; }
  void setEdepK(Float_t f) { edepK=f; }
  void setTimeWalkC1(Float_t f) {twC1=f; }
  void setTimeWalkC2(Float_t f) {twC2=f; }
  void setTimeWalkC3(Float_t f) {twC3=f; }
  void setDefaults(void);
  ClassDef(HTofCalParCell,3)  // Cell level of the TOF calibration parameters
}; 

class HTofCalParMod: public TObject {
private:
  TObjArray* array;  // pointer array containing HStartCalParChan objects
public:
  HTofCalParMod(Int_t s=0, Int_t m=0);
  ~HTofCalParMod();
  HTofCalParCell& operator[](Int_t i) {
      return *static_cast<HTofCalParCell*>((*array)[i]);
  }
  Int_t getSize() { return array->GetEntries(); }
  ClassDef(HTofCalParMod,1) // Module level of the Tof Calibration parameters
};

class HTofCalParSec: public TObject {
private:
  TObjArray* array;  // pointer array containing HStartCalParMod objects
public:
  HTofCalParSec(Int_t s=0, Int_t n=22);
  ~HTofCalParSec();
  HTofCalParMod& operator[](Int_t i) {
      return *static_cast<HTofCalParMod*>((*array)[i]);
  }
  Int_t getSize() { return array->GetEntries(); }
  ClassDef(HTofCalParSec,1) // Sector level of the Tof Calibration parameters
};

class HTofCalPar : public HParSet {
private:
  TObjArray* array;     // array of pointers of type HTofCalParMod
  void printPause(void);
public:
  HTofCalPar(const Char_t* name="TofCalPar",
             const Char_t* title="Calibration parameters for Tof",
             const Char_t* context="TofCalProduction");
  ~HTofCalPar(void);
  HTofCalParSec& operator[](Int_t i) {
    return *static_cast<HTofCalParSec*>((*array)[i]);
  }
  Int_t getSize() { return array->GetEntries(); }
  Bool_t init(HParIo*,Int_t*);
  Int_t write(HParIo*);
  void clear();
  void printParam();
  void readline(const Char_t*, Int_t*);
  void putAsciiHeader(TString&);
  Bool_t writeline(Char_t*, Int_t, Int_t, Int_t);
  ClassDef(HTofCalPar,1)  // Container for the TOF calibration parameters
};

#endif /* !HTOFCALPAR_H */










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