CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/DQM/SiStripMonitorSummary/plugins/SiStripCorrelateBadStripAndNoise.h

Go to the documentation of this file.
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