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
#ifndef CalibrationIsolatedParticlesFindCaloHitCone_h
#define CalibrationIsolatedParticlesFindCaloHitCone_h

// system include files
#include <memory>
#include <cmath>
#include <string>
#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 "DataFormats/EcalDetId/interface/EBDetId.h"
#include "DataFormats/EcalDetId/interface/EEDetId.h"
#include "DataFormats/HcalDetId/interface/HcalDetId.h"
#include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
#include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h"
#include "DataFormats/GeometryVector/interface/GlobalPoint.h"
#include "DataFormats/GeometryVector/interface/GlobalVector.h"

#include "SimDataFormats/CaloHit/interface/PCaloHitContainer.h"
#include "Geometry/CaloGeometry/interface/CaloGeometry.h"

#include <cmath>

namespace spr {

  // One Hit Collection
  template <typename T>
  std::vector<typename T::const_iterator> findHitCone(const CaloGeometry* geo,
                                                      edm::Handle<T>& hits,
                                                      const GlobalPoint& hpoint1,
                                                      const GlobalPoint& point1,
                                                      double dR,
                                                      const GlobalVector& trackMom,
                                                      bool debug = false);

  // Two Hit Collections - needed for looping over Ecal Endcap/Barrel Hits
  template <typename T>
  std::vector<typename T::const_iterator> findHitCone(const CaloGeometry* geo,
                                                      edm::Handle<T>& barrelhits,
                                                      edm::Handle<T>& endcaphits,
                                                      const GlobalPoint& hpoint1,
                                                      const GlobalPoint& point1,
                                                      double dR,
                                                      const GlobalVector& trackMom,
                                                      bool debug = false);

  //Ecal Endcap OR Barrel RecHits
  std::vector<EcalRecHitCollection::const_iterator> findCone(const CaloGeometry* geo,
                                                             edm::Handle<EcalRecHitCollection>& hits,
                                                             const GlobalPoint& hpoint1,
                                                             const GlobalPoint& point1,
                                                             double dR,
                                                             bool debug = false);

  // Ecal Endcap AND Barrel RecHits
  std::vector<EcalRecHitCollection::const_iterator> findCone(const CaloGeometry* geo,
                                                             edm::Handle<EcalRecHitCollection>& barrelhits,
                                                             edm::Handle<EcalRecHitCollection>& endcaphits,
                                                             const GlobalPoint& hpoint1,
                                                             const GlobalPoint& point1,
                                                             double dR,
                                                             const GlobalVector& trackMom,
                                                             bool debug = false);

  //HBHE RecHits
  std::vector<HBHERecHitCollection::const_iterator> findCone(const CaloGeometry* geo,
                                                             edm::Handle<HBHERecHitCollection>& hits,
                                                             const GlobalPoint& hpoint1,
                                                             const GlobalPoint& point1,
                                                             double dR,
                                                             const GlobalVector& trackMom,
                                                             bool debug = false);

  // PCalo SimHits
  std::vector<edm::PCaloHitContainer::const_iterator> findCone(const CaloGeometry* geo,
                                                               edm::Handle<edm::PCaloHitContainer>& hits,
                                                               const GlobalPoint& hpoint1,
                                                               const GlobalPoint& point1,
                                                               double dR,
                                                               const GlobalVector& trackMom,
                                                               bool debug = false);

}  // namespace spr

#include "FindCaloHitCone.icc"

#endif