BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
MdcCalibConst.cxx
Go to the documentation of this file.
3
4#include <iostream>
5
6using namespace std;
7
8typedef map<int, double>::value_type valType;
9
11
13 m_xtmap = calconst.m_xtmap;
14 m_t0 = calconst.m_t0;
15 m_delt0 = calconst.m_delt0;
16 m_qtpar0 = calconst.m_qtpar0;
17 m_qtpar1 = calconst.m_qtpar1;
18 m_sdmap = calconst.m_sdmap;
19}
20
22 int lay;
23 int lr;
24 int entr;
25 int ord;
26 int key;
27 double val;
28 for ( lay = 0; lay < MdcCalNLayer; lay++ )
29 {
30 for ( entr = 0; entr < MdcCalNENTRXT; entr++ )
31 {
32 for ( lr = 0; lr < MdcCalLR; lr++ )
33 {
34 for ( ord = 0; ord < MdcCalXtNPars; ord++ )
35 {
36 key = getXtKey( lay, entr, lr, ord );
37 if ( 1 == ord ) { val = 0.03; }
38 else if ( 6 == ord ) { val = 999.0; }
39 else { val = 0.0; }
40 m_xtmap.insert( valType( key, val ) );
41 }
42 }
43 }
44 }
45
46 int wir;
47 double t0 = 0.0;
48 double dt0 = 0.0;
49 for ( wir = 0; wir < MdcCalTotCell; wir++ )
50 {
51 m_t0.push_back( t0 );
52 m_delt0.push_back( dt0 );
53 }
54
55 double qtpar0 = 0.0;
56 double qtpar1 = 0.0;
57 for ( lay = 0; lay < MdcCalNLayer; lay++ )
58 {
59 m_qtpar0.push_back( qtpar0 );
60 m_qtpar1.push_back( qtpar1 );
61 }
62
63 int bin;
64 double sdpar = 0.16;
65 for ( lay = 0; lay < MdcCalNLayer; lay++ )
66 {
67 for ( entr = 0; entr < MdcCalNENTRSD; entr++ )
68 {
69 for ( lr = 0; lr < 2; lr++ )
70 {
71 for ( bin = 0; bin < MdcCalSdNBIN; bin++ )
72 {
73 key = getSdKey( lay, entr, lr, ord );
74 m_sdmap.insert( valType( key, sdpar ) );
75 }
76 }
77 }
78 }
79}
80
81void MdcCalibConst::fillXtpar( int key, double val ) { m_xtmap.insert( valType( key, val ) ); }
82
83void MdcCalibConst::resetXtpar( int lay, int entr, int lr, int order, double val ) {
84 int key = getXtKey( lay, entr, lr, order );
85 m_xtmap[key] = val;
86}
87
88double MdcCalibConst::getXtpar( int lay, int entr, int lr, int order ) {
89 double xtpar = -999.0;
90 int key = getXtKey( lay, entr, lr, order );
91 if ( 1 == m_xtmap.count( key ) ) xtpar = m_xtmap[key];
92
93 return xtpar;
94}
95
96int MdcCalibConst::getXtKey( int lay, int entr, int lr, int order ) const {
97 int key;
98
99 key = ( ( lay << XTLAYER_INDEX ) & XTLAYER_MASK ) |
100 ( ( entr << XTENTRA_INDEX ) & XTENTRA_MASK ) | ( ( lr << XTLR_INDEX ) & XTLR_MASK ) |
101 ( ( order << XTORDER_INDEX ) & XTORDER_MASK );
102
103 return key;
104}
105
106void MdcCalibConst::setXtBegin() { m_xtiter = m_xtmap.begin(); }
107
108int MdcCalibConst::getNextXtpar( int& key, double& xtpar ) {
109 if ( m_xtiter != m_xtmap.end() )
110 {
111 key = ( *m_xtiter ).first;
112 xtpar = ( *m_xtiter ).second;
113 m_xtiter++;
114 return 1;
115 }
116 else return 0;
117}
118
119void MdcCalibConst::fillQtpar( int order, double val ) {
120 if ( 0 == order ) { m_qtpar0.push_back( val ); }
121 else if ( 1 == order ) { m_qtpar1.push_back( val ); }
122 else { cout << "Order of Qtpar Error in fillQtpar()!" << endl; }
123}
124
125void MdcCalibConst::resetQtpar( int lay, int order, double val ) {
126 if ( 0 == order ) { m_qtpar0[lay] = val; }
127 else if ( 1 == order ) { m_qtpar1[lay] = val; }
128 else { cout << "Order of Qtpar Error in resetQtpar()!" << endl; }
129}
130
131double MdcCalibConst::getQtpar( int lay, int order ) const {
132 if ( 0 == order ) { return m_qtpar0[lay]; }
133 else if ( 1 == order ) { return m_qtpar1[lay]; }
134 else
135 {
136 cout << "Order of Qtpar Error in getQtpar()!" << endl;
137 return -9999.0;
138 }
139}
140
141void MdcCalibConst::fillSdpar( int key, double val ) { m_sdmap.insert( valType( key, val ) ); }
142
143void MdcCalibConst::resetSdpar( int lay, int entr, int lr, int bin, double val ) {
144 int key = getSdKey( lay, entr, lr, bin );
145 m_sdmap[key] = val;
146}
147
148double MdcCalibConst::getSdpar( int lay, int entr, int lr, int bin ) {
149
150 double sdpar = -999.0;
151 int key = getSdKey( lay, entr, lr, bin );
152 if ( 1 == m_sdmap.count( key ) ) { return m_sdmap[key]; }
153
154 return sdpar;
155}
156
157int MdcCalibConst::getSdKey( int lay, int entr, int lr, int bin ) const {
158 int key;
159
160 key = ( ( lay << SDLAYER_INDEX ) & SDLAYER_MASK ) |
161 ( ( entr << SDENTRA_INDEX ) & SDENTRA_MASK ) | ( ( lr << SDLR_INDEX ) & SDLR_MASK ) |
162 ( ( bin << SDBIN_INDEX ) & SDBIN_MASK );
163
164 return key;
165}
166
167void MdcCalibConst::setSdBegin() { m_sditer = m_sdmap.begin(); }
168
169int MdcCalibConst::getNextSdpar( int& key, double& sdpar ) {
170 if ( m_sditer != m_sdmap.end() )
171 {
172 key = ( *m_sditer ).first;
173 sdpar = ( *m_sditer ).second;
174 m_sditer++;
175 return 1;
176 }
177 else return 0;
178}
179
181 m_xtmap.clear();
182 m_t0.clear();
183 m_delt0.clear();
184 m_qtpar0.clear();
185 m_qtpar1.clear();
186 m_sdmap.clear();
187}
std::map< int, double >::value_type valType
*******INTEGER m_nBinMax INTEGER m_NdiMax !No of bins in histogram for cell exploration division $ !Last vertex $ !Last active cell $ !Last cell in buffer $ !No of sampling when dividing cell $ !No of function total $ !Flag for random ceel for $ !Flag for type of for WtMax $ !Flag which decides whether vertices are included in the sampling $ entire domain is hyp !Maximum effective eevents per bin
Definition FoamA.h:85
const int MdcCalNLayer
Definition MdcCalParams.h:6
const int MdcCalNENTRSD
const int MdcCalXtNPars
const int MdcCalSdNBIN
const int MdcCalNENTRXT
const int MdcCalTotCell
Definition MdcCalParams.h:9
const int MdcCalLR
*************DOUBLE PRECISION m_pi *DOUBLE PRECISION m_HvecTau2 DOUBLE PRECISION m_HvClone2 DOUBLE PRECISION m_gamma1 DOUBLE PRECISION m_gamma2 DOUBLE PRECISION m_thet1 DOUBLE PRECISION m_thet2 INTEGER m_IFPHOT *COMMON c_Taupair $ !Spin Polarimeter vector first Tau $ !Spin Polarimeter vector second Tau $ !Clone Spin Polarimeter vector first Tau $ !Clone Spin Polarimeter vector second Tau $ !Random Euler angle for cloning st tau $ !Random Euler angle for cloning st tau $ !Random Euler angle for cloning st tau $ !Random Euler angle for cloning nd tau $ !Random Euler angle for cloning nd tau $ !Random Euler angle for cloning nd tau $ !phi of HvecTau1 $ !theta of HvecTau1 $ !phi of HvecTau2 $ !theta of HvecTau2 $ !super key
Definition Taupair.h:42
int getXtKey(int lay, int entr, int lr, int order) const
void fillXtpar(int key, double val)
void resetSdpar(int lay, int entr, int lr, int bin, double val)
void resetXtpar(int lay, int entr, int lr, int order, double val)
double getXtpar(int lay, int entr, int lr, int order)
void fillQtpar(int order, double val)
double getQtpar(int lay, int order) const
int getNextXtpar(int &key, double &xtpar)
void resetQtpar(int lay, int order, double val)
double getSdpar(int lay, int entr, int lr, int bin)
int getSdKey(int lay, int entr, int lr, int bin) const
int getNextSdpar(int &key, double &sdpar)
void fillSdpar(int key, double val)