pxar
 All Classes Namespaces Functions Variables Typedefs Friends
PHCalibration.cc
1 #include "PHCalibration.hh"
2 
3 #include <iostream>
4 #include <TMath.h>
5 #include <TH1.h>
6 
7 using namespace std;
8 
9 // ----------------------------------------------------------------------
10 PHCalibration::PHCalibration() {
11 
12 }
13 
14 
15 // ----------------------------------------------------------------------
16 PHCalibration::~PHCalibration() {
17 
18 }
19 
20 // ----------------------------------------------------------------------
21 double PHCalibration::vcal(int iroc, int icol, int irow, double ph) {
22  int idx = icol*80+irow;
23  double x = (TMath::ATanH((ph - fParameters[iroc][idx].p3)/fParameters[iroc][idx].p2) + fParameters[iroc][idx].p1)
24  / fParameters[iroc][idx].p0;
25  return x;
26 }
27 
28 // ----------------------------------------------------------------------
29 double PHCalibration::ph(int iroc, int icol, int irow, double vcal) {
30  int idx = icol*80+irow;
31  double x = fParameters[iroc][idx].p3 + fParameters[iroc][idx].p2
32  * TMath::TanH(fParameters[iroc][idx].p0 * vcal - fParameters[iroc][idx].p1);
33  return x;
34 }
35 
36 // ----------------------------------------------------------------------
37 void PHCalibration::setPHParameters(std::vector<std::vector<gainPedestalParameters> >v) {
38  fParameters = v;
39 }
40 
41 // ----------------------------------------------------------------------
42 string PHCalibration::getParameters(int iroc, int icol, int irow) {
43  int idx = icol*80+irow;
44  return Form("%2d/%2d/%2d: %e %e %e %e", iroc, icol, irow,
45  fParameters[iroc][idx].p0, fParameters[iroc][idx].p1, fParameters[iroc][idx].p2, fParameters[iroc][idx].p3);
46 }