CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
RPCMaskReClusterizer.cc
Go to the documentation of this file.
1 
6 #include "RPCMaskReClusterizer.h"
7 
8 
9 
11 {
12 
13 }
14 
15 
17 {
18 
19 }
20 
21 
23  RPCClusterContainer& initClusters,
24  const RollMask& mask)
25 {
26 
27  RPCClusterContainer finClusters;
28  RPCCluster prev;
29 
30  unsigned int j = 0;
31 
32 
33  for (RPCClusterContainer::const_iterator i = initClusters.begin(); i != initClusters.end(); i++ ) {
34 
35  RPCCluster cl = *i;
36 
37  if ( i == initClusters.begin() ) {
38  prev = cl;
39  j++;
40  if ( j == initClusters.size() ) {
41  finClusters.insert(prev);
42  }
43  else if ( j < initClusters.size() ) {
44  continue;
45  }
46  }
47 
48 
49  if ( ((prev.firstStrip()-cl.lastStrip()) == 2 && this->get(mask,(cl.lastStrip()+1)))
50  && (cl.bx() == prev.bx()) ) {
51 
52  RPCCluster merged(cl.firstStrip(),prev.lastStrip(),cl.bx());
53  prev = merged;
54  j++;
55  if ( j == initClusters.size() ) {
56  finClusters.insert(prev);
57  }
58  }
59 
60  else {
61 
62  j++;
63  if ( j < initClusters.size() ) {
64  finClusters.insert(prev);
65  prev = cl;
66  }
67  if ( j == initClusters.size() ) {
68  finClusters.insert(prev);
69  finClusters.insert(cl);
70  }
71  }
72 
73  }
74 
75  return finClusters;
76 
77 }
78 
79 
80 
81 int RPCMaskReClusterizer::get(const RollMask& mask, int strip)
82 {
83 
84  if ( mask.test(strip-1) ) return 1;
85  else return 0;
86 
87 }
int i
Definition: DBlmapReader.cc:9
int get(const RollMask &, int)
int j
Definition: DBlmapReader.cc:9
std::bitset< maskSIZE > RollMask
Definition: RPCRollMask.h:8
int bx() const
Definition: RPCCluster.cc:39
int lastStrip() const
Definition: RPCCluster.cc:27
RPCClusterContainer doAction(const RPCDetId &, RPCClusterContainer &, const RollMask &)
int firstStrip() const
Definition: RPCCluster.cc:21
std::set< RPCCluster > RPCClusterContainer