CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HcalNoiseHPD.cc
Go to the documentation of this file.
1 //
2 // HcalNoiseHPD.cc
3 //
4 // description: container class of HPD information for analyzing HCAL Noise
5 //
6 // author: J.P. Chou, Brown
7 //
8 //
9 
11 
12 
13 using namespace reco;
14 
15 // default constructor
17  : idnumber_(0), totalZeros_(0), maxZeros_(0),
18  bigCharge_(HBHEDataFrame::MAXSAMPLES, 0.0),
19  big5Charge_(HBHEDataFrame::MAXSAMPLES, 0.0)
20 {
21  // reserve some space, so that there's no reallocation issues
22  rechits_.reserve(19);
23  calotowers_.reserve(19);
24 }
25 
26 // destructor
28 {
29 }
30 
31 // accessors
32 int HcalNoiseHPD::idnumber(void) const
33 {
34  return idnumber_;
35 }
36 
37 const std::vector<float> HcalNoiseHPD::bigCharge(void) const
38 {
39  return bigCharge_;
40 }
41 
43 {
44  float total=0;
45  for(unsigned int i=0; i<bigCharge_.size(); i++) {
46  total += bigCharge_[i];
47  }
48  return total;
49 }
50 
51 float HcalNoiseHPD::bigChargeHighest2TS(unsigned int firstts) const
52 {
53  float total=0;
54  for(unsigned int i=firstts; i<firstts+2 && i<bigCharge_.size(); i++)
55  total += bigCharge_[i];
56  return total;
57 }
58 
59 float HcalNoiseHPD::bigChargeHighest3TS(unsigned int firstts) const
60 {
61  float total=0;
62  for(unsigned int i=firstts; i<firstts+3 && i<bigCharge_.size(); i++)
63  total += bigCharge_[i];
64  return total;
65 }
66 
67 const std::vector<float> HcalNoiseHPD::big5Charge(void) const
68 {
69  return big5Charge_;
70 }
71 
73 {
74  float total=0;
75  for(unsigned int i=0; i<big5Charge_.size(); i++) {
76  total += big5Charge_[i];
77  }
78  return total;
79 }
80 
81 float HcalNoiseHPD::big5ChargeHighest2TS(unsigned int firstts) const
82 {
83  float total=0;
84  for(unsigned int i=firstts; i<firstts+2 && i<big5Charge_.size(); i++)
85  total += big5Charge_[i];
86  return total;
87 }
88 
89 float HcalNoiseHPD::big5ChargeHighest3TS(unsigned int firstts) const
90 {
91  float total=0;
92  for(unsigned int i=firstts; i<firstts+2 && i<big5Charge_.size(); i++)
93  total += big5Charge_[i];
94  return total;
95 }
96 
97 int HcalNoiseHPD::totalZeros(void) const
98 {
99  return totalZeros_;
100 }
101 
102 int HcalNoiseHPD::maxZeros(void) const
103 {
104  return maxZeros_;
105 }
106 
108 {
109  return rechits_;
110 }
111 
113 {
114  float total=0.0;
116  float energy=(*it)->energy();
117  if(energy>=threshold) total+=energy;
118  }
119  return total;
120 }
121 
123 {
124  float mintime=9999999;
126  if((*it)->energy()<threshold) continue;
127  float time=(*it)->time();
128  if(mintime>time) mintime=time;
129  }
130  return mintime;
131 }
132 
134 {
135  float maxtime=-9999999;
137  if((*it)->energy()<threshold) continue;
138  float time=(*it)->time();
139  if(maxtime<time) maxtime=time;
140  }
141  return maxtime;
142 }
143 
145 {
146  int count=0;
148  if((*it)->energy()>=threshold) ++count;
149  return count;
150 }
151 
153 {
154  return calotowers_;
155 }
156 
157 double HcalNoiseHPD::caloTowerHadE(void) const
158 {
159  double total=0;
161  total += (*it)->hadEnergy();
162  return total;
163 }
164 
165 double HcalNoiseHPD::caloTowerEmE(void) const
166 {
167  double total=0;
169  total += (*it)->emEnergy();
170  return total;
171 }
172 
174 {
175  double total=0;
177  total += (*it)->emEnergy()+(*it)->hadEnergy();
178  return total;
179 }
180 
182 {
183  double h=0, e=0;
185  e += (*it)->emEnergy();
186  h += (*it)->hadEnergy();
187  }
188  return (e+h)!=0 ? e/(e+h) : 999.;
189 }
float maxRecHitTime(float threshold=10.0) const
int i
Definition: DBlmapReader.cc:9
float big5ChargeHighest3TS(unsigned int firstts=4) const
Definition: HcalNoiseHPD.cc:89
int idnumber(void) const
Definition: HcalNoiseHPD.cc:32
std::vector< float > bigCharge_
Definition: HcalNoiseHPD.h:134
std::vector< float > big5Charge_
Definition: HcalNoiseHPD.h:135
int maxZeros(void) const
const edm::RefVector< HBHERecHitCollection > recHits(void) const
const_iterator end() const
Termination of iteration.
Definition: RefVector.h:249
const_iterator begin() const
Initialize an iterator over the RefVector.
Definition: RefVector.h:244
edm::RefVector< HBHERecHitCollection > rechits_
Definition: HcalNoiseHPD.h:138
float big5ChargeHighest2TS(unsigned int firstts=4) const
Definition: HcalNoiseHPD.cc:81
virtual ~HcalNoiseHPD()
Definition: HcalNoiseHPD.cc:27
int numRecHits(float threshold=1.5) const
float bigChargeHighest2TS(unsigned int firstts=4) const
Definition: HcalNoiseHPD.cc:51
float bigChargeHighest3TS(unsigned int firstts=4) const
Definition: HcalNoiseHPD.cc:59
float big5ChargeTotal(void) const
Definition: HcalNoiseHPD.cc:72
float minRecHitTime(float threshold=10.0) const
void reserve(size_type n)
Reserve space for RefVector.
Definition: RefVector.h:95
double caloTowerEmE(void) const
double caloTowerHadE(void) const
edm::RefVector< CaloTowerCollection > calotowers_
Definition: HcalNoiseHPD.h:145
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
const edm::RefVector< CaloTowerCollection > caloTowers(void) const
double caloTowerEmFraction(void) const
float recHitEnergy(float threshold=1.5) const
double caloTowerTotalE(void) const
const std::vector< float > big5Charge(void) const
Definition: HcalNoiseHPD.cc:67
int totalZeros(void) const
Definition: HcalNoiseHPD.cc:97
float bigChargeTotal(void) const
Definition: HcalNoiseHPD.cc:42
const std::vector< float > bigCharge(void) const
Definition: HcalNoiseHPD.cc:37