Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:04:44

0001 #ifndef METReco_CaloMET_h
0002 #define METReco_CaloMET_h
0003 
0004 /** \class CaloMET
0005  *
0006  * \short MET made from CaloTowers
0007  *
0008  * CaloMET represents MET made from CaloTowers
0009  * Provide energy contributions from different subdetectors
0010  * in addition to generic MET parameters
0011  *
0012  * \author    R. Cavanaugh, UFL (inspiration taken from F. Ratnikov)
0013  *
0014  ************************************************************/
0015 
0016 #include "DataFormats/METReco/interface/SpecificCaloMETData.h"
0017 #include "DataFormats/METReco/interface/MET.h"
0018 #include "DataFormats/METReco/interface/CorrMETData.h"
0019 
0020 namespace reco {
0021   class CaloMET : public MET {
0022   public:
0023     /* Constructors*/
0024     CaloMET();
0025     CaloMET(const SpecificCaloMETData& calo_data_, double sumet_, const LorentzVector& fP4, const Point& fVertex)
0026         : MET(sumet_, fP4, fVertex), calo_data(calo_data_) {}
0027     CaloMET(const SpecificCaloMETData& calo_data_,
0028             double sumet_,
0029             const std::vector<CorrMETData>& corr_,
0030             const LorentzVector& fP4,
0031             const Point& fVertex)
0032         : MET(sumet_, corr_, fP4, fVertex), calo_data(calo_data_) {}
0033     /* Default destructor*/
0034     ~CaloMET() override {}
0035 
0036     /* Returns the maximum energy deposited in ECAL towers */
0037     double maxEtInEmTowers() const { return calo_data.MaxEtInEmTowers; };
0038     /* Returns the maximum energy deposited in HCAL towers */
0039     double maxEtInHadTowers() const { return calo_data.MaxEtInHadTowers; };
0040     /* Returns the event hadronic energy fraction          */
0041     double etFractionHadronic() const { return calo_data.EtFractionHadronic; };
0042     /* Returns the event electromagnetic energy fraction   */
0043     double emEtFraction() const { return calo_data.EtFractionEm; };
0044     /* Returns the event hadronic energy in HB             */
0045     double hadEtInHB() const { return calo_data.HadEtInHB; };
0046     /* Returns the event hadronic energy in HO             */
0047     double hadEtInHO() const { return calo_data.HadEtInHO; };
0048     /* Returns the event hadronic energy in HE             */
0049     double hadEtInHE() const { return calo_data.HadEtInHE; };
0050     /* Returns the event hadronic energy in HF             */
0051     double hadEtInHF() const { return calo_data.HadEtInHF; };
0052     /* Returns the event electromagnetic energy in EB      */
0053     double emEtInEB() const { return calo_data.EmEtInEB; };
0054     /* Returns the event electromagnetic energy in EE      */
0055     double emEtInEE() const { return calo_data.EmEtInEE; };
0056     /* Returns the event electromagnetic energy extracted from HF */
0057     double emEtInHF() const { return calo_data.EmEtInHF; };
0058     /* Returns the event MET Significance */
0059     double metSignificance() const { return this->significance(); };
0060     /* Returns the event SET in HF+ */
0061     double CaloSETInpHF() const { return calo_data.CaloSETInpHF; };
0062     /* Returns the event SET in HF- */
0063     double CaloSETInmHF() const { return calo_data.CaloSETInmHF; };
0064     /* Returns the event MET in HF+ */
0065     double CaloMETInpHF() const { return calo_data.CaloMETInpHF; };
0066     /* Returns the event MET in HF- */
0067     double CaloMETInmHF() const { return calo_data.CaloMETInmHF; };
0068     /* Returns the event MET-phi in HF+ */
0069     double CaloMETPhiInpHF() const { return calo_data.CaloMETPhiInpHF; };
0070     /* Returns the event MET-phi in HF- */
0071     double CaloMETPhiInmHF() const { return calo_data.CaloMETPhiInmHF; };
0072 
0073     //Set Met Significance
0074     void SetMetSignificance(double metsig) { calo_data.METSignificance = metsig; }
0075 
0076     // block accessors
0077     SpecificCaloMETData getSpecific() const { return calo_data; }
0078 
0079   private:
0080     bool overlap(const Candidate&) const override;
0081     // Data members
0082     //Variables specific to to the CaloMET class
0083     SpecificCaloMETData calo_data;
0084   };
0085 }  // namespace reco
0086 #endif