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 
60 float HcalNoiseHPD::bigChargeHighest3TS(unsigned int firstts) const
61 {
62  float total=0;
63  for(unsigned int i=firstts; i<firstts+3 && i<bigCharge_.size(); i++)
64  total += bigCharge_[i];
65  return total;
66 }
67 
68 const std::vector<float> HcalNoiseHPD::big5Charge(void) const
69 {
70  return big5Charge_;
71 }
72 
74 {
75  float total=0;
76  for(unsigned int i=0; i<big5Charge_.size(); i++) {
77  total += big5Charge_[i];
78  }
79  return total;
80 }
81 
82 float HcalNoiseHPD::big5ChargeHighest2TS(unsigned int firstts) const
83 {
84  float total=0;
85  for(unsigned int i=firstts; i<firstts+2 && i<big5Charge_.size(); i++)
86  total += big5Charge_[i];
87  return total;
88 }
89 
90 float HcalNoiseHPD::big5ChargeHighest3TS(unsigned int firstts) const
91 {
92  float total=0;
93  for(unsigned int i=firstts; i<firstts+2 && i<big5Charge_.size(); i++)
94  total += big5Charge_[i];
95  return total;
96 }
97 
98 int HcalNoiseHPD::totalZeros(void) const
99 {
100  return totalZeros_;
101 }
102 
103 int HcalNoiseHPD::maxZeros(void) const
104 {
105  return maxZeros_;
106 }
107 
109 {
110  return rechits_;
111 }
112 
114 {
115  float total=0.0;
117  float energy=(*it)->energy();
118  if(energy>=threshold) total+=energy;
119  }
120  return total;
121 }
122 
124 {
125  float total=0.0;
127  float energy=(*it)->energy();
128  if((*it)->flagField(HcalCaloFlagLabels::HBHETS4TS5Noise))
129  if(energy>=threshold) total+=energy;
130  }
131  return total;
132 }
133 
135 {
136  float mintime=9999999;
138  if((*it)->energy()<threshold) continue;
139  float time=(*it)->time();
140  if(mintime>time) mintime=time;
141  }
142  return mintime;
143 }
144 
146 {
147  float maxtime=-9999999;
149  if((*it)->energy()<threshold) continue;
150  float time=(*it)->time();
151  if(maxtime<time) maxtime=time;
152  }
153  return maxtime;
154 }
155 
157 {
158  int count=0;
160  if((*it)->energy()>=threshold) ++count;
161  return count;
162 }
163 
165 {
166  int count=0;
168  if((*it)->flagField(HcalCaloFlagLabels::HBHETS4TS5Noise))
169  if((*it)->energy()>=threshold) ++count;
170  return count;
171 }
172 
174 {
175  return calotowers_;
176 }
177 
178 double HcalNoiseHPD::caloTowerHadE(void) const
179 {
180  double total=0;
182  total += (*it)->hadEnergy();
183  return total;
184 }
185 
186 double HcalNoiseHPD::caloTowerEmE(void) const
187 {
188  double total=0;
190  total += (*it)->emEnergy();
191  return total;
192 }
193 
195 {
196  double total=0;
198  total += (*it)->emEnergy()+(*it)->hadEnergy();
199  return total;
200 }
201 
203 {
204  double h=0, e=0;
206  e += (*it)->emEnergy();
207  h += (*it)->hadEnergy();
208  }
209  return (e+h)!=0 ? e/(e+h) : 999.;
210 }
float maxRecHitTime(float threshold=10.0) const
int i
Definition: DBlmapReader.cc:9
float big5ChargeHighest3TS(unsigned int firstts=4) const
Definition: HcalNoiseHPD.cc:90
float recHitEnergyFailR45(float threshold=1.5) const
int idnumber(void) const
Definition: HcalNoiseHPD.cc:32
std::vector< float > bigCharge_
Definition: HcalNoiseHPD.h:137
std::vector< float > big5Charge_
Definition: HcalNoiseHPD.h:138
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:141
float big5ChargeHighest2TS(unsigned int firstts=4) const
Definition: HcalNoiseHPD.cc:82
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:60
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
float big5ChargeTotal(void) const
Definition: HcalNoiseHPD.cc:73
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:148
const edm::RefVector< CaloTowerCollection > caloTowers(void) const
double caloTowerEmFraction(void) const
int numRecHitsFailR45(float threshold=1.5) const
float recHitEnergy(float threshold=1.5) const
double caloTowerTotalE(void) const
const std::vector< float > big5Charge(void) const
Definition: HcalNoiseHPD.cc:68
int totalZeros(void) const
Definition: HcalNoiseHPD.cc:98
float bigChargeTotal(void) const
Definition: HcalNoiseHPD.cc:42
const std::vector< float > bigCharge(void) const
Definition: HcalNoiseHPD.cc:37