HIPhotonIsolation

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

#include "DataFormats/Common/interface/ValueMap.h"

namespace reco {

  class HIPhotonIsolation {
  public:
    HIPhotonIsolation()
        : ecalClusterIsoR1_(0),
          ecalClusterIsoR2_(0),
          ecalClusterIsoR3_(0),
          ecalClusterIsoR4_(0),
          ecalClusterIsoR5_(0),
          hcalRechitIsoR1_(0),
          hcalRechitIsoR2_(0),
          hcalRechitIsoR3_(0),
          hcalRechitIsoR4_(0),
          hcalRechitIsoR5_(0),
          trackIsoR1PtCut20_(0),
          trackIsoR2PtCut20_(0),
          trackIsoR3PtCut20_(0),
          trackIsoR4PtCut20_(0),
          trackIsoR5PtCut20_(0),
          swissCrx_(0),
          seedTime_(0) {}
    virtual ~HIPhotonIsolation() {}

    //getters

    /// Cluster-based isolation (ECAL) R = 0.1
    float ecalClusterIsoR1() const { return ecalClusterIsoR1_; }
    /// Cluster-based isolation (ECAL) R = 0.2
    float ecalClusterIsoR2() const { return ecalClusterIsoR2_; }
    /// Cluster-based isolation (ECAL) R = 0.3
    float ecalClusterIsoR3() const { return ecalClusterIsoR3_; }
    /// Cluster-based isolation (ECAL) R = 0.4
    float ecalClusterIsoR4() const { return ecalClusterIsoR4_; }
    /// Cluster-based isolation (ECAL) R = 0.5
    float ecalClusterIsoR5() const { return ecalClusterIsoR5_; }

    /// Rechit-based isolation (HCAL) R = 0.1
    float hcalRechitIsoR1() const { return hcalRechitIsoR1_; }
    /// Rechit-based isolation (HCAL) R = 0.2
    float hcalRechitIsoR2() const { return hcalRechitIsoR2_; }
    /// Rechit-based isolation (HCAL) R = 0.3
    float hcalRechitIsoR3() const { return hcalRechitIsoR3_; }
    /// Rechit-based isolation (HCAL) R = 0.4
    float hcalRechitIsoR4() const { return hcalRechitIsoR4_; }
    /// Rechit-based isolation (HCAL) R = 0.5
    float hcalRechitIsoR5() const { return hcalRechitIsoR5_; }

    /// Track-based isolation, pt>2.0GeV, R = 0.1
    float trackIsoR1PtCut20() const { return trackIsoR1PtCut20_; }
    /// Track-based isolation, pt>2.0GeV, R = 0.2
    float trackIsoR2PtCut20() const { return trackIsoR2PtCut20_; }
    /// Track-based isolation, pt>2.0GeV, R = 0.3
    float trackIsoR3PtCut20() const { return trackIsoR3PtCut20_; }
    /// Track-based isolation, pt>2.0GeV, R = 0.4
    float trackIsoR4PtCut20() const { return trackIsoR4PtCut20_; }
    /// Track-based isolation, pt>2.0GeV, R = 0.5
    float trackIsoR5PtCut20() const { return trackIsoR5PtCut20_; }

    /// SwissCross crystal ratio
    float swissCrx() const { return swissCrx_; }
    /// Ecal rechit seed time
    float seedTime() const { return seedTime_; }

    // setters

    /// Cluster-based isolation (ECAL) R = 0.1
    void ecalClusterIsoR1(float ecalClusterIsoR1) { ecalClusterIsoR1_ = ecalClusterIsoR1; }
    /// Cluster-based isolation (ECAL) R = 0.2
    void ecalClusterIsoR2(float ecalClusterIsoR2) { ecalClusterIsoR2_ = ecalClusterIsoR2; }
    /// Cluster-based isolation (ECAL) R = 0.3
    void ecalClusterIsoR3(float ecalClusterIsoR3) { ecalClusterIsoR3_ = ecalClusterIsoR3; }
    /// Cluster-based isolation (ECAL) R = 0.4
    void ecalClusterIsoR4(float ecalClusterIsoR4) { ecalClusterIsoR4_ = ecalClusterIsoR4; }
    /// Cluster-based isolation (ECAL) R = 0.5
    void ecalClusterIsoR5(float ecalClusterIsoR5) { ecalClusterIsoR5_ = ecalClusterIsoR5; }

    /// Rechit-based isolation (HCAL) R = 0.1
    void hcalRechitIsoR1(float hcalRechitIsoR1) { hcalRechitIsoR1_ = hcalRechitIsoR1; }
    /// Rechit-based isolation (HCAL) R = 0.2
    void hcalRechitIsoR2(float hcalRechitIsoR2) { hcalRechitIsoR2_ = hcalRechitIsoR2; }
    /// Rechit-based isolation (HCAL) R = 0.3
    void hcalRechitIsoR3(float hcalRechitIsoR3) { hcalRechitIsoR3_ = hcalRechitIsoR3; }
    /// Rechit-based isolation (HCAL) R = 0.4
    void hcalRechitIsoR4(float hcalRechitIsoR4) { hcalRechitIsoR4_ = hcalRechitIsoR4; }
    /// Rechit-based isolation (HCAL) R = 0.5
    void hcalRechitIsoR5(float hcalRechitIsoR5) { hcalRechitIsoR5_ = hcalRechitIsoR5; }

    /// Track-based isolation, pt>2.0GeV, R = 0.1
    void trackIsoR1PtCut20(float trackIsoR1PtCut20) { trackIsoR1PtCut20_ = trackIsoR1PtCut20; }
    /// Track-based isolation, pt>2.0GeV, R = 0.2
    void trackIsoR2PtCut20(float trackIsoR2PtCut20) { trackIsoR2PtCut20_ = trackIsoR2PtCut20; }
    /// Track-based isolation, pt>2.0GeV, R = 0.3
    void trackIsoR3PtCut20(float trackIsoR3PtCut20) { trackIsoR3PtCut20_ = trackIsoR3PtCut20; }
    /// Track-based isolation, pt>2.0GeV, R = 0.4
    void trackIsoR4PtCut20(float trackIsoR4PtCut20) { trackIsoR4PtCut20_ = trackIsoR4PtCut20; }
    /// Track-based isolation, pt>2.0GeV, R = 0.5
    void trackIsoR5PtCut20(float trackIsoR5PtCut20) { trackIsoR5PtCut20_ = trackIsoR5PtCut20; }

    /// SwissCross ecal crystal ratio
    void swissCrx(float swissCrx) { swissCrx_ = swissCrx; }
    /// Ecal rechit seed time
    void seedTime(float seedTime) { seedTime_ = seedTime; }

  private:
    float ecalClusterIsoR1_, ecalClusterIsoR2_, ecalClusterIsoR3_, ecalClusterIsoR4_, ecalClusterIsoR5_;
    float hcalRechitIsoR1_, hcalRechitIsoR2_, hcalRechitIsoR3_, hcalRechitIsoR4_, hcalRechitIsoR5_;
    float trackIsoR1PtCut20_, trackIsoR2PtCut20_, trackIsoR3PtCut20_, trackIsoR4PtCut20_, trackIsoR5PtCut20_;

    float swissCrx_, seedTime_;
  };

  typedef edm::ValueMap<reco::HIPhotonIsolation> HIPhotonIsolationMap;

}  // namespace reco
#endif