00001 #ifndef CSCBaseValidation_h 00002 #define CSCBaseValidation_h 00003 00004 // user include files 00005 00006 #include "FWCore/Framework/interface/Event.h" 00007 #include "FWCore/Framework/interface/ESHandle.h" 00008 #include "FWCore/Framework/interface/EDAnalyzer.h" 00009 #include "FWCore/Utilities/interface/InputTag.h" 00010 00011 #include "DQMServices/Core/interface/DQMStore.h" 00012 #include "SimMuon/MCTruth/interface/PSimHitMap.h" 00013 #include "Geometry/CSCGeometry/interface/CSCGeometry.h" 00014 00015 00016 class CSCBaseValidation { 00017 public: 00018 CSCBaseValidation(DQMStore* dbe, const edm::InputTag & inputTag); 00019 virtual ~CSCBaseValidation() {} 00020 00021 void setGeometry(const CSCGeometry * geom) {theCSCGeometry = geom;} 00022 void setSimHitMap(const PSimHitMap * simHitMap) {theSimHitMap = simHitMap;} 00023 00024 virtual void analyze(const edm::Event&e, const edm::EventSetup& eventSetup) = 0; 00025 00026 protected: 00027 const CSCLayer * findLayer(int detId) const; 00028 00029 DQMStore* dbe_; 00030 edm::InputTag theInputTag; 00031 const PSimHitMap * theSimHitMap; 00032 const CSCGeometry * theCSCGeometry; 00033 }; 00034 00035 #endif 00036