00001 #ifndef SiPixelMonitorDigi_SiPixelDigiSource_h 00002 #define SiPixelMonitorDigi_SiPixelDigiSource_h 00003 // -*- C++ -*- 00004 // 00005 // Package: SiPixelMonitorDigi 00006 // Class : SiPixelDigiSource 00007 // 00016 // 00017 // Original Author: Vincenzo Chiochia 00018 // Created: 00019 // $Id: SiPixelDigiSource.h,v 1.26 2012/06/26 14:06:43 duggan Exp $ 00020 // 00021 00022 #include <memory> 00023 00024 // user include files 00025 #include "FWCore/Framework/interface/Frameworkfwd.h" 00026 #include "FWCore/Framework/interface/EDAnalyzer.h" 00027 #include "FWCore/Framework/interface/MakerMacros.h" 00028 00029 #include "DQMServices/Core/interface/DQMStore.h" 00030 00031 #include "DQM/SiPixelMonitorDigi/interface/SiPixelDigiModule.h" 00032 00033 #include "DataFormats/Common/interface/DetSetVector.h" 00034 #include "DataFormats/SiPixelDigi/interface/PixelDigi.h" 00035 #include "DataFormats/SiPixelCluster/interface/SiPixelCluster.h" 00036 00037 00038 #include "FWCore/Framework/interface/EDProducer.h" 00039 #include "FWCore/Framework/interface/Event.h" 00040 #include "FWCore/Framework/interface/EventSetup.h" 00041 #include "DataFormats/Common/interface/Handle.h" 00042 #include "FWCore/Framework/interface/ESHandle.h" 00043 00044 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00045 00046 #include <boost/cstdint.hpp> 00047 00048 class SiPixelDigiSource : public edm::EDAnalyzer { 00049 public: 00050 explicit SiPixelDigiSource(const edm::ParameterSet& conf); 00051 ~SiPixelDigiSource(); 00052 00053 typedef edm::DetSet<PixelDigi>::const_iterator DigiIterator; 00054 00055 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00056 virtual void beginJob() ; 00057 virtual void endJob() ; 00058 virtual void beginRun(const edm::Run&, edm::EventSetup const&) ; 00059 00060 virtual void buildStructure(edm::EventSetup const&); 00061 virtual void bookMEs(); 00062 00063 private: 00064 edm::ParameterSet conf_; 00065 edm::InputTag src_; 00066 bool saveFile; 00067 bool isPIB; 00068 bool slowDown; 00069 bool modOn; 00070 bool twoDimOn; 00071 bool twoDimModOn; 00072 bool twoDimOnlyLayDisk; 00073 bool hiRes; 00074 bool reducedSet; 00075 //barrel: 00076 bool ladOn, layOn, phiOn; 00077 //forward: 00078 bool ringOn, bladeOn, diskOn; 00079 int eventNo; 00080 int lumSec; 00081 int nLumiSecs; 00082 DQMStore* theDMBE; 00083 std::map<uint32_t,SiPixelDigiModule*> thePixelStructure; 00084 00085 int nDP1P1M1; 00086 int nDP1P1M2; 00087 int nDP1P1M3; 00088 int nDP1P1M4; 00089 int nDP1P2M1; 00090 int nDP1P2M2; 00091 int nDP1P2M3; 00092 int nDP2P1M1; 00093 int nDP2P1M2; 00094 int nDP2P1M3; 00095 int nDP2P1M4; 00096 int nDP2P2M1; 00097 int nDP2P2M2; 00098 int nDP2P2M3; 00099 int nDM1P1M1; 00100 int nDM1P1M2; 00101 int nDM1P1M3; 00102 int nDM1P1M4; 00103 int nDM1P2M1; 00104 int nDM1P2M2; 00105 int nDM1P2M3; 00106 int nDM2P1M1; 00107 int nDM2P1M2; 00108 int nDM2P1M3; 00109 int nDM2P1M4; 00110 int nDM2P2M1; 00111 int nDM2P2M2; 00112 int nDM2P2M3; 00113 int nL1M1; 00114 int nL1M2; 00115 int nL1M3; 00116 int nL1M4; 00117 int nL2M1; 00118 int nL2M2; 00119 int nL2M3; 00120 int nL2M4; 00121 int nL3M1; 00122 int nL3M2; 00123 int nL3M3; 00124 int nL3M4; 00125 int nBigEvents; 00126 int nBPIXDigis; 00127 int nFPIXDigis; 00128 MonitorElement* bigEventRate; 00129 MonitorElement* pixEvtsPerBX; 00130 MonitorElement* pixEventRate; 00131 MonitorElement* noOccROCsBarrel; 00132 MonitorElement* loOccROCsBarrel; 00133 MonitorElement* noOccROCsEndcap; 00134 MonitorElement* loOccROCsEndcap; 00135 MonitorElement* averageDigiOccupancy; 00136 MonitorElement* avgfedDigiOccvsLumi; 00137 MonitorElement* meNDigisCOMBBarrel_; 00138 MonitorElement* meNDigisCOMBEndcap_; 00139 MonitorElement* meNDigisCHANBarrel_; 00140 MonitorElement* meNDigisCHANBarrelL1_; 00141 MonitorElement* meNDigisCHANBarrelL2_; 00142 MonitorElement* meNDigisCHANBarrelL3_; 00143 MonitorElement* meNDigisCHANBarrelCh1_; 00144 MonitorElement* meNDigisCHANBarrelCh2_; 00145 MonitorElement* meNDigisCHANBarrelCh3_; 00146 MonitorElement* meNDigisCHANBarrelCh4_; 00147 MonitorElement* meNDigisCHANBarrelCh5_; 00148 MonitorElement* meNDigisCHANBarrelCh6_; 00149 MonitorElement* meNDigisCHANBarrelCh7_; 00150 MonitorElement* meNDigisCHANBarrelCh8_; 00151 MonitorElement* meNDigisCHANBarrelCh9_; 00152 MonitorElement* meNDigisCHANBarrelCh10_; 00153 MonitorElement* meNDigisCHANBarrelCh11_; 00154 MonitorElement* meNDigisCHANBarrelCh12_; 00155 MonitorElement* meNDigisCHANBarrelCh13_; 00156 MonitorElement* meNDigisCHANBarrelCh14_; 00157 MonitorElement* meNDigisCHANBarrelCh15_; 00158 MonitorElement* meNDigisCHANBarrelCh16_; 00159 MonitorElement* meNDigisCHANBarrelCh17_; 00160 MonitorElement* meNDigisCHANBarrelCh18_; 00161 MonitorElement* meNDigisCHANBarrelCh19_; 00162 MonitorElement* meNDigisCHANBarrelCh20_; 00163 MonitorElement* meNDigisCHANBarrelCh21_; 00164 MonitorElement* meNDigisCHANBarrelCh22_; 00165 MonitorElement* meNDigisCHANBarrelCh23_; 00166 MonitorElement* meNDigisCHANBarrelCh24_; 00167 MonitorElement* meNDigisCHANBarrelCh25_; 00168 MonitorElement* meNDigisCHANBarrelCh26_; 00169 MonitorElement* meNDigisCHANBarrelCh27_; 00170 MonitorElement* meNDigisCHANBarrelCh28_; 00171 MonitorElement* meNDigisCHANBarrelCh29_; 00172 MonitorElement* meNDigisCHANBarrelCh30_; 00173 MonitorElement* meNDigisCHANBarrelCh31_; 00174 MonitorElement* meNDigisCHANBarrelCh32_; 00175 MonitorElement* meNDigisCHANBarrelCh33_; 00176 MonitorElement* meNDigisCHANBarrelCh34_; 00177 MonitorElement* meNDigisCHANBarrelCh35_; 00178 MonitorElement* meNDigisCHANBarrelCh36_; 00179 MonitorElement* meNDigisCHANEndcap_; 00180 MonitorElement* meNDigisCHANEndcapDp1_; 00181 MonitorElement* meNDigisCHANEndcapDp2_; 00182 MonitorElement* meNDigisCHANEndcapDm1_; 00183 MonitorElement* meNDigisCHANEndcapDm2_; 00184 00185 int bigEventSize; 00186 00187 bool firstRun; 00188 00189 std::string I_name[1440]; 00190 unsigned int I_detId[1440]; 00191 int I_fedId[1440]; 00192 int I_linkId1[1440]; 00193 int I_linkId2[1440]; 00194 int nDigisPerFed[40]; 00195 int nDigisPerChan[1152]; 00196 int nDigisPerDisk[4]; 00197 int numberOfDigis[192]; 00198 int nDigisA; 00199 int nDigisB; 00200 }; 00201 00202 #endif