BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
MdcCalibData.cxx
Go to the documentation of this file.
1#include "CalibData/Mdc/MdcCalibData.h"
2// typedef std::map<int, double>::value_type valType;
3#include "GaudiKernel/MsgStream.h"
4namespace CalibData {
6 newXtTreesBuf = NULL;
7 r2tTreesBuf = NULL;
8 newXtTreesArray = NULL;
9 r2tTreesArray = NULL;
10 for ( int layid = 0; layid < 43; layid++ )
11 {
12 m_r2t[layid] = NULL;
13 for ( int entr = 0; entr < 18; entr++ )
14 {
15 for ( int lr = 0; lr < 2; lr++ ) { m_newxt[layid][entr][lr] = NULL; } // end lr
16 } // end entr
17 } // end for layid
18 }
19
21 for ( int layid = 0; layid < 43; layid++ )
22 {
23 delete m_r2t[layid];
24 for ( int entr = 0; entr < 18; entr++ )
25 {
26 for ( int lr = 0; lr < 2; lr++ )
27 {
28 if ( m_newxt[layid][entr][lr] != NULL ) delete m_newxt[layid][entr][lr];
29 }
30 }
31 }
32 if ( newXtTreesBuf != NULL ) newXtTreesBuf->Clear();
33 if ( r2tTreesBuf != NULL ) r2tTreesBuf->Clear();
34 if ( newXtTreesArray != NULL ) delete newXtTreesArray;
35 if ( r2tTreesArray != NULL ) delete r2tTreesArray;
36 }
37
38 StatusCode MdcCalibData::update( CalibBase1& other, MsgStream* log ) {
39 MdcCalibData& other1 = dynamic_cast<MdcCalibData&>( other );
40 std::cout << "\n"
41 << "here is the update in the MdcCalConst" << std::endl;
42 CalibBase1::update( other, log );
43 clear();
44 m_xtmap = other1.m_xtmap;
45 m_t0 = other1.m_t0;
46 m_delt0 = other1.m_delt0;
47 m_qtpar0 = other1.m_qtpar0;
48 m_qtpar1 = other1.m_qtpar1;
49 m_sdmap = other1.m_sdmap;
50 return StatusCode::SUCCESS;
51 }
52
53 void MdcCalibData::setXtpar( int xtkey, double val ) {
54 m_xtmap.insert( valType( int( xtkey ), val ) );
55 }
56
57 void MdcCalibData::setNewXtpar( TObjArray* newXtTrees ) {
58 // put TObjArray to temp buffer
59 TBufferFile* tempBuf = new TBufferFile( TBuffer::kWrite );
60 newXtTrees->Streamer( *tempBuf );
61
62 // put content of buffer to array
63 newXtTreesBuf = new TBufferFile( TBuffer::kRead );
64 newXtTreesBuf->SetBuffer( tempBuf->Buffer(), tempBuf->BufferSize() );
65
66 newXtTreesArray = new TObjArray();
67 newXtTreesArray->Streamer( *newXtTreesBuf );
68 for ( int layid = 0; layid < 43; layid++ )
69 {
70 for ( int entr = 0; entr < 18; entr++ )
71 {
72 for ( int lr = 0; lr < 2; lr++ )
73 {
74 char newXtTreeName[20];
75 sprintf( newXtTreeName, "trNewXt%02d_%02d_%d", layid, entr, lr );
76 m_newxt[layid][entr][lr] = (TTree*)newXtTreesArray->FindObject( newXtTreeName );
77 ;
78 }
79 }
80 }
81 delete tempBuf;
82 }
83
84 void MdcCalibData::setR2tpar( TObjArray* r2tTrees ) {
85 // put TObjArray to temp buffer
86 TBufferFile* tempBuf = new TBufferFile( TBuffer::kWrite );
87 r2tTrees->Streamer( *tempBuf );
88
89 // put content of buffer to array
90 r2tTreesBuf = new TBufferFile( TBuffer::kRead );
91 r2tTreesBuf->SetBuffer( tempBuf->Buffer(), tempBuf->BufferSize() );
92
93 r2tTreesArray = new TObjArray();
94 r2tTreesArray->Streamer( *r2tTreesBuf );
95 for ( int layid = 0; layid < 43; layid++ )
96 {
97 char r2tTreeName[20];
98 sprintf( r2tTreeName, "r2t%02d", layid );
99 m_r2t[layid] = (TTree*)r2tTreesArray->FindObject( r2tTreeName );
100 ;
101 }
102 delete tempBuf;
103 }
104
105 void MdcCalibData::setT0( double val ) { m_t0.push_back( val ); }
106 void MdcCalibData::setDelT0( double val ) { m_delt0.push_back( val ); }
107
108 void MdcCalibData::setQtpar0( double val ) { m_qtpar0.push_back( val ); }
109
110 void MdcCalibData::setQtpar1( double val ) { m_qtpar1.push_back( val ); }
111
112 void MdcCalibData::setSdpar( int sdkey, double val ) {
113 m_sdmap.insert( valType( int( sdkey ), val ) );
114 }
115
116 // wulh updated on 08-3-24
117 double MdcCalibData::getXtpar( int layid, int entr, int lr, int order ) {
118 double xtpar = -999.0;
119 int key = getXtKey( layid, entr, lr, order );
120 if ( 1 == m_xtmap.count( key ) ) xtpar = m_xtmap[key];
121
122 return xtpar;
123 }
124
125 // yzhang add 2011-12-12
126 TTree* MdcCalibData::getNewXtpar( int layid, int entr, int lr ) {
127 return m_newxt[layid][entr][lr];
128 }
129
130 // yzhang add 2011-12-15
131 TTree* MdcCalibData::getR2tpar( int layid ) { return m_r2t[layid]; }
132
133 // wulh updated on 08-3-24
134 double MdcCalibData::getSdpar( int layid, int entr, int lr, int bin ) {
135 double sdpar = -999.0;
136 int key = getSdKey( layid, entr, lr, bin );
137 if ( 1 == m_sdmap.count( key ) ) { return m_sdmap[key]; }
138
139 return sdpar;
140 }
141
142 // wulh updated on 08-3-24
143 int MdcCalibData::getXtKey( int layid, int entr, int lr, int order ) {
144 int key;
145
146 key = ( ( layid << XTLAYER_INDEX ) & XTLAYER_MASK ) |
147 ( ( entr << XTENTRA_INDEX ) & XTENTRA_MASK ) | ( ( lr << XTLR_INDEX ) & XTLR_MASK ) |
148 ( ( order << XTORDER_INDEX ) & XTORDER_MASK );
149
150 return key;
151 }
152
153 // wulh updated on 08-3-24
154 int MdcCalibData::getSdKey( int layid, int entr, int lr, int bin ) {
155 int key;
156
157 key = ( ( layid << SDLAYER_INDEX ) & SDLAYER_MASK ) |
158 ( ( entr << SDENTRA_INDEX ) & SDENTRA_MASK ) | ( ( lr << SDLR_INDEX ) & SDLR_MASK ) |
159 ( ( bin << SDBIN_INDEX ) & SDBIN_MASK );
160
161 return key;
162 }
163
164 void MdcCalibData::setXtBegin() { m_xtiter = m_xtmap.begin(); }
165
166 int MdcCalibData::getNextXtpar( int& key, double& xtpar ) {
167 if ( m_xtiter != m_xtmap.end() )
168 {
169 key = ( *m_xtiter ).first;
170 xtpar = ( *m_xtiter ).second;
171 m_xtiter++;
172 return 1;
173 }
174 else return 0;
175 }
176
177 void MdcCalibData::setSdBegin() { m_sditer = m_sdmap.begin(); }
178
179 int MdcCalibData::getNextSdpar( int& key, double& sdpar ) {
180 if ( m_sditer != m_sdmap.end() )
181 {
182 key = ( *m_sditer ).first;
183 sdpar = ( *m_sditer ).second;
184 m_sditer++;
185 return 1;
186 }
187 else return 0;
188 }
190 m_xtmap.clear();
191 m_t0.clear();
192 m_delt0.clear();
193 m_qtpar0.clear();
194 m_qtpar1.clear();
195 m_sdmap.clear();
196 }
197
198} // namespace CalibData
std::map< int, double >::value_type valType
sprintf(cut, "kal_costheta0_em>-0.93&&kal_costheta0_em<0.93&&kal_pxy0_em>=0.05+%d*0.1&&kal_" "pxy0_em<0.15+%d*0.1&&NGch>=2", j, j)
*******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
virtual StatusCode update(CalibBase1 &obj, MsgStream *)
void setR2tpar(TObjArray *r2tTrees)
void setQtpar1(double val)
void setXtpar(int xtkey, double val)
void setNewXtpar(TObjArray *newXtTrees)
int getNextXtpar(int &key, double &xtpar)
virtual StatusCode update(CalibBase1 &other, MsgStream *log)
double getXtpar(int layid, int entr, int lr, int order)
TTree * getR2tpar(int layid)
void setSdpar(int sdkey, double val)
void setDelT0(double val)
double getSdpar(int layid, int entr, int lr, int bin)
int getXtKey(int layid, int entr, int lr, int order)
int getNextSdpar(int &key, double &sdpar)
int getSdKey(int layid, int entr, int lr, int bin)
TTree * getNewXtpar(int layid, int entr, int lr)
void setQtpar0(double val)