00001 /* HLTTau Path Validation Analyzer 00002 Michail Bachtis 00003 University of Wisconsin - Madison 00004 bachtis@hep.wisc.edu 00005 */ 00006 00007 00008 #ifndef HLTTauValidation_h 00009 #define HLTTauValidation_h 00010 00011 00012 #include "FWCore/Framework/interface/Event.h" 00013 #include "FWCore/Framework/interface/EDAnalyzer.h" 00014 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00015 #include "DataFormats/Math/interface/LorentzVector.h" 00016 #include "FWCore/ServiceRegistry/interface/Service.h" 00017 #include "DataFormats/HLTReco/interface/TriggerEventWithRefs.h" 00018 #include "DataFormats/HLTReco/interface/TriggerRefsCollections.h" 00019 #include "DataFormats/L1Trigger/interface/L1JetParticle.h" 00020 #include "DataFormats/L1Trigger/interface/L1JetParticleFwd.h" 00021 #include "DataFormats/L1Trigger/interface/L1EmParticle.h" 00022 #include "DataFormats/L1Trigger/interface/L1EmParticleFwd.h" 00023 #include "DataFormats/L1Trigger/interface/L1MuonParticle.h" 00024 #include "DataFormats/L1Trigger/interface/L1MuonParticleFwd.h" 00025 #include "DataFormats/EgammaCandidates/interface/Electron.h" 00026 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidate.h" 00027 //Include DQM core 00028 #include "DQMServices/Core/interface/DQMStore.h" 00029 #include "DQMServices/Core/interface/MonitorElement.h" 00030 00031 typedef math::XYZTLorentzVectorD LV; 00032 typedef std::vector<LV> LVColl; 00033 00034 00035 00036 class HLTTauValidation : public edm::EDAnalyzer { 00037 00038 public: 00039 explicit HLTTauValidation(const edm::ParameterSet&); 00040 ~HLTTauValidation(); 00041 00042 private: 00043 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00044 virtual void endJob() ; 00045 00046 LVColl getFilterCollection(size_t,int,const trigger::TriggerEventWithRefs&); 00047 00048 //helper functions 00049 bool match(const LV&,const LVColl&,double); 00050 00052 edm::InputTag triggerEventObject_; 00053 00054 //reference Collection 00055 edm::InputTag refCollection_; 00056 edm::InputTag refLeptonCollection_; 00057 00058 //Just a tag for better file organization 00059 std::string triggerTag_; 00060 00061 //The filters 00062 std::vector<edm::InputTag> filter_; 00063 std::vector<int> TauType_; 00064 std::vector<int> LeptonType_; 00065 00066 //Parameters(Note that the first entry is for the reference events) 00067 std::vector<unsigned> nTriggeredTaus_; 00068 std::vector<unsigned> nTriggeredLeptons_; 00069 00070 bool doRefAnalysis_; 00071 std::vector<double> matchDeltaR_; 00072 00073 00074 00075 //MonitorElements 00076 MonitorElement *accepted_events; 00077 MonitorElement *accepted_events_matched; 00078 }; 00079 #endif