Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-06-13 03:24:18

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   MonitorElement *hDigiTimeAll_, *hDigiTime_, *hDigiTimeIRPC_, *hDigiTimeNoIRPC_;
0049 
0050   // Multiplicity plots
0051   MonitorElement *hNSimHitPerRoll_, *hNDigiPerRoll_;
0052 
0053   // Residual plots
0054   MonitorElement *hRes_;
0055   std::map<int, MonitorElement *> hResBarrelLayers_;
0056   std::map<int, MonitorElement *> hResBarrelWheels_;
0057   std::map<int, MonitorElement *> hResEndcapDisks_;
0058   std::map<int, MonitorElement *> hResEndcapRings_;
0059 
0060   // Tokens for accessing run data. Used for passing to edm::Event. - stanislav
0061   edm::EDGetTokenT<edm::PSimHitContainer> simHitToken_;
0062   edm::EDGetTokenT<RPCDigiCollection> rpcDigiToken_;
0063 
0064   edm::ESGetToken<RPCGeometry, MuonGeometryRecord> rpcGeomToken_;
0065 };
0066 
0067 #endif