BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Calibration/CalibData/include/CalibData/Dedx/DedxCalibData.h
Go to the documentation of this file.
1// $Header: /bes/bes/BossCvs/Calibration/CalibData/CalibData/Dedx/DedxCalibData.h,v 1.11
2// 2022/03/22 03:45:33 fangwx Exp
3// $
4#ifndef CalibData_DedxCalibData_h
5#define CalibData_DedxCalibData_h
6
7/* @class CalibData_DedxCalibData_h
8
9 calibration data class
10 calibration infrastructure
11
12 @author huangb
13*/
14
15#include "CalibData/CalibBase1.h"
16#include "CalibData/CalibModel.h"
17#include <iostream>
18#include <vector>
19using namespace std;
20namespace CalibData {
21 class DedxCalibData : public CalibBase1 {
22
23 public:
25
26 virtual ~DedxCalibData() {}
27
28 // Re-implemented from DataObject
29 inline virtual const CLID& clID() const { return classID(); }
30
31 inline static const CLID& classID() { return CLID_Calib_DedxCal; }
32
33 virtual StatusCode update( CalibBase1& other, MsgStream* log );
34
35 // set the Calibration data by matrix element
36 void setddg( const double ddg, int i, int j );
37
38 void setggs( const double ggs, int i, int j );
39
40 void setwireg( const double wireg, int i );
41
42 void setgain( const double gain );
43
44 void setzdep( const double zdep, int i, int j );
45
46 void setresol( const double resol );
47
48 void setlayerg( const double layerg, int i );
49
50 void setenta( const double enta, int i, int j );
51
52 void setrunNO( const int run_NO );
53 void setrung( const double rung, int i );
54
55 // get the Calibration Data
56
57 double getddg( int i, int j ) const { return m_ddg[i][j]; }
58
59 double getggs( int i, int j ) const { return m_ggs[i][j]; }
60
61 double getwireg( int i ) const { return m_wireg[i]; }
62
63 double getgain() const { return m_gain; }
64
65 double getzdep( int i, int j ) const { return m_zdep[i][j]; }
66
67 double getresol() const { return m_resol; }
68
69 double getlayerg( int i ) const { return m_layerg[i]; }
70
71 double getenta( int i, int j ) const { return m_enta[i][j]; }
72
73 int getrunNO() const { return m_runNO; }
74
75 double getrung( int i, int j ) const {
76 if ( j >= m_runNO ) return 0;
77 if ( i == 0 ) return *( m_rung1.begin() + j );
78 if ( i == 1 ) return *( m_rung2.begin() + j );
79 if ( i == 2 ) return *( m_rung3.begin() + j );
80 if ( i == 3 ) return *( m_rung4.begin() + j );
81 if ( i == 4 ) return *( m_rung5.begin() + j );
82 if ( i == 5 ) return *( m_rung6.begin() + j );
83 std::cout << "Out of range i: " << i << ", returning an invalid value" << std::endl;
84 return -9999;
85 };
86
87 // add on June 4th,2009
88 double get_id_doca( int i ) const { return m_id_doca[i]; }
89 double get_iner_chi( int i ) const { return m_iner_chi[i]; }
90 double get_iner_gain( int i ) const { return m_iner_gain[i]; }
91 double get_iner_hits( int i ) const { return m_iner_hits[i]; }
92 double get_ip_eangle( int i ) const { return m_ip_eangle[i]; }
93 double get_out_chi( int i ) const { return m_out_chi[i]; }
94 double get_out_gain( int i ) const { return m_out_gain[i]; }
95 double get_out_hits( int i ) const { return m_out_hits[i]; }
96 double get_costheta( int i ) const { return m_costheta[i]; }
97 double get_t0( int i ) const { return m_t0[i]; }
98 double get_dedx( int i ) const { return m_dedx[i]; }
99 double get_hadron( int i ) const { return m_hadron[i]; }
100 int get_hadronNo() const { return m_hadronNo; }
101 int get_enanglesize() const { return m_enanglesize; }
102 double get_enangle( int i ) const { return m_enangle[i]; }
103
104 void set_id_doca( const double aa, int i ) { m_id_doca[i] = aa; }
105 void set_iner_chi( const double aa, int i ) { m_iner_chi[i] = aa; }
106 void set_iner_gain( const double aa, int i ) { m_iner_gain[i] = aa; }
107 void set_iner_hits( const double aa, int i ) { m_iner_hits[i] = aa; }
108 void set_ip_eangle( const double aa, int i ) { m_ip_eangle[i] = aa; }
109 void set_out_chi( const double aa, int i ) { m_out_chi[i] = aa; }
110 void set_out_gain( const double aa, int i ) { m_out_gain[i] = aa; }
111 void set_out_hits( const double aa, int i ) { m_out_hits[i] = aa; }
112 void set_costheta( const double aa, int i ) { m_costheta[i] = aa; }
113 void set_t0( const double aa, int i ) { m_t0[i] = aa; }
114 void set_dedx( const double aa, int i ) { m_dedx[i] = aa; }
115 void set_hadron( const double aa, int i ) { m_hadron[i] = aa; }
116 void set_hadronNo( int no ) { m_hadronNo = no; }
117 void set_enanglesize( int no ) { m_enanglesize = no; }
118 void set_enangle( const double aa, int i ) { m_enangle[i] = aa; }
119
120 void clear();
121
122 private:
123 int m_runNO;
124
125 double m_ddg[4][43];
126 double m_ggs[4][43];
127 double m_wireg[6796];
128 double m_gain;
129 double m_zdep[4][43];
130 double m_resol;
131 double m_layerg[43];
132 double m_enta[4][43];
133 // double m_rung[4][1000];
134 vector<double> m_rung1;
135 vector<double> m_rung2;
136 vector<double> m_rung3;
137 vector<double> m_rung4;
138 vector<double> m_rung5;
139 vector<double> m_rung6;
140 // vector <Double_t> rung
141
142 // add on June 4th,2009
143 double m_id_doca[1600];
144 double m_iner_chi[1600];
145 double m_iner_gain[1600];
146 double m_iner_hits[1600];
147 double m_ip_eangle[1600];
148 double m_out_chi[1600];
149 double m_out_gain[1600];
150 double m_out_hits[1600];
151 double m_costheta[80];
152 double m_t0[35];
153 double m_dedx[35];
154 double m_hadron[20];
155 double m_enangle[100];
156 int m_hadronNo;
157 int m_enanglesize;
158 };
159} // namespace CalibData
160
161#endif
NTuple::Item< double > m_t0
void setlayerg(const double layerg, int i)
void setggs(const double ggs, int i, int j)
void setenta(const double enta, int i, int j)
void setresol(const double resol)
void setddg(const double ddg, int i, int j)
void setwireg(const double wireg, int i)
void setgain(const double gain)
void setzdep(const double zdep, int i, int j)
void setrunNO(const int run_NO)
virtual StatusCode update(CalibBase1 &other, MsgStream *log)
void setrung(const double rung, int i)