Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:09:24

0001 #ifndef _DQMOFFLINE_HCAL_HCALRECHITSDQMCLIENT_H_
0002 #define _DQMOFFLINE_HCAL_HCALRECHITSDQMCLIENT_H_
0003 
0004 // -*- C++ -*-
0005 //
0006 //
0007 /*
0008  Description: This is a RecHits client meant to plot rechits quantities
0009 */
0010 
0011 //
0012 // Originally create by: Hongxuan Liu
0013 //                        May 2010
0014 //
0015 
0016 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0017 #include "DQMServices/Core/interface/DQMEDHarvester.h"
0018 #include "DQMServices/Core/interface/DQMStore.h"
0019 #include "DataFormats/Common/interface/Handle.h"
0020 #include "DataFormats/Math/interface/LorentzVector.h"
0021 #include "FWCore/Framework/interface/Event.h"
0022 #include "FWCore/Framework/interface/EventSetup.h"
0023 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0024 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0025 #include "FWCore/Utilities/interface/ESGetToken.h"
0026 #include <memory>
0027 #include <unistd.h>
0028 
0029 #include "DataFormats/DetId/interface/DetId.h"
0030 #include "DataFormats/HcalDetId/interface/HcalDetId.h"
0031 #include "DataFormats/HcalDigi/interface/HcalDigiCollections.h"
0032 #include "Geometry/CaloGeometry/interface/CaloCellGeometry.h"
0033 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
0034 #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h"
0035 #include "Geometry/CaloTopology/interface/HcalTopology.h"
0036 #include "Geometry/Records/interface/CaloGeometryRecord.h"
0037 #include "Geometry/Records/interface/HcalRecNumberingRecord.h"
0038 #include "Geometry/HcalCommonData/interface/HcalDDDRecConstants.h"
0039 
0040 #include <fstream>
0041 #include <iostream>
0042 #include <vector>
0043 
0044 class HcalRecHitsDQMClient : public DQMEDHarvester {
0045 private:
0046   std::string outputFile_;
0047   edm::ParameterSet conf_;
0048 
0049   bool verbose_;
0050   bool debug_;
0051 
0052   std::string dirName_;
0053   std::string dirNameJet_;
0054   std::string dirNameMET_;
0055 
0056   edm::ESGetToken<HcalDDDRecConstants, HcalRecNumberingRecord> hcalDDDRecConstantsToken_;
0057   edm::ESGetToken<CaloGeometry, CaloGeometryRecord> caloGeometryRunToken_;
0058   int maxDepthHB_, maxDepthHE_, maxDepthHO_, maxDepthHF_, maxDepthAll_;
0059 
0060   int nChannels_[5];  // 0:any, 1:HB, 2:HE, 3:HO, 4: HF
0061 
0062 public:
0063   explicit HcalRecHitsDQMClient(const edm::ParameterSet &);
0064   ~HcalRecHitsDQMClient() override;
0065 
0066   void beginJob(void) override;
0067   void beginRun(edm::Run const &, edm::EventSetup const &) override;
0068   void dqmEndJob(DQMStore::IBooker &,
0069                  DQMStore::IGetter &) override;  // performed in the endJob
0070 
0071   int HcalRecHitsEndjob(const std::vector<MonitorElement *> &hcalMEs);
0072 
0073   float phifactor(int ieta);
0074 };
0075 
0076 #endif  // _DQMOFFLINE_HCAL_HCALRECHITSDQMCLIENT_H_