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.23 2010/11/03 21:38:38 merkelp 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 #include "DataFormats/Common/interface/EDProduct.h" 00037 00038 00039 #include "FWCore/Framework/interface/EDProducer.h" 00040 #include "FWCore/Framework/interface/Event.h" 00041 #include "FWCore/Framework/interface/EventSetup.h" 00042 #include "DataFormats/Common/interface/Handle.h" 00043 #include "FWCore/Framework/interface/ESHandle.h" 00044 00045 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00046 00047 #include <boost/cstdint.hpp> 00048 00049 class SiPixelDigiSource : public edm::EDAnalyzer { 00050 public: 00051 explicit SiPixelDigiSource(const edm::ParameterSet& conf); 00052 ~SiPixelDigiSource(); 00053 00054 typedef edm::DetSet<PixelDigi>::const_iterator DigiIterator; 00055 00056 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00057 virtual void beginJob() ; 00058 virtual void endJob() ; 00059 virtual void beginRun(const edm::Run&, edm::EventSetup const&) ; 00060 00061 virtual void buildStructure(edm::EventSetup const&); 00062 virtual void bookMEs(); 00063 00064 private: 00065 edm::ParameterSet conf_; 00066 edm::InputTag src_; 00067 bool saveFile; 00068 bool isPIB; 00069 bool slowDown; 00070 bool modOn; 00071 bool twoDimOn; 00072 bool twoDimModOn; 00073 bool twoDimOnlyLayDisk; 00074 bool hiRes; 00075 bool reducedSet; 00076 //barrel: 00077 bool ladOn, layOn, phiOn; 00078 //forward: 00079 bool ringOn, bladeOn, diskOn; 00080 int eventNo; 00081 int lumSec; 00082 int nLumiSecs; 00083 DQMStore* theDMBE; 00084 std::map<uint32_t,SiPixelDigiModule*> thePixelStructure; 00085 00086 int nBigEvents; 00087 int nBPIXDigis; 00088 int nFPIXDigis; 00089 MonitorElement* bigEventRate; 00090 MonitorElement* pixEvtsPerBX; 00091 MonitorElement* pixEventRate; 00092 MonitorElement* averageDigiOccupancy; 00093 MonitorElement* avgfedDigiOccvsLumi; 00094 MonitorElement* meNDigisCOMBBarrel_; 00095 MonitorElement* meNDigisCOMBEndcap_; 00096 MonitorElement* meNDigisCHANBarrel_; 00097 MonitorElement* meNDigisCHANBarrelL1_; 00098 MonitorElement* meNDigisCHANBarrelL2_; 00099 MonitorElement* meNDigisCHANBarrelL3_; 00100 MonitorElement* meNDigisCHANBarrelCh1_; 00101 MonitorElement* meNDigisCHANBarrelCh2_; 00102 MonitorElement* meNDigisCHANBarrelCh3_; 00103 MonitorElement* meNDigisCHANBarrelCh4_; 00104 MonitorElement* meNDigisCHANBarrelCh5_; 00105 MonitorElement* meNDigisCHANBarrelCh6_; 00106 MonitorElement* meNDigisCHANBarrelCh7_; 00107 MonitorElement* meNDigisCHANBarrelCh8_; 00108 MonitorElement* meNDigisCHANBarrelCh9_; 00109 MonitorElement* meNDigisCHANBarrelCh10_; 00110 MonitorElement* meNDigisCHANBarrelCh11_; 00111 MonitorElement* meNDigisCHANBarrelCh12_; 00112 MonitorElement* meNDigisCHANBarrelCh13_; 00113 MonitorElement* meNDigisCHANBarrelCh14_; 00114 MonitorElement* meNDigisCHANBarrelCh15_; 00115 MonitorElement* meNDigisCHANBarrelCh16_; 00116 MonitorElement* meNDigisCHANBarrelCh17_; 00117 MonitorElement* meNDigisCHANBarrelCh18_; 00118 MonitorElement* meNDigisCHANBarrelCh19_; 00119 MonitorElement* meNDigisCHANBarrelCh20_; 00120 MonitorElement* meNDigisCHANBarrelCh21_; 00121 MonitorElement* meNDigisCHANBarrelCh22_; 00122 MonitorElement* meNDigisCHANBarrelCh23_; 00123 MonitorElement* meNDigisCHANBarrelCh24_; 00124 MonitorElement* meNDigisCHANBarrelCh25_; 00125 MonitorElement* meNDigisCHANBarrelCh26_; 00126 MonitorElement* meNDigisCHANBarrelCh27_; 00127 MonitorElement* meNDigisCHANBarrelCh28_; 00128 MonitorElement* meNDigisCHANBarrelCh29_; 00129 MonitorElement* meNDigisCHANBarrelCh30_; 00130 MonitorElement* meNDigisCHANBarrelCh31_; 00131 MonitorElement* meNDigisCHANBarrelCh32_; 00132 MonitorElement* meNDigisCHANBarrelCh33_; 00133 MonitorElement* meNDigisCHANBarrelCh34_; 00134 MonitorElement* meNDigisCHANBarrelCh35_; 00135 MonitorElement* meNDigisCHANBarrelCh36_; 00136 MonitorElement* meNDigisCHANEndcap_; 00137 MonitorElement* meNDigisCHANEndcapDp1_; 00138 MonitorElement* meNDigisCHANEndcapDp2_; 00139 MonitorElement* meNDigisCHANEndcapDm1_; 00140 MonitorElement* meNDigisCHANEndcapDm2_; 00141 00142 int bigEventSize; 00143 00144 bool firstRun; 00145 00146 std::string I_name[1440]; 00147 unsigned int I_detId[1440]; 00148 int I_fedId[1440]; 00149 int I_linkId1[1440]; 00150 int I_linkId2[1440]; 00151 int nDigisPerFed[40]; 00152 int nDigisPerChan[1152]; 00153 int nDigisPerDisk[4]; 00154 int numberOfDigis[192]; 00155 int nDigisA; 00156 int nDigisB; 00157 }; 00158 00159 #endif