00001 #ifndef RecoTauTag_TauTagTools_PFTauDiscriminants
00002 #define RecoTauTag_TauTagTools_PFTauDiscriminants
00003
00004 #include "RecoTauTag/TauTagTools/interface/PFTauDiscriminantBase.h"
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 namespace PFTauDiscriminants {
00031
00032 typedef reco::Particle::LorentzVector LorentzVector;
00033
00034
00035
00036 class DecayMode : public DiscriminantBase<int> {
00037 public:
00038 DecayMode():DiscriminantBase<int>("DecayMode", "I", true, false, -1){};
00039 ~DecayMode(){};
00040 protected:
00041 void doComputation(PFTauDiscriminantManager* input, std::vector<int>& result);
00042 };
00043
00044 class OutlierNCharged : public DiscriminantBase<int> {
00045 public:
00046 OutlierNCharged():DiscriminantBase<int>("OutlierNCharged", "I", true, false, -1){};
00047 ~OutlierNCharged(){};
00048 protected:
00049 void doComputation(PFTauDiscriminantManager* input, std::vector<int>& result);
00050 };
00051
00052 class OutlierN : public DiscriminantBase<int> {
00053 public:
00054 OutlierN():DiscriminantBase<int>("OutlierN", "I", true, false, -1){};
00055 ~OutlierN(){};
00056 protected:
00057 void doComputation(PFTauDiscriminantManager* input, std::vector<int>& result);
00058 };
00059
00060
00061 class Pt : public DiscriminantBase<double> {
00062 public:
00063 Pt():DiscriminantBase<double>("Pt", "D", true, false, 0.0){};
00064 ~Pt(){};
00065 protected:
00066 void doComputation(PFTauDiscriminantManager* input, std::vector<double>& result);
00067 };
00068
00069 class Eta : public DiscriminantBase<double> {
00070 public:
00071 Eta():DiscriminantBase<double>("Eta", "D", true, false, 0.0){};
00072 ~Eta(){};
00073 protected:
00074 void doComputation(PFTauDiscriminantManager* input, std::vector<double>& result);
00075 };
00076
00077 class MainTrackPt : public DiscriminantBase<double> {
00078 public:
00079 MainTrackPt():DiscriminantBase<double>("MainTrackPt", "D", true, false, -1){};
00080 ~MainTrackPt(){};
00081 protected:
00082 void doComputation(PFTauDiscriminantManager* input, std::vector<double>& result);
00083 };
00084
00085 class MainTrackAngle : public DiscriminantBase<double> {
00086 public:
00087 MainTrackAngle():DiscriminantBase<double>("MainTrackAngle", "D", true, false, -1){};
00088 ~MainTrackAngle(){};
00089 protected:
00090 void doComputation(PFTauDiscriminantManager* input, std::vector<double>& result);
00091 };
00092
00093 class TrackPt : public DiscriminantBase<double> {
00094 public:
00095 TrackPt():DiscriminantBase<double>("TrackPt", "vector<double>", false, true, 0.0){};
00096 ~TrackPt(){};
00097 protected:
00098 void doComputation(PFTauDiscriminantManager* input, std::vector<double>& result);
00099 };
00100
00101 class PiZeroPt : public DiscriminantBase<double> {
00102 public:
00103 PiZeroPt():DiscriminantBase<double>("PiZeroPt", "vector<double>", false, true, 0.0){};
00104 ~PiZeroPt(){};
00105 protected:
00106 void doComputation(PFTauDiscriminantManager* input, std::vector<double>& result);
00107 };
00108
00109
00110 class FilteredObjectPt : public DiscriminantBase<double> {
00111 public:
00112 FilteredObjectPt():DiscriminantBase<double>("FilteredObjectPt", "vector<double>", false, true, 0.0){};
00113 ~FilteredObjectPt(){};
00114 protected:
00115 void doComputation(PFTauDiscriminantManager* input, std::vector<double>& result);
00116 };
00117
00118
00119 class GammaOccupancy : public DiscriminantBase<double> {
00120 public:
00121 GammaOccupancy():DiscriminantBase<double>("GammaOccupancy", "vector<double>", false, true, 0.0){}
00122 ~GammaOccupancy(){};
00123 protected:
00124 void doComputation(PFTauDiscriminantManager* input, std::vector<double>& result);
00125 };
00126
00127
00128 class GammaPt : public DiscriminantBase<double> {
00129 public:
00130 GammaPt():DiscriminantBase<double>("GammaPt", "vector<double>", false, true, 0.0){}
00131 ~GammaPt(){};
00132 protected:
00133 void doComputation(PFTauDiscriminantManager* input, std::vector<double>& result);
00134 };
00135
00136
00137 class TrackAngle : public DiscriminantBase<double> {
00138 public:
00139 TrackAngle():DiscriminantBase<double>("TrackAngle", "vector<double>", false, true, 0.0){};
00140 ~TrackAngle(){};
00141 protected:
00142 void doComputation(PFTauDiscriminantManager* input, std::vector<double>& result);
00143 };
00144
00145 class PiZeroAngle : public DiscriminantBase<double> {
00146 public:
00147 PiZeroAngle():DiscriminantBase<double>("PiZeroAngle", "vector<double>", false, true, 0.0){};
00148 ~PiZeroAngle(){};
00149 protected:
00150 void doComputation(PFTauDiscriminantManager* input, std::vector<double>& result);
00151 };
00152
00153 class Dalitz : public DiscriminantBase<double> {
00154 public:
00155 Dalitz():DiscriminantBase<double>("Dalitz", "vector<double>", false, true, 0.0){};
00156 ~Dalitz(){};
00157 protected:
00158 void doComputation(PFTauDiscriminantManager* input, std::vector<double>& result);
00159 };
00160
00161
00162 class InvariantMassOfSignal : public DiscriminantBase<double> {
00163 public:
00164 InvariantMassOfSignal():DiscriminantBase<double>("InvariantMassOfSignal", "D", true, false, 0.0){};
00165 ~InvariantMassOfSignal(){};
00166 protected:
00167 void doComputation(PFTauDiscriminantManager* input, std::vector<double>& result);
00168 };
00169
00170
00171 class InvariantMassOfSignalWithFiltered : public DiscriminantBase<double> {
00172 public:
00173 InvariantMassOfSignalWithFiltered():DiscriminantBase<double>("InvariantMassOfSignalWithFiltered", "D", true, false, 0.0){};
00174 ~InvariantMassOfSignalWithFiltered(){};
00175 protected:
00176 void doComputation(PFTauDiscriminantManager* input, std::vector<double>& result);
00177 };
00178
00179
00180
00181
00182 class InvariantMass : public DiscriminantBase<double> {
00183 public:
00184 InvariantMass():DiscriminantBase<double>("InvariantMass", "vector<double>", false, true, 0.0){};
00185 ~InvariantMass(){};
00186 protected:
00187 void doComputation(PFTauDiscriminantManager* input, std::vector<double>& result);
00188 };
00189
00190 class OutlierPt : public DiscriminantBase<double> {
00191 public:
00192 OutlierPt():DiscriminantBase<double>("OutlierPt", "vector<double>", false, true, 0.0){};
00193 ~OutlierPt(){};
00194 protected:
00195 void doComputation(PFTauDiscriminantManager* input, std::vector<double>& result);
00196 };
00197
00198 class OutlierSumPt : public DiscriminantBase<double> {
00199 public:
00200 OutlierSumPt():DiscriminantBase<double>("OutlierSumPt", "D", true, false, 0.0){};
00201 ~OutlierSumPt(){};
00202 protected:
00203 void doComputation(PFTauDiscriminantManager* input, std::vector<double>& result);
00204 };
00205
00206 class OutlierMass : public DiscriminantBase<double> {
00207 public:
00208 OutlierMass():DiscriminantBase<double>("OutlierMass", "D", true, false, 0.0){};
00209 ~OutlierMass(){};
00210 protected:
00211 void doComputation(PFTauDiscriminantManager* input, std::vector<double>& result);
00212 };
00213
00214 class OutlierAngle : public DiscriminantBase<double> {
00215 public:
00216 OutlierAngle():DiscriminantBase<double>("OutlierAngle", "vector<double>", false, true, 0.0){};
00217 ~OutlierAngle(){};
00218 protected:
00219 void doComputation(PFTauDiscriminantManager* input, std::vector<double>& result);
00220 };
00221
00222 class ChargedOutlierPt : public DiscriminantBase<double> {
00223 public:
00224 ChargedOutlierPt():DiscriminantBase<double>("ChargedOutlierPt", "vector<double>", false, true, 0.0){};
00225 ~ChargedOutlierPt(){};
00226 protected:
00227 void doComputation(PFTauDiscriminantManager* input, std::vector<double>& result);
00228 };
00229
00230 class ChargedOutlierSumPt : public DiscriminantBase<double> {
00231 public:
00232 ChargedOutlierSumPt():DiscriminantBase<double>("ChargedOutlierSumPt", "D", true, false, 0.0){};
00233 ~ChargedOutlierSumPt(){};
00234 protected:
00235 void doComputation(PFTauDiscriminantManager* input, std::vector<double>& result);
00236 };
00237
00238 class ChargedOutlierAngle : public DiscriminantBase<double> {
00239 public:
00240 ChargedOutlierAngle():DiscriminantBase<double>("ChargedOutlierAngle", "vector<double>", false, true, 0.0){};
00241 ~ChargedOutlierAngle(){};
00242 protected:
00243 void doComputation(PFTauDiscriminantManager* input, std::vector<double>& result);
00244 };
00245
00246 class NeutralOutlierPt : public DiscriminantBase<double> {
00247 public:
00248 NeutralOutlierPt():DiscriminantBase<double>("NeutralOutlierPt", "vector<double>", false, true, 0.0){};
00249 ~NeutralOutlierPt(){};
00250 protected:
00251 void doComputation(PFTauDiscriminantManager* input, std::vector<double>& result);
00252 };
00253
00254 class NeutralOutlierSumPt : public DiscriminantBase<double> {
00255 public:
00256 NeutralOutlierSumPt():DiscriminantBase<double>("NeutralOutlierSumPt", "D", true, false, 0.0){};
00257 ~NeutralOutlierSumPt(){};
00258 protected:
00259 void doComputation(PFTauDiscriminantManager* input, std::vector<double>& result);
00260 };
00261
00262 class NeutralOutlierAngle : public DiscriminantBase<double> {
00263 public:
00264 NeutralOutlierAngle():DiscriminantBase<double>("NeutralOutlierAngle", "vector<double>", false, true, 0.0){};
00265 ~NeutralOutlierAngle(){};
00266 protected:
00267 void doComputation(PFTauDiscriminantManager* input, std::vector<double>& result);
00268 };
00269
00270
00271 }
00272 #endif
00273
00274
00275
00276
00277