Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:26:59

0001 #ifndef MuonIdentification_MuonCaloCompatibility_h
0002 #define MuonIdentification_MuonCaloCompatibility_h
0003 
0004 // -*- C++ -*-
0005 //
0006 // Package:    MuonIdentification
0007 // Class:      MuonCaloCompatibility
0008 //
0009 /*
0010 
0011  Description: test track muon hypothesis using energy deposition in ECAL,HCAL,HO
0012 
0013 */
0014 //
0015 // Original Author:  Ingo Bloch
0016 //
0017 //
0018 
0019 #include "TH2.h"
0020 #include "TH2D.h"
0021 #include "DataFormats/MuonReco/interface/Muon.h"
0022 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0023 
0024 #include <string>
0025 
0026 class MuonCaloCompatibility {
0027 public:
0028   MuonCaloCompatibility() : isConfigured_(false) {}
0029   void configure(const edm::ParameterSet&);
0030   double evaluate(const reco::Muon&);
0031 
0032 private:
0033   bool accessing_overflow(const TH2D& histo, double x, double y);
0034   bool isConfigured_;
0035 
0036   // used input templates for given eta
0037   std::shared_ptr<TH2D> pion_template_em;
0038   std::shared_ptr<TH2D> pion_template_had;
0039   std::shared_ptr<TH2D> pion_template_ho;
0040   std::shared_ptr<TH2D> muon_template_em;
0041   std::shared_ptr<TH2D> muon_template_had;
0042   std::shared_ptr<TH2D> muon_template_ho;
0043   // input template functions by eta
0044   std::shared_ptr<TH2D> pion_had_etaEpl;
0045   std::shared_ptr<TH2D> pion_em_etaEpl;
0046   std::shared_ptr<TH2D> pion_had_etaTpl;
0047   std::shared_ptr<TH2D> pion_em_etaTpl;
0048   std::shared_ptr<TH2D> pion_ho_etaB;
0049   std::shared_ptr<TH2D> pion_had_etaB;
0050   std::shared_ptr<TH2D> pion_em_etaB;
0051   std::shared_ptr<TH2D> pion_had_etaTmi;
0052   std::shared_ptr<TH2D> pion_em_etaTmi;
0053   std::shared_ptr<TH2D> pion_had_etaEmi;
0054   std::shared_ptr<TH2D> pion_em_etaEmi;
0055 
0056   std::shared_ptr<TH2D> muon_had_etaEpl;
0057   std::shared_ptr<TH2D> muon_em_etaEpl;
0058   std::shared_ptr<TH2D> muon_had_etaTpl;
0059   std::shared_ptr<TH2D> muon_em_etaTpl;
0060   std::shared_ptr<TH2D> muon_ho_etaB;
0061   std::shared_ptr<TH2D> muon_had_etaB;
0062   std::shared_ptr<TH2D> muon_em_etaB;
0063   std::shared_ptr<TH2D> muon_had_etaTmi;
0064   std::shared_ptr<TH2D> muon_em_etaTmi;
0065   std::shared_ptr<TH2D> muon_had_etaEmi;
0066   std::shared_ptr<TH2D> muon_em_etaEmi;
0067 
0068   double pbx;
0069   double pby;
0070   double pbz;
0071 
0072   double psx;
0073   double psy;
0074   double psz;
0075 
0076   double muon_compatibility;
0077 
0078   bool use_corrected_hcal;
0079   bool use_em_special;
0080 };
0081 #endif