00001 #ifndef Validation_DTSegment4D_H 00002 #define Validation_DTSegment4D_H 00003 00023 #include "FWCore/Framework/interface/EDAnalyzer.h" 00024 #include "Histograms.h" 00025 #include "DQMServices/Core/interface/DQMStore.h" 00026 #include "DQMServices/Core/interface/MonitorElement.h" 00027 #include "FWCore/ServiceRegistry/interface/Service.h" 00028 #include "FWCore/Utilities/interface/InputTag.h" 00029 00030 #include <vector> 00031 #include <map> 00032 #include <string> 00033 00034 namespace edm { 00035 class ParameterSet; 00036 class Event; 00037 class EventSetup; 00038 } 00039 00040 class TFile; 00041 class MonitorElement; 00042 00043 class DTSegment4DQuality : public edm::EDAnalyzer { 00044 public: 00046 DTSegment4DQuality(const edm::ParameterSet& pset); 00047 00049 virtual ~DTSegment4DQuality(); 00050 00051 // Operations 00052 00054 void analyze(const edm::Event & event, const edm::EventSetup& eventSetup); 00055 // Write the histos to file 00056 void endJob(); 00057 void endLuminosityBlock(edm::LuminosityBlock const& lumiSeg, 00058 edm::EventSetup const& c); 00059 00060 protected: 00061 00062 private: 00063 00064 // The file which will store the histos 00065 //TFile *theFile; 00066 // Switch for debug output 00067 bool debug; 00068 // Root file name 00069 std::string rootFileName; 00070 //Labels to read from event 00071 edm::InputTag simHitLabel; 00072 edm::InputTag segment4DLabel; 00073 //Sigma resolution on position 00074 double sigmaResX; 00075 double sigmaResY; 00076 //Sigma resolution on angle 00077 double sigmaResAlpha; 00078 double sigmaResBeta; 00079 00080 HRes4DHit *h4DHit; 00081 HRes4DHit *h4DHit_W0; 00082 HRes4DHit *h4DHit_W1; 00083 HRes4DHit *h4DHit_W2; 00084 HRes4DHit *h4DHitWS[3][4]; 00085 00086 HEff4DHit *hEff_All; 00087 HEff4DHit *hEff_W0; 00088 HEff4DHit *hEff_W1; 00089 HEff4DHit *hEff_W2; 00090 HEff4DHit *hEffWS[3][4]; 00091 00092 MonitorElement* hHitMult[3][4]; 00093 MonitorElement* ht0[3][4]; 00094 00095 DQMStore* dbe_; 00096 bool doall; 00097 bool local; 00098 }; 00099 00100 #endif