/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Trigger/Trigger/Trigger-00-01-05/src/MdcTCount.cxx

Go to the documentation of this file.
00001 //---------------------------------------------------------------------------//
00002 //      BOOST --- BESIII Object_Oriented Simulation Tool                     /
00003 //
00004 //---------------------------------------------------------------------------/
00005 //
00006 //Description:
00007 //Author:   Caogf
00008 //Created:  Mar, 2006
00009 //Modified:
00010 //Comment:
00011 //
00012 
00013 #include "Trigger/MdcTCount.h"
00014 #include "Trigger/MdcTF.h"
00015 #include <iostream>
00016 
00017 #include "Trigger/IBesGlobalTrigSvc.h"
00018 #include "Trigger/BesGlobalTrigSvc.h"
00019 #include "GaudiKernel/ISvcLocator.h"
00020 #include "GaudiKernel/Bootstrap.h"
00021 #include "GaudiKernel/IDataProviderSvc.h"
00022 
00023 MdcTCount::MdcTCount()
00024 {
00025   m_MdcTF = new MdcTF();
00026 }
00027 MdcTCount::~MdcTCount()
00028 {
00029   if(m_MdcTF) delete m_MdcTF;
00030 }
00031 void MdcTCount::GetTCount()
00032 {
00033   if(m_MdcTF) m_MdcTF->GetTrack();
00034   //reset values
00035   strackNo = 0;
00036   ltrackNo = 0;
00037   nItrkSL1 = 0;
00038   nItrkSL2 = 0;
00039   strackId.clear();
00040   ltrackId.clear();
00041   intrkId1.clear();
00042   intrkId2.clear();
00043 
00044   intrkId1 = m_MdcTF->GetintrkSL1();
00045   intrkId2 = m_MdcTF->GetintrkSL2();
00046   nItrkSL1 = intrkId1.size();
00047   nItrkSL2 = intrkId2.size();
00048 
00049   //Get short and long track information 
00050   for(int i = 0;i<128;i++)
00051   {
00052     int stId = 0, ltId = 0;
00053     //find short track
00054     if(m_MdcTF->GetstrackId(i) != 0) { 
00055       //cout<<"TCount Cell ID "<<i<<endl;
00056       //for(int j = 1; j < 128; j++) {
00057       for(int j = 1; j < 17; j++) {
00058         if((i-j) < 0) stId = m_MdcTF->GetstrackId(128-j+i);
00059         else stId = m_MdcTF->GetstrackId(i-j);
00060         //cout<<"stId is "<<stId<<" j is "<<j<<" j%2 is "<<j%2<<endl;
00061         if(stId == 0) {
00062           if(j%2 != 0) { strackId.push_back(i); strackNo+=1; }//cout<<"short track count id : "<<i<<endl; }
00063           break;
00064         }
00065       }
00066     }
00067     //find long track
00068     if(m_MdcTF->GetltrackId(i) != 0) { 
00069       //for(int j = 1; j < 128; j++) {     
00070       for(int j = 1; j < 17; j++) {     
00071         if((i-j) < 0) ltId = m_MdcTF->GetltrackId(128-j+i);
00072         else ltId = m_MdcTF->GetltrackId(i-j); 
00073         if(ltId == 0) {
00074           if(j%2 != 0) { ltrackId.push_back(i); ltrackNo+=1; }// cout<<"long track count id : "<<i<<endl; }
00075           break;
00076         }
00077       }
00078     }
00079   }
00080 /*
00081   //No track combination
00082   for(int i = 0;i<128;i++)
00083   {
00084     //find short track
00085     if(m_MdcTF->GetstrackId(i) != 0) {
00086       strackId.push_back(i); 
00087     }
00088     //find long track
00089     if(m_MdcTF->GetltrackId(i) != 0) {
00090       ltrackId.push_back(i); 
00091     }
00092   }
00093 */
00094   ISvcLocator* svcLocator = Gaudi::svcLocator();
00095   StatusCode sc = svcLocator->service("BesGlobalTrigSvc", m_tmpSvc);
00096   m_pIBGT = dynamic_cast<BesGlobalTrigSvc* >(m_tmpSvc);
00097 
00098   //set short and long track Id in service
00099   m_pIBGT->setMdcStrkId(strackId);
00100   m_pIBGT->setMdcLtrkId(ltrackId);
00101 }

Generated on Tue Nov 29 23:14:40 2016 for BOSS_7.0.2 by  doxygen 1.4.7