#include <EmcRecSeedLocalMax.h>
Inheritance diagram for EmcRecSeedLocalMax:
Public Member Functions | |
EmcRecSeedLocalMax () | |
~EmcRecSeedLocalMax () | |
virtual void | Seed (const RecEmcCluster &aCluster, RecEmcIDVector &aMaxVec) |
Definition at line 12 of file EmcRecSeedLocalMax.h.
EmcRecSeedLocalMax::EmcRecSeedLocalMax | ( | ) |
EmcRecSeedLocalMax::~EmcRecSeedLocalMax | ( | ) |
void EmcRecSeedLocalMax::Seed | ( | const RecEmcCluster & | aCluster, | |
RecEmcIDVector & | aMaxVec | |||
) | [virtual] |
Implements EmcRecSeedAbs.
Definition at line 17 of file EmcRecSeedLocalMax.cxx.
References RecEmcCluster::Begin(), RecEmcCluster::End(), RecEmcCluster::Find(), RecEmcHit::getCellId(), RecEmcHit::getEnergy(), EmcRecNeighbor::GetNeighbors(), and max.
00019 { 00020 RecEmcHitMap::const_iterator ciHitMap; 00021 RecEmcHitMap::const_iterator ciNeigh; 00022 RecEmcHit aHit; 00023 00024 bool max; 00025 00026 RecEmcIDVector NeighVec; 00027 RecEmcIDVector::const_iterator ciNeighVec; 00028 00029 aMaxVec.clear(); 00030 00031 EmcRecNeighbor nhb; 00032 00033 for(ciHitMap=aCluster.Begin(); 00034 ciHitMap!=aCluster.End(); 00035 ++ciHitMap) { 00036 //++++++++++++++++++++++++++++++++++++++++++++++++++ 00037 //prepare a hit 00038 max=true; 00039 aHit=ciHitMap->second; 00040 //prepare its neighbours 00041 NeighVec.clear(); 00042 NeighVec=nhb.GetNeighbors(aHit.getCellId()); 00043 00044 //to see if it is energy max 00045 for(ciNeighVec=NeighVec.begin(); 00046 ciNeighVec!=NeighVec.end(); 00047 ++ciNeighVec) { 00048 //find it 00049 ciNeigh=aCluster.Find(*ciNeighVec); 00050 if(ciNeigh!=aCluster.End()) { 00051 //largest!!! 00052 if(ciNeigh->second.getEnergy()>=aHit.getEnergy()) { 00053 max=false; 00054 } 00055 } 00056 } 00057 00058 //once max hit is found 00059 if(max==true) { 00060 aMaxVec.push_back(aHit.getCellId()); 00061 } 00062 //++++++++++++++++++++++++++++++++++++++++++++++++++ 00063 } 00064 }