CMS 3D CMS Logo

GEMClusterizer.cc
Go to the documentation of this file.
1 #include "GEMClusterizer.h"
2 #include "GEMCluster.h"
3 #include "GEMClusterContainer.h"
4 
5 
7 {
8 }
9 
11 {
12 }
13 
17  for (GEMDigiCollection::const_iterator digi = digiRange.first;
18  digi != digiRange.second;
19  digi++) {
20  GEMCluster cl(digi->strip(),digi->strip(),digi->bx());
21  cls.insert(cl);
22  }
23  GEMClusterContainer clsNew =this->doActualAction(cls);
24  return clsNew;
25 }
26 
29 
30  GEMClusterContainer finalCluster;
31  GEMCluster prev;
32 
33  unsigned int j = 0;
34  for(GEMClusterContainer::const_iterator i=initialclusters.begin();
35  i != initialclusters.end(); i++){
36  GEMCluster cl = *i;
37 
38  if(i==initialclusters.begin()){
39  prev = cl;
40  j++;
41  if(j == initialclusters.size()){
42  finalCluster.insert(prev);
43  }
44  else if(j < initialclusters.size()){
45  continue;
46  }
47  }
48 
49  if(prev.isAdjacent(cl)) {
50  prev.merge(cl);
51  j++;
52  if(j == initialclusters.size()){
53  finalCluster.insert(prev);
54  }
55  }
56  else {
57  j++;
58  if(j < initialclusters.size()){
59  finalCluster.insert(prev);
60  prev = cl;
61  }
62  if(j == initialclusters.size()){
63  finalCluster.insert(prev);
64  finalCluster.insert(cl);
65  }
66  }
67  }
68 
69  return finalCluster;
70 }
71 
72 
GEMClusterContainer doActualAction(GEMClusterContainer &initialclusters)
int i
Definition: DBlmapReader.cc:9
std::set< GEMCluster > GEMClusterContainer
GEMClusterContainer doAction(const GEMDigiCollection::Range &digiRange)
void merge(const GEMCluster &cl)
Definition: GEMCluster.cc:50
int j
Definition: DBlmapReader.cc:9
std::vector< GEMDigi >::const_iterator const_iterator
std::pair< const_iterator, const_iterator > Range
GEMClusterContainer cls
bool isAdjacent(const GEMCluster &cl) const
Definition: GEMCluster.cc:44