BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
MdcCalibConst.cpp
Go to the documentation of this file.
2
3#include <iostream>
4
5typedef std::map<int, double>::value_type valType;
6
8 // constructor
9}
10
12 m_xtmap = calconst.m_xtmap;
13 m_t0 = calconst.m_t0;
14 m_delt0 = calconst.m_delt0;
15 // m_wshift = calconst.m_wshift;
16 // m_delwshift = calconst.m_delwshift;
17 m_qtpar0 = calconst.m_qtpar0;
18 m_qtpar1 = calconst.m_qtpar1;
19 m_sdmap = calconst.m_sdmap;
20}
21
22void MdcCalibConst::fillXtpar( int key, double val ) { m_xtmap.insert( valType( key, val ) ); }
23
24void MdcCalibConst::resetXtpar( int lay, int entr, int lr, int order, double val ) {
25 int key = getXtKey( lay, entr, lr, order );
26 m_xtmap[key] = val;
27}
28
29double MdcCalibConst::getXtpar( int lay, int entr, int lr, int order ) {
30 double xtpar = -999.0;
31 int key = getXtKey( lay, entr, lr, order );
32 if ( 1 == m_xtmap.count( key ) ) xtpar = m_xtmap[key];
33
34 return xtpar;
35}
36
37int MdcCalibConst::getXtKey( int lay, int entr, int lr, int order ) const {
38 int key;
39
40 key = ( ( lay << XTLAYER_INDEX ) & XTLAYER_MASK ) |
41 ( ( entr << XTENTRA_INDEX ) & XTENTRA_MASK ) | ( ( lr << XTLR_INDEX ) & XTLR_MASK ) |
42 ( ( order << XTORDER_INDEX ) & XTORDER_MASK );
43
44 return key;
45}
46
47void MdcCalibConst::setXtBegin() { m_xtiter = m_xtmap.begin(); }
48
49int MdcCalibConst::getNextXtpar( int& key, double& xtpar ) {
50 if ( m_xtiter != m_xtmap.end() )
51 {
52 key = ( *m_xtiter ).first;
53 xtpar = ( *m_xtiter ).second;
54 m_xtiter++;
55 return 1;
56 }
57 else return 0;
58}
59
60void MdcCalibConst::fillQtpar( int order, double val ) {
61 if ( 0 == order ) { m_qtpar0.push_back( val ); }
62 else if ( 1 == order ) { m_qtpar1.push_back( val ); }
63 else { std::cout << "Order of Qtpar Error in fillQtpar()!" << std::endl; }
64}
65
66void MdcCalibConst::resetQtpar( int lay, int order, double val ) {
67 if ( 0 == order ) { m_qtpar0[lay] = val; }
68 else if ( 1 == order ) { m_qtpar1[lay] = val; }
69 else { std::cout << "Order of Qtpar Error in resetQtpar()!" << std::endl; }
70}
71
72double MdcCalibConst::getQtpar( int lay, int order ) const {
73 if ( 0 == order ) { return m_qtpar0[lay]; }
74 else if ( 1 == order ) { return m_qtpar1[lay]; }
75 else
76 {
77 std::cout << "Order of Qtpar Error in getQtpar()!" << std::endl;
78 return -9999.0;
79 }
80}
81
82void MdcCalibConst::fillSdpar( int key, double val ) { m_sdmap.insert( valType( key, val ) ); }
83
84void MdcCalibConst::resetSdpar( int lay, int entr, int lr, int bin, double val ) {
85 int key = getSdKey( lay, entr, lr, bin );
86 m_sdmap[key] = val;
87}
88
89double MdcCalibConst::getSdpar( int lay, int entr, int lr, int bin ) {
90
91 double sdpar = -999.0;
92 int key = getSdKey( lay, entr, lr, bin );
93 if ( 1 == m_sdmap.count( key ) ) { return m_sdmap[key]; }
94
95 return sdpar;
96}
97
98int MdcCalibConst::getSdKey( int lay, int entr, int lr, int bin ) const {
99 int key;
100
101 key = ( ( lay << SDLAYER_INDEX ) & SDLAYER_MASK ) |
102 ( ( entr << SDENTRA_INDEX ) & SDENTRA_MASK ) | ( ( lr << SDLR_INDEX ) & SDLR_MASK ) |
103 ( ( bin << SDBIN_INDEX ) & SDBIN_MASK );
104
105 return key;
106}
107
108void MdcCalibConst::setSdBegin() { m_sditer = m_sdmap.begin(); }
109
110int MdcCalibConst::getNextSdpar( int& key, double& sdpar ) {
111 if ( m_sditer != m_sdmap.end() )
112 {
113 key = ( *m_sditer ).first;
114 sdpar = ( *m_sditer ).second;
115 m_sditer++;
116 return 1;
117 }
118 else return 0;
119}
120
122 m_xtmap.clear();
123 m_t0.clear();
124 m_delt0.clear();
125 // m_wshift.clear();
126 // m_delwshift.clear();
127 m_qtpar0.clear();
128 m_qtpar1.clear();
129 m_sdmap.clear();
130}
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
*************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)