00001 #ifndef RecoTauTag_RecoTau_RecoTauDiscriminantFunctions_h 00002 #define RecoTauTag_RecoTau_RecoTauDiscriminantFunctions_h 00003 00004 /* 00005 * RecoTauDiscriminantFunctions 00006 * 00007 * Collection of unary functions used to compute tau discriminant values. 00008 * Each function here (may be) used in an MVA discriminator. 00009 * 00010 * The functions all have the form 00011 * ReturnType Function(const PFTau& tau) 00012 * where ReturnType is either vector<double> or double. 00013 * 00014 * Author: Evan K. Friis, UC Davis 00015 * 00016 * $Id $ 00017 */ 00018 00019 #include "DataFormats/TauReco/interface/PFTau.h" 00020 #include <vector> 00021 00022 namespace reco { namespace tau { namespace disc { 00023 00024 // Save typing 00025 typedef const PFTau& Tau; 00026 typedef std::vector<double> VDouble; 00027 00030 PFCandidateRef mainTrack(const PFTau& tau); 00031 00032 // HPStanc variables 00033 double JetPt(Tau tau); 00034 double JetEta(Tau tau); 00035 double AbsJetEta(Tau tau); 00036 double JetWidth(Tau tau); 00037 // Delta R between tau and jet axis 00038 double JetTauDR(Tau tau); 00039 00040 double SignalPtFraction(Tau tau); 00041 double IsolationChargedPtFraction(Tau tau); 00042 double IsolationECALPtFraction(Tau tau); 00043 double IsolationNeutralHadronPtFraction(Tau tau); 00044 double MainTrackPtFraction(Tau tau); 00045 double IsolationChargedAveragePtFraction(Tau tau); 00046 double OpeningDeltaR(Tau tau); 00047 double OpeningAngle3D(Tau tau); 00048 double ScaledEtaJetCollimation(Tau tau); 00049 double ScaledPhiJetCollimation(Tau tau); 00050 double ScaledOpeningDeltaR(Tau tau); 00051 VDouble Dalitz2(Tau tau); 00052 00053 // Sum of charged isolation activity above/below 1 GeV 00054 double IsolationChargedSumHard(Tau tau); 00055 double IsolationChargedSumSoft(Tau tau); 00056 double IsolationChargedSumHardRelative(Tau tau); 00057 double IsolationChargedSumSoftRelative(Tau tau); 00058 00059 // Sum of ecal isolation activity above/below 1.5 GeV 00060 double IsolationECALSumHard(Tau tau); 00061 double IsolationECALSumSoft(Tau tau); 00062 double IsolationECALSumHardRelative(Tau tau); 00063 double IsolationECALSumSoftRelative(Tau tau); 00064 00065 // Fraction of signal energy carried by pizeros. 00066 double EMFraction(Tau tau); 00067 00068 // Absolute significance of impact parameter 00069 double ImpactParameterSignificance(Tau tau); 00070 00071 double Pt(Tau tau); 00072 double Eta(Tau tau); 00073 double AbsEta(Tau tau); 00074 double Mass(Tau tau); 00075 double DecayMode(Tau tau); 00076 00077 // Number of objects in isolation cone 00078 double OutlierN(Tau); 00079 00080 // Number of charged objects in isolation cone 00081 double OutlierNCharged(Tau); 00082 00083 double OutlierSumPt(Tau); 00084 double ChargedOutlierSumPt(Tau); 00085 double NeutralOutlierSumPt(Tau); 00086 00087 // Pt of the main track 00088 double MainTrackPt(Tau); 00089 // Eta of the main track 00090 double MainTrackEta(Tau); 00091 // Angle of main track to tau axis 00092 double MainTrackAngle(Tau); 00093 00094 // Exactly the same as "Mass", needed for backwards compatability 00095 double InvariantMassOfSignal(Tau tau); 00096 00097 // Quanitites of tracks 00098 VDouble TrackPt(Tau); 00099 VDouble TrackAngle(Tau); 00100 VDouble TrackEta(Tau); 00101 00102 // Quanitites of PiZeros 00103 VDouble PiZeroPt(Tau); 00104 VDouble PiZeroAngle(Tau); 00105 VDouble PiZeroEta(Tau); 00106 00107 // Isolation quantities 00108 VDouble OutlierPt(Tau); 00109 VDouble OutlierAngle(Tau); 00110 VDouble ChargedOutlierPt(Tau); 00111 VDouble ChargedOutlierAngle(Tau); 00112 VDouble NeutralOutlierPt(Tau); 00113 VDouble NeutralOutlierAngle(Tau); 00114 00115 // Dalitz for three prongs 00116 VDouble Dalitz(Tau); 00117 00118 // Deprecated functions needed for backwards compatability 00119 VDouble FilteredObjectPt(Tau); 00120 VDouble GammaOccupancy(Tau); 00121 VDouble GammaPt(Tau); 00122 VDouble InvariantMassOfSignalWithFiltered(Tau); 00123 VDouble InvariantMass(Tau); 00124 VDouble OutlierMass(Tau); 00125 00126 }}} // end namespace reco::tau::disc 00127 #endif