BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EmcRecHit2Cluster Class Reference

#include <EmcRecHit2Cluster.h>

Public Member Functions

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

Detailed Description

Constructor & Destructor Documentation

◆ EmcRecHit2Cluster() [1/3]

EmcRecHit2Cluster::EmcRecHit2Cluster ( )

Definition at line 12 of file EmcRecHit2Cluster.cxx.

12{}

◆ ~EmcRecHit2Cluster() [1/3]

EmcRecHit2Cluster::~EmcRecHit2Cluster ( )

Definition at line 14 of file EmcRecHit2Cluster.cxx.

14{}

◆ EmcRecHit2Cluster() [2/3]

EmcRecHit2Cluster::EmcRecHit2Cluster ( )

◆ ~EmcRecHit2Cluster() [2/3]

EmcRecHit2Cluster::~EmcRecHit2Cluster ( )

◆ EmcRecHit2Cluster() [3/3]

EmcRecHit2Cluster::EmcRecHit2Cluster ( )

◆ ~EmcRecHit2Cluster() [3/3]

EmcRecHit2Cluster::~EmcRecHit2Cluster ( )

Member Function Documentation

◆ Convert() [1/3]

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

Definition at line 16 of file EmcRecHit2Cluster.cxx.

16 {
17 RecEmcHitMap tHitMap, aBufferHitMap;
18 RecEmcHitMap::iterator pHitMap, pBufferHitMap;
19 tHitMap = aHitMap;
20
21 RecEmcID CellId;
22 RecEmcIDVector NearCell;
23 i_RecEmcIDVector pNearCell;
24
25 RecEmcCluster aCluster;
26
27 EmcRecParameter& Para = EmcRecParameter::GetInstance();
28 EmcRecNeighbor nhb;
29
30 while ( !tHitMap.empty() )
31 {
32 double eCluster = 0; // total energy of a cluster
33 double emax = 0; // seed's energy of a cluster
34 RecEmcID idmax; // seed's id of a cluster
35
36 // Search a cluster.
37 pHitMap = tHitMap.begin();
38 aBufferHitMap[pHitMap->first] = pHitMap->second;
39 tHitMap.erase( pHitMap );
40 aCluster.Clear();
41 while ( !aBufferHitMap.empty() )
42 {
43 pBufferHitMap = aBufferHitMap.begin();
44 CellId = pBufferHitMap->first;
45 NearCell = nhb.GetNeighbors( CellId );
46 for ( pNearCell = NearCell.begin(); pNearCell != NearCell.end(); pNearCell++ )
47 {
48 pHitMap = tHitMap.find( *pNearCell );
49 if ( pHitMap != tHitMap.end() )
50 {
51 aBufferHitMap[pHitMap->first] = pHitMap->second;
52 tHitMap.erase( pHitMap );
53 }
54 }
55
56 // Find seed
57 if ( pBufferHitMap->second.getEnergy() > emax )
58 {
59 emax = pBufferHitMap->second.getEnergy();
60 idmax = pBufferHitMap->first;
61 }
62
63 eCluster += pBufferHitMap->second.getEnergy();
64 aCluster.Insert( pBufferHitMap->second );
65 aBufferHitMap.erase( pBufferHitMap );
66 }
67 // Now, done and save it.
68 if ( eCluster > Para.EThresholdCluster() )
69 {
70 aCluster.ClusterId( idmax );
71 aClusterMap[idmax] = aCluster;
72 // aClusterMap[aCluster.ClusterId()]=aCluster;
73 }
74 }
75}
map< RecEmcID, RecEmcHit, less< RecEmcID > > RecEmcHitMap
RecEmcIDVector GetNeighbors(const Identifier &id)
static EmcRecParameter & GetInstance()
double EThresholdCluster() const
void Insert(const RecEmcHit &aHit)
void ClusterId(const RecEmcID id)

◆ Convert() [2/3]

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

◆ Convert() [3/3]

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

The documentation for this class was generated from the following files: