Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-08-30 02:11:04

0001 #ifndef RPCDigiValid_h
0002 #define RPCDigiValid_h
0003 
0004 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0005 #include "DQMServices/Core/interface/DQMStore.h"
0006 #include "FWCore/Framework/interface/ESHandle.h"
0007 #include "FWCore/Framework/interface/Event.h"
0008 #include "FWCore/Framework/interface/EventSetup.h"
0009 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0010 
0011 #include <string>
0012 
0013 #include "DataFormats/RPCDigi/interface/RPCDigiCollection.h"
0014 #include "FWCore/Utilities/interface/EDGetToken.h"
0015 #include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h"
0016 
0017 #include "Geometry/RPCGeometry/interface/RPCGeometry.h"
0018 #include "Geometry/Records/interface/MuonGeometryRecord.h"
0019 
0020 class RPCDigiValid : public DQMEDAnalyzer {
0021 public:
0022   RPCDigiValid(const edm::ParameterSet &ps);
0023   ~RPCDigiValid() override = default;
0024 
0025 protected:
0026   void analyze(const edm::Event &e, const edm::EventSetup &c) override;
0027   void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
0028 
0029 private:
0030   // RZ and XY views
0031   MonitorElement *hRZ_;
0032 
0033   MonitorElement *hXY_Barrel_;
0034   std::map<int, MonitorElement *> hXY_Endcap_;  // X-Y plots for Endcap, by station
0035   std::map<int, MonitorElement *> hZPhi_;       // R-phi plots for Barrel, by layers
0036 
0037   // Strip profile
0038   MonitorElement *hStripProf_;
0039   MonitorElement *hStripProf_RB12_, *hStripProf_RB34_;
0040   MonitorElement *hStripProf_Endcap_, *hStripProf_IRPC_;
0041 
0042   // Bunch crossing distributions
0043   MonitorElement *hBxDist_;
0044   MonitorElement *hBxDisc_4Plus_;
0045   MonitorElement *hBxDisc_4Min_;
0046 
0047   // Timing information
0048   bool isDigiTimeAvailable_;
0049   MonitorElement *hDigiTimeAll_, *hDigiTime_, *hDigiTimeIRPC_, *hDigiTimeNoIRPC_;
0050 
0051   // Multiplicity plots
0052   MonitorElement *hNSimHitPerRoll_, *hNDigiPerRoll_;
0053 
0054   // Residual plots
0055   MonitorElement *hRes_;
0056   std::map<int, MonitorElement *> hResBarrelLayers_;
0057   std::map<int, MonitorElement *> hResBarrelWheels_;
0058   std::map<int, MonitorElement *> hResEndcapDisks_;
0059   std::map<int, MonitorElement *> hResEndcapRings_;
0060 
0061   // Tokens for accessing run data. Used for passing to edm::Event. - stanislav
0062   edm::EDGetTokenT<edm::PSimHitContainer> simHitToken_;
0063   edm::EDGetTokenT<RPCDigiCollection> rpcDigiToken_;
0064 
0065   edm::ESGetToken<RPCGeometry, MuonGeometryRecord> rpcGeomToken_;
0066 };
0067 
0068 #endif