CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_1/src/RecoMET/METAlgorithms/interface/SignCaloSpecificAlgo.h

Go to the documentation of this file.
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