Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

EmcRecHit2Cluster Class Reference

#include <EmcRecHit2Cluster.h>

List of all members.

Public Member Functions

void Convert (const RecEmcHitMap &aHitMap, RecEmcClusterMap &aClusterMap)
void Convert (const RecEmcHitMap &aHitMap, RecEmcClusterMap &aClusterMap)
 EmcRecHit2Cluster ()
 EmcRecHit2Cluster ()
 ~EmcRecHit2Cluster ()
 ~EmcRecHit2Cluster ()


Constructor & Destructor Documentation

EmcRecHit2Cluster::EmcRecHit2Cluster  ) 
 

00013 {}

EmcRecHit2Cluster::~EmcRecHit2Cluster  ) 
 

00016 {}

EmcRecHit2Cluster::EmcRecHit2Cluster  ) 
 

EmcRecHit2Cluster::~EmcRecHit2Cluster  ) 
 


Member Function Documentation

void EmcRecHit2Cluster::Convert const RecEmcHitMap aHitMap,
RecEmcClusterMap aClusterMap
 

void EmcRecHit2Cluster::Convert const RecEmcHitMap aHitMap,
RecEmcClusterMap aClusterMap
 

00020 {
00021    RecEmcHitMap tHitMap,aBufferHitMap;
00022    RecEmcHitMap::iterator pHitMap,pBufferHitMap;
00023    tHitMap=aHitMap;
00024    
00025    RecEmcID CellId;
00026    RecEmcIDVector NearCell;
00027    i_RecEmcIDVector pNearCell;
00028    
00029    RecEmcCluster aCluster;
00030 
00031    EmcRecParameter& Para=EmcRecParameter::GetInstance();
00032    
00033    while(!tHitMap.empty())
00034    {
00035      double eCluster=0;   //total energy of a cluster
00036      double emax=0;   //seed's energy of a cluster
00037      RecEmcID idmax;    //seed's id of a cluster
00038      
00039            // Search a cluster.
00040            pHitMap=tHitMap.begin();
00041            aBufferHitMap[pHitMap->first]=pHitMap->second;
00042            tHitMap.erase(pHitMap);
00043            aCluster.Clear();
00044            while(!aBufferHitMap.empty())
00045            {
00046              pBufferHitMap=aBufferHitMap.begin();
00047              CellId=pBufferHitMap->first;
00048              NearCell=EmcRecNeighbor::GetNeighbors(CellId);
00049              for(pNearCell=NearCell.begin();
00050                        pNearCell!=NearCell.end();
00051                        pNearCell++)
00052              {
00053                      pHitMap=tHitMap.find(*pNearCell);
00054                      if(pHitMap!=tHitMap.end())
00055                      {
00056                        aBufferHitMap[pHitMap->first]=pHitMap->second;
00057                        tHitMap.erase(pHitMap);
00058                      }
00059              }
00060 
00061        // Find seed
00062        if(pBufferHitMap->second.getEnergy()>emax) {
00063          emax=pBufferHitMap->second.getEnergy();
00064          idmax=pBufferHitMap->first;
00065        }
00066          
00067        eCluster+=pBufferHitMap->second.getEnergy();
00068              aCluster.Insert(pBufferHitMap->second);
00069              aBufferHitMap.erase(pBufferHitMap);
00070            }
00071          // Now, done and save it.
00072      if(eCluster>Para.EThresholdCluster())
00073      {
00074        aCluster.ClusterId(idmax);
00075              aClusterMap[idmax]=aCluster;
00076              //aClusterMap[aCluster.ClusterId()]=aCluster;
00077      }
00078    }
00079 
00080 }


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 16:02:00 2011 for BOSS6.5.5 by  doxygen 1.3.9.1