File indexing completed on 2024-09-07 04:35:50
0001 #ifndef DataFormats_BTauReco_CombinedTauTagInfo_h
0002 #define DataFormats_BTauReco_CombinedTauTagInfo_h
0003
0004
0005
0006
0007
0008
0009
0010
0011 #include <limits>
0012 #include <cmath>
0013 #include "CLHEP/Vector/LorentzVector.h"
0014 #include "DataFormats/BTauReco/interface/RefMacros.h"
0015 #include "DataFormats/JetReco/interface/Jet.h"
0016 #include "DataFormats/TrackReco/interface/Track.h"
0017 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0018 #include "DataFormats/JetReco/interface/JetTracksAssociation.h"
0019 #include "DataFormats/BTauReco/interface/JTATagInfo.h"
0020 #include "DataFormats/BTauReco/interface/IsolatedTauTagInfo.h"
0021
0022 namespace reco {
0023
0024 class CombinedTauTagInfo : public JTATagInfo {
0025 public:
0026 CombinedTauTagInfo() {}
0027 CombinedTauTagInfo(const JetTracksAssociationRef& jtaRef) : JTATagInfo(jtaRef) {
0028 thecandidate_passed_trackerselection = false;
0029 thecandidate_is_GoodTauCandidate = false;
0030 thecandidate_is_infact_GoodElectronCandidate = false;
0031 thecandidate_is_infact_GoodMuonCandidate = false;
0032 thecandidate_needs_LikelihoodRatio_discrimination = false;
0033 filtered_Tks_.clear();
0034 signal_Tks_.clear();
0035 isol_Tks_.clear();
0036 theleadTk_signedipt_significance = NAN;
0037 theleadTk_signedip3D_significance = NAN;
0038 thesignedflightpath_significance = NAN;
0039 theTksEt_o_JetEt = NAN;
0040 theneutralE = NAN;
0041 theisolneutralE = NAN;
0042 theisolneutralEtsum = NAN;
0043 theneutralECALClus_number = std::numeric_limits<int>::quiet_NaN();
0044 theneutralECALClus_radius = NAN;
0045 theneutralE_o_TksEneutralE = NAN;
0046 theisolneutralE_o_TksEneutralE = NAN;
0047 theneutralE_ratio = NAN;
0048 thealternatrecJet_HepLV.setPx(NAN);
0049 thealternatrecJet_HepLV.setPy(NAN);
0050 thealternatrecJet_HepLV.setPz(NAN);
0051 thealternatrecJet_HepLV.setE(NAN);
0052 theECALEt_o_leadTkPt = NAN;
0053 theHCALEt_o_leadTkPt = NAN;
0054 }
0055 ~CombinedTauTagInfo() override {}
0056
0057
0058
0059
0060
0061
0062
0063 const IsolatedTauTagInfoRef& isolatedtautaginfoRef() const { return IsolatedTauTagInfoRef_; }
0064 void setisolatedtautaginfoRef(const IsolatedTauTagInfoRef& x) { IsolatedTauTagInfoRef_ = x; }
0065
0066
0067 const TrackRefVector& allTks() const { return m_jetTracksAssociation->second; }
0068
0069
0070 const TrackRefVector& selectedTks() const { return filtered_Tks_; }
0071 void setselectedTks(const TrackRefVector& x) { filtered_Tks_ = x; }
0072
0073
0074 const TrackRefVector& signalTks() const { return signal_Tks_; }
0075 void setsignalTks(const TrackRefVector& x) { signal_Tks_ = x; }
0076
0077 int signalTks_qsum() const {
0078 int signal_Tks_qsum_ = std::numeric_limits<int>::quiet_NaN();
0079 if ((int)(signal_Tks_.size()) != 0) {
0080 signal_Tks_qsum_ = 0;
0081 for (TrackRefVector::const_iterator iTk = signal_Tks_.begin(); iTk != signal_Tks_.end(); iTk++) {
0082 signal_Tks_qsum_ += (**iTk).charge();
0083 }
0084 }
0085 return signal_Tks_qsum_;
0086 }
0087
0088
0089 const TrackRefVector& isolTks() const { return isol_Tks_; }
0090 void setisolTks(const TrackRefVector& x) { isol_Tks_ = x; }
0091
0092 CombinedTauTagInfo* clone() const override { return new CombinedTauTagInfo(*this); }
0093
0094 bool passed_trackerselection() const { return (thecandidate_passed_trackerselection); }
0095 void setpassed_trackerselection(bool x) { thecandidate_passed_trackerselection = x; }
0096
0097 bool is_GoodTauCandidate() const {
0098 return (thecandidate_is_GoodTauCandidate);
0099 }
0100 void setis_GoodTauCandidate(bool x) { thecandidate_is_GoodTauCandidate = x; }
0101
0102 bool infact_GoodElectronCandidate() const {
0103 return (thecandidate_is_infact_GoodElectronCandidate);
0104 }
0105 void setinfact_GoodElectronCandidate(bool x) { thecandidate_is_infact_GoodElectronCandidate = x; }
0106
0107 bool infact_GoodMuonCandidate() const {
0108 return (thecandidate_is_infact_GoodMuonCandidate);
0109 }
0110 void setinfact_GoodMuonCandidate(bool x) { thecandidate_is_infact_GoodMuonCandidate = x; }
0111
0112 bool needs_LikelihoodRatio_discrimination() const {
0113 return (thecandidate_needs_LikelihoodRatio_discrimination);
0114 }
0115 void setneeds_LikelihoodRatio_discrimination(bool x) { thecandidate_needs_LikelihoodRatio_discrimination = x; }
0116
0117 double leadTk_signedipt_significance() const { return (theleadTk_signedipt_significance); }
0118 void setleadTk_signedipt_significance(double x) { theleadTk_signedipt_significance = x; }
0119
0120 double leadTk_signedip3D_significance() const { return (theleadTk_signedip3D_significance); }
0121 void setleadTk_signedip3D_significance(double x) { theleadTk_signedip3D_significance = x; }
0122
0123 double signedflightpath_significance() const {
0124 return (thesignedflightpath_significance);
0125 }
0126 void setsignedflightpath_significance(double x) { thesignedflightpath_significance = x; }
0127
0128
0129 double TksEt_o_JetEt() const { return (theTksEt_o_JetEt); }
0130 void setTksEt_o_JetEt(double x) { theTksEt_o_JetEt = x; }
0131
0132
0133 double neutralE() const { return (theneutralE); }
0134 void setneutralE(double x) { theneutralE = x; }
0135
0136
0137 double isolneutralE() const { return (theisolneutralE); }
0138 void setisolneutralE(double x) { theisolneutralE = x; }
0139
0140
0141 double isolneutralEtsum() const { return (theisolneutralEtsum); }
0142 void setisolneutralEtsum(double x) { theisolneutralEtsum = x; }
0143
0144 int neutralECALClus_number() const { return (theneutralECALClus_number); }
0145 void setneutralECALClus_number(int x) { theneutralECALClus_number = x; }
0146
0147
0148 double neutralECALClus_radius() const { return (theneutralECALClus_radius); }
0149 void setneutralECALClus_radius(double x) { theneutralECALClus_radius = x; }
0150
0151
0152 double neutralE_o_TksEneutralE() const { return (theneutralE_o_TksEneutralE); }
0153 void setneutralE_o_TksEneutralE(double x) { theneutralE_o_TksEneutralE = x; }
0154
0155
0156 double isolneutralE_o_TksEneutralE() const { return (theisolneutralE_o_TksEneutralE); }
0157 void setisolneutralE_o_TksEneutralE(double x) { theisolneutralE_o_TksEneutralE = x; }
0158
0159
0160 double neutralE_ratio() const { return (theneutralE_ratio); }
0161 void setneutralE_ratio(double x) { theneutralE_ratio = x; }
0162
0163 CLHEP::HepLorentzVector alternatrecJet_HepLV() const {
0164 return (thealternatrecJet_HepLV);
0165 }
0166 void setalternatrecJet_HepLV(CLHEP::HepLorentzVector x) { thealternatrecJet_HepLV = x; }
0167
0168
0169 double ECALEt_o_leadTkPt() const {
0170 return (theECALEt_o_leadTkPt);
0171 }
0172 void setECALEt_o_leadTkPt(double x) { theECALEt_o_leadTkPt = x; }
0173
0174
0175 double HCALEt_o_leadTkPt() const {
0176 return (theHCALEt_o_leadTkPt);
0177 }
0178 void setHCALEt_o_leadTkPt(double x) { theHCALEt_o_leadTkPt = x; }
0179
0180 private:
0181 IsolatedTauTagInfoRef IsolatedTauTagInfoRef_;
0182 TrackRefVector filtered_Tks_;
0183 TrackRefVector signal_Tks_;
0184 TrackRefVector isol_Tks_;
0185 bool thecandidate_passed_trackerselection;
0186 bool thecandidate_is_GoodTauCandidate;
0187 bool thecandidate_is_infact_GoodElectronCandidate;
0188 bool thecandidate_is_infact_GoodMuonCandidate;
0189 bool thecandidate_needs_LikelihoodRatio_discrimination;
0190 double theleadTk_signedipt_significance;
0191 double theleadTk_signedip3D_significance;
0192 double thesignedflightpath_significance;
0193 double theTksEt_o_JetEt;
0194 double theneutralE;
0195 double theisolneutralE;
0196 double theisolneutralEtsum;
0197 int theneutralECALClus_number;
0198 double theneutralECALClus_radius;
0199 double theneutralE_o_TksEneutralE;
0200 double theisolneutralE_o_TksEneutralE;
0201 double theneutralE_ratio;
0202 CLHEP::HepLorentzVector thealternatrecJet_HepLV;
0203 double theECALEt_o_leadTkPt;
0204 double theHCALEt_o_leadTkPt;
0205 };
0206
0207 DECLARE_EDM_REFS(CombinedTauTagInfo)
0208
0209 }
0210
0211 #endif