Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef GlobalDigisHistogrammer_h
0002 #define GlobalDigisHistogrammer_h
0003 
0004 /** \class GlobalHitsProducer
0005  *
0006  *  Class to fill PGlobalDigis 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 "DataFormats/Common/interface/Handle.h"
0015 #include "FWCore/Framework/interface/ESHandle.h"
0016 #include "FWCore/Framework/interface/Event.h"
0017 #include "FWCore/Framework/interface/EventSetup.h"
0018 #include "FWCore/Framework/interface/Frameworkfwd.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/MessageLogger/interface/MessageLogger.h"
0029 #include "FWCore/ParameterSet/interface/ParameterSet.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 <cmath>
0039 #include <cstdlib>
0040 #include <iostream>
0041 #include <map>
0042 #include <memory>
0043 #include <string>
0044 #include <vector>
0045 
0046 #include "TString.h"
0047 
0048 class GlobalDigisHistogrammer : 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 GlobalDigisHistogrammer(const edm::ParameterSet &);
0056   ~GlobalDigisHistogrammer() 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 GlobalDigisSrc_;
0073   // edm::InputTag srcGlobalDigis;
0074   edm::EDGetTokenT<PGlobalDigi> GlobalDigisSrc_Token_;
0075 
0076   // Electromagnetic info
0077   // ECal info
0078   MonitorElement *mehEcaln[3];
0079   MonitorElement *mehEcalAEE[2];
0080   MonitorElement *mehEcalSHE[2];
0081   MonitorElement *mehEcalMaxPos[2];
0082   MonitorElement *mehEcalMultvAEE[2];
0083   MonitorElement *mehEcalSHEvAEESHE[2];
0084   MonitorElement *mehEScalADC[3];
0085 
0086   // HCal info
0087   MonitorElement *mehHcaln[4];
0088   MonitorElement *mehHcalAEE[4];
0089   MonitorElement *mehHcalSHE[4];
0090   MonitorElement *mehHcalAEESHE[4];
0091   MonitorElement *mehHcalSHEvAEE[4];
0092 
0093   // Tracker info
0094   // SiStrip
0095 
0096   MonitorElement *mehSiStripn[19];
0097   MonitorElement *mehSiStripADC[19];
0098   MonitorElement *mehSiStripStrip[19];
0099 
0100   // SiPxl
0101 
0102   MonitorElement *mehSiPixeln[7];
0103   MonitorElement *mehSiPixelADC[7];
0104   MonitorElement *mehSiPixelRow[7];
0105   MonitorElement *mehSiPixelCol[7];
0106 
0107   // Muon info
0108   // DT
0109   MonitorElement *mehDtMuonn[4];
0110   MonitorElement *mehDtMuonLayer[4];
0111   MonitorElement *mehDtMuonTime[4];
0112   MonitorElement *mehDtMuonTimevLayer[4];
0113 
0114   // CSC Strip
0115 
0116   MonitorElement *mehCSCStripn;
0117   MonitorElement *mehCSCStripADC;
0118   MonitorElement *mehCSCWiren;
0119   MonitorElement *mehCSCWireTime;
0120 
0121   float theCSCStripPedestalSum;
0122   int theCSCStripPedestalCount;
0123   // private statistics information
0124   unsigned int count;
0125 
0126 };  // end class declaration
0127 
0128 #endif  // PGlobalDigisHistogrammer_h