HYDRA_development_version
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
hrpccalpar.h
Go to the documentation of this file.
1 #ifndef HRPCCALPAR_H
2 #define HRPCCALPAR_H
3 
4 #include "TObject.h"
5 #include "TObjArray.h"
6 #include "hlocation.h"
7 #include "hparset.h"
8 
9 class HRpcCalParCell: public TObject {
10 
11  private:
12  Float_t rightTimeOffset; //Time offset of the right channel [TDC units]
13  Float_t leftTimeOffset; //Time offset of the left channel [TDC units]
14  Float_t rightTotOffset; //ToT offset of the right channel [TDC units]
15  Float_t leftTotOffset; //ToT offset of the left channel [TDC units]
16  Float_t tdc2time; //Conversion from TDC units to time [ns]
17  Float_t tot2charge; //Conversion from TOT units to charge [pC]
18  Float_t t0; //Overall offset [TDC units]
19 
20  public:
21  HRpcCalParCell(void) {clear();}
22  ~HRpcCalParCell(void) {}
23 
24  Float_t getRightTimeOffset() { return rightTimeOffset; }
25  Float_t getLeftTimeOffset() { return leftTimeOffset; }
26  Float_t getRightTOTOffset() { return rightTotOffset; }
27  Float_t getLeftTOTOffset() { return leftTotOffset; }
28  Float_t getTDC2Time() { return tdc2time; }
29  Float_t getTOT2Charge() { return tot2charge; }
30  Float_t getT0() { return t0;}
31 
32  void getAddress(Float_t& rtimoff, Float_t& ltimoff, Float_t& rtotoff, Float_t& ltotoff, Float_t& t2t,
33  Float_t& t2c,Float_t& tzero) {
34  rtimoff = rightTimeOffset;
35  ltimoff = leftTimeOffset;
36  rtotoff = rightTotOffset;
37  ltotoff = leftTotOffset;
38  t2t = tdc2time;
39  t2c = tot2charge;
40  tzero = t0;
41  }
42 
43  void fill(const Float_t rtimoff, const Float_t ltimoff, const Float_t rtotoff, const Float_t ltotoff,
44  const Float_t t2t, const Float_t t2c, const Float_t tzero) {
45  rightTimeOffset = rtimoff;
46  leftTimeOffset = ltimoff;
47  rightTotOffset = rtotoff;
48  leftTotOffset = ltotoff;
49  tdc2time = t2t;
50  tot2charge = t2c;
51  t0 = tzero;
52  }
53 
54  void fill(HRpcCalParCell& cell) {
55  rightTimeOffset = cell.getRightTimeOffset();
56  leftTimeOffset = cell.getLeftTimeOffset();
57  rightTotOffset = cell.getRightTOTOffset();
58  leftTotOffset = cell.getLeftTOTOffset();
59  tdc2time = cell.getTDC2Time();
60  tot2charge = cell.getTOT2Charge();
61  t0 = cell.getT0();
62  }
63 
64  void setRightTimeOffset(Float_t rtimoff ) { rightTimeOffset = rtimoff; }
65  void setLeftTimeOffset(Float_t ltimoff) { leftTimeOffset = ltimoff; }
66  void setRightTOTOffset(Float_t rtotoff) { rightTotOffset = rtotoff; }
67  void setLeftTOTOffset(Float_t ltotoff) { leftTotOffset = ltotoff; }
68  void setTDC2Time(Float_t t2t) { tdc2time = t2t; }
69  void setTOT2Charge(Float_t t2c) { tot2charge = t2c; }
70  void setT0(Float_t tzero) { t0 = tzero; }
71 
72  void clear();
73  ClassDef(HRpcCalParCell,1) // Cell level of the RPC calibration parameters
74 };
75 
76 
77 class HRpcCalParCol: public TObject {
78  private:
79  TObjArray* array; // pointer array containing HRpcCalParCell objects
80  Int_t MaxCells; //Maximum number of cells
81 
82  public:
83  HRpcCalParCol();
86  return *static_cast<HRpcCalParCell*>((*array)[i]);
87  }
88  HRpcCalParCell* getCell(Int_t cell) {
89  if (cell>=0 && cell<MaxCells) return &((*this)[cell]);
90  else return 0;
91  }
92  Int_t getSize() { return array->GetEntries(); }
93  void fill(Int_t,Float_t,Float_t,Float_t,Float_t,Float_t,Float_t,Float_t);
94  ClassDef(HRpcCalParCol,1) // Column level of the RPC calibration parameters
95 };
96 
97 
98 class HRpcCalParSec: public TObject {
99  private:
100  TObjArray* array; // pointer array containing HRpcCalParCol objects
101  Int_t MaxColumns; //Maximum number of sectors
102 
103  public:
104  HRpcCalParSec();
105  ~HRpcCalParSec();
106 
108  return *static_cast<HRpcCalParCol*>((*array)[i]);
109  }
110  HRpcCalParCol* getCol(Int_t col) {
111  if (col>=0 && col<MaxColumns) return &((*this)[col]);
112  else return 0;
113  }
114  Int_t getSize() { return array->GetEntries(); }
115  void fill(Int_t,Int_t,Float_t,Float_t,Float_t,Float_t,Float_t,Float_t,Float_t);
116  ClassDef(HRpcCalParSec,1) // Sector level of the RPC calibration parameters
117 };
118 
119 
120 class HRpcCalPar : public HParSet {
121  private:
122  TObjArray* array; // array of pointers of type HRpcCalParSec
123  Int_t MaxSectors; //Maximum number of columns
124 
125  void printPause(void);
126  public:
127  HRpcCalPar(const Char_t* name="RpcCalPar",
128  const Char_t* title="Calibration parameters for the Rpc Detector",
129  const Char_t* context="RpcCalProduction");
130  ~HRpcCalPar(void);
132  return *static_cast<HRpcCalParSec*>((*array)[i]);
133  }
134  HRpcCalParCol* getCol(Int_t sec, Int_t col) {
135  if (sec>=0 && sec<MaxSectors) return (*this)[sec].getCol(col);
136  else return 0;
137  }
138  Int_t getSize() { return array->GetEntries(); }
139  Bool_t init(HParIo*,Int_t*);
140  Int_t write(HParIo*);
141  void clear();
142  void printParam();
143  void fill(Int_t,Int_t,Int_t,Float_t,Float_t,Float_t,Float_t,Float_t,Float_t,Float_t);
144  void readline(const Char_t*, Int_t*);
145  void putAsciiHeader(TString&);
146  Bool_t writeline(Char_t*, Int_t, Int_t, Int_t);
147  ClassDef(HRpcCalPar,1) // Container for the RPC calibration parameters
148 };
149 
150 #endif /* !HRPCCALPAR_H */
HRpcCalPar(const Char_t *name="RpcCalPar", const Char_t *title="Calibration parameters for the Rpc Detector", const Char_t *context="RpcCalProduction")
Definition: hrpccalpar.cc:95
~HRpcCalParCell(void)
Definition: hrpccalpar.h:22
TObjArray * array
Definition: hrpccalpar.h:79
Float_t getRightTimeOffset()
Definition: hrpccalpar.h:24
void fill(const Float_t rtimoff, const Float_t ltimoff, const Float_t rtotoff, const Float_t ltotoff, const Float_t t2t, const Float_t t2c, const Float_t tzero)
Definition: hrpccalpar.h:43
void fill(HRpcCalParCell &cell)
Definition: hrpccalpar.h:54
void setTOT2Charge(Float_t t2c)
Definition: hrpccalpar.h:69
void putAsciiHeader(TString &)
Definition: hrpccalpar.cc:165
HRpcCalParSec & operator[](Int_t i)
Definition: hrpccalpar.h:131
Float_t tot2charge
Definition: hrpccalpar.h:17
~HRpcCalPar(void)
Definition: hrpccalpar.cc:109
Float_t leftTotOffset
Definition: hrpccalpar.h:15
Int_t MaxColumns
Definition: hrpccalpar.h:101
Float_t getRightTOTOffset()
Definition: hrpccalpar.h:26
Bool_t writeline(Char_t *, Int_t, Int_t, Int_t)
Definition: hrpccalpar.cc:175
void setRightTimeOffset(Float_t rtimoff)
Definition: hrpccalpar.h:64
Float_t getTOT2Charge()
Definition: hrpccalpar.h:29
HRpcCalParCell & operator[](Int_t i)
Definition: hrpccalpar.h:85
TObjArray * array
Definition: hrpccalpar.h:100
HRpcCalParCell * getCell(Int_t cell)
Definition: hrpccalpar.h:88
void fill(Int_t, Int_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t)
Definition: hrpccalpar.cc:84
HRpcCalParCell(void)
Definition: hrpccalpar.h:21
Definition: hpario.h:11
virtual Int_t write()
Definition: hparset.cc:119
void readline(const Char_t *, Int_t *)
Definition: hrpccalpar.cc:154
Float_t leftTimeOffset
Definition: hrpccalpar.h:13
Float_t getTDC2Time()
Definition: hrpccalpar.h:28
void getAddress(Float_t &rtimoff, Float_t &ltimoff, Float_t &rtotoff, Float_t &ltotoff, Float_t &t2t, Float_t &t2c, Float_t &tzero)
Definition: hrpccalpar.h:32
void setLeftTOTOffset(Float_t ltotoff)
Definition: hrpccalpar.h:67
Int_t MaxCells
Definition: hrpccalpar.h:80
Int_t getSize()
Definition: hrpccalpar.h:138
Int_t getSize()
Definition: hrpccalpar.h:92
void printParam()
Definition: hrpccalpar.cc:192
TObjArray * array
Definition: hrpccalpar.h:122
Definition: hparset.h:9
Float_t t0
Definition: hrpccalpar.h:18
void setLeftTimeOffset(Float_t ltimoff)
Definition: hrpccalpar.h:65
Float_t rightTotOffset
Definition: hrpccalpar.h:14
Float_t getLeftTOTOffset()
Definition: hrpccalpar.h:27
Int_t getSize()
Definition: hrpccalpar.h:114
void fill(Int_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t)
Definition: hrpccalpar.cc:57
void fill(Int_t, Int_t, Int_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t)
Definition: hrpccalpar.cc:143
HRpcCalParCol * getCol(Int_t sec, Int_t col)
Definition: hrpccalpar.h:134
void setTDC2Time(Float_t t2t)
Definition: hrpccalpar.h:68
Float_t getLeftTimeOffset()
Definition: hrpccalpar.h:25
HRpcCalParCol & operator[](Int_t i)
Definition: hrpccalpar.h:107
Float_t tdc2time
Definition: hrpccalpar.h:16
void printPause(void)
Definition: hrpccalpar.cc:185
void clear()
Definition: hrpccalpar.cc:130
HRpcCalParCol * getCol(Int_t col)
Definition: hrpccalpar.h:110
void setRightTOTOffset(Float_t rtotoff)
Definition: hrpccalpar.h:66
Float_t rightTimeOffset
Definition: hrpccalpar.h:12
Float_t getT0()
Definition: hrpccalpar.h:30
void setT0(Float_t tzero)
Definition: hrpccalpar.h:70
Int_t MaxSectors
Definition: hrpccalpar.h:123
virtual Bool_t init(void)
Definition: hparset.h:21