00001 #ifndef SiPixelMonitorCluster_SiPixelClusterSource_h 00002 #define SiPixelMonitorCluster_SiPixelClusterSource_h 00003 // -*- C++ -*- 00004 // 00005 // Package: SiPixelMonitorCluster 00006 // Class : SiPixelClusterSource 00007 // 00008 /* 00009 00010 Description: <one line class summary> 00011 00012 Usage: 00013 <usage> 00014 00015 */ 00016 // 00017 // Original Author: Vincenzo Chiochia & Andrew York 00018 // 00019 // Updated by: Lukas Wehrli 00020 // for pixel offline DQM 00021 // Created: 00022 // $Id: SiPixelClusterSource.h,v 1.20 2011/05/20 17:17:24 wmtan Exp $ 00023 00024 #include <memory> 00025 00026 // user include files 00027 #include "FWCore/Framework/interface/Frameworkfwd.h" 00028 #include "FWCore/Framework/interface/EDAnalyzer.h" 00029 #include "FWCore/Framework/interface/MakerMacros.h" 00030 00031 #include "DQMServices/Core/interface/DQMStore.h" 00032 00033 #include "DQM/SiPixelMonitorCluster/interface/SiPixelClusterModule.h" 00034 00035 #include "DataFormats/Common/interface/DetSetVectorNew.h" 00036 #include "DataFormats/SiPixelDigi/interface/PixelDigi.h" 00037 #include "DataFormats/SiPixelCluster/interface/SiPixelCluster.h" 00038 00039 00040 #include "FWCore/Framework/interface/EDProducer.h" 00041 #include "FWCore/Framework/interface/Event.h" 00042 #include "FWCore/Framework/interface/EventSetup.h" 00043 #include "DataFormats/Common/interface/Handle.h" 00044 #include "FWCore/Framework/interface/ESHandle.h" 00045 00046 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00047 00048 #include <boost/cstdint.hpp> 00049 00050 #include "Geometry/CommonTopologies/interface/PixelTopology.h" 00051 #include "Geometry/TrackerGeometryBuilder/interface/PixelGeomDetUnit.h" 00052 #include "Geometry/CommonDetUnit/interface/GeomDetType.h" 00053 #include "Geometry/CommonDetUnit/interface/GeomDetUnit.h" 00054 #include "Geometry/TrackerGeometryBuilder/interface/GluedGeomDet.h" 00055 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" 00056 #include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" 00057 #include "Geometry/TrackerNumberingBuilder/interface/GeometricDet.h" 00058 #include "Geometry/TrackerGeometryBuilder/interface/PixelGeomDetType.h" 00059 00060 class SiPixelClusterSource : public edm::EDAnalyzer { 00061 public: 00062 explicit SiPixelClusterSource(const edm::ParameterSet& conf); 00063 ~SiPixelClusterSource(); 00064 00065 typedef edmNew::DetSet<SiPixelCluster>::const_iterator ClusterIterator; 00066 00067 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00068 virtual void beginJob() ; 00069 virtual void endJob() ; 00070 virtual void beginRun(const edm::Run&, edm::EventSetup const&) ; 00071 00072 virtual void buildStructure(edm::EventSetup const&); 00073 virtual void bookMEs(); 00074 00075 private: 00076 edm::ParameterSet conf_; 00077 edm::InputTag src_; 00078 bool saveFile; 00079 bool isPIB; 00080 bool slowDown; 00081 int eventNo; 00082 DQMStore* theDMBE; 00083 std::map<uint32_t,SiPixelClusterModule*> thePixelStructure; 00084 bool modOn; 00085 bool twoDimOn; 00086 bool reducedSet; 00087 //barrel: 00088 bool ladOn, layOn, phiOn; 00089 //forward: 00090 bool ringOn, bladeOn, diskOn; 00091 bool smileyOn; //cluster sizeY vs Cluster eta plot 00092 bool firstRun; 00093 int lumSec; 00094 int nLumiSecs; 00095 int nBigEvents; 00096 MonitorElement* bigFpixClusterEventRate; 00097 int bigEventSize; 00098 00099 MonitorElement* meClPosLayer1; 00100 MonitorElement* meClPosLayer2; 00101 MonitorElement* meClPosLayer3; 00102 MonitorElement* meClPosDisk1pz; 00103 MonitorElement* meClPosDisk2pz; 00104 MonitorElement* meClPosDisk1mz; 00105 MonitorElement* meClPosDisk2mz; 00106 00107 00108 }; 00109 00110 #endif