CMS 3D CMS Logo

RPCCluster.cc
Go to the documentation of this file.
1 #include "RPCCluster.h"
2 #include <iostream>
3 #include <fstream>
4 #include <cmath>
5 
6 using namespace std;
7 
9  : fstrip(0), lstrip(0), bunchx(0), sumTime(0), sumTime2(0), nTime(0), sumY(0), sumY2(0), nY(0) {}
10 
11 RPCCluster::RPCCluster(int fs, int ls, int bx)
12  : fstrip(fs), lstrip(ls), bunchx(bx), sumTime(0), sumTime2(0), nTime(0), sumY(0), sumY2(0), nY(0) {}
13 
15 
16 int RPCCluster::firstStrip() const { return fstrip; }
17 int RPCCluster::lastStrip() const { return lstrip; }
18 int RPCCluster::clusterSize() const { return lstrip - fstrip + 1; }
19 int RPCCluster::bx() const { return bunchx; }
20 
21 bool RPCCluster::hasTime() const { return nTime > 0; }
22 float RPCCluster::time() const { return hasTime() ? sumTime / nTime : 0; }
23 float RPCCluster::timeRMS() const {
24  return hasTime() ? sqrt(max(0.F, sumTime2 * nTime - sumTime * sumTime)) / nTime : -1;
25 }
26 
27 bool RPCCluster::hasY() const { return nY > 0; }
28 float RPCCluster::y() const { return hasY() ? sumY / nY : 0; }
29 float RPCCluster::yRMS() const { return hasY() ? sqrt(max(0.F, sumY2 * nY - sumY * sumY)) / nY : -1; }
30 
31 bool RPCCluster::isAdjacent(const RPCCluster& cl) const {
32  return ((cl.firstStrip() == this->firstStrip() - 1) && (cl.bx() == this->bx()));
33 }
34 
35 void RPCCluster::addTime(const float time) {
36  ++nTime;
37  sumTime += time;
38  sumTime2 += time * time;
39 }
40 
41 void RPCCluster::addY(const float y) {
42  ++nY;
43  sumY += y;
44  sumY2 += y * y;
45 }
46 
48  if (!this->isAdjacent(cl))
49  return;
50 
51  fstrip = cl.firstStrip();
52 
53  nTime += cl.nTime;
54  sumTime += cl.sumTime;
55  sumTime2 += cl.sumTime2;
56 
57  nY += cl.nY;
58  sumY += cl.sumY;
59  sumY2 += cl.sumY2;
60 }
61 
62 bool RPCCluster::operator<(const RPCCluster& cl) const {
63  if (cl.bx() == this->bx())
64  return cl.firstStrip() < this->firstStrip();
65 
66  return cl.bx() < this->bx();
67 }
68 
69 bool RPCCluster::operator==(const RPCCluster& cl) const {
70  return ((this->clusterSize() == cl.clusterSize()) && (this->bx() == cl.bx()) &&
71  (this->firstStrip() == cl.firstStrip()));
72 }
RPCCluster::firstStrip
int firstStrip() const
Definition: RPCCluster.cc:16
RPCCluster::y
float y() const
Definition: RPCCluster.cc:28
eostools.ls
def ls(path, rec=False)
Definition: eostools.py:349
RPCCluster::hasY
bool hasY() const
Definition: RPCCluster.cc:27
RPCCluster::sumTime
float sumTime
Definition: RPCCluster.h:36
RPCCluster::sumY
float sumY
Definition: RPCCluster.h:39
RPCCluster::isAdjacent
bool isAdjacent(const RPCCluster &cl) const
Definition: RPCCluster.cc:31
RPCCluster::time
float time() const
Definition: RPCCluster.cc:22
RPCCluster::~RPCCluster
~RPCCluster()
Definition: RPCCluster.cc:14
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
protons_cff.time
time
Definition: protons_cff.py:35
F
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
Definition: blowfish.cc:163
GetRecoTauVFromDQM_MC_cff.cl
cl
Definition: GetRecoTauVFromDQM_MC_cff.py:38
RPCCluster::bx
int bx() const
Definition: RPCCluster.cc:19
RPCCluster::addTime
void addTime(const float time)
Definition: RPCCluster.cc:35
RPCCluster::fstrip
uint16_t fstrip
Definition: RPCCluster.h:32
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
RPCCluster::operator==
bool operator==(const RPCCluster &cl) const
Definition: RPCCluster.cc:69
RPCCluster::lastStrip
int lastStrip() const
Definition: RPCCluster.cc:17
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
RPCCluster
Definition: RPCCluster.h:4
RPCCluster::bunchx
int16_t bunchx
Definition: RPCCluster.h:34
RPCCluster::yRMS
float yRMS() const
Definition: RPCCluster.cc:29
RPCCluster::hasTime
bool hasTime() const
Definition: RPCCluster.cc:21
RPCCluster::timeRMS
float timeRMS() const
Definition: RPCCluster.cc:23
RPCCluster::nY
uint16_t nY
Definition: RPCCluster.h:40
RPCCluster::nTime
uint16_t nTime
Definition: RPCCluster.h:37
RPCCluster::lstrip
uint16_t lstrip
Definition: RPCCluster.h:33
RPCCluster::addY
void addY(const float y)
Definition: RPCCluster.cc:41
RPCCluster::sumY2
float sumY2
Definition: RPCCluster.h:39
std
Definition: JetResolutionObject.h:76
RPCCluster::sumTime2
float sumTime2
Definition: RPCCluster.h:36
RPCCluster::operator<
bool operator<(const RPCCluster &cl) const
Definition: RPCCluster.cc:62
RPCCluster::merge
void merge(const RPCCluster &cl)
Definition: RPCCluster.cc:47
RPCCluster.h
detailsBasic3DVector::y
float float y
Definition: extBasic3DVector.h:14
RPCCluster::clusterSize
int clusterSize() const
Definition: RPCCluster.cc:18
RPCCluster::RPCCluster
RPCCluster()
Definition: RPCCluster.cc:8