BesMdcTrig Class Reference

#include <BesMdcTrig.h>

List of all members.

Public Member Functions

 BesMdcTrig ()
 ~BesMdcTrig ()
void startMdcTrig ()

Private Attributes

MdcTCountm_MdcTCount
bool NLtrk1
bool NLtrk2
bool NLtrkN
bool NStrk1
bool NStrk2
bool NStrkN
bool STrk_BB
bool LTrk_BB
bool NItrk1
bool NItrk2
BesGlobalTrigSvcm_pIBGT
IBesGlobalTrigSvcm_tmpSvc


Detailed Description

Definition at line 7 of file BesMdcTrig.h.


Constructor & Destructor Documentation

BesMdcTrig::BesMdcTrig (  ) 

Definition at line 27 of file BesMdcTrig.cxx.

References m_MdcTCount.

00028 {
00029   m_MdcTCount = new MdcTCount();
00030 }

BesMdcTrig::~BesMdcTrig (  ) 

Definition at line 31 of file BesMdcTrig.cxx.

References m_MdcTCount.

00032 {
00033   if(m_MdcTCount) delete m_MdcTCount;
00034 }


Member Function Documentation

void BesMdcTrig::startMdcTrig (  ) 

Definition at line 35 of file BesMdcTrig.cxx.

References MdcTCount::GetltrackId(), BesGlobalTrigSvc::getMAXMDCTRACK(), MdcTCount::GetnItrkSL1(), MdcTCount::GetnItrkSL2(), MdcTCount::GetstrackId(), MdcTCount::GetTCount(), genRecEmupikp::i, LTrk_BB, m_MdcTCount, m_pIBGT, m_tmpSvc, NItrk1, NItrk2, NLtrk1, NLtrk2, NLtrkN, NStrk1, NStrk2, NStrkN, BesGlobalTrigSvc::setLTrk_BB(), BesGlobalTrigSvc::setNItrk1(), BesGlobalTrigSvc::setNItrk2(), BesGlobalTrigSvc::setNLtrk1(), BesGlobalTrigSvc::setNLtrk2(), BesGlobalTrigSvc::setNLtrkN(), BesGlobalTrigSvc::setNStrk1(), BesGlobalTrigSvc::setNStrk2(), BesGlobalTrigSvc::setNStrkN(), BesGlobalTrigSvc::setSTrk_BB(), and STrk_BB.

Referenced by BesGlobalTrigSvc::startMdcTrig().

00036 {
00037   StatusCode sc = Gaudi::svcLocator()->service("BesGlobalTrigSvc", m_tmpSvc);
00038   m_pIBGT = dynamic_cast<BesGlobalTrigSvc* >(m_tmpSvc);
00039 
00040   NLtrk1 = false;
00041   NLtrk2 = false;
00042   NLtrkN = false;
00043   LTrk_BB = false;
00044   NStrk1 = false;
00045   NStrk2 = false;
00046   NStrkN = false;
00047   STrk_BB = false;
00048   NItrk1 = false;
00049   NItrk2 = false;
00050 
00051   if(!m_MdcTCount) std::cerr<<"can not initialize mdcTCount"<<std::endl;
00052   m_MdcTCount->GetTCount();
00053   int nItrk1 = m_MdcTCount->GetnItrkSL1();
00054   int nItrk2 = m_MdcTCount->GetnItrkSL2();
00055 
00056 //  std::cout<<"track number is "<<s<<" "<<l<<std::endl;
00057   //trigger condition of short and long track in outer room
00058   int MAXMDCTRACK = m_pIBGT->getMAXMDCTRACK();
00059   if((nItrk1 >= 1) || (nItrk2 >= 1)) NItrk1 = true;
00060   if((nItrk1 >= 1) && (nItrk2 >= 1)) NItrk2 = true;
00061    
00062   //trigger condition of babar using short track information
00063   std::vector<int> stmp;
00064   std::vector<int>::iterator siter;
00065   stmp.clear();
00066   stmp = m_MdcTCount->GetstrackId();
00067   int nstrk = stmp.size();
00068   if(nstrk>=1) NStrk1 = true;
00069   if(nstrk>=2) NStrk2 = true;
00070   if(nstrk>=MAXMDCTRACK) NStrkN = true;
00071   
00072  // if(stmp.empty()) std::cout<<"have no short track id infor in vector tmp"<<std::endl;
00073   
00074   for(siter=stmp.begin();siter!=stmp.end();siter++)
00075   {
00076     for(int i=0;i<15;i++)
00077     {
00078       if(((*siter)+i+57)>127) 
00079       {
00080         int id;
00081         id = (*siter)+i+57-128;
00082         if(find(stmp.begin(),stmp.end(),id)!=stmp.end()) { STrk_BB = true; break; }
00083       }
00084       else
00085       {
00086         int id;
00087         id = (*siter)+i+57;
00088         if(find(stmp.begin(),stmp.end(),id)!=stmp.end()) { STrk_BB = true; break; }
00089       }
00090     }
00091     
00092     if(STrk_BB == true) break;
00093   }
00094   //trigger condition of babar using long track information
00095   std::vector<int> ltmp;
00096   std::vector<int>::iterator liter;
00097   ltmp.clear();
00098   ltmp = m_MdcTCount->GetltrackId();
00099   int nltrk = ltmp.size();
00100   if(nltrk>=1) NLtrk1 = true;
00101   if(nltrk>=2) NLtrk2 = true;
00102   if(nltrk>=MAXMDCTRACK) NLtrkN = true;
00103 //  if(ltmp.empty()) std::cout<<"have no long track id infor in vector tmp"<<std::endl;
00104   for(liter=ltmp.begin();liter!=ltmp.end();liter++)
00105   {
00106     for(int i=0;i<15;i++)
00107     {
00108       if(((*liter)+i+57)>127)
00109       {
00110         int id;
00111         id = (*liter)+i+57-128;
00112         if(find(ltmp.begin(),ltmp.end(),id)!=ltmp.end()) { LTrk_BB = true; break; }
00113       }
00114       else
00115       {
00116         int id;
00117         id = (*liter)+i+57;
00118         if(find(ltmp.begin(),ltmp.end(),id)!=ltmp.end()) { LTrk_BB = true; break; }
00119       }
00120     }
00121 //    std::cout<<"LTrk_BB is "<<LTrk_BB<<std::endl;
00122     if(LTrk_BB == true) break;
00123   }         
00124 
00125   //set trigger conditions in service
00126   m_pIBGT->setSTrk_BB(STrk_BB);
00127   m_pIBGT->setNStrkN(NStrkN);
00128   m_pIBGT->setNStrk2(NStrk2);
00129   m_pIBGT->setNStrk1(NStrk1);
00130   m_pIBGT->setLTrk_BB(LTrk_BB);
00131   m_pIBGT->setNLtrkN(NLtrkN);
00132   m_pIBGT->setNLtrk2(NLtrk2);
00133   m_pIBGT->setNLtrk1(NLtrk1);
00134   m_pIBGT->setNItrk2(NItrk2);
00135   m_pIBGT->setNItrk1(NItrk1);
00136 }


Member Data Documentation

bool BesMdcTrig::LTrk_BB [private]

Definition at line 14 of file BesMdcTrig.h.

Referenced by startMdcTrig().

MdcTCount* BesMdcTrig::m_MdcTCount [private]

Definition at line 13 of file BesMdcTrig.h.

Referenced by BesMdcTrig(), startMdcTrig(), and ~BesMdcTrig().

BesGlobalTrigSvc* BesMdcTrig::m_pIBGT [private]

Definition at line 16 of file BesMdcTrig.h.

Referenced by startMdcTrig().

IBesGlobalTrigSvc* BesMdcTrig::m_tmpSvc [private]

Definition at line 17 of file BesMdcTrig.h.

Referenced by startMdcTrig().

bool BesMdcTrig::NItrk1 [private]

Definition at line 14 of file BesMdcTrig.h.

Referenced by startMdcTrig().

bool BesMdcTrig::NItrk2 [private]

Definition at line 14 of file BesMdcTrig.h.

Referenced by startMdcTrig().

bool BesMdcTrig::NLtrk1 [private]

Definition at line 14 of file BesMdcTrig.h.

Referenced by startMdcTrig().

bool BesMdcTrig::NLtrk2 [private]

Definition at line 14 of file BesMdcTrig.h.

Referenced by startMdcTrig().

bool BesMdcTrig::NLtrkN [private]

Definition at line 14 of file BesMdcTrig.h.

Referenced by startMdcTrig().

bool BesMdcTrig::NStrk1 [private]

Definition at line 14 of file BesMdcTrig.h.

Referenced by startMdcTrig().

bool BesMdcTrig::NStrk2 [private]

Definition at line 14 of file BesMdcTrig.h.

Referenced by startMdcTrig().

bool BesMdcTrig::NStrkN [private]

Definition at line 14 of file BesMdcTrig.h.

Referenced by startMdcTrig().

bool BesMdcTrig::STrk_BB [private]

Definition at line 14 of file BesMdcTrig.h.

Referenced by startMdcTrig().


Generated on Tue Nov 29 23:17:33 2016 for BOSS_7.0.2 by  doxygen 1.4.7