#include <EmcRecSeedLocalMax.h>
Inheritance diagram for EmcRecSeedLocalMax:
Public Member Functions | |
EmcRecSeedLocalMax () | |
EmcRecSeedLocalMax () | |
virtual void | Seed (const RecEmcCluster &aCluster, RecEmcIDVector &aMaxVec) |
virtual void | Seed (const RecEmcCluster &aCluster, RecEmcIDVector &aMaxVec) |
~EmcRecSeedLocalMax () | |
~EmcRecSeedLocalMax () |
|
00012 {}
|
|
00015 {}
|
|
|
|
|
|
Implements EmcRecSeedAbs. |
|
Implements EmcRecSeedAbs. 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 for(ciHitMap=aCluster.Begin(); 00032 ciHitMap!=aCluster.End(); 00033 ++ciHitMap) { 00034 //++++++++++++++++++++++++++++++++++++++++++++++++++ 00035 //prepare a hit 00036 max=true; 00037 aHit=ciHitMap->second; 00038 //prepare its neighbours 00039 NeighVec.clear(); 00040 NeighVec=EmcRecNeighbor::GetNeighbors(aHit.getCellId()); 00041 00042 //to see if it is energy max 00043 for(ciNeighVec=NeighVec.begin(); 00044 ciNeighVec!=NeighVec.end(); 00045 ++ciNeighVec) { 00046 //find it 00047 ciNeigh=aCluster.Find(*ciNeighVec); 00048 if(ciNeigh!=aCluster.End()) { 00049 //largest!!! 00050 if(ciNeigh->second.getEnergy()>=aHit.getEnergy()) { 00051 max=false; 00052 } 00053 } 00054 } 00055 00056 //once max hit is found 00057 if(max==true) { 00058 aMaxVec.push_back(aHit.getCellId()); 00059 } 00060 //++++++++++++++++++++++++++++++++++++++++++++++++++ 00061 } 00062 }
|