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 {
33  friend class reco::HcalNoiseInfoProducer; // allows this class to fill the info
34 
35  public:
36  // constructor
38 
39  // destructor
40  virtual ~HcalNoiseSummary();
41 
42  // whether or not the event passed the event filter
43  // note that these methods are deprecated
44  // please see the instructions here: https://twiki.cern.ch/twiki/bin/view/CMS/HcalNoiseInfoLibrary
45  bool passLooseNoiseFilter(void) const;
46  bool passTightNoiseFilter(void) const;
47  bool passHighLevelNoiseFilter(void) const;
48 
49  // the status with which the filter failed: this is a bitset
50  // 0 is no failure
51  int noiseFilterStatus(void) const;
52 
53  // noise type: 1=HPD Ionfeedback, 2=HPD Discharge, 3=RBX Noise
54  // won't work with non-noise event
55  int noiseType(void) const;
56 
57  // quantities to calculate EM fraction and charge fraction
58  // of the event (|eta|<2.0)
59  float eventEMEnergy(void) const;
60  float eventHadEnergy(void) const;
61  float eventTrackEnergy(void) const;
62  float eventEMFraction(void) const;
63  float eventChargeFraction(void) const;
64 
65  // minimum/maximum/RMS rechit time
66  // rechit energy>10 GeV or 25 GeV
67  float min10GeVHitTime(void) const;
68  float max10GeVHitTime(void) const;
69  float rms10GeVHitTime(void) const;
70  float min25GeVHitTime(void) const;
71  float max25GeVHitTime(void) const;
72  float rms25GeVHitTime(void) const;
73 
74  // # of hits with E>10 GeV or 25 GeV
75  int num10GeVHits(void) const;
76  int num25GeVHits(void) const;
77 
78  // 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
79  // the total energy in the RBX must be > 50 GeV
80  float minE2TS(void) const;
81  float minE10TS(void) const;
82  float minE2Over10TS(void) const;
83  float maxE2TS(void) const;
84  float maxE10TS(void) const;
85  float maxE2Over10TS(void) const;
86 
87  // largest number of zeros found in a single RBX in the event
88  // total energy in the RBX must be > 10 GeV
89  int maxZeros(void) const;
90 
91  // largest number of hits in a single HPD/RBX in the event
92  // each hit is >= 1.5 GeV
93  int maxHPDHits(void) const;
94  int maxRBXHits(void) const;
95 
96  // largest number of hits in a single HPD when no other hits are present in the RBX
97  int maxHPDNoOtherHits(void) const;
98 
99  // smallest EMF found in an HPD/RBX in the event
100  // the total energy in the HPD/RBX must be >50 GeV
101  float minHPDEMF(void) const;
102  float minRBXEMF(void) const;
103 
104  // number of "problematic" RBXs
105  int numProblematicRBXs(void) const;
106 
107  int numIsolatedNoiseChannels(void) const;
108  float isolatedNoiseSumE(void) const;
109  float isolatedNoiseSumEt(void) const;
110 
111  int numFlatNoiseChannels(void) const;
112  float flatNoiseSumE(void) const;
113  float flatNoiseSumEt(void) const;
114 
115  int numSpikeNoiseChannels(void) const;
116  float spikeNoiseSumE(void) const;
117  float spikeNoiseSumEt(void) const;
118 
119  int numTriangleNoiseChannels(void) const;
120  float triangleNoiseSumE(void) const;
121  float triangleNoiseSumEt(void) const;
122 
123  int numTS4TS5NoiseChannels(void) const;
124  float TS4TS5NoiseSumE(void) const;
125  float TS4TS5NoiseSumEt(void) const;
126 
127  int numNegativeNoiseChannels(void) const;
128  float NegativeNoiseSumE(void) const;
129  float NegativeNoiseSumEt(void) const;
130 
131  int GetRecHitCount(void) const;
132  int GetRecHitCount15(void) const;
133  double GetRecHitEnergy(void) const;
134  double GetRecHitEnergy15(void) const;
135 
136  double GetTotalCalibCharge(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 
167  // data members corresponding to the values above
168  int filterstatus_, noisetype_;
169  float emenergy_, hadenergy_, trackenergy_;
170  float min10_, max10_, rms10_;
171  float min25_, max25_, rms25_;
172  int cnthit10_, cnthit25_;
173  float mine2ts_, mine10ts_;
174  float maxe2ts_, maxe10ts_;
176  int maxhpdhits_, maxhpdhitsnoother_, maxrbxhits_;
177  float minhpdemf_, minrbxemf_;
180  float isolnoisee_, isolnoiseet_;
182  float flatnoisee_, flatnoiseet_;
184  float spikenoisee_, spikenoiseet_;
186  float trianglenoisee_, trianglenoiseet_;
188  float ts4ts5noisee_, ts4ts5noiseet_;
190  float negativenoisee_, negativenoiseet_;
191 
196  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_