CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HcalHotCellMonitor.h
Go to the documentation of this file.
1 #ifndef DQM_HCALMONITORTASKS_HCALHOTCELLMONITOR_H
2 #define DQM_HCALMONITORTASKS_HCALHOTCELLMONITOR_H
3 
6 // collection info
9 
10 #include <cmath>
11 
12 
19  int DeltaIphi;
20  int DeltaIeta;
22  double minCellEnergy; // cells below this threshold can never be considered "hot" by this algorithm
23  double minNeighborEnergy; //neighbors must have some amount of energy to be counted
24  double maxEnergy; // a cell above this energy will always be considered hot
25  double HotEnergyFrac; // a cell will be considered hot if neighbor energy/ cell energy is less than this value
26 };
27 
29 
30  public:
32 
34 
35  void setup(DQMStore::IBooker &);
37  void endRun(const edm::Run& run, const edm::EventSetup& c);
38 
39  void done();
40  void reset();
41  void endJob();
42 
43  // analyze function
44  void analyze(edm::Event const&e, edm::EventSetup const&s);
45 
46  // Begin LumiBlock
47  void beginLuminosityBlock(const edm::LuminosityBlock& lumiSeg,
48  const edm::EventSetup& c) ;
49 
50  // End LumiBlock
51  void endLuminosityBlock(const edm::LuminosityBlock& lumiSeg,
52  const edm::EventSetup& c);
53 
54  void processEvent(const HBHERecHitCollection& hbHits,
55  const HORecHitCollection& hoHits,
56  const HFRecHitCollection& hfHits
57  );
58 
59  void processEvent_rechitenergy( const HBHERecHitCollection& hbheHits,
60  const HORecHitCollection& hoHits,
61  const HFRecHitCollection& hfHits);
62 
63  template <class R, class C> void processHit_rechitNeighbors(R& rechititer,
64  C& collection,
65  hotNeighborParams& params);
66 
67  void periodicReset();
68 
69 
70  private:
71  void fillNevents_neighbor();
72  void fillNevents_energy();
74 
76  void zeroCounters();
77 
78  int minEvents_; // minimum # of events in a lumi block before persistent test will be checked
79  // Booleans to control which of the three hot cell checking routines are used
82  bool test_et_;
84  bool setupDone_;
85 
90 
92 
93  double minErrorFlag_; // minimum error rate needed to dump out bad bin info
94 
95  double nsigma_;
102 
103  double SiPMscale_;
104  int aboveneighbors[85][72][4];
105  int aboveenergy[85][72][4]; // when rechit is above threshold energy
106  int aboveet[85][72][4]; // when rechit is above threshold et
107  int abovepersistent[85][72][4]; // when rechit is consistently above some threshold
108  int abovepersistentET[85][72][4];
109  int rechit_occupancy_sum[85][72][4];
110 
112 
113 
114  // Diagnostic plots
119 
120  int hbVsNeighbor[500];
121  int heVsNeighbor[500];
122  int hoVsNeighbor[500];
123  int hfVsNeighbor[500];
124 
126 
131 };
132 
133 #endif
int abovepersistent[85][72][4]
EtaPhiHists AboveEnergyThresholdCellsByDepth
void bookHistograms(DQMStore::IBooker &ib, const edm::Run &run, const edm::EventSetup &c)
int aboveneighbors[85][72][4]
edm::InputTag hoRechitLabel_
int ib
Definition: cuy.py:660
hotNeighborParams HONeighborParams_
void processEvent(const HBHERecHitCollection &hbHits, const HORecHitCollection &hoHits, const HFRecHitCollection &hfHits)
void processHit_rechitNeighbors(R &rechititer, C &collection, hotNeighborParams &params)
int abovepersistentET[85][72][4]
int rechit_occupancy_sum[85][72][4]
EtaPhiHists AbovePersistentThresholdCellsByDepth
edm::EDGetTokenT< HORecHitCollection > tok_ho_
int aboveenergy[85][72][4]
edm::EDGetTokenT< HFRecHitCollection > tok_hf_
EtaPhiHists AbovePersistentETThresholdCellsByDepth
HcalHotCellMonitor(const edm::ParameterSet &ps)
MonitorElement * d_HFenergyVsNeighbor
edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
void analyze(edm::Event const &e, edm::EventSetup const &s)
EtaPhiHists AboveETThresholdCellsByDepth
hotNeighborParams HBHENeighborParams_
void endLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
void processEvent_rechitenergy(const HBHERecHitCollection &hbheHits, const HORecHitCollection &hoHits, const HFRecHitCollection &hfHits)
MonitorElement * d_HBenergyVsNeighbor
void endRun(const edm::Run &run, const edm::EventSetup &c)
void setup(DQMStore::IBooker &)
edm::InputTag hbheRechitLabel_
void beginLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
int aboveet[85][72][4]
edm::InputTag hfRechitLabel_
MonitorElement * d_HOenergyVsNeighbor
EtaPhiHists AboveNeighborsHotCellsByDepth
hotNeighborParams HFNeighborParams_
Definition: Run.h:41
MonitorElement * d_HEenergyVsNeighbor