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  double GetLaserMonitorCharge(void) const;
138 
139  bool HasBadRBXTS4TS5(void) const;
140  bool HasBadRBXRechitR45Loose(void) const;
141  bool HasBadRBXRechitR45Tight(void) const;
142  bool goodJetFoundInLowBVRegion(void) const;
143 
144  double GetCalibChargeHF(void) const;
145  int GetCalibCountHF(void) const;
146 
147  // Get charge only in TS45
148  int GetCalibCountTS45(void) const; // get number of HBHE calibration channels
149  int GetCalibgt15CountTS45(void) const; // get number of HBHE calib channels > 15 fC
150  double GetCalibChargeTS45(void) const; // get Calib charge
151  double GetCalibgt15ChargeTS45(void) const; // get charge from all channels gt 15 fC
152 
153  int GetHitsInNonLaserRegion(void) const; // get number of channels in HBHE regions with no laser
154  int GetHitsInLaserRegion(void) const; // get number of channels in HBHE region where laser pulses are seen
155  double GetEnergyInNonLaserRegion(void) const; // get energy in region with no laser
156  double GetEnergyInLaserRegion(void) const; // get energy in non-laser region
157 
158  // reference to problematic jets
159  edm::RefVector<reco::CaloJetCollection> problematicJets(void) const;
160 
161  // reference to calotowers which fail loose, tight, and high-level noise criteria
162  edm::RefVector<CaloTowerCollection> looseNoiseTowers(void) const;
163  edm::RefVector<CaloTowerCollection> tightNoiseTowers(void) const;
164  edm::RefVector<CaloTowerCollection> highLevelNoiseTowers(void) const;
165 
166  private:
167 
168  // data members corresponding to the values above
169  int filterstatus_, noisetype_;
170  float emenergy_, hadenergy_, trackenergy_;
171  float min10_, max10_, rms10_;
172  float min25_, max25_, rms25_;
173  int cnthit10_, cnthit25_;
174  float mine2ts_, mine10ts_;
175  float maxe2ts_, maxe10ts_;
177  int maxhpdhits_, maxhpdhitsnoother_, maxrbxhits_;
178  float minhpdemf_, minrbxemf_;
181  float isolnoisee_, isolnoiseet_;
183  float flatnoisee_, flatnoiseet_;
185  float spikenoisee_, spikenoiseet_;
187  float trianglenoisee_, trianglenoiseet_;
189  float ts4ts5noisee_, ts4ts5noiseet_;
191  float negativenoisee_, negativenoiseet_;
192 
197  double calibCharge_;
199 
204 
209 
210  int calibCountHF_; // calibration channels only in HF; no threshold used for determining HF noise
212 
217 
219 
223 };
224 
225 #endif
edm::RefVector< CaloTowerCollection > hlnoisetwrs_
edm::RefVector< CaloTowerCollection > loosenoisetwrs_
edm::RefVector< reco::CaloJetCollection > problemjets_
edm::RefVector< CaloTowerCollection > tightnoisetwrs_
fixed size matrix
double energyInNonLaserRegion_