Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 11:59:09

0001 #ifndef CalibrationIsolatedParticleseCone_h
0002 #define CalibrationIsolatedParticleseCone_h
0003 
0004 // system include files
0005 #include <memory>
0006 #include <map>
0007 #include <vector>
0008 
0009 // user include files
0010 #include "FWCore/Framework/interface/Frameworkfwd.h"
0011 
0012 #include "DataFormats/Common/interface/Handle.h"
0013 #include "DataFormats/Candidate/interface/Candidate.h"
0014 #include "DataFormats/DetId/interface/DetId.h"
0015 
0016 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
0017 
0018 #include "RecoCaloTools/Navigation/interface/CaloNavigator.h"
0019 
0020 namespace spr {
0021 
0022   // Basic cone energy cluster for hcal simhits and hcal rechits
0023   template <typename T>
0024   double eCone_hcal(const CaloGeometry* geo,
0025                     edm::Handle<T>& hits,
0026                     const GlobalPoint& hpoint1,
0027                     const GlobalPoint& point1,
0028                     double dR,
0029                     const GlobalVector& trackMom,
0030                     int& nRecHits,
0031                     double hbThr = -100,
0032                     double heThr = -100,
0033                     double hfThr = -100,
0034                     double hoThr = -100,
0035                     double tMin = -500,
0036                     double tMax = 500,
0037                     int detOnly = -1,
0038                     int useRaw = 0,
0039                     bool debug = false);
0040 
0041   // Cone energy cluster for hcal simhits and hcal rechits
0042   // that returns vector of rechit IDs and hottest cell info
0043   template <typename T>
0044   double eCone_hcal(const CaloGeometry* geo,
0045                     edm::Handle<T>& hits,
0046                     const GlobalPoint& hpoint1,
0047                     const GlobalPoint& point1,
0048                     double dR,
0049                     const GlobalVector& trackMom,
0050                     int& nRecHits,
0051                     std::vector<DetId>& coneRecHitDetIds,
0052                     double& distFromHotCell,
0053                     int& ietaHotCell,
0054                     int& iphiHotCell,
0055                     GlobalPoint& gposHotCell,
0056                     int detOnly = -1,
0057                     int useRaw = 0,
0058                     bool debug = false);
0059 
0060   template <typename T>
0061   double eCone_hcal(const CaloGeometry* geo,
0062                     edm::Handle<T>& hits,
0063                     const GlobalPoint& hpoint1,
0064                     const GlobalPoint& point1,
0065                     double dR,
0066                     const GlobalVector& trackMom,
0067                     int& nRecHits,
0068                     std::vector<DetId>& coneRecHitDetIds,
0069                     std::vector<double>& eHit,
0070                     int useRaw = 0,
0071                     bool debug = false);
0072 
0073   // Cone energy cluster for hcal simhits and hcal rechits
0074   // that returns vector of rechit IDs and hottest cell info
0075   // AND info for making "hit maps"
0076   template <typename T>
0077   double eCone_hcal(const CaloGeometry* geo,
0078                     edm::Handle<T>& hits,
0079                     const GlobalPoint& hpoint1,
0080                     const GlobalPoint& point1,
0081                     double dR,
0082                     const GlobalVector& trackMom,
0083                     int& nRecHits,
0084                     std::vector<int>& RH_ieta,
0085                     std::vector<int>& RH_iphi,
0086                     std::vector<double>& RH_ene,
0087                     std::vector<DetId>& coneRecHitDetIds,
0088                     double& distFromHotCell,
0089                     int& ietaHotCell,
0090                     int& iphiHotCell,
0091                     GlobalPoint& gposHotCell,
0092                     int detOnly = -1,
0093                     int useRaw = 0,
0094                     bool debug = false);
0095 
0096   // Basic cone energy clustering for Ecal
0097   template <typename T>
0098   double eCone_ecal(const CaloGeometry* geo,
0099                     edm::Handle<T>& barrelhits,
0100                     edm::Handle<T>& endcaphits,
0101                     const GlobalPoint& hpoint1,
0102                     const GlobalPoint& point1,
0103                     double dR,
0104                     const GlobalVector& trackMom,
0105                     int& nRecHits,
0106                     double ebThr = -100,
0107                     double eeThr = -100,
0108                     double tMin = -500,
0109                     double tMax = 500,
0110                     bool debug = false);
0111 
0112   template <typename T>
0113   double eCone_ecal(const CaloGeometry* geo,
0114                     edm::Handle<T>& barrelhits,
0115                     edm::Handle<T>& endcaphits,
0116                     const GlobalPoint& hpoint1,
0117                     const GlobalPoint& point1,
0118                     double dR,
0119                     const GlobalVector& trackMom,
0120                     std::vector<DetId>& coneRecHitDetIds,
0121                     std::vector<double>& eHit,
0122                     double ebThr = -100,
0123                     double eeThr = -100,
0124                     double tMin = -500,
0125                     double tMax = 500,
0126                     bool debug = false);
0127 
0128 }  // namespace spr
0129 
0130 #include "eCone.icc"
0131 
0132 #endif