EmcCCount Class Reference

#include <EmcCCount.h>

List of all members.

Public Member Functions

 EmcCCount ()
 ~EmcCCount ()
void getClusterId ()
bool findCluster (int partId, int TCThetaNb, int TCPhiNb)
int getBClusterPhi (int i)
int getWEClusterPhi (int i)
int getEEClusterPhi (int i)
int getBClusterId (int i, int j)
int getEEClusterId (int i, int j)
int getWEClusterId (int i, int j)
bool getEClus_Z ()
bool getWClus_Z ()

Private Attributes

EmcTCFinderm_EmcTCFinder
int BClusterPhi [TrigConf::TCPHINO_B]
int WEClusterPhi [TrigConf::TCPHINO_E/2]
int EEClusterPhi [TrigConf::TCPHINO_E/2]
int BClusterId [TrigConf::TCTHETANO_B][TrigConf::TCPHINO_B]
int EEClusterId [TrigConf::TCTHETANO_E][TrigConf::TCPHINO_E/2]
int WEClusterId [TrigConf::TCTHETANO_E][TrigConf::TCPHINO_E/2]
bool EClus_Z
bool WClus_Z
BesGlobalTrigSvcm_pIBGT
IBesGlobalTrigSvcm_tmpSvc


Detailed Description

Definition at line 12 of file EmcCCount.h.


Constructor & Destructor Documentation

EmcCCount::EmcCCount (  ) 

Definition at line 29 of file EmcCCount.cxx.

References EmcTCFinder::get_Emc(), and m_EmcTCFinder.

00030 {
00031   m_EmcTCFinder = EmcTCFinder::get_Emc();
00032 }

EmcCCount::~EmcCCount (  ) 

Definition at line 33 of file EmcCCount.cxx.

00034 {
00035 }


Member Function Documentation

bool EmcCCount::findCluster ( int  partId,
int  TCThetaNb,
int  TCPhiNb 
)

Definition at line 171 of file EmcCCount.cxx.

References EmcTCFinder::getBTC(), EmcTCFinder::getEETC(), EmcTCFinder::getWETC(), m_EmcTCFinder, TrigConf::TCPHINO_B, and TrigConf::TCPHINO_E.

Referenced by getClusterId().

00172 {
00173   //double L1TC_THRESH = m_pIBGT->getL1TC_THRESH();
00174   /*for(int i = 0; ; i++) {
00175     double theshold = RandGauss::shoot(m_pIBGT->getL1TC_THRESH(),3.3);
00176     if(theshold < m_pIBGT->getL1TC_THRESH()) {
00177       L1TC_THRESH = theshold;
00178       break;
00179     } 
00180   }*/
00181   
00182   //double energy0,energy1,energy2,energy3,energy4,energy5,energy6,energy7,energy8;
00183   int clus0,clus1,clus3,clus4,clus8;
00184  /* if(partId==1)
00185   {
00186 // Cluster Finder Logic
00187 //              Phi--->
00188 //              |---|----|----|
00189 //              | 5 |  1 | 6  |
00190 //              |---|----|----|
00191 //              | 2 |  0 | 3  |   
00192 //              |---|----|----|   ^
00193 //              | 7 |  4 | 8  |   |
00194 //              |---|----|----| Theta
00195      energy0 = m_EmcTCFinder->getBTCEnergy(TCThetaNb,TCPhiNb);
00196      if(energy0>L1TC_THRESH)
00197      {
00198        //trigger cell index from 0, not 1, so TrigConf::TCTHETANO_B - 1 or TrigConf::TCPHINO_B - 1 needed 
00199        if(TCThetaNb!=(TrigConf::TCTHETANO_B-1)) energy1 = m_EmcTCFinder->getBTCEnergy(TCThetaNb+1,TCPhiNb);
00200        else energy1 = 0.0;
00201                         
00202        if(TCPhiNb!=0) energy2 = m_EmcTCFinder->getBTCEnergy(TCThetaNb,TCPhiNb-1);
00203        else energy2 = m_EmcTCFinder->getBTCEnergy(TCThetaNb,TrigConf::TCPHINO_B-1);
00204                         
00205        if(TCPhiNb!=(TrigConf::TCPHINO_B-1)) energy3 = m_EmcTCFinder->getBTCEnergy(TCThetaNb,TCPhiNb+1);
00206        else energy3 = m_EmcTCFinder->getBTCEnergy(TCThetaNb,0);
00207                         
00208        if(TCThetaNb!=0) energy4 = m_EmcTCFinder->getBTCEnergy(TCThetaNb-1,TCPhiNb);
00209        else energy4 = 0.0;
00210                         
00211        if(TCThetaNb!=(TrigConf::TCTHETANO_B-1)&&TCPhiNb!=0) energy5 = m_EmcTCFinder->getBTCEnergy(TCThetaNb+1,TCPhiNb-1);
00212        if(TCThetaNb==(TrigConf::TCTHETANO_B-1)) energy5 = 0.0;
00213        if(TCThetaNb!=(TrigConf::TCTHETANO_B-1)&&TCPhiNb==0) energy5 = m_EmcTCFinder->getBTCEnergy(TCThetaNb+1,TrigConf::TCPHINO_B-1);
00214                         
00215        if(TCThetaNb!=(TrigConf::TCTHETANO_B-1)&&TCPhiNb!=(TrigConf::TCPHINO_B-1)) energy6 = m_EmcTCFinder->getBTCEnergy(TCThetaNb+1,TCPhiNb+1);
00216        if(TCThetaNb==(TrigConf::TCTHETANO_B-1)) energy6 = 0.0;
00217        if(TCThetaNb!=(TrigConf::TCTHETANO_B-1)&&TCPhiNb==(TrigConf::TCPHINO_B-1)) energy6 = m_EmcTCFinder->getBTCEnergy(TCThetaNb+1,0);
00218  
00219        if(TCThetaNb!=0&&TCPhiNb!=0) energy7 = m_EmcTCFinder->getBTCEnergy(TCThetaNb-1,TCPhiNb-1);
00220        if(TCThetaNb==0) energy7=0;
00221        if(TCThetaNb!=0&&TCPhiNb==0) energy7 = m_EmcTCFinder->getBTCEnergy(TCThetaNb-1,TrigConf::TCPHINO_B-1);
00222  
00223        if(TCThetaNb!=0&&TCPhiNb!=(TrigConf::TCPHINO_B-1)) energy8 = m_EmcTCFinder->getBTCEnergy(TCThetaNb-1,TCPhiNb+1);
00224        if(TCThetaNb==0) energy8 = 0.0;
00225        if(TCThetaNb!=0&&TCPhiNb==(TrigConf::TCPHINO_B-1)) energy8 = m_EmcTCFinder->getBTCEnergy(TCThetaNb-1,0);
00226  
00227        if((energy3>=L1TC_THRESH)||(energy1>=L1TC_THRESH)||((energy4>=L1TC_THRESH)&&(energy8>=L1TC_THRESH)))
00228        {        
00229          return false;
00230        }
00231        else return true;
00232     }
00233     else return false;
00234   }*/
00235   if(partId==1)
00236   {
00237 // Cluster Finder Logic
00238 //              <---Theta
00239 //              |---|----|----|
00240 //              | 5 |  1 | 6  |
00241 //              |---|----|----|
00242 //              | 2 |  0 | 3  |  Phi 
00243 //              |---|----|----|   |
00244 //              | 7 |  4 | 8  |   |
00245 //              |---|----|----|   ^
00246      clus0 = m_EmcTCFinder->getBTC(TCThetaNb,TCPhiNb);
00247      if(clus0 > 0)
00248      {
00249        //trigger cell index from 0, not 1, so TrigConf::TCTHETANO_B - 1 or TrigConf::TCPHINO_B - 1 needed 
00250        if(TCPhiNb != 0) clus1 = m_EmcTCFinder->getBTC(TCThetaNb,TCPhiNb - 1);
00251        else clus1 = m_EmcTCFinder->getBTC(TCThetaNb,TrigConf::TCPHINO_B-1);
00252 
00253 //       if(TCPhiNb!=0) clus2 = m_EmcTCFinder->getBTC(TCThetaNb,TCPhiNb-1);
00254 //       else clus2 = m_EmcTCFinder->getBTC(TCThetaNb,TrigConf::TCPHINO_B-1);
00255 
00256        if(TCThetaNb!=0) clus3 = m_EmcTCFinder->getBTC(TCThetaNb - 1,TCPhiNb);
00257        else clus3 = 0;
00258 
00259        if(TCPhiNb!=(TrigConf::TCPHINO_B-1)) clus4 = m_EmcTCFinder->getBTC(TCThetaNb,TCPhiNb+1);
00260        else clus4 = m_EmcTCFinder->getBTC(TCThetaNb,0);
00261 
00262 //       if(TCThetaNb!=(TrigConf::TCTHETANO_B-1)&&TCPhiNb!=0) clus5 = m_EmcTCFinder->getBTC(TCThetaNb+1,TCPhiNb-1);
00263 //       if(TCThetaNb==(TrigConf::TCTHETANO_B-1)) clus5 = 0;
00264 //       if(TCThetaNb!=(TrigConf::TCTHETANO_B-1)&&TCPhiNb==0) clus5 = m_EmcTCFinder->getBTC(TCThetaNb+1,TrigConf::TCPHINO_B-1);
00265 
00266 //       if(TCThetaNb!=(TrigConf::TCTHETANO_B-1)&&TCPhiNb!=(TrigConf::TCPHINO_B-1)) clus6 = m_EmcTCFinder->getBTC(TCThetaNb+1,TCPhiNb+1);
00267 //       if(TCThetaNb==(TrigConf::TCTHETANO_B-1)) clus6 = 0;
00268 //       if(TCThetaNb!=(TrigConf::TCTHETANO_B-1)&&TCPhiNb==(TrigConf::TCPHINO_B-1)) clus6 = m_EmcTCFinder->getBTC(TCThetaNb+1,0);
00269 
00270 //       if(TCThetaNb!=0&&TCPhiNb!=0) clus7 = m_EmcTCFinder->getBTC(TCThetaNb-1,TCPhiNb-1);
00271 //       if(TCThetaNb==0) clus7 = 0;
00272 //       if(TCThetaNb!=0&&TCPhiNb==0) clus7 = m_EmcTCFinder->getBTC(TCThetaNb-1,TrigConf::TCPHINO_B-1);
00273 
00274        if(TCThetaNb!=0&&TCPhiNb!=(TrigConf::TCPHINO_B-1)) clus8 = m_EmcTCFinder->getBTC(TCThetaNb-1,TCPhiNb+1);
00275        if(TCThetaNb==0) clus8 = 1;
00276        if(TCThetaNb!=0&&TCPhiNb==(TrigConf::TCPHINO_B-1)) clus8 = m_EmcTCFinder->getBTC(TCThetaNb-1,0);
00277 
00278        //if((clus3 > 0)||(clus1 > 0)||((clus4 > 0)&&(clus8 > 0)))
00279        if(!((clus3 > 0)||(clus1 > 0)) && !((clus4 > 0)&&(clus8 > 0)))
00280        {
00281          return true;
00282        }
00283        else return false;
00284     }
00285     else return false;
00286   }
00287   //------------------------------------------------------------------------------------
00288 /* Cluster Finder Logic (1)
00289              <---phi
00290       |---|
00291       | 1 |      
00292       |---|---| /|\
00293       | 0 | 2 |  |
00294       |---|---| theta
00295   if(partId==0)
00296   {
00297     if(TCThetaNb==0)
00298     {
00299       energy0 = m_EmcTCFinder->GetEETCEnergy(TCThetaNb,TCPhiNb);
00300       energy1 = m_EmcTCFinder->GetEETCEnergy(TCThetaNb+1,TCPhiNb);
00301       if(TCPhiNb!=0) energy2 =m_EmcTCFinder->GetEETCEnergy(TCThetaNb,TCPhiNb-1);
00302       else energy2 = m_EmcTCFinder->GetEETCEnergy(TCThetaNb,TrigConf::TCPHINO_E-1);
00303       if((energy0>=L1TC_THRESH)&&(energy1<L1TC_THRESH)&&(energy2<L1TC_THRESH)) return true;
00304       else return false;
00305     }
00306     if(TCThetaNb==(TrigConf::TCTHETANO_E-1))
00307     {
00308       energy0 = m_EmcTCFinder->GetEETCEnergy(TCThetaNb,TCPhiNb);
00309       if(TCPhiNb!=0) energy1 = m_EmcTCFinder->GetEETCEnergy(TCThetaNb,TCPhiNb-1);
00310       else energy1 = m_EmcTCFinder->GetEETCEnergy(TCThetaNb,TrigConf::TCPHINO_E-1);
00311       if((energy0>=L1TC_THRESH)&&(energy1<L1TC_THRESH)) return true;
00312       else return false;
00313     }
00314   }
00315   if(partId==2)
00316   {
00317     if(TCThetaNb==0)
00318     {
00319       energy0 = m_EmcTCFinder->GetWETCEnergy(TCThetaNb,TCPhiNb);
00320       energy1 = m_EmcTCFinder->GetWETCEnergy(TCThetaNb+1,TCPhiNb);
00321       if(TCPhiNb!=0) energy2 = m_EmcTCFinder->GetWETCEnergy(TCThetaNb,TCPhiNb-1);
00322       else energy2 = m_EmcTCFinder->GetWETCEnergy(TCThetaNb,TrigConf::TCPHINO_E-1);
00323       if((energy0>=L1TC_THRESH)&&(energy1<L1TC_THRESH)&&(energy2<L1TC_THRESH)) return true;
00324       else return false;
00325     }
00326     if(TCThetaNb==(TrigConf::TCTHETANO_E-1))
00327     {
00328       energy0 = m_EmcTCFinder->GetWETCEnergy(TCThetaNb,TCPhiNb);
00329       if(TCPhiNb!=0) energy1 = m_EmcTCFinder->GetWETCEnergy(TCThetaNb,TCPhiNb-1);
00330       else energy1 = m_EmcTCFinder->GetWETCEnergy(TCThetaNb,TrigConf::TCPHINO_E-1);
00331       if((energy0>=L1TC_THRESH)&&(energy1<L1TC_THRESH)) return true;
00332       else return false;
00333     }
00334   }
00335 */
00336   //------------------------------------------------------------------------------------
00337 /*Cluster Finder Logic (1) 
00338              <---phi
00339             
00340       |---|---| /|\
00341       | 0 | 1 |  |
00342       |---|---| theta
00343   //if(partId==0)
00344   //{
00345   //  energy0 = m_EmcTCFinder->getEETCEnergy(TCThetaNb,TCPhiNb);
00346   //  if(TCPhiNb!=0) {
00347   //    energy1 = m_EmcTCFinder->getEETCEnergy(TCThetaNb,TCPhiNb-1);
00348   //  }
00349   //  else {
00350   //    energy1 = m_EmcTCFinder->getEETCEnergy(TCThetaNb,(TrigConf::TCPHINO_E-1));
00351   //  }
00352   //  if((energy0>=L1TC_THRESH)&&(energy1<L1TC_THRESH)) return true;
00353   //  else return false;
00354   //}
00355 
00356   if(partId==0)
00357   {
00358     clus0 = m_EmcTCFinder->getEETC(TCThetaNb,TCPhiNb);
00359     if(TCPhiNb!=0) {
00360       clus1 = m_EmcTCFinder->getEETC(TCThetaNb,TCPhiNb-1);
00361     }
00362     else {
00363       clus1 = m_EmcTCFinder->getEETC(TCThetaNb,(TrigConf::TCPHINO_E-1));
00364     }
00365     if((clus0 > 0)&&(clus1 == 0)) return true;
00366     else return false;
00367   }
00368 
00369   //if(partId==2)
00370   //{
00371   //  energy0 = m_EmcTCFinder->getWETCEnergy(TCThetaNb,TCPhiNb);
00372   //  if(TCPhiNb!=0) {
00373   //    energy1 = m_EmcTCFinder->getWETCEnergy(TCThetaNb,TCPhiNb-1);
00374   //  }
00375   //  else {
00376   //    energy1 = m_EmcTCFinder->getWETCEnergy(TCThetaNb,(TrigConf::TCPHINO_E-1));
00377   //  }
00378   //  if((energy0>=L1TC_THRESH)&&(energy1<L1TC_THRESH)) return true;
00379   //  else return false;
00380   //}
00381 
00382   if(partId==2)
00383   {
00384     clus0 = m_EmcTCFinder->getWETC(TCThetaNb,TCPhiNb);
00385     if(TCPhiNb!=0) {
00386       clus1 = m_EmcTCFinder->getWETC(TCThetaNb,TCPhiNb-1);
00387     }
00388     else {
00389       clus1 = m_EmcTCFinder->getWETC(TCThetaNb,(TrigConf::TCPHINO_E-1));
00390     }
00391     if((clus0 > 0)&&(clus1 == 0)) return true;
00392     else return false;
00393   }
00394 */
00395 
00396 /*Cluster Finder Logic (2) 
00397              <---phi
00398             
00399       |---|---| /|\
00400       | 0 | 1 |  |
00401       |---|---| theta
00402 */ 
00403   if(partId==0)
00404   {
00405     int etc1,etc2,etc3,etc4;
00406     etc1 = m_EmcTCFinder->getEETC(TCThetaNb,TCPhiNb*2);
00407     etc2 = m_EmcTCFinder->getEETC(TCThetaNb,TCPhiNb*2+1);
00408     if(etc1 > 0 || etc2 > 0) clus0 = 1;
00409     else clus0 = 0;
00410 
00411     if(TCPhiNb!=0) {
00412       etc3 = m_EmcTCFinder->getEETC(TCThetaNb,(TCPhiNb-1)*2);
00413       etc4 = m_EmcTCFinder->getEETC(TCThetaNb,(TCPhiNb-1)*2+1);
00414       if(etc3 > 0 || etc4 > 0) clus1 = 1;
00415       else clus1 = 0;
00416     }
00417     else {
00418       etc3 = m_EmcTCFinder->getEETC(TCThetaNb,(TrigConf::TCPHINO_E/2-1)*2);
00419       etc4 = m_EmcTCFinder->getEETC(TCThetaNb,(TrigConf::TCPHINO_E/2-1)*2+1);
00420       if(etc3 > 0 || etc4 > 0) clus1 = 1;
00421       else clus1 = 0;
00422     }
00423 
00424     if((clus0 > 0)&&(clus1 == 0)) return true;
00425     else return false;
00426   }
00427 
00428 /*Cluster Finder Logic (2) 
00429              <---phi
00430             
00431       |---|---| /|\
00432       | 1 | 0 |  |
00433       |---|---| theta
00434 */
00435   if(partId==2)
00436   {
00437     int etc1,etc2,etc3,etc4;
00438     etc1 = m_EmcTCFinder->getWETC(TCThetaNb,TCPhiNb*2);
00439     etc2 = m_EmcTCFinder->getWETC(TCThetaNb,TCPhiNb*2+1);
00440     if(etc1 > 0 || etc2 > 0) clus0 = 1;
00441     else clus0 = 0;
00442 
00443     if(TCPhiNb!= (TrigConf::TCPHINO_E/2-1)) {
00444       etc3 = m_EmcTCFinder->getWETC(TCThetaNb,(TCPhiNb+1)*2);
00445       etc4 = m_EmcTCFinder->getWETC(TCThetaNb,(TCPhiNb+1)*2+1);
00446       if(etc3 > 0 || etc4 > 0) clus1 = 1;
00447       else clus1 = 0;
00448     }
00449     else {
00450       etc3 = m_EmcTCFinder->getWETC(TCThetaNb,0);
00451       etc4 = m_EmcTCFinder->getWETC(TCThetaNb,1);
00452       if(etc3 > 0 || etc4 > 0) clus1 = 1;
00453       else clus1 = 0;
00454     }
00455 
00456     if((clus0 > 0)&&(clus1 == 0)) return true;
00457     else return false;
00458   }
00459 
00460   return false;
00461 }

int EmcCCount::getBClusterId ( int  i,
int  j 
) [inline]

Definition at line 21 of file EmcCCount.h.

References BClusterId.

Referenced by BesEmcTrig::startEmcTrig().

00021 { return BClusterId[i][j]; }

int EmcCCount::getBClusterPhi ( int  i  )  [inline]

Definition at line 18 of file EmcCCount.h.

References BClusterPhi.

Referenced by BesEmcTrig::startEmcTrig().

00018 { return BClusterPhi[i]; }

void EmcCCount::getClusterId (  ) 

Definition at line 36 of file EmcCCount.cxx.

References BClusterId, BClusterPhi, EClus_Z, EEClusterId, EEClusterPhi, findCluster(), EmcTCFinder::getBTCEnergy(), EmcTCFinder::getEETCEnergy(), EmcTCFinder::getWETCEnergy(), genRecEmupikp::i, ganga-rec::j, m_EmcTCFinder, m_pIBGT, m_tmpSvc, BesGlobalTrigSvc::setEmcClusE(), BesGlobalTrigSvc::setEmcClusId(), BesGlobalTrigSvc::setEmcNbCluster(), BesGlobalTrigSvc::setEmcNeeCluster(), BesGlobalTrigSvc::setEmcNweCluster(), TrigConf::TCPHINO_B, TrigConf::TCPHINO_E, TrigConf::TCTHETANO_B, TrigConf::TCTHETANO_E, WClus_Z, WEClusterId, and WEClusterPhi.

Referenced by BesEmcTrig::startEmcTrig().

00037 {
00038   //reset values
00039   EClus_Z = false;
00040   WClus_Z = false;
00041   //barrel
00042   for(int j=0;j<TrigConf::TCPHINO_B;j++)
00043   {
00044     BClusterPhi[j] = 0;
00045     for(int i=0;i<TrigConf::TCTHETANO_B;i++)
00046     {
00047       BClusterId[i][j] = 0;
00048     }
00049   }
00050   //endcaps
00051   for(int j =0;j<TrigConf::TCPHINO_E/2;j++)
00052   {
00053     if(j < TrigConf::TCPHINO_E/2) {
00054       WEClusterPhi[j] = 0;
00055       EEClusterPhi[j] = 0;
00056     }
00057     for(int i =0;i<TrigConf::TCTHETANO_E;i++)
00058     {
00059       EEClusterId[i][j] = 0;
00060       WEClusterId[i][j] = 0;
00061     }
00062   }
00063 
00064   std::vector<double> emcClusE;
00065   emcClusE.clear();
00066 
00067   for(int i=0;i<TrigConf::TCTHETANO_B;i++)
00068     for(int j=0;j<TrigConf::TCPHINO_B;j++)
00069     {
00071       if(findCluster(1,i,j))
00072       {
00073         BClusterId[i][j] = 1;
00074         //check cluster z balance for charge track
00075         int block_phi = int (j/5);
00076         if(((block_phi%2 == 0) && i > 5) || ((block_phi%2 == 1) && i > 4)) WClus_Z = true;
00077         else EClus_Z = true;
00078         emcClusE.push_back(m_EmcTCFinder->getBTCEnergy(i,j));
00079       }
00080     }
00081   //Find cluster position in endcap
00082   for(int i =0;i<TrigConf::TCTHETANO_E;i++)
00083     for(int j =0;j<TrigConf::TCPHINO_E/2;j++)
00084     {
00085       if(findCluster(0,i,j)) { EEClusterId[i][j] = 1; EClus_Z = true; emcClusE.push_back(m_EmcTCFinder->getEETCEnergy(i,j)); }
00086       if(findCluster(2,i,j)) { WEClusterId[i][j] = 1; WClus_Z = true; emcClusE.push_back(m_EmcTCFinder->getWETCEnergy(i,j)); }
00087     }
00088   //Find phi position of cluster in barrel
00089   for(int j = 0;j<TrigConf::TCPHINO_B;j++)
00090     for(int i =0;i<TrigConf::TCTHETANO_B;i++)
00091     {
00092       if(BClusterId[i][j]==1)
00093       {
00094         BClusterPhi[j] = 1;
00095         break;
00096       }
00097     }
00098   //Find phi position of cluster in west endcap 
00099   for(int j =0;j<TrigConf::TCPHINO_E/2;j++)
00100     for(int i =0;i<TrigConf::TCTHETANO_E;i++)
00101     {
00102       if(WEClusterId[i][j] == 1)
00103       {
00104         WEClusterPhi[j] = 1;
00105       }
00106     }
00107   //Find phi position of cluster in east endcap
00108   for(int j =0;j<TrigConf::TCPHINO_E/2;j++)
00109     for(int i =0;i<TrigConf::TCTHETANO_E;i++)
00110     {
00111       if(EEClusterId[i][j] == 1)
00112       {
00113         EEClusterPhi[j] = 1;
00114       }
00115     }
00116  // for(int i=0;i<TrigConf::TCPHINO_E/2;i++) cout<<"ClusterId output "<<EEClusterPhi[i]<<" "<<WEClusterPhi[i]<<endl;
00117     
00118     //set number of cluster in barrel and endcaps for service
00119     int nbCluster = 0, neeCluster = 0, nweCluster = 0;
00120     
00121     map<int,vector<complex<int> >, greater<int> > mClusId;
00122     std::vector<complex<int> > vClusIdBR;
00123     std::vector<complex<int> > vClusIdEE;
00124     std::vector<complex<int> > vClusIdWE;
00125     typedef pair<int, vector<complex<int> > > vpair;
00126     vClusIdBR.clear();
00127     vClusIdEE.clear();
00128     vClusIdWE.clear();
00129     mClusId.clear();
00130 
00131     for(int i=0;i<TrigConf::TCTHETANO_B;i++)
00132       for(int j=0;j<TrigConf::TCPHINO_B;j++)
00133       {
00134         int BClusId = BClusterId[i][j];
00135         if(BClusId == 1) {
00136           nbCluster++;
00137           complex<int> clusId(i,j);
00138           vClusIdBR.push_back(clusId);
00139         }
00140       }
00141     for(int i=0; i<TrigConf::TCTHETANO_E; i++)
00142       for(int j=0; j<TrigConf::TCPHINO_E/2; j++)
00143       {
00144         if(EEClusterPhi[j]) {
00145           neeCluster++;
00146           complex<int> clusId(i,j);
00147           vClusIdEE.push_back(clusId); 
00148         }
00149         if(WEClusterPhi[j]) {
00150           nweCluster++;
00151           complex<int> clusId(i,j);
00152           vClusIdWE.push_back(clusId);
00153         }
00154       }
00155 
00156      mClusId.insert(vpair(1,vClusIdBR));
00157      mClusId.insert(vpair(0,vClusIdEE));
00158      mClusId.insert(vpair(2,vClusIdWE));
00159     
00160      ISvcLocator* svcLocator = Gaudi::svcLocator();
00161      StatusCode sc = svcLocator->service("BesGlobalTrigSvc", m_tmpSvc);
00162      m_pIBGT = dynamic_cast<BesGlobalTrigSvc* >(m_tmpSvc);
00163 
00164      m_pIBGT->setEmcNbCluster(nbCluster);
00165      m_pIBGT->setEmcNweCluster(nweCluster);
00166      m_pIBGT->setEmcNeeCluster(neeCluster); 
00167      m_pIBGT->setEmcClusId(mClusId);  
00168      m_pIBGT->setEmcClusE(emcClusE);  
00169 }

bool EmcCCount::getEClus_Z (  )  [inline]

Definition at line 24 of file EmcCCount.h.

References EClus_Z.

Referenced by BesEmcTrig::startEmcTrig().

00024 { return EClus_Z; }

int EmcCCount::getEEClusterId ( int  i,
int  j 
) [inline]

Definition at line 22 of file EmcCCount.h.

References EEClusterId.

00022 { return EEClusterId[i][j]; }

int EmcCCount::getEEClusterPhi ( int  i  )  [inline]

Definition at line 20 of file EmcCCount.h.

References EEClusterPhi.

Referenced by BesEmcTrig::startEmcTrig().

00020 { return EEClusterPhi[i]; }

bool EmcCCount::getWClus_Z (  )  [inline]

Definition at line 25 of file EmcCCount.h.

References WClus_Z.

Referenced by BesEmcTrig::startEmcTrig().

00025 { return WClus_Z; }

int EmcCCount::getWEClusterId ( int  i,
int  j 
) [inline]

Definition at line 23 of file EmcCCount.h.

References WEClusterId.

00023 { return WEClusterId[i][j]; }

int EmcCCount::getWEClusterPhi ( int  i  )  [inline]

Definition at line 19 of file EmcCCount.h.

References WEClusterPhi.

Referenced by BesEmcTrig::startEmcTrig().

00019 { return WEClusterPhi[i]; }


Member Data Documentation

int EmcCCount::BClusterId[TrigConf::TCTHETANO_B][TrigConf::TCPHINO_B] [private]

Definition at line 33 of file EmcCCount.h.

Referenced by getBClusterId(), and getClusterId().

int EmcCCount::BClusterPhi[TrigConf::TCPHINO_B] [private]

Definition at line 29 of file EmcCCount.h.

Referenced by getBClusterPhi(), and getClusterId().

bool EmcCCount::EClus_Z [private]

Definition at line 37 of file EmcCCount.h.

Referenced by getClusterId(), and getEClus_Z().

int EmcCCount::EEClusterId[TrigConf::TCTHETANO_E][TrigConf::TCPHINO_E/2] [private]

Definition at line 34 of file EmcCCount.h.

Referenced by getClusterId(), and getEEClusterId().

int EmcCCount::EEClusterPhi[TrigConf::TCPHINO_E/2] [private]

Definition at line 31 of file EmcCCount.h.

Referenced by getClusterId(), and getEEClusterPhi().

EmcTCFinder* EmcCCount::m_EmcTCFinder [private]

Definition at line 27 of file EmcCCount.h.

Referenced by EmcCCount(), findCluster(), and getClusterId().

BesGlobalTrigSvc* EmcCCount::m_pIBGT [private]

Definition at line 40 of file EmcCCount.h.

Referenced by getClusterId().

IBesGlobalTrigSvc* EmcCCount::m_tmpSvc [private]

Definition at line 41 of file EmcCCount.h.

Referenced by getClusterId().

bool EmcCCount::WClus_Z [private]

Definition at line 38 of file EmcCCount.h.

Referenced by getClusterId(), and getWClus_Z().

int EmcCCount::WEClusterId[TrigConf::TCTHETANO_E][TrigConf::TCPHINO_E/2] [private]

Definition at line 35 of file EmcCCount.h.

Referenced by getClusterId(), and getWEClusterId().

int EmcCCount::WEClusterPhi[TrigConf::TCPHINO_E/2] [private]

Definition at line 30 of file EmcCCount.h.

Referenced by getClusterId(), and getWEClusterPhi().


Generated on Tue Nov 29 23:18:38 2016 for BOSS_7.0.2 by  doxygen 1.4.7