CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/DQM/SiStripMonitorSummary/interface/SiStripBaseCondObjDQM.h

Go to the documentation of this file.
00001 #ifndef SiStripMonitorSummary_SiStripBaseCondObjDQM_h
00002 #define SiStripMonitorSummary_SiStripBaseCondObjDQM_h
00003 
00004 #include "FWCore/Framework/interface/EventSetup.h"
00005 #include "FWCore/Framework/interface/ESHandle.h"
00006 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00007 #include "FWCore/ServiceRegistry/interface/Service.h"
00008 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00009 
00010 
00011 
00012 #include "DataFormats/DetId/interface/DetId.h"
00013 #include "DataFormats/TrackerCommon/interface/TrackerTopology.h"
00014 #include "Geometry/Records/interface/IdealGeometryRecord.h"
00015 
00016 #include "DataFormats/SiStripDetId/interface/SiStripDetId.h"
00017 #include "DataFormats/SiStripDetId/interface/SiStripSubStructure.h"
00018 
00019 #include "DQM/SiStripCommon/interface/SiStripFolderOrganizer.h"
00020 #include "DQM/SiStripCommon/interface/SiStripHistoId.h"
00021 
00022 #include "DQMServices/Core/interface/DQMStore.h"
00023 #include "DQMServices/Core/interface/MonitorElement.h"
00024 
00025 #include "CalibTracker/SiStripCommon/interface/SiStripDetInfoFileReader.h"
00026 
00027 #include "CalibTracker/Records/interface/SiStripDetCablingRcd.h"
00028 #include "CalibFormats/SiStripObjects/interface/SiStripDetCabling.h"
00029 
00030 #include "DQM/SiStripCommon/interface/TkHistoMap.h"  
00031 #include "CommonTools/TrackerMap/interface/TrackerMap.h"
00032 
00033 #include <vector>
00034 #include <map>
00035 #include <string>
00036 #include <sstream>
00037 
00038 class TrackerTopology;
00039 class SiStripBaseCondObjDQM {
00040 
00041  
00042 
00043   public:
00044   
00045                  
00046 
00047   SiStripBaseCondObjDQM(const edm::EventSetup & eSetup,
00048                         edm::ParameterSet const& hPSet,
00049                         edm::ParameterSet const& fPSet );
00050   
00051   virtual ~SiStripBaseCondObjDQM(){};
00052   
00053   virtual void getActiveDetIds(const edm::EventSetup & eSetup)=0;
00054 
00055     void analysis(const edm::EventSetup & eSetup_);
00056     void analysisOnDemand(const edm::EventSetup & eSetup_, uint32_t detIdOnDemand);
00057     void analysisOnDemand(const edm::EventSetup & eSetup_, const std::vector<uint32_t>& detIdsOnDemand);
00058     void analysisOnDemand(const edm::EventSetup & eSetup_,
00059                         std::string requestedSubDetector, 
00060                         uint32_t requestedSide, 
00061                         uint32_t requestedLayer);
00062   
00063 
00064     std::vector<uint32_t> getCabledModules();
00065     void selectModules(std::vector<uint32_t> & detIds_);
00066   
00067     //    virtual void fillTopSummaryMEs()=0;
00068  
00069     virtual unsigned long long getCache(const edm::EventSetup & eSetup_)=0;
00070     virtual void getConditionObject(const edm::EventSetup & eSetup_)=0;
00071 
00072     virtual void end();
00073       
00074   protected:
00075     
00076     struct ModMEs{ 
00077       ModMEs():ProfileDistr(0),     
00078                CumulDistr(0),       
00079                SummaryOfProfileDistr(0),
00080                SummaryOfCumulDistr(0),  
00081                SummaryDistr(0){;}
00082       MonitorElement* ProfileDistr;
00083       MonitorElement* CumulDistr;
00084       MonitorElement* SummaryOfProfileDistr;
00085       MonitorElement* SummaryOfCumulDistr;
00086       MonitorElement* SummaryDistr;         
00087     }; 
00088 
00089 
00090     void getModMEs(ModMEs& CondObj_ME, const uint32_t& detId_, const TrackerTopology* tTopo);
00091     void getSummaryMEs(ModMEs& CondObj_ME, const uint32_t& detId_, const TrackerTopology* tTopo);
00092     std::pair<std::string,uint32_t> getLayerNameAndId(const uint32_t& detId_, const TrackerTopology* tTopo);
00093     std::pair<std::string,uint32_t> getStringNameAndId(const uint32_t& detId_, const TrackerTopology* tTopo);
00094     std::vector<uint32_t> GetSameLayerDetId(const std::vector<uint32_t>& activeDetIds, uint32_t selDetId, const TrackerTopology* tTopo);
00095 
00096 
00097     virtual void fillModMEs(const std::vector<uint32_t> & selectedDetIds, const edm::EventSetup& es);
00098     virtual void fillSummaryMEs(const std::vector<uint32_t> & selectedDetIds, const edm::EventSetup& es);
00099     virtual void fillMEsForDet(const ModMEs& selModME_,uint32_t selDetId_, const TrackerTopology* tTopo)=0;
00100     virtual void fillMEsForLayer( /*std::map<uint32_t, ModMEs> selModMEsMap_, */ uint32_t selDetId_, const TrackerTopology* tTopo)=0;
00101 
00102 
00103     void fillTkMap(const uint32_t& detid, const float& value);
00104     
00105     SiStripDetInfoFileReader* reader; 
00106     
00107     const edm::EventSetup& eSetup_;
00108     edm::ParameterSet hPSet_;
00109     edm::ParameterSet fPSet_;
00110     
00111     bool Mod_On_;
00112     bool HistoMaps_On_;
00113     bool SummaryOnLayerLevel_On_;
00114     bool SummaryOnStringLevel_On_;
00115     bool GrandSummary_On_;
00116     double minValue, maxValue;
00117     std::vector<int> tkMapScaler;
00118 
00119     //bool ActiveDetIds_On_;
00120 
00121     std::string CondObj_fillId_;
00122     std::string CondObj_name_;
00123 
00124     std::map<uint32_t, ModMEs> ModMEsMap_;
00125     std::map<uint32_t, ModMEs> SummaryMEsMap_;
00126     std::vector<uint32_t> activeDetIds;
00127     std::vector<uint32_t> all_DetIds;
00128  
00129     unsigned long long cacheID_memory;
00130     unsigned long long cacheID_current;
00131 
00132     TkHistoMap* Tk_HM_;
00133     TkHistoMap* Tk_HM_H;
00134     TkHistoMap* Tk_HM_L;
00135     TrackerMap * tkMap;
00136   
00137  private:
00138   
00139     void bookProfileMEs(SiStripBaseCondObjDQM::ModMEs& CondObj_ME, const uint32_t& detId_, const TrackerTopology* tTopo);
00140     void bookCumulMEs(SiStripBaseCondObjDQM::ModMEs& CondObj_ME, const uint32_t& detId_, const TrackerTopology* tTopo);
00141     void bookSummaryProfileMEs(SiStripBaseCondObjDQM::ModMEs& CondObj_ME, const uint32_t& detId_, const TrackerTopology* tTopo);
00142     void bookSummaryCumulMEs(SiStripBaseCondObjDQM::ModMEs& CondObj_ME, const uint32_t& detId_, const TrackerTopology* tTopo);
00143     void bookSummaryMEs(SiStripBaseCondObjDQM::ModMEs& CondObj_ME, const uint32_t& detId_, const TrackerTopology* tTopo);
00144 
00145     void bookTkMap(const std::string& TkMapname);
00146 
00147     void saveTkMap(const std::string& TkMapname, double minValue, double maxValue);
00148 
00149     std::vector<uint32_t> ModulesToBeExcluded_;
00150     std::vector<uint32_t> ModulesToBeIncluded_;
00151     std::vector<std::string> SubDetectorsToBeExcluded_;
00152 
00153     edm::ESHandle<SiStripDetCabling> detCablingHandle_;
00154 
00155     std::string condDataMonitoringMode_;
00156      
00157     SiStripHistoId hidmanager;                        
00158     SiStripFolderOrganizer folder_organizer;         
00159     DQMStore* dqmStore_;
00160 
00161 };
00162 
00163 
00164 #endif