test
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();
36  void beginRun(const edm::Run& run, const edm::EventSetup& c);
37  void endRun(const edm::Run& run, const edm::EventSetup& c);
38 
39  void done();
40  void cleanup(void);
41  void reset();
42  void endJob();
43 
44  // analyze function
45  void analyze(edm::Event const&e, edm::EventSetup const&s);
46 
47  // Begin LumiBlock
48  void beginLuminosityBlock(const edm::LuminosityBlock& lumiSeg,
49  const edm::EventSetup& c) ;
50 
51  // End LumiBlock
52  void endLuminosityBlock(const edm::LuminosityBlock& lumiSeg,
53  const edm::EventSetup& c);
54 
55  void processEvent(const HBHERecHitCollection& hbHits,
56  const HORecHitCollection& hoHits,
57  const HFRecHitCollection& hfHits
58  );
59 
60  void processEvent_rechitenergy( const HBHERecHitCollection& hbheHits,
61  const HORecHitCollection& hoHits,
62  const HFRecHitCollection& hfHits);
63 
64  template <class R, class C> void processHit_rechitNeighbors(R& rechititer,
65  C& collection,
66  hotNeighborParams& params);
67 
68  void periodicReset();
69 
70 
71  private:
72  void fillNevents_neighbor();
73  void fillNevents_energy();
75 
77  void zeroCounters();
78 
79  int minEvents_; // minimum # of events in a lumi block before persistent test will be checked
80  // Booleans to control which of the three hot cell checking routines are used
83  bool test_et_;
85  bool setupDone_;
86 
91 
93 
94  double minErrorFlag_; // minimum error rate needed to dump out bad bin info
95 
96  double nsigma_;
103 
104  double SiPMscale_;
105  int aboveneighbors[85][72][4];
106  int aboveenergy[85][72][4]; // when rechit is above threshold energy
107  int aboveet[85][72][4]; // when rechit is above threshold et
108  int abovepersistent[85][72][4]; // when rechit is consistently above some threshold
109  int abovepersistentET[85][72][4];
110  int rechit_occupancy_sum[85][72][4];
111 
113 
114 
115  // Diagnostic plots
120 
121  int hbVsNeighbor[500];
122  int heVsNeighbor[500];
123  int hoVsNeighbor[500];
124  int hfVsNeighbor[500];
125 
127 
132 };
133 
134 #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
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)
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