BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
TagParser3 Class Reference

#include <TagParser3.h>

Inheritance diagram for TagParser3:

Public Member Functions

 TagParser3 ()
 ~TagParser3 ()
StatusCode getVEntry (vector< int > &)
int getDstDataType ()
unsigned int getTagData0 ()
unsigned int getTagData1 ()
unsigned int getTagData2 ()
unsigned int getTagData3 ()
unsigned int getTagData4 ()
unsigned int getTagData5 ()
unsigned int getTagData6 ()
unsigned int getTagData7 ()
unsigned int getTagData8 ()
unsigned int getTagData9 ()
void setDstDataType (int t)
void setTagData0 (unsigned int t)
void setTagData1 (unsigned int t)
void setTagData2 (unsigned int t)
void setTagData3 (unsigned int t)
void setTagData4 (unsigned int t)
void setTagData5 (unsigned int t)
void setTagData6 (unsigned int t)
void setTagData7 (unsigned int t)
void setTagData8 (unsigned int t)
void setTagData9 (unsigned int t)
void setFileName (string name)
void setCriteria (vector< string > name)
void Tag1ToInt (unsigned int res, int &val1, int &val2, int &val3, int &val4)
void Tag2ToInt (unsigned int res, int &val1, int &val2, int &val3, int &val4, int &val5, int &val6)
vector< int > split (string str, string pattern, bool &all, bool &type)
Public Member Functions inherited from ITagParser
 ITagParser ()
 ~ITagParser ()

Detailed Description

Definition at line 15 of file TagParser3.h.

Constructor & Destructor Documentation

◆ TagParser3()

TagParser3::TagParser3 ( )

Definition at line 26 of file TagParser3.cxx.

26{}

◆ ~TagParser3()

TagParser3::~TagParser3 ( )

Definition at line 28 of file TagParser3.cxx.

28{}

Member Function Documentation

◆ getDstDataType()

int TagParser3::getDstDataType ( )
inlinevirtual

Implements ITagParser.

Definition at line 23 of file TagParser3.h.

23{ return m_dstDataType; }

◆ getTagData0()

unsigned int TagParser3::getTagData0 ( )
inlinevirtual

Implements ITagParser.

Definition at line 24 of file TagParser3.h.

24{ return m_tagData0; }

◆ getTagData1()

unsigned int TagParser3::getTagData1 ( )
inlinevirtual

Implements ITagParser.

Definition at line 25 of file TagParser3.h.

25{ return m_tagData1; }

◆ getTagData2()

unsigned int TagParser3::getTagData2 ( )
inlinevirtual

Implements ITagParser.

Definition at line 26 of file TagParser3.h.

26{ return m_tagData2; }

◆ getTagData3()

unsigned int TagParser3::getTagData3 ( )
inlinevirtual

Implements ITagParser.

Definition at line 27 of file TagParser3.h.

27{ return m_tagData3; }

◆ getTagData4()

unsigned int TagParser3::getTagData4 ( )
inlinevirtual

Implements ITagParser.

Definition at line 28 of file TagParser3.h.

28{ return m_tagData4; }

◆ getTagData5()

unsigned int TagParser3::getTagData5 ( )
inlinevirtual

Implements ITagParser.

Definition at line 29 of file TagParser3.h.

29{ return m_tagData5; }

◆ getTagData6()

unsigned int TagParser3::getTagData6 ( )
inlinevirtual

Implements ITagParser.

Definition at line 30 of file TagParser3.h.

30{ return m_tagData6; }

◆ getTagData7()

unsigned int TagParser3::getTagData7 ( )
inlinevirtual

Implements ITagParser.

Definition at line 31 of file TagParser3.h.

31{ return m_tagData7; }

◆ getTagData8()

unsigned int TagParser3::getTagData8 ( )
inlinevirtual

Implements ITagParser.

Definition at line 32 of file TagParser3.h.

32{ return m_tagData8; }

◆ getTagData9()

unsigned int TagParser3::getTagData9 ( )
inlinevirtual

Implements ITagParser.

Definition at line 33 of file TagParser3.h.

33{ return m_tagData9; }

◆ getVEntry()

StatusCode TagParser3::getVEntry ( std::vector< int > & ventry)
virtual

Implements ITagParser.

Definition at line 30 of file TagParser3.cxx.

30 {
31
32 std::map<int, unsigned int> Lc_modeTag, Ds_modeTag, D0_modeTag, Dp_modeTag;
33
34 Lc_modeTag[1000] = 0;
35 Lc_modeTag[1001] = 1;
36 Lc_modeTag[1002] = 2;
37 Lc_modeTag[1003] = 3;
38 Lc_modeTag[1004] = 4;
39 Lc_modeTag[1005] = 5;
40 Lc_modeTag[1030] = 6;
41 Lc_modeTag[1031] = 7;
42 Lc_modeTag[1032] = 8;
43 Lc_modeTag[1033] = 9;
44 Lc_modeTag[1034] = 10;
45 Lc_modeTag[1060] = 11;
46 Lc_modeTag[1061] = 12;
47 Lc_modeTag[1062] = 13;
48 Lc_modeTag[1063] = 14;
49 Lc_modeTag[1064] = 15;
50 Lc_modeTag[1065] = 16;
51
52 Ds_modeTag[400] = 1;
53 Ds_modeTag[401] = 0;
54 Ds_modeTag[402] = 2;
55 Ds_modeTag[403] = 13;
56 Ds_modeTag[404] = 3;
57 Ds_modeTag[405] = 4;
58 Ds_modeTag[406] = 5;
59 Ds_modeTag[407] = 14;
60 Ds_modeTag[420] = 28;
61 Ds_modeTag[421] = 6;
62 Ds_modeTag[422] = 24;
63 Ds_modeTag[423] = 25;
64 Ds_modeTag[424] = 26;
65 Ds_modeTag[425] = 27;
66 Ds_modeTag[440] = 7;
67 Ds_modeTag[441] = 8;
68 Ds_modeTag[442] = 20;
69 Ds_modeTag[450] = 21;
70 Ds_modeTag[451] = 22;
71 Ds_modeTag[452] = 23;
72 Ds_modeTag[460] = 9;
73 Ds_modeTag[461] = 15;
74 Ds_modeTag[470] = 16;
75 Ds_modeTag[471] = 17;
76 Ds_modeTag[480] = 10;
77 Ds_modeTag[481] = 11;
78 Ds_modeTag[500] = 29;
79 Ds_modeTag[501] = 18;
80 Ds_modeTag[502] = 12;
81 Ds_modeTag[503] = 19;
82 Ds_modeTag[504] = 30;
83
84 D0_modeTag[0] = 0;
85 D0_modeTag[1] = 1;
86 D0_modeTag[2] = 2;
87 D0_modeTag[3] = 3;
88 D0_modeTag[4] = 4;
89 D0_modeTag[5] = 5;
90 D0_modeTag[6] = 6;
91 D0_modeTag[7] = 7;
92 D0_modeTag[8] = 8;
93 D0_modeTag[9] = 8;
94 D0_modeTag[10] = 9;
95 D0_modeTag[50] = 10;
96 D0_modeTag[51] = 11;
97 D0_modeTag[100] = 12;
98 D0_modeTag[101] = 13;
99 D0_modeTag[102] = 14;
100 D0_modeTag[103] = 15;
101 D0_modeTag[104] = 16;
102 D0_modeTag[105] = 16;
103 D0_modeTag[106] = 17;
104 D0_modeTag[107] = 16;
105 D0_modeTag[108] = 16;
106 D0_modeTag[109] = 18;
107 D0_modeTag[110] = 19;
108 D0_modeTag[111] = 20;
109 D0_modeTag[112] = 16;
110 D0_modeTag[113] = 21;
111 D0_modeTag[114] = 22;
112 D0_modeTag[115] = 23;
113 D0_modeTag[116] = 24;
114 D0_modeTag[117] = 25;
115 D0_modeTag[118] = 26;
116 D0_modeTag[119] = 27;
117 D0_modeTag[120] = 28;
118 D0_modeTag[121] = 29;
119 D0_modeTag[122] = 30;
120 D0_modeTag[123] = 30;
121 D0_modeTag[124] = 30;
122 D0_modeTag[125] = 30;
123 D0_modeTag[126] = 30;
124 D0_modeTag[127] = 30;
125 D0_modeTag[128] = 30;
126 D0_modeTag[129] = 30;
127 D0_modeTag[130] = 30;
128 D0_modeTag[131] = 30;
129 D0_modeTag[132] = 30;
130 D0_modeTag[133] = 30;
131 D0_modeTag[134] = 30;
132 D0_modeTag[135] = 30;
133
134 Dp_modeTag[200] = 0;
135 Dp_modeTag[201] = 1;
136 Dp_modeTag[202] = 2;
137 Dp_modeTag[203] = 3;
138 Dp_modeTag[204] = 4;
139 Dp_modeTag[205] = 5;
140 Dp_modeTag[206] = 6;
141 Dp_modeTag[207] = 7;
142 Dp_modeTag[208] = 8;
143 Dp_modeTag[209] = 9;
144 Dp_modeTag[210] = 10;
145 Dp_modeTag[211] = 11;
146 Dp_modeTag[212] = 12;
147 Dp_modeTag[213] = 13;
148 Dp_modeTag[214] = 14;
149 Dp_modeTag[215] = 15;
150 Dp_modeTag[216] = 16;
151 Dp_modeTag[217] = 17;
152 Dp_modeTag[218] = 18;
153 Dp_modeTag[219] = 19;
154 Dp_modeTag[220] = 20;
155 Dp_modeTag[221] = 21;
156 Dp_modeTag[222] = 22;
157 Dp_modeTag[223] = 23;
158 Dp_modeTag[224] = 24;
159 Dp_modeTag[225] = 24;
160 Dp_modeTag[226] = 25;
161 Dp_modeTag[227] = 25;
162 Dp_modeTag[228] = 26;
163 Dp_modeTag[229] = 27;
164 Dp_modeTag[230] = 28;
165 Dp_modeTag[231] = 29;
166 Dp_modeTag[232] = 29;
167 Dp_modeTag[233] = 29;
168 Dp_modeTag[234] = 29;
169 Dp_modeTag[235] = 29;
170 Dp_modeTag[236] = 29;
171 Dp_modeTag[237] = 29;
172 Dp_modeTag[238] = 29;
173 Dp_modeTag[239] = 29;
174 Dp_modeTag[240] = 29;
175 Dp_modeTag[241] = 29;
176 Dp_modeTag[242] = 29;
177 Dp_modeTag[290] = 30;
178 Dp_modeTag[291] = 30;
179 Dp_modeTag[292] = 30;
180 Dp_modeTag[293] = 30;
181 Dp_modeTag[294] = 30;
182
183 int NumCriteria = m_criteria.size();
184 if ( NumCriteria > 27 )
185 {
186 std::cout << "the number of criterias too much !" << std::endl;
187 return StatusCode::SUCCESS;
188 }
189
190 vector<string> name_cut;
191 vector<int> CutLc, CutDs, CutD0, CutD;
192 CutLc.clear();
193 CutDs.clear();
194 CutD0.clear();
195 CutD.clear();
196 name_cut.clear();
197 bool allLc = false, allDs = false, allD0 = false, allD = false, typeLc = true, typeDs = true,
198 typeD0 = true, typeD = true;
199
200 string name;
201 int nPos_1, nPos_2, nPos_3;
202 string pat = ",";
203 map<string, int> Cut1, Cut2;
204 for ( int i = 0; i < NumCriteria; i++ )
205 {
206 std::cout << "TagFilterSvc::criteria " << i << " : " << m_criteria[i] << endl;
207 nPos_1 = m_criteria[i].find_first_of( "<" );
208 nPos_2 = m_criteria[i].find_last_of( "<" );
209 nPos_3 = m_criteria[i].find_first_of( "=" );
210 if ( nPos_3 != -1 )
211 {
212 name = m_criteria[i].substr( 0, nPos_3 );
213 name_cut.push_back( name );
214 if ( name == "tagLc" )
215 { CutLc = split( m_criteria[i].substr( nPos_3 + 1 ), pat, allLc, typeLc ); }
216 else if ( name == "tagDs" )
217 { CutDs = split( m_criteria[i].substr( nPos_3 + 1 ), pat, allDs, typeDs ); }
218 else if ( name == "tagD0" )
219 { CutD0 = split( m_criteria[i].substr( nPos_3 + 1 ), pat, allD0, typeD0 ); }
220 else if ( name == "tagD" )
221 { CutD = split( m_criteria[i].substr( nPos_3 + 1 ), pat, allD, typeD ); }
222 else
223 {
224 std::cout << "pls check your tag criterias" << std::endl;
225 return StatusCode::SUCCESS;
226 }
227 }
228 else if ( nPos_1 == -1 || nPos_2 == -1 || nPos_1 == nPos_2 )
229 {
230 std::cout << "pls check your criterias" << std::endl;
231 return StatusCode::SUCCESS;
232 }
233 else
234 {
235 name = m_criteria[i].substr( nPos_1 + 1, nPos_2 - nPos_1 - 1 );
236 name_cut.push_back( name );
237 Cut1[name] = atoi( m_criteria[i].substr( 0 ).c_str() );
238 Cut2[name] = atoi( m_criteria[i].substr( nPos_2 + 1 ).c_str() );
239 }
240 }
241
242 TFile* file = TFile::Open( m_fileName.c_str() );
243 TTree* t3 = (TTree*)file->Get( "Entries" );
244 UInt_t tagData0, tagData1, tagData2, tagData3, tagData4;
245 UInt_t tagData5, tagData6, tagData7, tagData8;
246 t3->SetBranchAddress( "tagData0", &tagData0 );
247 t3->SetBranchAddress( "tagData1", &tagData1 );
248 t3->SetBranchAddress( "tagData2", &tagData2 );
249 t3->SetBranchAddress( "tagData3", &tagData3 );
250 t3->SetBranchAddress( "tagData4", &tagData4 );
251 t3->SetBranchAddress( "tagData5", &tagData5 );
252 t3->SetBranchAddress( "tagData6", &tagData6 );
253 t3->SetBranchAddress( "tagData7", &tagData7 );
254 t3->SetBranchAddress( "tagData8", &tagData8 );
255
256 Int_t npip, npim, nkp, nkm, nlambda, nalambda;
257 Int_t npp, npm, nep, nem, nmup, nmum, neta, npi0, ngamma, nks;
258 Int_t nGoodCharged, nCharged, nGoodChargedp, nGoodChargedm, totCharged, nNeutrk, nTottrk;
259
260 for ( int i = 0; i < t3->GetEntries(); i++ )
261 {
262 t3->GetEntry( i );
263 nGoodCharged = tagData0;
264 Tag1ToInt( tagData1, nNeutrk, nTottrk, ngamma, npi0 );
265 Tag2ToInt( tagData2, npip, npim, nkp, nkm, npp, npm );
266 Tag2ToInt( tagData3, nlambda, nalambda, nep, nem, nmup, nmum );
267 Tag2ToInt( tagData4, nks, neta, nCharged, nGoodChargedp, nGoodChargedm, totCharged );
268
269 unsigned int flag = 0;
270 bool isTag = false;
271 int tagvalue = -1;
272 for ( unsigned int j = 0; j < name_cut.size(); j++ )
273 {
274 if ( name_cut[j] == "tagLc" )
275 {
276 if ( tagData5 > 0 )
277 {
278 if ( !( tagData5 & ( 1 << 31 ) ) && typeLc ) break;
279 if ( !allLc )
280 {
281 isTag = false;
282 for ( unsigned int k = 0; k < CutLc.size(); k++ )
283 {
284 if ( tagData5 & ( 1 << Lc_modeTag[CutLc[k]] ) )
285 {
286 isTag = true;
287 break;
288 }
289 }
290 if ( !isTag ) break;
291 }
292 }
293 else { break; }
294 }
295 else if ( name_cut[j] == "tagDs" )
296 {
297 if ( tagData6 > 0 )
298 {
299 if ( !( tagData6 & ( 1 << 31 ) ) && typeDs ) break;
300 if ( !allDs )
301 {
302 isTag = false;
303 for ( unsigned int k = 0; k < CutDs.size(); k++ )
304 {
305 if ( tagData6 & ( 1 << Ds_modeTag[CutDs[k]] ) )
306 {
307 isTag = true;
308 break;
309 }
310 }
311 if ( !isTag ) break;
312 }
313 }
314 else { break; }
315 }
316 else if ( name_cut[j] == "tagD0" )
317 {
318 if ( tagData7 > 0 )
319 {
320 if ( !( tagData7 & ( 1 << 31 ) ) && typeD0 ) break;
321 if ( !allD0 )
322 {
323 isTag = false;
324 for ( unsigned int k = 0; k < CutD0.size(); k++ )
325 {
326 if ( tagData7 & ( 1 << D0_modeTag[CutD0[k]] ) )
327 {
328 isTag = true;
329 break;
330 }
331 }
332 if ( !isTag ) break;
333 }
334 }
335 else { break; }
336 }
337 else if ( name_cut[j] == "tagD" )
338 {
339 if ( tagData8 > 0 )
340 {
341 if ( !( tagData8 & ( 1 << 31 ) ) && typeD ) break;
342 if ( !allD )
343 {
344 isTag = false;
345 for ( unsigned int k = 0; k < CutD.size(); k++ )
346 {
347 if ( tagData8 & ( 1 << Dp_modeTag[CutD[k]] ) )
348 {
349 isTag = true;
350 break;
351 }
352 }
353 if ( !isTag ) break;
354 }
355 }
356 else { break; }
357 }
358 else
359 {
360 if ( name_cut[j] == "NumOfGoodCh" ) { tagvalue = nGoodCharged; }
361 else if ( name_cut[j] == "NumOfNeutrk" ) { tagvalue = nNeutrk; }
362 else if ( name_cut[j] == "NumOfTottrk" ) { tagvalue = nTottrk; }
363 else if ( name_cut[j] == "NumOfGamma" ) { tagvalue = ngamma; }
364 else if ( name_cut[j] == "NumOfPion0" ) { tagvalue = npi0; }
365 else if ( name_cut[j] == "NumOfPionp" ) { tagvalue = npip; }
366 else if ( name_cut[j] == "NumOfPionm" ) { tagvalue = npim; }
367 else if ( name_cut[j] == "NumOfKaonp" ) { tagvalue = nkp; }
368 else if ( name_cut[j] == "NumOfKaonm" ) { tagvalue = nkm; }
369 else if ( name_cut[j] == "NumOfProtonp" ) { tagvalue = npp; }
370 else if ( name_cut[j] == "NumOfProtonm" ) { tagvalue = npm; }
371 else if ( name_cut[j] == "NumOfLambda" ) { tagvalue = nlambda; }
372 else if ( name_cut[j] == "NumOfALambda" ) { tagvalue = nalambda; }
373 else if ( name_cut[j] == "NumOfElectronp" ) { tagvalue = nep; }
374 else if ( name_cut[j] == "NumOfElectronm" ) { tagvalue = nem; }
375 else if ( name_cut[j] == "NumOfMuonp" ) { tagvalue = nmup; }
376 else if ( name_cut[j] == "NumOfMuonm" ) { tagvalue = nmum; }
377 else if ( name_cut[j] == "NumOfKs" ) { tagvalue = nks; }
378 else if ( name_cut[j] == "NumOfEta" ) { tagvalue = neta; }
379 else if ( name_cut[j] == "NumOfCharged" ) { tagvalue = nCharged; }
380 else if ( name_cut[j] == "NumOfGoodChp" ) { tagvalue = nGoodChargedp; }
381 else if ( name_cut[j] == "NumOfGoodChm" ) { tagvalue = nGoodChargedm; }
382 else if ( name_cut[j] == "TotCharged" ) { tagvalue = totCharged; }
383 else
384 {
385 cout << "pls check the name of your criteria !" << endl;
386 break;
387 }
388 if ( tagvalue >= Cut2[name_cut[j]] || tagvalue <= Cut1[name_cut[j]] ) break;
389 }
390 flag++;
391 }
392 if ( flag == name_cut.size() ) { ventry.push_back( i ); }
393 }
394 CutLc.clear();
395 CutDs.clear();
396 CutD0.clear();
397 CutD.clear();
398 name_cut.clear();
399 delete file;
400 return StatusCode::SUCCESS;
401}
char * file
Definition DQA_TO_DB.cxx:16
void Tag1ToInt(unsigned int res, int &val1, int &val2, int &val3, int &val4)
vector< int > split(string str, string pattern, bool &all, bool &type)
void Tag2ToInt(unsigned int res, int &val1, int &val2, int &val3, int &val4, int &val5, int &val6)
char * c_str(Index i)

◆ setCriteria()

void TagParser3::setCriteria ( vector< string > name)
inlinevirtual

Implements ITagParser.

Definition at line 51 of file TagParser3.h.

51{ m_criteria = name; }

◆ setDstDataType()

void TagParser3::setDstDataType ( int t)
inlinevirtual

Implements ITagParser.

Definition at line 35 of file TagParser3.h.

35{ m_dstDataType = t; }
int t()
Definition t.c:1

◆ setFileName()

void TagParser3::setFileName ( string name)
inlinevirtual

Implements ITagParser.

Definition at line 47 of file TagParser3.h.

47 {
48 m_fileName = name;
49 std::cout << "filename is " << m_fileName << std::endl;
50 }

◆ setTagData0()

void TagParser3::setTagData0 ( unsigned int t)
inlinevirtual

Implements ITagParser.

Definition at line 36 of file TagParser3.h.

36{ m_tagData0 = t; }

◆ setTagData1()

void TagParser3::setTagData1 ( unsigned int t)
inlinevirtual

Implements ITagParser.

Definition at line 37 of file TagParser3.h.

37{ m_tagData1 = t; }

◆ setTagData2()

void TagParser3::setTagData2 ( unsigned int t)
inlinevirtual

Implements ITagParser.

Definition at line 38 of file TagParser3.h.

38{ m_tagData2 = t; }

◆ setTagData3()

void TagParser3::setTagData3 ( unsigned int t)
inlinevirtual

Implements ITagParser.

Definition at line 39 of file TagParser3.h.

39{ m_tagData3 = t; }

◆ setTagData4()

void TagParser3::setTagData4 ( unsigned int t)
inlinevirtual

Implements ITagParser.

Definition at line 40 of file TagParser3.h.

40{ m_tagData4 = t; }

◆ setTagData5()

void TagParser3::setTagData5 ( unsigned int t)
inlinevirtual

Implements ITagParser.

Definition at line 41 of file TagParser3.h.

41{ m_tagData5 = t; }

◆ setTagData6()

void TagParser3::setTagData6 ( unsigned int t)
inlinevirtual

Implements ITagParser.

Definition at line 42 of file TagParser3.h.

42{ m_tagData6 = t; }

◆ setTagData7()

void TagParser3::setTagData7 ( unsigned int t)
inlinevirtual

Implements ITagParser.

Definition at line 43 of file TagParser3.h.

43{ m_tagData7 = t; }

◆ setTagData8()

void TagParser3::setTagData8 ( unsigned int t)
inlinevirtual

Implements ITagParser.

Definition at line 44 of file TagParser3.h.

44{ m_tagData8 = t; }

◆ setTagData9()

void TagParser3::setTagData9 ( unsigned int t)
inlinevirtual

Implements ITagParser.

Definition at line 45 of file TagParser3.h.

45{ m_tagData9 = t; }

◆ split()

vector< int > TagParser3::split ( string str,
string pattern,
bool & all,
bool & type )

Definition at line 419 of file TagParser3.cxx.

419 {
420 vector<int> result;
421 unsigned int pos;
422 type = true;
423 all = false;
424 str += pattern;
425
426 for ( unsigned int i = 0; i < str.size(); i++ )
427 {
428 pos = str.find( pattern, i );
429 if ( pos < str.size() )
430 {
431 string val = str.substr( i, pos - i );
432 if ( val == "all" ) { all = true; }
433 else if ( val == "type0" ) { type = false; }
434 else { result.push_back( atoi( val.c_str() ) ); }
435 i = pos + pattern.size() - 1;
436 }
437 }
438 return result;
439}

Referenced by getVEntry().

◆ Tag1ToInt()

void TagParser3::Tag1ToInt ( unsigned int res,
int & val1,
int & val2,
int & val3,
int & val4 )

Definition at line 402 of file TagParser3.cxx.

402 {
403 val1 = ( res >> 24 ) & 0xFF;
404 val2 = ( res >> 16 ) & 0xFF;
405 val3 = ( res >> 8 ) & 0xFF;
406 val4 = res & 0xFF;
407 return;
408}

Referenced by getVEntry().

◆ Tag2ToInt()

void TagParser3::Tag2ToInt ( unsigned int res,
int & val1,
int & val2,
int & val3,
int & val4,
int & val5,
int & val6 )

Definition at line 409 of file TagParser3.cxx.

410 {
411 val1 = ( res >> 26 ) & 0x3F;
412 val2 = ( res >> 20 ) & 0x3F;
413 val3 = ( res >> 15 ) & 0x1F;
414 val4 = ( res >> 10 ) & 0x1F;
415 val5 = ( res >> 5 ) & 0x1F;
416 val6 = res & 0x1F;
417 return;
418}

Referenced by getVEntry().


The documentation for this class was generated from the following files: