00001 #ifndef METProducers_SignCaloMETAlgo_h 00002 #define METProducers_SignCaloMETAlgo_h 00003 // -*- C++ -*- 00004 // 00005 // Package: METAlgorithms 00006 // Class: SignCaloSpecificAlgo 00007 // 00015 // 00016 // Original Author: Kyle Story, Freya Blekman (Cornell University) 00017 // Created: Fri Apr 18 11:58:33 CEST 2008 00018 // $Id: SignCaloSpecificAlgo.h,v 1.4 2009/10/22 16:50:45 fblekman Exp $ 00019 // 00020 // 00021 // 00022 #include "DataFormats/JetReco/interface/CaloJet.h" 00023 #include "DataFormats/METReco/interface/CaloMET.h" 00024 #include "DataFormats/Math/interface/LorentzVector.h" 00025 #include "DataFormats/Math/interface/Point3D.h" 00026 #include "DataFormats/METReco/interface/CommonMETData.h" 00027 #include "DataFormats/METReco/interface/SpecificCaloMETData.h" 00028 #include "RecoMET/METAlgorithms/interface/SignAlgoResolutions.h" 00029 #include "RecoMET/METAlgorithms/interface/SigInputObj.h" 00030 #include "DataFormats/RecoCandidate/interface/RecoCandidate.h" 00031 #include "TF1.h" 00032 #include "TMatrixD.h" 00033 00034 00035 class SignCaloSpecificAlgo 00036 { 00037 public: 00038 00039 SignCaloSpecificAlgo(); 00040 ~SignCaloSpecificAlgo(); 00041 00042 00043 typedef math::XYZTLorentzVector LorentzVector; 00044 typedef math::XYZPoint Point; 00045 typedef std::vector <const reco::Candidate*> TowerCollection; 00046 void usePreviousSignif(const std::vector<double> &values); 00047 void usePreviousSignif(const TMatrixD &matrix){matrix_=matrix;} 00048 double getSignificance(){return significance_;} 00049 TMatrixD getSignificanceMatrix()const {return matrix_;} 00050 00051 void calculateBaseCaloMET(edm::Handle<edm::View<reco::Candidate> > towers, CommonMETData met, const metsig::SignAlgoResolutions & resolutions, bool noHF, double globalthreshold); 00052 00053 private: 00054 00055 std::vector<metsig::SigInputObj> makeVectorOutOfCaloTowers(edm::Handle<edm::View<reco::Candidate> > towers, const metsig::SignAlgoResolutions& resolutions, bool noHF, double globalthreshold); 00056 00057 double significance_; 00058 TMatrixD matrix_; 00059 }; 00060 00061 #endif