Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef GlobalRecHitsHistogrammer_h
0002 #define GlobalRecHitsHistogrammer_h
0003 
0004 /** \class GlobalHitsProducer
0005  *  
0006  *  Class to fill PGlobalRecHit object to be inserted into data stream 
0007  *  containing information about various sub-systems in global coordinates 
0008  *  with full geometry
0009  *
0010  *  \author M. Strang SUNY-Buffalo
0011  */
0012 
0013 // framework & common header files
0014 #include "FWCore/Framework/interface/Frameworkfwd.h"
0015 #include "FWCore/Framework/interface/Event.h"
0016 #include "FWCore/Framework/interface/EventSetup.h"
0017 #include "DataFormats/Common/interface/Handle.h"
0018 #include "FWCore/Framework/interface/ESHandle.h"
0019 
0020 //DQM services
0021 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0022 #include "DQMServices/Core/interface/DQMStore.h"
0023 #include "FWCore/ServiceRegistry/interface/Service.h"
0024 
0025 //#include "DataFormats/Common/interface/Provenance.h"
0026 #include "DataFormats/Provenance/interface/Provenance.h"
0027 #include "FWCore/Framework/interface/MakerMacros.h"
0028 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0029 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0030 
0031 // event info
0032 #include "SimDataFormats/ValidationFormats/interface/PValidationFormats.h"
0033 
0034 // helper files
0035 //#include <CLHEP/Vector/LorentzVector.h>
0036 //#include <CLHEP/Units/SystemOfUnits.h>
0037 
0038 #include <iostream>
0039 #include <cstdlib>
0040 #include <string>
0041 #include <memory>
0042 #include <vector>
0043 #include <map>
0044 #include <cmath>
0045 
0046 #include "TString.h"
0047 
0048 class GlobalRecHitsHistogrammer : public DQMEDAnalyzer {
0049 public:
0050   //typedef std::vector<float> FloatVector;
0051   //typedef std::vector<double> DoubleVector;
0052   //typedef std::vector<int> IntVector;
0053   typedef std::map<uint32_t, float, std::less<uint32_t> > MapType;
0054 
0055   explicit GlobalRecHitsHistogrammer(const edm::ParameterSet &);
0056   ~GlobalRecHitsHistogrammer() override;
0057   void analyze(const edm::Event &, const edm::EventSetup &) override;
0058   void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
0059 
0060 private:
0061   //  parameter information
0062   std::string fName;
0063   int verbosity;
0064   int frequency;
0065   std::string label;
0066   bool getAllProvenances;
0067   bool printProvenanceInfo;
0068 
0069   std::string outputfile;
0070   bool doOutput;
0071 
0072   edm::InputTag GlobalRecHitSrc_;
0073   edm::EDGetTokenT<PGlobalRecHit> GlobalRecHitSrc_Token_;
0074   //edm::InputTag srcGlobalRecHits;
0075 
0076   // Electromagnetic info
0077   // ECal info
0078 
0079   MonitorElement *mehEcaln[3];
0080   MonitorElement *mehEcalRes[3];
0081 
0082   // HCal info
0083 
0084   MonitorElement *mehHcaln[4];
0085   MonitorElement *mehHcalRes[4];
0086 
0087   // Tracker info
0088   // SiStrip
0089 
0090   MonitorElement *mehSiStripn[19];
0091   MonitorElement *mehSiStripResX[19];
0092   MonitorElement *mehSiStripResY[19];
0093 
0094   // SiPxl
0095 
0096   MonitorElement *mehSiPixeln[7];
0097   MonitorElement *mehSiPixelResX[7];
0098   MonitorElement *mehSiPixelResY[7];
0099 
0100   // Muon info
0101   // DT
0102 
0103   MonitorElement *mehDtMuonn;
0104   MonitorElement *mehCSCn;
0105   MonitorElement *mehRPCn;
0106   MonitorElement *mehDtMuonRes;
0107   MonitorElement *mehCSCResRDPhi;
0108   MonitorElement *mehRPCResX;
0109 
0110   // private statistics information
0111   unsigned int count;
0112 
0113 };  // end class declaration
0114 
0115 #endif  //PGlobalRecHitsProducer_h