Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
#ifndef CalibrationIsolatedParticleseCone_h
#define CalibrationIsolatedParticleseCone_h

// system include files
#include <memory>
#include <map>
#include <vector>

// user include files
#include "FWCore/Framework/interface/Frameworkfwd.h"

#include "DataFormats/Common/interface/Handle.h"
#include "DataFormats/Candidate/interface/Candidate.h"
#include "DataFormats/DetId/interface/DetId.h"

#include "Geometry/CaloGeometry/interface/CaloGeometry.h"

#include "RecoCaloTools/Navigation/interface/CaloNavigator.h"

namespace spr {

  // Basic cone energy cluster for hcal simhits and hcal rechits
  template <typename T>
  double eCone_hcal(const CaloGeometry* geo,
                    edm::Handle<T>& hits,
                    const GlobalPoint& hpoint1,
                    const GlobalPoint& point1,
                    double dR,
                    const GlobalVector& trackMom,
                    int& nRecHits,
                    double hbThr = -100,
                    double heThr = -100,
                    double hfThr = -100,
                    double hoThr = -100,
                    double tMin = -500,
                    double tMax = 500,
                    int detOnly = -1,
                    int useRaw = 0,
                    bool debug = false);

  // Cone energy cluster for hcal simhits and hcal rechits
  // that returns vector of rechit IDs and hottest cell info
  template <typename T>
  double eCone_hcal(const CaloGeometry* geo,
                    edm::Handle<T>& hits,
                    const GlobalPoint& hpoint1,
                    const GlobalPoint& point1,
                    double dR,
                    const GlobalVector& trackMom,
                    int& nRecHits,
                    std::vector<DetId>& coneRecHitDetIds,
                    double& distFromHotCell,
                    int& ietaHotCell,
                    int& iphiHotCell,
                    GlobalPoint& gposHotCell,
                    int detOnly = -1,
                    int useRaw = 0,
                    bool debug = false);

  template <typename T>
  double eCone_hcal(const CaloGeometry* geo,
                    edm::Handle<T>& hits,
                    const GlobalPoint& hpoint1,
                    const GlobalPoint& point1,
                    double dR,
                    const GlobalVector& trackMom,
                    int& nRecHits,
                    std::vector<DetId>& coneRecHitDetIds,
                    std::vector<double>& eHit,
                    int useRaw = 0,
                    bool debug = false);

  // Cone energy cluster for hcal simhits and hcal rechits
  // that returns vector of rechit IDs and hottest cell info
  // AND info for making "hit maps"
  template <typename T>
  double eCone_hcal(const CaloGeometry* geo,
                    edm::Handle<T>& hits,
                    const GlobalPoint& hpoint1,
                    const GlobalPoint& point1,
                    double dR,
                    const GlobalVector& trackMom,
                    int& nRecHits,
                    std::vector<int>& RH_ieta,
                    std::vector<int>& RH_iphi,
                    std::vector<double>& RH_ene,
                    std::vector<DetId>& coneRecHitDetIds,
                    double& distFromHotCell,
                    int& ietaHotCell,
                    int& iphiHotCell,
                    GlobalPoint& gposHotCell,
                    int detOnly = -1,
                    int useRaw = 0,
                    bool debug = false);

  // Basic cone energy clustering for Ecal
  template <typename T>
  double eCone_ecal(const CaloGeometry* geo,
                    edm::Handle<T>& barrelhits,
                    edm::Handle<T>& endcaphits,
                    const GlobalPoint& hpoint1,
                    const GlobalPoint& point1,
                    double dR,
                    const GlobalVector& trackMom,
                    int& nRecHits,
                    double ebThr = -100,
                    double eeThr = -100,
                    double tMin = -500,
                    double tMax = 500,
                    bool debug = false);

  template <typename T>
  double eCone_ecal(const CaloGeometry* geo,
                    edm::Handle<T>& barrelhits,
                    edm::Handle<T>& endcaphits,
                    const GlobalPoint& hpoint1,
                    const GlobalPoint& point1,
                    double dR,
                    const GlobalVector& trackMom,
                    std::vector<DetId>& coneRecHitDetIds,
                    std::vector<double>& eHit,
                    double ebThr = -100,
                    double eeThr = -100,
                    double tMin = -500,
                    double tMax = 500,
                    bool debug = false);

}  // namespace spr

#include "eCone.icc"

#endif