00001 #ifndef Alignment_SurveyAnalysis_SurveyInputBase_h 00002 #define Alignment_SurveyAnalysis_SurveyInputBase_h 00003 00013 #include "FWCore/Framework/interface/EDAnalyzer.h" 00014 00015 class Alignable; 00016 00017 class SurveyInputBase: 00018 public edm::EDAnalyzer 00019 { 00020 public: 00021 00022 virtual ~SurveyInputBase(); 00023 00025 virtual void beginJob() { theFirstEvent = true; } 00026 00028 virtual void analyze( 00029 const edm::Event&, 00030 const edm::EventSetup& 00031 ) = 0; 00032 00034 inline static Alignable* detector(); 00035 00038 static void addComponent( 00039 Alignable* 00040 ); 00041 00042 protected: 00043 00044 bool theFirstEvent; 00045 00046 private: 00047 00048 static Alignable* theDetector; // only one detector 00049 }; 00050 00051 Alignable* SurveyInputBase::detector() 00052 { 00053 return theDetector; 00054 } 00055 00056 #endif