00001 // Original Author: Michail Bachtis 00002 // Created: Sun Jan 20 20:10:02 CST 2008 00003 // University of Wisconsin-Madison 00004 00005 // system include files 00006 #include <memory> 00007 00008 // user include files 00009 #include "FWCore/Framework/interface/Frameworkfwd.h" 00010 #include "FWCore/Framework/interface/EDAnalyzer.h" 00011 #include "FWCore/Framework/interface/Event.h" 00012 #include "FWCore/Framework/interface/MakerMacros.h" 00013 #include "FWCore/ServiceRegistry/interface/Service.h" 00014 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00015 #include "FWCore/ParameterSet/interface/InputTag.h" 00016 #include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" 00017 #include "DataFormats/JetReco/interface/GenJet.h" 00018 #include "DataFormats/TauReco/interface/L2TauInfoAssociation.h" 00019 #include "DataFormats/Math/interface/LorentzVector.h" 00020 #include "DataFormats/L1Trigger/interface/L1JetParticle.h" 00021 #include "DataFormats/L1Trigger/interface/L1JetParticleFwd.h" 00022 #include "DataFormats/HLTReco/interface/TriggerTypeDefs.h" 00023 #include "DataFormats/METReco/interface/CaloMET.h" 00024 #include "DataFormats/METReco/interface/CaloMETFwd.h" 00025 #include <string> 00026 00027 00028 //Include DQM core 00029 #include "DQMServices/Core/interface/DQMStore.h" 00030 #include "DQMServices/Core/interface/MonitorElement.h" 00031 00032 00033 typedef math::XYZTLorentzVectorD LV; 00034 typedef std::vector<LV> LVColl; 00035 00036 00037 00038 00039 // 00040 // class decleration 00041 // 00042 00043 00044 class HLTTauCaloDQMOfflineSource : public edm::EDAnalyzer { 00045 public: 00046 explicit HLTTauCaloDQMOfflineSource(const edm::ParameterSet&); 00047 ~HLTTauCaloDQMOfflineSource(); 00048 00049 private: 00050 virtual void beginJob(const edm::EventSetup&) ; 00051 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00052 virtual void endJob() ; 00053 00054 //Parameters to read 00055 edm::InputTag l2TauInfoAssoc_; //Path to analyze 00056 edm::InputTag mcColl_; // input products from HLTMcInfo 00057 edm::InputTag met_; //Handle to missing Et 00058 bool doRef_; //DoReference Analysis 00059 //Select if you want match or not 00060 double matchDeltaRMC_; 00061 std::string triggerTag_;//tag for dqm flder 00062 edm::InputTag l2Isolated_; //Path to analyze 00063 00064 00065 //Output file 00066 std::string outFile_; 00067 00068 //Histogram Limits 00069 double EtMin_; 00070 double EtMax_; 00071 int NBins_; 00072 00073 DQMStore* store; 00074 00075 //Monitor elements main 00076 MonitorElement* jetEt; 00077 MonitorElement* jetEta; 00078 MonitorElement* jetPhi; 00079 MonitorElement* ecalIsolEt; 00080 MonitorElement* towerIsolEt; 00081 MonitorElement* seedTowerEt; 00082 MonitorElement* clusterEtaRMS; 00083 MonitorElement* clusterPhiRMS; 00084 MonitorElement* clusterDeltaRRMS; 00085 MonitorElement* nClusters; 00086 MonitorElement* EtEffNum; 00087 MonitorElement* EtEffDenom; 00088 // MonitorElement* EtEff; 00089 MonitorElement* MET; 00090 00091 00092 bool matchJet(const reco::Jet&,const reco::CaloJetCollection&);//See if this Jet Is Matched 00093 bool match(const reco::Jet&,const LVColl&);//See if this Jet Is Matched 00094 00095 }; 00096 00097