00001 #ifndef TtSemiLepSignalSelMVAComputer_h 00002 #define TtSemiLepSignalSelMVAComputer_h 00003 00004 #include "FWCore/Framework/interface/Event.h" 00005 #include "FWCore/Framework/interface/EDProducer.h" 00006 00007 #include "PhysicsTools/MVAComputer/interface/HelperMacros.h" 00008 #include "PhysicsTools/MVAComputer/interface/MVAComputerCache.h" 00009 00010 #include "DataFormats/Math/interface/LorentzVector.h" 00011 00012 #ifndef TtSemiLepSignalSelMVARcd_defined // to avoid conflicts with the TopSemiLepLepSignalSelMVATrainer 00013 #define TtSemiLepSignalSelMVARcd_defined 00014 MVA_COMPUTER_CONTAINER_DEFINE(TtSemiLepSignalSelMVA); // defines TopSemiLepLepSignalSelMVARcd 00015 #endif 00016 00017 class TtSemiLepSignalSelMVAComputer : public edm::EDProducer { 00018 00019 public: 00020 00021 explicit TtSemiLepSignalSelMVAComputer(const edm::ParameterSet&); 00022 ~TtSemiLepSignalSelMVAComputer(); 00023 00024 private: 00025 00026 virtual void beginJob(); 00027 virtual void produce(edm::Event& evt, const edm::EventSetup& setup); 00028 virtual void endJob(); 00029 00030 double DeltaPhi(math::XYZTLorentzVector v1, math::XYZTLorentzVector v2); 00031 double DeltaR(math::XYZTLorentzVector v1, math::XYZTLorentzVector v2); 00032 00033 edm::InputTag muons_; 00034 edm::InputTag jets_; 00035 edm::InputTag METs_; 00036 edm::InputTag electrons_; 00037 00038 PhysicsTools::MVAComputerCache mvaComputer; 00039 00040 double DiscSel; 00041 00042 }; 00043 00044 #endif