CMS 3D CMS Logo

HcalRecHitMonitor.h

Go to the documentation of this file.
00001 #ifndef DQM_HCALMONITORTASKS_HCALRECHITMONITOR_H
00002 #define DQM_HCALMONITORTASKS_HCALRECHITMONITOR_H
00003 
00004 #include "DQM/HcalMonitorTasks/interface/HcalBaseMonitor.h"
00005 #include "DQMServices/Core/interface/DQMStore.h"
00006 #include "DQMServices/Core/interface/MonitorElement.h"
00007 #include "CondFormats/HcalObjects/interface/HcalChannelStatus.h"
00008 #include "CondFormats/HcalObjects/interface/HcalChannelQuality.h"
00009 
00010 #include <cmath>
00011 #include <iostream>
00012 #include <fstream>
00013 
00022 class HcalRecHitMonitor: public HcalBaseMonitor {
00023 
00024  public:
00025   HcalRecHitMonitor();
00026 
00027   ~HcalRecHitMonitor();
00028 
00029   void setup(const edm::ParameterSet& ps, DQMStore* dbe);
00030   void done();
00031   void clearME(); // overrides base class function
00032   void reset();
00033 
00034   
00035   void processEvent(const HBHERecHitCollection& hbHits,
00036                     const HORecHitCollection& hoHits,
00037                     const HFRecHitCollection& hfHits
00038                     //const ZDCRecHitCollection& zdcHits,
00039                     );
00040 
00041   void processEvent_rechit( const HBHERecHitCollection& hbheHits,
00042                             const HORecHitCollection& hoHits,
00043                             const HFRecHitCollection& hfHits);
00044 
00045   void fillRecHitHistosAtEndRun();
00046  private:
00047 
00048 
00049   void fillNevents();
00050 
00051   bool rechit_makeDiagnostics_;
00052 
00053   int rechit_checkNevents_;  // specify how often to fill histograms
00054 
00055   double energyThreshold_;
00056   double HBenergyThreshold_;
00057   double HEenergyThreshold_;
00058   double HOenergyThreshold_;
00059   double HFenergyThreshold_;
00060   double ZDCenergyThreshold_;
00061 
00062   MonitorElement* meEVT_;
00063   int ievt_;
00064 
00065   double rechit_minErrorFlag_; // minimum error rate needed to dump out bad bin info 
00066   // Problem Histograms
00067   MonitorElement* ProblemRecHits;
00068   std::vector<MonitorElement*> ProblemRecHitsByDepth;
00069 
00070   // Basic Histograms
00071   std::vector<MonitorElement*> OccupancyByDepth;
00072   std::vector<MonitorElement*> OccupancyThreshByDepth;
00073   std::vector<MonitorElement*> EnergyByDepth;
00074   std::vector<MonitorElement*> EnergyThreshByDepth;
00075   std::vector<MonitorElement*> TimeByDepth;
00076   std::vector<MonitorElement*> TimeThreshByDepth;
00077   
00078 
00079 
00080 
00081   unsigned int occupancy_[ETABINS][PHIBINS][6]; // will get filled when rechit found
00082   unsigned int occupancy_thresh_[ETABINS][PHIBINS][6]; // filled when above given energy
00083   double energy_[ETABINS][PHIBINS][6]; // will get filled when rechit found
00084   double energy_thresh_[ETABINS][PHIBINS][6]; // filled when above given  
00085   double time_[ETABINS][PHIBINS][6]; // will get filled when rechit found
00086   double time_thresh_[ETABINS][PHIBINS][6]; // filled when above given energy
00087 
00088   double HBenergy_[200];
00089   double HBenergy_thresh_[200];
00090   double HBtime_[300];
00091   double HBtime_thresh_[300];
00092   double HB_occupancy_[2593];
00093   double HB_occupancy_thresh_[2593];
00094   double HEenergy_[200];
00095   double HEenergy_thresh_[200];
00096   double HEtime_[300];
00097   double HEtime_thresh_[300];
00098   double HE_occupancy_[2593];
00099   double HE_occupancy_thresh_[2593];
00100   double HOenergy_[200];
00101   double HOenergy_thresh_[200];
00102   double HOtime_[300];
00103   double HOtime_thresh_[300];
00104   double HO_occupancy_[2161];
00105   double HO_occupancy_thresh_[2161];
00106   double HFenergy_[200];
00107   double HFenergy_thresh_[200];
00108   double HFtime_[300];
00109   double HFtime_thresh_[300];
00110   double HFenergyLong_[200];
00111   double HFenergyLong_thresh_[200];
00112   double HFtimeLong_[300];
00113   double HFtimeLong_thresh_[300];
00114   double HFenergyShort_[200];
00115   double HFenergyShort_thresh_[200];
00116   double HFtimeShort_[300];
00117   double HFtimeShort_thresh_[300];
00118   double HF_occupancy_[1729];
00119   double HF_occupancy_thresh_[1729];
00120   double HFlong_occupancy_[865];
00121   double HFlong_occupancy_thresh_[865];
00122   double HFshort_occupancy_[865];
00123   double HFshort_occupancy_thresh_[865];
00124 
00125   // Diagnostic plots
00126   MonitorElement* h_HBEnergy;
00127   MonitorElement* h_HBThreshEnergy;
00128   MonitorElement* h_HBTotalEnergy;
00129   MonitorElement* h_HBThreshTotalEnergy;
00130   MonitorElement* h_HBTime;
00131   MonitorElement* h_HBThreshTime;
00132   MonitorElement* h_HBOccupancy;
00133   MonitorElement* h_HBThreshOccupancy;
00134 
00135   MonitorElement* h_HEEnergy;
00136   MonitorElement* h_HEThreshEnergy;
00137   MonitorElement* h_HETotalEnergy;
00138   MonitorElement* h_HEThreshTotalEnergy;
00139   MonitorElement* h_HETime;
00140   MonitorElement* h_HEThreshTime;
00141   MonitorElement* h_HEOccupancy;
00142   MonitorElement* h_HEThreshOccupancy;
00143 
00144   MonitorElement* h_HOEnergy;
00145   MonitorElement* h_HOThreshEnergy;
00146   MonitorElement* h_HOTotalEnergy;
00147   MonitorElement* h_HOThreshTotalEnergy;
00148   MonitorElement* h_HOTime;
00149   MonitorElement* h_HOThreshTime;
00150   MonitorElement* h_HOOccupancy;
00151   MonitorElement* h_HOThreshOccupancy;
00152 
00153   MonitorElement* h_HFEnergy;
00154   MonitorElement* h_HFThreshEnergy;
00155   MonitorElement* h_HFTotalEnergy;
00156   MonitorElement* h_HFThreshTotalEnergy;
00157   MonitorElement* h_HFTime;
00158   MonitorElement* h_HFThreshTime;
00159   MonitorElement* h_HFOccupancy;
00160   MonitorElement* h_HFThreshOccupancy;
00161 
00162   bool HBpresent_, HEpresent_, HOpresent_, HFpresent_;
00163 };
00164 
00165 #endif

Generated on Tue Jun 9 17:33:00 2009 for CMSSW by  doxygen 1.5.4