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 
21  int DeltaIphi;
22  int DeltaIeta;
24  double minCellEnergy; // cells below this threshold can never be considered "hot" by this algorithm
25  double minNeighborEnergy; //neighbors must have some amount of energy to be counted
26  double maxEnergy; // a cell above this energy will always be considered hot
27  double HotEnergyFrac; // a cell will be considered hot if neighbor energy/ cell energy is less than this value
28 };
29 
31 
32  public:
34 
36 
37  void setup();
38  void beginRun(const edm::Run& run, const edm::EventSetup& c);
39  void endRun(const edm::Run& run, const edm::EventSetup& c);
40 
41  void done();
42  void cleanup(void);
43  void reset();
44  void endJob();
45 
46  // analyze function
47  void analyze(edm::Event const&e, edm::EventSetup const&s);
48 
49  // Begin LumiBlock
50  void beginLuminosityBlock(const edm::LuminosityBlock& lumiSeg,
51  const edm::EventSetup& c) ;
52 
53  // End LumiBlock
54  void endLuminosityBlock(const edm::LuminosityBlock& lumiSeg,
55  const edm::EventSetup& c);
56 
57  void processEvent(const HBHERecHitCollection& hbHits,
58  const HORecHitCollection& hoHits,
59  const HFRecHitCollection& hfHits
60  );
61 
62  void processEvent_rechitenergy( const HBHERecHitCollection& hbheHits,
63  const HORecHitCollection& hoHits,
64  const HFRecHitCollection& hfHits);
65 
66  template <class R, class C> void processHit_rechitNeighbors(R& rechititer,
67  C& collection,
68  hotNeighborParams& params);
69 
70  void periodicReset();
71 
72 
73  private:
74  void fillNevents_neighbor();
75  void fillNevents_energy();
77 
79  void zeroCounters();
80 
81  int minEvents_; // minimum # of events in a lumi block before persistent test will be checked
82  // Booleans to control which of the three hot cell checking routines are used
85  bool test_et_;
87  bool setupDone_;
88 
93 
95 
96  double minErrorFlag_; // minimum error rate needed to dump out bad bin info
97 
98  double nsigma_;
105 
106  double SiPMscale_;
107  int aboveneighbors[85][72][4];
108  int aboveenergy[85][72][4]; // when rechit is above threshold energy
109  int aboveet[85][72][4]; // when rechit is above threshold et
110  int abovepersistent[85][72][4]; // when rechit is consistently above some threshold
111  int abovepersistentET[85][72][4];
112  int rechit_occupancy_sum[85][72][4];
113 
115 
116 
117  // Diagnostic plots
122 
123  int hbVsNeighbor[500];
124  int heVsNeighbor[500];
125  int hoVsNeighbor[500];
126  int hfVsNeighbor[500];
127 
129 
131 };
132 
133 #endif
int abovepersistent[85][72][4]
EtaPhiHists AboveEnergyThresholdCellsByDepth
void beginRun(const edm::Run &run, const edm::EventSetup &c)
int aboveneighbors[85][72][4]
edm::InputTag hoRechitLabel_
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
int aboveenergy[85][72][4]
EtaPhiHists AbovePersistentETThresholdCellsByDepth
HcalHotCellMonitor(const edm::ParameterSet &ps)
MonitorElement * d_HFenergyVsNeighbor
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)
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:36
MonitorElement * d_HEenergyVsNeighbor