BOSS 7.0.9
BESIII Offline Software System
Loading...
Searching...
No Matches
LTagSetAlg Class Reference

#include <LTagSetAlg.h>

+ Inheritance diagram for LTagSetAlg:

Public Member Functions

 LTagSetAlg (const std::string &name, ISvcLocator *pSvcLocator)
 
StatusCode initialize ()
 
StatusCode execute ()
 
StatusCode finalize ()
 
unsigned int IntToTag1 (int val1, int val2, int val3, int val4)
 
unsigned int IntToTag2 (int val1, int val2, int val3, int val4, int val5, int val6)
 

Detailed Description

Definition at line 15 of file LTagSetAlg.h.

Constructor & Destructor Documentation

◆ LTagSetAlg()

LTagSetAlg::LTagSetAlg ( const std::string &  name,
ISvcLocator *  pSvcLocator 
)

Definition at line 45 of file LTagSetAlg.cxx.

45 :
46 Algorithm(name, pSvcLocator) {
47 }

Member Function Documentation

◆ execute()

StatusCode LTagSetAlg::execute ( )

Definition at line 171 of file LTagSetAlg.cxx.

171 {
172
173 int nGoodCharged = 0; //1
174 int nGoodChargedp = 0; //2
175 int nGoodChargedm = 0; //3
176 int nCharged = 0; //4
177 int nNeutrk = 0; //5
178 int nTottrk = 0; //6
179 int totCharged = 0; //7
180 int npionp = 0; //8
181 int npionm = 0; //9
182 int nprotonp = 0; //10
183 int nprotonm = 0; //11
184 int nkaonp = 0; //12
185 int nkaonm = 0; //13
186 int nlambda = 0; //14
187 int nalambda= 0; //15
188 int nks = 0; //16
189 int ngamma = 0; //17
190 int neta = 0; //18
191 int npi0 = 0; //19
192 int nmuonp = 0; //20
193 int nmuonm = 0; //21
194 int nelectronp = 0; //22
195 int nelectronm = 0; //23
196
197 Hep3Vector xorigin(0,0,0);
198 if(m_vtxsvc->isVertexValid()){
199 double* dbv = m_vtxsvc->PrimaryVertex();
200 xorigin.setX(dbv[0]);
201 xorigin.setY(dbv[1]);
202 xorigin.setZ(dbv[2]);
203 }
204
205 SmartDataPtr<EvtRecEvent> evtRecEvent(eventSvc(), EventModel::EvtRec::EvtRecEvent);
206 SmartDataPtr<EvtRecTrackCol> evtRecTrkCol(eventSvc(), EventModel::EvtRec::EvtRecTrackCol);
207
208 nCharged = evtRecEvent->totalCharged();
209 nNeutrk = evtRecEvent->totalNeutral();
210 nTottrk = evtRecEvent->totalTracks();
211
212 // Good charged track selection
213 vector<int> iGood;
214 iGood.clear();
215 for ( Int_t iCharge = 0; iCharge < evtRecEvent->totalCharged(); ++iCharge ) {
216 EvtRecTrackIterator itTrk=evtRecTrkCol->begin() + iCharge;
217 if(!(*itTrk)->isMdcTrackValid()) continue;
218 RecMdcTrack *mdcTrk = (*itTrk)->mdcTrack();
219 double theta = mdcTrk->theta();
220 HepVector a = mdcTrk->helix();
221 HepSymMatrix Ea = mdcTrk->err();
222 HepPoint3D point0(0.,0.,0.); // the initial point for MDC reconstruction
223 HepPoint3D IP(xorigin[0],xorigin[1],xorigin[2]);
224 VFHelix helixip(point0,a,Ea);
225 helixip.pivot(IP);
226 HepVector vecipa = helixip.a();
227 double Rvxy0=fabs(vecipa[0]); //the nearest distance to IP in xy plane
228 double Rvz0=vecipa[3]; //the nearest distance to IP in z direction
229 double Rvphi0=vecipa[1];
230 if(fabs(Rvxy0) >= 1.0) continue;
231 if(fabs(Rvz0) >= 10.0) continue;
232 if(fabs(cos(theta))>=0.93) continue;
233 if(mdcTrk->charge() > 0) nGoodChargedp++;
234 if(mdcTrk->charge() < 0) nGoodChargedm++;
235 ++nGoodCharged;
236 totCharged +=mdcTrk->charge();
237 iGood.push_back(iCharge);
238 }
239 // std::cout <<"iEvt: "<<iEvt <<" nGoodCharged: "<<nGoodCharged<<std::endl;
240
241 // get photons
242 for(int i = evtRecEvent->totalCharged(); i< evtRecEvent->totalTracks(); i++) {
243 EvtRecTrackIterator iTrk=evtRecTrkCol->begin() + i;
244 if((*iTrk)->isEmcShowerValid()){
245 RecEmcShower* emcShower = (*iTrk)->emcShower();
246 if ( (emcShower->energy()>0.025) && (emcShower->time()>0) && (emcShower->time()<14) && ( ( (abs(cos(emcShower->theta()))<0.80) && (emcShower->energy()>0.025) ) || ( (abs(cos(emcShower->theta()))<0.92) && (abs(cos(emcShower->theta()))>0.86) && (emcShower->energy()>0.050) ) ) ){
247 ngamma++;
248 }
249 }
250 }
251
252 // get tracks
253 for (int i=0;i<iGood.size();i++){
254 EvtRecTrackIterator iTrk = evtRecTrkCol->begin() + iGood[i];
255 RecMdcKalTrack* mdcKalTrack = (*iTrk)->mdcKalTrack();
256
257 // set up pid (but only make very rough pid cuts)
259 pid->init();
260 pid->setMethod(pid->methodProbability());
261 pid->setRecTrack(*iTrk);
262 pid->usePidSys(pid->useDedx() | pid->useTof1() | pid->useTof2());
263 pid->identify(pid->onlyPion() | pid->onlyKaon() | pid->onlyProton() | pid->onlyElectron() | pid->onlyMuon());
264 pid->calculate();
265 if(!(pid->IsPidInfoValid())) continue;
266
267 if ((pid->probPion() > pid->probKaon()) && (pid->probPion() > pid->probProton())){
268 if (mdcKalTrack->charge() > 0) npionp++;
269 if (mdcKalTrack->charge() < 0) npionm++;
270 }
271
272 if ((pid->probKaon() > pid->probPion()) && (pid->probKaon() > pid->probProton())){
273 if (mdcKalTrack->charge() > 0) nkaonp++;
274 if (mdcKalTrack->charge() < 0) nkaonm++;
275 }
276
277 if ((pid->probProton() > pid->probPion()) && (pid->probProton() > pid->probKaon())){
278 if (mdcKalTrack->charge() > 0) nprotonp++;
279 if (mdcKalTrack->charge() < 0) nprotonm++;
280 }
281
282 if (pid->probElectron() > 1.0e-5){
283 if (mdcKalTrack->charge() > 0) nelectronp++;
284 if (mdcKalTrack->charge() < 0) nelectronm++;
285 }
286
287 if (pid->probMuon() > 1.0e-5){
288 if (mdcKalTrack->charge() > 0) nmuonp++;
289 if (mdcKalTrack->charge() < 0) nmuonm++;
290 }
291 }
292
293 // get etas, eta --> gamma gamma
294 SmartDataPtr<EvtRecEtaToGGCol> evtRecEtaToGGCol(eventSvc(), EventModel::EvtRec::EvtRecEtaToGGCol);
295 for (EvtRecEtaToGGCol::iterator iEta = evtRecEtaToGGCol->begin(); iEta != evtRecEtaToGGCol->end(); iEta++){
296 if ((((*iEta)->chisq() < 2500) && ((*iEta)->unconMass() > 0.40) && ((*iEta)->unconMass() < 0.70))){
297 EvtRecTrack* lo = const_cast<EvtRecTrack*>((*iEta)->loEnGamma());
298 RecEmcShower* loShower = lo->emcShower();
299 if ( (loShower->energy() > 0.025) && (loShower->time() > 0) && (loShower->time() < 14) && ( ( (abs(cos(loShower->theta())) < 0.80) && (loShower->energy() > 0.025) ) || ( (abs(cos(loShower->theta())) < 0.92) && (abs(cos(loShower->theta())) > 0.86) && (loShower->energy() > 0.050) ) ) ){
300 EvtRecTrack* hi = const_cast<EvtRecTrack*>((*iEta)->hiEnGamma());
301 RecEmcShower* hiShower = hi->emcShower();
302 if ( (hiShower->energy() > 0.025) && (hiShower->time() > 0) && (hiShower->time() < 14) && ( ( (abs(cos(hiShower->theta())) < 0.80) && (hiShower->energy() > 0.025) ) || ( (abs(cos(hiShower->theta())) < 0.92) && (abs(cos(hiShower->theta())) > 0.86) && (hiShower->energy() > 0.050) ) ) ){
303 neta++;
304 }
305 }
306 }
307 }
308
309 // get pi0s, pi0 --> gamma gamma
310 SmartDataPtr<EvtRecPi0Col> evtRecPi0Col(eventSvc(), EventModel::EvtRec::EvtRecPi0Col);
311 for (EvtRecPi0Col::iterator iPi0 = evtRecPi0Col->begin(); iPi0 != evtRecPi0Col->end(); iPi0++){
312 if ((((*iPi0)->chisq() < 2500) && ((*iPi0)->unconMass() > 0.107) && ((*iPi0)->unconMass() < 0.163))){
313 EvtRecTrack* lo = const_cast<EvtRecTrack*>((*iPi0)->loEnGamma());
314 RecEmcShower* loShower = lo->emcShower();
315 if ( (loShower->energy() > 0.025) && (loShower->time() > 0) && (loShower->time() < 14) && ( (( abs(cos(loShower->theta())) < 0.80) && (loShower->energy() > 0.025) ) || ( (abs(cos(loShower->theta())) < 0.92) && (abs(cos(loShower->theta())) > 0.86) && (loShower->energy() > 0.050) ) ) ){
316 EvtRecTrack* hi = const_cast<EvtRecTrack*>((*iPi0)->hiEnGamma());
317 RecEmcShower* hiShower = hi->emcShower();
318 if ( (hiShower->energy() > 0.025) && (hiShower->time() > 0) && (hiShower->time() < 14) && ( ( (abs(cos(hiShower->theta())) < 0.80) && (hiShower->energy() > 0.025) ) || ( (abs(cos(hiShower->theta())) < 0.92) && (abs(cos(hiShower->theta())) > 0.86) && (hiShower->energy() > 0.050) ) ) ){
319 npi0++;
320 }
321 }
322 }
323 }
324
325 // get kshorts
326 // [[ vertexId is the pdgID ]]
327 // Ks --> pi+ pi- and Lambda --> p+ pi- and ALambda --> p- pi+
328 SmartDataPtr<EvtRecVeeVertexCol> evtRecVeeVertexCol(eventSvc(), EventModel::EvtRec::EvtRecVeeVertexCol);
329 for (EvtRecVeeVertexCol::iterator iKs = evtRecVeeVertexCol->begin(); iKs != evtRecVeeVertexCol->end(); iKs++){
330 if ((*iKs)->vertexId() == 310){
331 if ( ((*iKs)->mass() > 0.471) && ((*iKs)->mass() < 0.524) && ((*iKs)->chi2() < 100) ){
332 nks++;
333 }
334 }
335 }
336
337 for (EvtRecVeeVertexCol::iterator iL = evtRecVeeVertexCol->begin(); iL != evtRecVeeVertexCol->end(); iL++){
338 if ((*iL)->vertexId() == 3122){
339 if ( ((*iL)->mass() > 1.100) && ((*iL)->mass() < 1.130) && ((*iL)->chi2() < 100) ){
340 nlambda++;
341 }
342 }
343 if ((*iL)->vertexId() == -3122){
344 if ( ((*iL)->mass() > 1.100) && ((*iL)->mass() < 1.130) && ((*iL)->chi2() < 100) ){
345 nalambda++;
346 }
347 }
348 }
349
350 unsigned int tagdata1 = nGoodCharged;
351 unsigned int tagdata2 = IntToTag1(nNeutrk, nTottrk, ngamma, npi0);
352 unsigned int tagdata3 = IntToTag2(npionp, npionm, nkaonp, nkaonm, nprotonp, nprotonm);
353 unsigned int tagdata4 = IntToTag2(nlambda, nalambda, nelectronp, nelectronm, nmuonp, nmuonm);
354 unsigned int tagdata5 = IntToTag2(nks, neta, nCharged, nGoodChargedp, nGoodChargedm, totCharged);
355
356 m_tagFilterSvc->setTagData1(tagdata1);
357 m_tagFilterSvc->setTagData2(tagdata2);
358 m_tagFilterSvc->setTagData3(tagdata3);
359 m_tagFilterSvc->setTagData4(tagdata4);
360 m_tagFilterSvc->setTagData5(tagdata5);
361
362 SmartDataPtr<EvtRecDTagCol> evtRecDTagCol(eventSvc(), EventModel::EvtRec::EvtRecDTagCol);
363
364 std::set<UInt_t> Lcmode0, Lcmode1, Dsmode0, Dsmode1, D0mode0, D0mode1, Dmode0, Dmode1;
365 Lcmode0.clear(); Lcmode1.clear(); Dsmode0.clear(); Dsmode1.clear(); D0mode0.clear(); D0mode1.clear(), Dmode0.clear(); Dmode1.clear();
366 if ( evtRecDTagCol ) {
367 EvtRecDTagCol::iterator iter_begin = evtRecDTagCol->begin();
368 EvtRecDTagCol::iterator iter_end = evtRecDTagCol->end();
369 //cout << "Mode = ";
370 for (EvtRecDTagCol::iterator iter = iter_begin; iter != iter_end; iter++) {
371 Int_t type = (*iter)->type();
372 Int_t mode = (*iter)->decayMode();
373 //cout << mode << "," << type << " " ;
374 if ( mode>=1000 && mode<1066 ) {
375 if (type==1) {
376 Lcmode1.insert(mode);
377 } else {
378 Lcmode0.insert(mode);
379 }
380 }
381 else if ( mode>=400 && mode<505 ) {
382 if (type==1) {
383 Dsmode1.insert(mode);
384 } else {
385 Dsmode0.insert(mode);
386 }
387 }
388 else if ( mode>=0 && mode<200 ) {
389 if (type==1) {
390 D0mode1.insert(mode);
391 } else {
392 D0mode0.insert(mode);
393 }
394 }
395 else if ( mode>=200 && mode<400 ) {
396 if (type==1) {
397 Dmode1.insert(mode);
398 } else {
399 Dmode0.insert(mode);
400 }
401 }
402 }
403 //cout << endl;
404 }
405
406 UInt_t Lc_modemap = 0, Ds_modemap = 0, D0_modemap = 0, D_modemap = 0;
407 int data0=3;
408 std::set<UInt_t>::iterator it1, it0;
409
410 if ( Lcmode1.size()>0 ) {
411 std::cout << "Evt: " << iEvt << " Lc_1 : ";
412 Lc_modemap |= (1<<31);
413 for (it1=Lcmode1.begin(); it1!=Lcmode1.end(); ++it1) {
414 std::cout << ' ' << *it1;
415 Lc_modemap |= (1<<Lc_modeTag[*it1]);
416 }
417 std::cout << endl;
418 } else {
419 if ( Lcmode0.size()>0 ) {
420 std::cout << "Evt: " << iEvt << " Lc_0 : ";
421 for (it0=Lcmode0.begin(); it0!=Lcmode0.end(); ++it0) {
422 std::cout << ' ' << *it0;
423 Lc_modemap |= (1<<Lc_modeTag[*it0]);
424 }
425 std::cout << endl;
426 }
427 }
428
429 if ( Dsmode1.size()>0 ) {
430 std::cout << "Evt: " << iEvt << " Ds_1 : ";
431 Ds_modemap |= (1<<31);
432 for (it1=Dsmode1.begin(); it1!=Dsmode1.end(); ++it1) {
433 std::cout << ' ' << *it1;
434 Ds_modemap |= (1<<Ds_modeTag[*it1]);
435 }
436 std::cout << endl;
437 } else {
438 if ( Dsmode0.size()>0 ) {
439 std::cout << "Evt: " << iEvt << " Ds_0 : ";
440 for (it0=Dsmode0.begin(); it0!=Dsmode0.end(); ++it0) {
441 std::cout << ' ' << *it0;
442 Ds_modemap |= (1<<Ds_modeTag[*it0]);
443 }
444 std::cout << endl;
445 }
446 }
447
448 if ( D0mode1.size()>0 ) {
449 std::cout << "Evt: " << iEvt << " D0_1 : ";
450 D0_modemap |= (1<<31);
451 for (it1=D0mode1.begin(); it1!=D0mode1.end(); ++it1) {
452 std::cout << ' ' << *it1;
453 D0_modemap |= (1<<D0_modeTag[*it1]);
454 }
455 std::cout << endl;
456 } else {
457 if ( D0mode0.size()>0 ) {
458 std::cout << "Evt: " << iEvt << " D0_0 : ";
459 for (it0=D0mode0.begin(); it0!=D0mode0.end(); ++it0) {
460 std::cout << ' ' << *it0;
461 D0_modemap |= (1<<D0_modeTag[*it0]);
462 }
463 std::cout << endl;
464 }
465 }
466
467 if ( Dmode1.size()>0 ) {
468 std::cout << "Evt: " << iEvt << " D+_1 : ";
469 D_modemap |= (1<<31);
470 for (it1=Dmode1.begin(); it1!=Dmode1.end(); ++it1) {
471 std::cout << ' ' << *it1;
472 D_modemap |= (1<<D_modeTag[*it1]);
473 }
474 std::cout << endl;
475 } else {
476 if ( Dmode0.size()>0 ) {
477 std::cout << "Evt: " << iEvt << " D+_0 : ";
478 for (it0=Dmode0.begin(); it0!=Dmode0.end(); ++it0) {
479 std::cout << ' ' << *it0;
480 D_modemap |= (1<<D_modeTag[*it0]);
481 }
482 std::cout << endl;
483 }
484 }
485
486 if ( Lcmode1.size()>0 ) {
487 data0 = 0;
488 } else if ( Dsmode1.size()>0 || D0mode1.size()>0 || Dmode1.size()>0 ) {
489 data0 = 1;
490 } else if ( Lcmode0.size()>0 || Dsmode0.size()>0 || D0mode0.size()>0 || Dmode0.size()>0 ) {
491 data0 = 2;
492 }
493 /*
494 if (Lc_modemap>0) {
495 cout << "Lc_mode = " << " ";
496 for(int i = 0; i < 32; i ++) {
497 int bit = Lc_modemap&(1<<(32-i-1));
498 if(bit == 0) cout << 0;
499 else cout << 1;
500 if(i % 4 == 3)cout << ' ';
501 }
502 cout << " " << Lc_modemap << endl;
503 }
504 if (Ds_modemap>0) {
505 cout << "Ds_mode = " << " ";
506 for(int i = 0; i < 32; i ++) {
507 int bit = Ds_modemap&(1<<(32-i-1));
508 if(bit == 0) cout << 0;
509 else cout << 1;
510 if(i % 4 == 3)cout << ' ';
511 }
512 cout << " " << Ds_modemap << endl;
513 }
514 if (D0_modemap>0) {
515 cout << "D0_mode = " << " ";
516 for(int i = 0; i < 32; i ++) {
517 int bit = D0_modemap&(1<<(32-i-1));
518 if(bit == 0) cout << 0;
519 else cout << 1;
520 if(i % 4 == 3)cout << ' ';
521 }
522 cout << " " << D0_modemap << endl;
523 }
524 if (D_modemap>0) {
525 cout << "Dp_mode = " << " ";
526 for(int i = 0; i < 32; i ++) {
527 int bit = D_modemap&(1<<(32-i-1));
528 if(bit == 0) cout << 0;
529 else cout << 1;
530 if(i % 4 == 3)cout << ' ';
531 }
532 cout << " " << D_modemap << endl;
533 }
534 */
535 m_tagFilterSvc->setTagData0(data0);
536 m_tagFilterSvc->setTagData6(Lc_modemap);
537 m_tagFilterSvc->setTagData7(Ds_modemap);
538 m_tagFilterSvc->setTagData8(D0_modemap);
539 m_tagFilterSvc->setTagData9(D_modemap);
540 //cout << iEvt << " Data0= " << tagdata1 << " 1= " << tagdata2 << " 2= " << tagdata3 << " 3= " << tagdata4 << " 4= " << tagdata5 << endl;
541 //cout << "nNeutrk= " << nNeutrk << ", nTottrk= " << nTottrk << ", ngamma = "<< ngamma << ", npi0= " << npi0 << endl;
542 //cout << "npionp=" << npionp << ", npionm=" << npionm << ", nkaonp= " << nkaonp << ", nkaonm= " << nkaonm << ", nprotonp= " << nprotonp << ", nprotonm= " << nprotonm << endl;
543 //cout << "nlambda= " << nlambda << ", nalambda= " << nalambda << ", nelectronp= " << nelectronp << ", nelectronm= " << nelectronm << ", nmuonp= " << nmuonp << ", nmuonm= " << nmuonm << endl;
544 //cout << "nks= " << nks << ", neta= " << neta << ", nCharged= " << nCharged << ", nGoodChargedp= " << nGoodChargedp << ", nGoodChargedm= " << nGoodChargedm << ", totCharged= " << totCharged << endl;
545
546 iEvt++;
547}
double cos(const BesAngle a)
Definition: BesAngle.h:213
EvtRecTrackCol::iterator EvtRecTrackIterator
Definition: EvtRecTrack.h:111
EvtStreamInputIterator< typename Generator::result_type > iter(Generator gen, int N=0)
double theta() const
Definition: DstEmcShower.h:38
double time() const
Definition: DstEmcShower.h:50
double energy() const
Definition: DstEmcShower.h:45
const int charge() const
const double theta() const
Definition: DstMdcTrack.h:59
const HepSymMatrix err() const
const int charge() const
Definition: DstMdcTrack.h:53
const HepVector helix() const
......
RecEmcShower * emcShower()
Definition: EvtRecTrack.h:58
virtual void setTagData9(unsigned int t)=0
virtual void setTagData1(unsigned int t)=0
virtual void setTagData0(unsigned int t)=0
virtual void setTagData6(unsigned int t)=0
virtual void setTagData2(unsigned int t)=0
virtual void setTagData4(unsigned int t)=0
virtual void setTagData8(unsigned int t)=0
virtual void setTagData5(unsigned int t)=0
virtual void setTagData3(unsigned int t)=0
virtual void setTagData7(unsigned int t)=0
virtual bool isVertexValid()=0
virtual double * PrimaryVertex()=0
unsigned int IntToTag1(int val1, int val2, int val3, int val4)
Definition: LTagSetAlg.cxx:555
unsigned int IntToTag2(int val1, int val2, int val3, int val4, int val5, int val6)
Definition: LTagSetAlg.cxx:562
int useTof2() const
int onlyProton() const
int methodProbability() const
int useDedx() const
int onlyMuon() const
int onlyKaon() const
int onlyElectron() const
int onlyPion() const
int useTof1() const
void setRecTrack(EvtRecTrack *trk)
double probKaon() const
Definition: ParticleID.h:124
void setMethod(const int method)
Definition: ParticleID.h:94
void identify(const int pidcase)
Definition: ParticleID.h:103
double probMuon() const
Definition: ParticleID.h:122
double probElectron() const
Definition: ParticleID.h:121
void usePidSys(const int pidsys)
Definition: ParticleID.h:97
static ParticleID * instance()
Definition: ParticleID.cxx:22
bool IsPidInfoValid() const
double probPion() const
Definition: ParticleID.h:123
void calculate()
Definition: ParticleID.cxx:97
void init()
Definition: ParticleID.cxx:27
double probProton() const
Definition: ParticleID.h:125
_EXTERN_ std::string EvtRecPi0Col
Definition: EventModel.h:123
_EXTERN_ std::string EvtRecEvent
Definition: EventModel.h:116
_EXTERN_ std::string EvtRecVeeVertexCol
Definition: EventModel.h:121
_EXTERN_ std::string EvtRecEtaToGGCol
Definition: EventModel.h:124
_EXTERN_ std::string EvtRecDTagCol
Definition: EventModel.h:122
_EXTERN_ std::string EvtRecTrackCol
Definition: EventModel.h:117

◆ finalize()

StatusCode LTagSetAlg::finalize ( )

Definition at line 549 of file LTagSetAlg.cxx.

549 {
550 MsgStream log(msgSvc(), name());
551 log << MSG::INFO << "In LTagSetAlg finalize()" << iEvt << "Events processed" << endmsg;
552 return StatusCode::SUCCESS;
553}
IMessageSvc * msgSvc()

◆ initialize()

StatusCode LTagSetAlg::initialize ( )

Definition at line 49 of file LTagSetAlg.cxx.

49 {
50 MsgStream log(msgSvc(), name());
51
52 log << MSG::INFO << "in initialize()" << endmsg;
53 iEvt=0;
54
55 Gaudi::svcLocator()->service("VertexDbSvc", m_vtxsvc);
56 Gaudi::svcLocator()->service("TagFilterSvc", m_tagFilterSvc);
57
58 Lc_modeTag[1000] = 0;
59 Lc_modeTag[1001] = 1;
60 Lc_modeTag[1002] = 2;
61 Lc_modeTag[1003] = 3;
62 Lc_modeTag[1004] = 4;
63 Lc_modeTag[1005] = 5;
64 Lc_modeTag[1030] = 6;
65 Lc_modeTag[1031] = 7;
66 Lc_modeTag[1032] = 8;
67 Lc_modeTag[1033] = 9;
68 Lc_modeTag[1034] = 10;
69 Lc_modeTag[1060] = 11;
70 Lc_modeTag[1061] = 12;
71 Lc_modeTag[1062] = 13;
72 Lc_modeTag[1063] = 14;
73 Lc_modeTag[1064] = 15;
74 Lc_modeTag[1065] = 16;
75
76 Ds_modeTag[400] = 1;
77 Ds_modeTag[401] = 0;
78 Ds_modeTag[402] = 2;
79 Ds_modeTag[403] = 13;
80 Ds_modeTag[404] = 3;
81 Ds_modeTag[405] = 4;
82 Ds_modeTag[406] = 5;
83 Ds_modeTag[407] = 14;
84 Ds_modeTag[420] = 28;
85 Ds_modeTag[421] = 6;
86 Ds_modeTag[422] = 24;
87 Ds_modeTag[423] = 25;
88 Ds_modeTag[424] = 26;
89 Ds_modeTag[425] = 27;
90 Ds_modeTag[440] = 7;
91 Ds_modeTag[441] = 8;
92 Ds_modeTag[442] = 20;
93 Ds_modeTag[450] = 21;
94 Ds_modeTag[451] = 22;
95 Ds_modeTag[452] = 23;
96 Ds_modeTag[460] = 9;
97 Ds_modeTag[461] = 15;
98 Ds_modeTag[470] = 16;
99 Ds_modeTag[471] = 17;
100 Ds_modeTag[480] = 10;
101 Ds_modeTag[481] = 11;
102 Ds_modeTag[500] = 29;
103 Ds_modeTag[501] = 18;
104 Ds_modeTag[502] = 12;
105 Ds_modeTag[503] = 19;
106 Ds_modeTag[504] = 30;
107
108 D0_modeTag[0] = 0;
109 D0_modeTag[1] = 1;
110 D0_modeTag[2] = 2;
111 D0_modeTag[3] = 3;
112 D0_modeTag[4] = 4;
113 D0_modeTag[5] = 5;
114 D0_modeTag[50] = 6;
115 D0_modeTag[51] = 7;
116 D0_modeTag[100] = 8;
117 D0_modeTag[101] = 9;
118 D0_modeTag[102] = 10;
119 D0_modeTag[103] = 11;
120 D0_modeTag[104] = 12;
121 D0_modeTag[105] = 13;
122 D0_modeTag[106] = 14;
123 D0_modeTag[107] = 15;
124 D0_modeTag[108] = 16;
125 D0_modeTag[109] = 17;
126 D0_modeTag[110] = 18;
127 D0_modeTag[111] = 19;
128 D0_modeTag[112] = 20;
129 D0_modeTag[113] = 21;
130 D0_modeTag[114] = 22;
131 D0_modeTag[115] = 23;
132 D0_modeTag[116] = 24;
133 D0_modeTag[117] = 25;
134 D0_modeTag[118] = 26;
135 D0_modeTag[119] = 27;
136 D0_modeTag[120] = 28;
137 D0_modeTag[121] = 29;
138 D0_modeTag[122] = 30;
139 D0_modeTag[123] = 30;
140 D0_modeTag[124] = 30;
141 D0_modeTag[125] = 30;
142 D0_modeTag[126] = 30;
143
144 D_modeTag[200] = 0;
145 D_modeTag[201] = 1;
146 D_modeTag[202] = 2;
147 D_modeTag[203] = 3;
148 D_modeTag[204] = 4;
149 D_modeTag[205] = 5;
150 D_modeTag[206] = 6;
151 D_modeTag[207] = 7;
152 D_modeTag[208] = 8;
153 D_modeTag[209] = 9;
154 D_modeTag[210] = 10;
155 D_modeTag[211] = 11;
156 D_modeTag[212] = 12;
157 D_modeTag[213] = 13;
158 D_modeTag[214] = 14;
159 D_modeTag[215] = 15;
160 D_modeTag[216] = 16;
161 D_modeTag[217] = 17;
162 D_modeTag[218] = 18;
163 D_modeTag[219] = 19;
164 D_modeTag[220] = 20;
165 D_modeTag[221] = 21;
166 D_modeTag[222] = 22;
167
168 return StatusCode::SUCCESS;
169}

◆ IntToTag1()

unsigned int LTagSetAlg::IntToTag1 ( int  val1,
int  val2,
int  val3,
int  val4 
)

Definition at line 555 of file LTagSetAlg.cxx.

556{
557 unsigned int res=0;
558 res = (val4 +(val3<<8) +(val2<<16) +(val1<<24));
559 return res;
560}

Referenced by execute().

◆ IntToTag2()

unsigned int LTagSetAlg::IntToTag2 ( int  val1,
int  val2,
int  val3,
int  val4,
int  val5,
int  val6 
)

Definition at line 562 of file LTagSetAlg.cxx.

563{
564 unsigned int res=0;
565 res = (val6 +(val5<<5) +(val4<<10) +(val3<<15) +(val2<<20) +(val1<<26));
566 return res;
567}

Referenced by execute().


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