CMS 3D CMS Logo

HcalNoiseSummary.h
Go to the documentation of this file.
1 #ifndef _DATAFORMATS_METRECO_HCALNOISESUMMARY_H__
2 #define _DATAFORMATS_METRECO_HCALNOISESUMMARY_H__
3 
4 //
5 // HcalNoiseSummary.h
6 //
7 // description: Container class for HCAL noise summary information
8 //
9 // author: J.P. Chou, Brown
10 //
11 
18 
19 //
20 // forward declaration
21 //
22 
23 namespace reco {
24  class HcalNoiseInfoProducer;
25 }
26 
27 //
28 // class definition
29 //
30 
32  friend class reco::HcalNoiseInfoProducer; // allows this class to fill the info
33 
34 public:
35  // constructor
37 
38  // destructor
39  virtual ~HcalNoiseSummary();
40 
41  // whether or not the event passed the event filter
42  // note that these methods are deprecated
43  // please see the instructions here: https://twiki.cern.ch/twiki/bin/view/CMS/HcalNoiseInfoLibrary
44  bool passLooseNoiseFilter(void) const;
45  bool passTightNoiseFilter(void) const;
46  bool passHighLevelNoiseFilter(void) const;
47 
48  // the status with which the filter failed: this is a bitset
49  // 0 is no failure
50  int noiseFilterStatus(void) const;
51 
52  // noise type: 1=HPD Ionfeedback, 2=HPD Discharge, 3=RBX Noise
53  // won't work with non-noise event
54  int noiseType(void) const;
55 
56  // quantities to calculate EM fraction and charge fraction
57  // of the event (|eta|<2.0)
58  float eventEMEnergy(void) const;
59  float eventHadEnergy(void) const;
60  float eventTrackEnergy(void) const;
61  float eventEMFraction(void) const;
62  float eventChargeFraction(void) const;
63 
64  // minimum/maximum/RMS rechit time
65  // rechit energy>10 GeV or 25 GeV
66  float min10GeVHitTime(void) const;
67  float max10GeVHitTime(void) const;
68  float rms10GeVHitTime(void) const;
69  float min25GeVHitTime(void) const;
70  float max25GeVHitTime(void) const;
71  float rms25GeVHitTime(void) const;
72 
73  // # of hits with E>10 GeV or 25 GeV
74  int num10GeVHits(void) const;
75  int num25GeVHits(void) const;
76 
77  // E(2TS), E(10TS), and E(2TS)/E(10TS) for the minimum and maximum E(2TS)/E(10TS) found in an RBX in the event
78  // the total energy in the RBX must be > 50 GeV
79  float minE2TS(void) const;
80  float minE10TS(void) const;
81  float minE2Over10TS(void) const;
82  float maxE2TS(void) const;
83  float maxE10TS(void) const;
84  float maxE2Over10TS(void) const;
85 
86  // largest number of zeros found in a single RBX in the event
87  // total energy in the RBX must be > 10 GeV
88  int maxZeros(void) const;
89 
90  // largest number of hits in a single HPD/RBX in the event
91  // each hit is >= 1.5 GeV
92  int maxHPDHits(void) const;
93  int maxRBXHits(void) const;
94 
95  // largest number of hits in a single HPD when no other hits are present in the RBX
96  int maxHPDNoOtherHits(void) const;
97 
98  // smallest EMF found in an HPD/RBX in the event
99  // the total energy in the HPD/RBX must be >50 GeV
100  float minHPDEMF(void) const;
101  float minRBXEMF(void) const;
102 
103  // number of "problematic" RBXs
104  int numProblematicRBXs(void) const;
105 
106  int numIsolatedNoiseChannels(void) const;
107  float isolatedNoiseSumE(void) const;
108  float isolatedNoiseSumEt(void) const;
109 
110  int numFlatNoiseChannels(void) const;
111  float flatNoiseSumE(void) const;
112  float flatNoiseSumEt(void) const;
113 
114  int numSpikeNoiseChannels(void) const;
115  float spikeNoiseSumE(void) const;
116  float spikeNoiseSumEt(void) const;
117 
118  int numTriangleNoiseChannels(void) const;
119  float triangleNoiseSumE(void) const;
120  float triangleNoiseSumEt(void) const;
121 
122  int numTS4TS5NoiseChannels(void) const;
123  float TS4TS5NoiseSumE(void) const;
124  float TS4TS5NoiseSumEt(void) const;
125 
126  int numNegativeNoiseChannels(void) const;
127  float NegativeNoiseSumE(void) const;
128  float NegativeNoiseSumEt(void) const;
129 
130  int GetRecHitCount(void) const;
131  int GetRecHitCount15(void) const;
132  double GetRecHitEnergy(void) const;
133  double GetRecHitEnergy15(void) const;
134 
135  double GetTotalCalibCharge(void) const;
136  double GetLaserMonitorCharge(void) const;
137 
138  bool HasBadRBXTS4TS5(void) const;
139  bool HasBadRBXRechitR45Loose(void) const;
140  bool HasBadRBXRechitR45Tight(void) const;
141  bool goodJetFoundInLowBVRegion(void) const;
142 
143  double GetCalibChargeHF(void) const;
144  int GetCalibCountHF(void) const;
145 
146  // Get charge only in TS45
147  int GetCalibCountTS45(void) const; // get number of HBHE calibration channels
148  int GetCalibgt15CountTS45(void) const; // get number of HBHE calib channels > 15 fC
149  double GetCalibChargeTS45(void) const; // get Calib charge
150  double GetCalibgt15ChargeTS45(void) const; // get charge from all channels gt 15 fC
151 
152  int GetHitsInNonLaserRegion(void) const; // get number of channels in HBHE regions with no laser
153  int GetHitsInLaserRegion(void) const; // get number of channels in HBHE region where laser pulses are seen
154  double GetEnergyInNonLaserRegion(void) const; // get energy in region with no laser
155  double GetEnergyInLaserRegion(void) const; // get energy in non-laser region
156 
157  // reference to problematic jets
158  edm::RefVector<reco::CaloJetCollection> problematicJets(void) const;
159 
160  // reference to calotowers which fail loose, tight, and high-level noise criteria
161  edm::RefVector<CaloTowerCollection> looseNoiseTowers(void) const;
162  edm::RefVector<CaloTowerCollection> tightNoiseTowers(void) const;
163  edm::RefVector<CaloTowerCollection> highLevelNoiseTowers(void) const;
164 
165 private:
166  // data members corresponding to the values above
167  int filterstatus_, noisetype_;
168  float emenergy_, hadenergy_, trackenergy_;
169  float min10_, max10_, rms10_;
170  float min25_, max25_, rms25_;
171  int cnthit10_, cnthit25_;
172  float mine2ts_, mine10ts_;
173  float maxe2ts_, maxe10ts_;
175  int maxhpdhits_, maxhpdhitsnoother_, maxrbxhits_;
176  float minhpdemf_, minrbxemf_;
179  float isolnoisee_, isolnoiseet_;
181  float flatnoisee_, flatnoiseet_;
183  float spikenoisee_, spikenoiseet_;
185  float trianglenoisee_, trianglenoiseet_;
187  float ts4ts5noisee_, ts4ts5noiseet_;
189  float negativenoisee_, negativenoiseet_;
190 
195  double calibCharge_;
197 
202 
207 
208  int calibCountHF_; // calibration channels only in HF; no threshold used for determining HF noise
210 
215 
217 
221 };
222 
223 #endif
edm::RefVector< CaloTowerCollection > hlnoisetwrs_
edm::RefVector< CaloTowerCollection > loosenoisetwrs_
edm::RefVector< reco::CaloJetCollection > problemjets_
edm::RefVector< CaloTowerCollection > tightnoisetwrs_
fixed size matrix
double energyInNonLaserRegion_