Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef EgammaCandidates_HIPhotonIsolation_h
0002 #define EgammaCandidates_HIPhotonIsolation_h
0003 
0004 #include "DataFormats/Common/interface/ValueMap.h"
0005 
0006 namespace reco {
0007 
0008   class HIPhotonIsolation {
0009   public:
0010     HIPhotonIsolation()
0011         : ecalClusterIsoR1_(0),
0012           ecalClusterIsoR2_(0),
0013           ecalClusterIsoR3_(0),
0014           ecalClusterIsoR4_(0),
0015           ecalClusterIsoR5_(0),
0016           hcalRechitIsoR1_(0),
0017           hcalRechitIsoR2_(0),
0018           hcalRechitIsoR3_(0),
0019           hcalRechitIsoR4_(0),
0020           hcalRechitIsoR5_(0),
0021           trackIsoR1PtCut20_(0),
0022           trackIsoR2PtCut20_(0),
0023           trackIsoR3PtCut20_(0),
0024           trackIsoR4PtCut20_(0),
0025           trackIsoR5PtCut20_(0),
0026           swissCrx_(0),
0027           seedTime_(0) {}
0028     virtual ~HIPhotonIsolation() {}
0029 
0030     //getters
0031 
0032     /// Cluster-based isolation (ECAL) R = 0.1
0033     float ecalClusterIsoR1() const { return ecalClusterIsoR1_; }
0034     /// Cluster-based isolation (ECAL) R = 0.2
0035     float ecalClusterIsoR2() const { return ecalClusterIsoR2_; }
0036     /// Cluster-based isolation (ECAL) R = 0.3
0037     float ecalClusterIsoR3() const { return ecalClusterIsoR3_; }
0038     /// Cluster-based isolation (ECAL) R = 0.4
0039     float ecalClusterIsoR4() const { return ecalClusterIsoR4_; }
0040     /// Cluster-based isolation (ECAL) R = 0.5
0041     float ecalClusterIsoR5() const { return ecalClusterIsoR5_; }
0042 
0043     /// Rechit-based isolation (HCAL) R = 0.1
0044     float hcalRechitIsoR1() const { return hcalRechitIsoR1_; }
0045     /// Rechit-based isolation (HCAL) R = 0.2
0046     float hcalRechitIsoR2() const { return hcalRechitIsoR2_; }
0047     /// Rechit-based isolation (HCAL) R = 0.3
0048     float hcalRechitIsoR3() const { return hcalRechitIsoR3_; }
0049     /// Rechit-based isolation (HCAL) R = 0.4
0050     float hcalRechitIsoR4() const { return hcalRechitIsoR4_; }
0051     /// Rechit-based isolation (HCAL) R = 0.5
0052     float hcalRechitIsoR5() const { return hcalRechitIsoR5_; }
0053 
0054     /// Track-based isolation, pt>2.0GeV, R = 0.1
0055     float trackIsoR1PtCut20() const { return trackIsoR1PtCut20_; }
0056     /// Track-based isolation, pt>2.0GeV, R = 0.2
0057     float trackIsoR2PtCut20() const { return trackIsoR2PtCut20_; }
0058     /// Track-based isolation, pt>2.0GeV, R = 0.3
0059     float trackIsoR3PtCut20() const { return trackIsoR3PtCut20_; }
0060     /// Track-based isolation, pt>2.0GeV, R = 0.4
0061     float trackIsoR4PtCut20() const { return trackIsoR4PtCut20_; }
0062     /// Track-based isolation, pt>2.0GeV, R = 0.5
0063     float trackIsoR5PtCut20() const { return trackIsoR5PtCut20_; }
0064 
0065     /// SwissCross crystal ratio
0066     float swissCrx() const { return swissCrx_; }
0067     /// Ecal rechit seed time
0068     float seedTime() const { return seedTime_; }
0069 
0070     // setters
0071 
0072     /// Cluster-based isolation (ECAL) R = 0.1
0073     void ecalClusterIsoR1(float ecalClusterIsoR1) { ecalClusterIsoR1_ = ecalClusterIsoR1; }
0074     /// Cluster-based isolation (ECAL) R = 0.2
0075     void ecalClusterIsoR2(float ecalClusterIsoR2) { ecalClusterIsoR2_ = ecalClusterIsoR2; }
0076     /// Cluster-based isolation (ECAL) R = 0.3
0077     void ecalClusterIsoR3(float ecalClusterIsoR3) { ecalClusterIsoR3_ = ecalClusterIsoR3; }
0078     /// Cluster-based isolation (ECAL) R = 0.4
0079     void ecalClusterIsoR4(float ecalClusterIsoR4) { ecalClusterIsoR4_ = ecalClusterIsoR4; }
0080     /// Cluster-based isolation (ECAL) R = 0.5
0081     void ecalClusterIsoR5(float ecalClusterIsoR5) { ecalClusterIsoR5_ = ecalClusterIsoR5; }
0082 
0083     /// Rechit-based isolation (HCAL) R = 0.1
0084     void hcalRechitIsoR1(float hcalRechitIsoR1) { hcalRechitIsoR1_ = hcalRechitIsoR1; }
0085     /// Rechit-based isolation (HCAL) R = 0.2
0086     void hcalRechitIsoR2(float hcalRechitIsoR2) { hcalRechitIsoR2_ = hcalRechitIsoR2; }
0087     /// Rechit-based isolation (HCAL) R = 0.3
0088     void hcalRechitIsoR3(float hcalRechitIsoR3) { hcalRechitIsoR3_ = hcalRechitIsoR3; }
0089     /// Rechit-based isolation (HCAL) R = 0.4
0090     void hcalRechitIsoR4(float hcalRechitIsoR4) { hcalRechitIsoR4_ = hcalRechitIsoR4; }
0091     /// Rechit-based isolation (HCAL) R = 0.5
0092     void hcalRechitIsoR5(float hcalRechitIsoR5) { hcalRechitIsoR5_ = hcalRechitIsoR5; }
0093 
0094     /// Track-based isolation, pt>2.0GeV, R = 0.1
0095     void trackIsoR1PtCut20(float trackIsoR1PtCut20) { trackIsoR1PtCut20_ = trackIsoR1PtCut20; }
0096     /// Track-based isolation, pt>2.0GeV, R = 0.2
0097     void trackIsoR2PtCut20(float trackIsoR2PtCut20) { trackIsoR2PtCut20_ = trackIsoR2PtCut20; }
0098     /// Track-based isolation, pt>2.0GeV, R = 0.3
0099     void trackIsoR3PtCut20(float trackIsoR3PtCut20) { trackIsoR3PtCut20_ = trackIsoR3PtCut20; }
0100     /// Track-based isolation, pt>2.0GeV, R = 0.4
0101     void trackIsoR4PtCut20(float trackIsoR4PtCut20) { trackIsoR4PtCut20_ = trackIsoR4PtCut20; }
0102     /// Track-based isolation, pt>2.0GeV, R = 0.5
0103     void trackIsoR5PtCut20(float trackIsoR5PtCut20) { trackIsoR5PtCut20_ = trackIsoR5PtCut20; }
0104 
0105     /// SwissCross ecal crystal ratio
0106     void swissCrx(float swissCrx) { swissCrx_ = swissCrx; }
0107     /// Ecal rechit seed time
0108     void seedTime(float seedTime) { seedTime_ = seedTime; }
0109 
0110   private:
0111     float ecalClusterIsoR1_, ecalClusterIsoR2_, ecalClusterIsoR3_, ecalClusterIsoR4_, ecalClusterIsoR5_;
0112     float hcalRechitIsoR1_, hcalRechitIsoR2_, hcalRechitIsoR3_, hcalRechitIsoR4_, hcalRechitIsoR5_;
0113     float trackIsoR1PtCut20_, trackIsoR2PtCut20_, trackIsoR3PtCut20_, trackIsoR4PtCut20_, trackIsoR5PtCut20_;
0114 
0115     float swissCrx_, seedTime_;
0116   };
0117 
0118   typedef edm::ValueMap<reco::HIPhotonIsolation> HIPhotonIsolationMap;
0119 
0120 }  // namespace reco
0121 #endif