Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:08:21

0001 #ifndef SiPixelMonitorCluster_SiPixelClusterSource_h
0002 #define SiPixelMonitorCluster_SiPixelClusterSource_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     SiPixelMonitorCluster
0006 // Class  :     SiPixelClusterSource
0007 //
0008 /*
0009 
0010  Description: <one line class summary>
0011 
0012  Usage:
0013     <usage>
0014 
0015 */
0016 //
0017 // Original Author:  Vincenzo Chiochia & Andrew York
0018 //
0019 // Updated by: Lukas Wehrli
0020 // for pixel offline DQM
0021 //         Created:
0022 
0023 #include <memory>
0024 
0025 // user include files
0026 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0027 #include "DQM/SiPixelMonitorCluster/interface/SiPixelClusterModule.h"
0028 #include "DataFormats/SiPixelDigi/interface/PixelDigi.h"
0029 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
0030 #include "Geometry/Records/interface/TrackerDigiGeometryRecord.h"
0031 #include "DataFormats/TrackerCommon/interface/TrackerTopology.h"
0032 #include "Geometry/Records/interface/TrackerTopologyRcd.h"
0033 #include <cstdint>
0034 
0035 class SiPixelClusterSource : public DQMEDAnalyzer {
0036 public:
0037   explicit SiPixelClusterSource(const edm::ParameterSet &conf);
0038   ~SiPixelClusterSource() override;
0039 
0040   typedef edmNew::DetSet<SiPixelCluster>::const_iterator ClusterIterator;
0041 
0042   void analyze(const edm::Event &, const edm::EventSetup &) override;
0043   void dqmBeginRun(const edm::Run &, edm::EventSetup const &) override;
0044   void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
0045 
0046   virtual void buildStructure(edm::EventSetup const &);
0047   virtual void bookMEs(DQMStore::IBooker &, const edm::EventSetup &iSetup);
0048 
0049   std::string topFolderName_;
0050 
0051 private:
0052   edm::ParameterSet conf_;
0053   edm::InputTag src_;
0054   edm::InputTag digisrc_;
0055   bool saveFile;
0056   bool isPIB;
0057   bool slowDown;
0058   int eventNo;
0059   std::map<uint32_t, SiPixelClusterModule *> thePixelStructure;
0060   bool modOn;
0061   bool twoDimOn;
0062   bool reducedSet;
0063   // barrel:
0064   bool ladOn, layOn, phiOn;
0065   // forward:
0066   bool ringOn, bladeOn, diskOn;
0067   bool smileyOn;  // cluster sizeY vs Cluster eta plot
0068   bool firstRun;
0069   int lumSec;
0070   int nLumiSecs;
0071   int nBigEvents;
0072   MonitorElement *bigFpixClusterEventRate;
0073   int bigEventSize;
0074   bool isUpgrade;
0075 
0076   std::vector<MonitorElement *> meClPosLayer;
0077   std::vector<MonitorElement *> meClPosDiskpz;
0078   std::vector<MonitorElement *> meClPosDiskmz;
0079 
0080   MonitorElement *meClusBarrelProf;
0081   MonitorElement *meClusFpixPProf;
0082   MonitorElement *meClusFpixMProf;
0083 
0084   std::vector<MonitorElement *> meZeroRocBPIX;
0085   MonitorElement *meZeroRocFPIX;
0086 
0087   int noOfLayers;
0088   int noOfDisks;
0089 
0090   void getrococcupancy(DetId detId,
0091                        const edm::DetSetVector<PixelDigi> &diginp,
0092                        const TrackerTopology *const tTopo,
0093                        std::vector<MonitorElement *> const &meinput);
0094   void getrococcupancye(DetId detId,
0095                         const edmNew::DetSetVector<SiPixelCluster> &clustColl,
0096                         const TrackerTopology *const pTT,
0097                         edm::ESHandle<TrackerGeometry> pDD,
0098                         MonitorElement *meinput);
0099 
0100   // define Token(-s)
0101   edm::EDGetTokenT<edmNew::DetSetVector<SiPixelCluster>> srcToken_;
0102   edm::EDGetTokenT<edm::DetSetVector<PixelDigi>> digisrcToken_;
0103 
0104   edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> trackerTopoToken_;
0105   edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> trackerGeomToken_;
0106   edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> trackerTopoTokenBeginRun_;
0107   edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> trackerGeomTokenBeginRun_;
0108 };
0109 
0110 #endif