![]() |
![]() |
00001 // -*- C++ -*- 00002 // 00003 // Package: SiStripCorrelateBadStripAndNoise 00004 // Class: SiStripCorrelateBadStripAndNoise 00005 // 00013 // 00014 // Original Author: Domenico GIORDANO 00015 // Created: Mon Aug 10 10:42:04 CEST 2009 00016 // $Id: SiStripCorrelateBadStripAndNoise.h,v 1.2 2009/09/23 14:20:53 kaussen Exp $ 00017 // 00018 // 00019 00020 00021 // system include files 00022 #include <memory> 00023 00024 // user include files 00025 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00026 #include "FWCore/Framework/interface/Frameworkfwd.h" 00027 #include "FWCore/Framework/interface/EDAnalyzer.h" 00028 #include "FWCore/Framework/interface/ESHandle.h" 00029 #include "CalibFormats/SiStripObjects/interface/SiStripQuality.h" 00030 #include "CondFormats/SiStripObjects/interface/SiStripNoises.h" 00031 00032 #include "FWCore/Framework/interface/Event.h" 00033 #include "FWCore/Framework/interface/MakerMacros.h" 00034 00035 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00036 00037 #include "CalibTracker/Records/interface/SiStripDependentRecords.h" 00038 #include "CalibTracker/SiStripCommon/interface/SiStripDetInfoFileReader.h" 00039 #include "CommonTools/TrackerMap/interface/TrackerMap.h" 00040 00041 #include "TH2F.h" 00042 #include "TH1F.h" 00043 #include "TFile.h" 00044 00045 00046 // 00047 // class decleration 00048 // 00049 00050 class SiStripCorrelateBadStripAndNoise : public edm::EDAnalyzer { 00051 public: 00052 explicit SiStripCorrelateBadStripAndNoise(const edm::ParameterSet&); 00053 ~SiStripCorrelateBadStripAndNoise(); 00054 00055 00056 private: 00057 virtual void beginRun(const edm::Run& run, const edm::EventSetup& es); 00058 virtual void analyze(const edm::Event&, const edm::EventSetup&){}; 00059 virtual void endJob(); 00060 00061 void DoAnalysis(const edm::EventSetup&); 00062 void getHistos(const uint32_t & detid,std::vector<TH2F*>& histos); 00063 TH2F* getHisto(const long unsigned int& index); 00064 00065 unsigned long long getNoiseCache(const edm::EventSetup & eSetup){ return eSetup.get<SiStripNoisesRcd>().cacheIdentifier();} 00066 unsigned long long getQualityCache(const edm::EventSetup & eSetup){ return eSetup.get<SiStripQualityRcd>().cacheIdentifier();} 00067 00068 00069 void iterateOnDets(); 00070 void iterateOnBadStrips(const uint32_t & detid,SiStripQuality::Range& sqrange); 00071 void correlateWithNoise(const uint32_t & detid, const uint32_t & firstStrip, const uint32_t & range); 00072 float getMeanNoise(const SiStripNoises::Range& noiseRange,const uint32_t& first, const uint32_t& range); 00073 00074 00075 // ----------member data --------------------------- 00076 00077 SiStripDetInfoFileReader * fr; 00078 edm::ESHandle<SiStripQuality> qualityHandle_; 00079 edm::ESHandle<SiStripNoises> noiseHandle_; 00080 00081 TFile* file; 00082 std::vector<TH2F*> vTH2; 00083 00084 TrackerMap *tkmap; 00085 00086 00087 unsigned long long cacheID_quality; 00088 unsigned long long cacheID_noise; 00089 }; 00090 00091