CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
RPCClusterizer.cc
Go to the documentation of this file.
1 #include "RPCClusterizer.h"
2 #include "RPCCluster.h"
3 #include "RPCClusterContainer.h"
4 
5 
7 {
8 }
9 
11 {
12 }
13 
17  for (RPCDigiCollection::const_iterator digi = digiRange.first;
18  digi != digiRange.second;
19  digi++) {
20  RPCCluster cl(digi->strip(),digi->strip(),digi->bx());
21  cls.insert(cl);
22  }
23  RPCClusterContainer clsNew =this->doActualAction(cls);
24  return clsNew;
25 }
26 
29 
30  RPCClusterContainer finalCluster;
31  RPCCluster prev;
32 
33  unsigned int j = 0;
34  for(RPCClusterContainer::const_iterator i=initialclusters.begin();
35  i != initialclusters.end(); i++){
36  RPCCluster 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 
int i
Definition: DBlmapReader.cc:9
void merge(const RPCCluster &cl)
Definition: RPCCluster.cc:50
RPCClusterContainer doAction(const RPCDigiCollection::Range &digiRange)
RPCClusterContainer doActualAction(RPCClusterContainer &initialclusters)
int j
Definition: DBlmapReader.cc:9
RPCClusterContainer cls
std::vector< RPCDigi >::const_iterator const_iterator
std::pair< const_iterator, const_iterator > Range
std::set< RPCCluster > RPCClusterContainer
bool isAdjacent(const RPCCluster &cl) const
Definition: RPCCluster.cc:44