CMS 3D CMS Logo

AntiElectronIDMVA6.h
Go to the documentation of this file.
1 //--------------------------------------------------------------------------------------------------
2 // AntiElectronIDMVA6
3 //
4 // Helper Class for applying MVA anti-electron discrimination
5 //
6 // Authors: F.Colombo, C.Veelken
7 //--------------------------------------------------------------------------------------------------
8 
9 #ifndef RECOTAUTAG_RECOTAU_AntiElectronIDMVA6_H
10 #define RECOTAUTAG_RECOTAU_AntiElectronIDMVA6_H
11 
16 
25 
29 
30 #include "TMVA/Tools.h"
31 #include "TMVA/Reader.h"
32 
34 
35 #include <vector>
36 
38 {
39  public:
40 
43 
44  void beginEvent(const edm::Event&, const edm::EventSetup&);
45 
46  double MVAValue(Float_t TauPt,
47  Float_t TauEtaAtEcalEntrance,
48  Float_t TauPhi,
49  Float_t TauLeadChargedPFCandPt,
50  Float_t TauLeadChargedPFCandEtaAtEcalEntrance,
51  Float_t TauEmFraction,
52  Float_t TauLeadPFChargedHadrHoP,
53  Float_t TauLeadPFChargedHadrEoP,
54  Float_t TauVisMassIn,
55  Float_t TaudCrackEta,
56  Float_t TaudCrackPhi,
57  Float_t TauHasGsf,
58  Int_t TauSignalPFGammaCandsIn,
59  Int_t TauSignalPFGammaCandsOut,
60  const std::vector<Float_t>& GammasdEtaInSigCone,
61  const std::vector<Float_t>& GammasdPhiInSigCone,
62  const std::vector<Float_t>& GammasPtInSigCone,
63  const std::vector<Float_t>& GammasdEtaOutSigCone,
64  const std::vector<Float_t>& GammasdPhiOutSigCone,
65  const std::vector<Float_t>& GammasPtOutSigCone,
66  Float_t ElecEta,
67  Float_t ElecPhi,
68  Float_t ElecEtotOverPin,
69  Float_t ElecChi2NormGSF,
70  Float_t ElecChi2NormKF,
71  Float_t ElecGSFNumHits,
72  Float_t ElecKFNumHits,
73  Float_t ElecGSFTrackResol,
74  Float_t ElecGSFTracklnPt,
75  Float_t ElecPin,
76  Float_t ElecPout,
77  Float_t ElecEecal,
78  Float_t ElecDeltaEta,
79  Float_t ElecDeltaPhi,
80  Float_t ElecMvaInSigmaEtaEta,
81  Float_t ElecMvaInHadEnergy,
82  Float_t ElecMvaInDeltaEta
83  );
84 
85  double MVAValue(Float_t TauPt,
86  Float_t TauEtaAtEcalEntrance,
87  Float_t TauPhi,
88  Float_t TauLeadChargedPFCandPt,
89  Float_t TauLeadChargedPFCandEtaAtEcalEntrance,
90  Float_t TauEmFraction,
91  Float_t TauLeadPFChargedHadrHoP,
92  Float_t TauLeadPFChargedHadrEoP,
93  Float_t TauVisMassIn,
94  Float_t TaudCrackEta,
95  Float_t TaudCrackPhi,
96  Float_t TauHasGsf,
97  Int_t TauSignalPFGammaCandsIn,
98  Int_t TauSignalPFGammaCandsOut,
99  Float_t TauGammaEtaMomIn,
100  Float_t TauGammaEtaMomOut,
101  Float_t TauGammaPhiMomIn,
102  Float_t TauGammaPhiMomOut,
103  Float_t TauGammaEnFracIn,
104  Float_t TauGammaEnFracOut,
105  Float_t ElecEta,
106  Float_t ElecPhi,
107  Float_t ElecEtotOverPin,
108  Float_t ElecChi2NormGSF,
109  Float_t ElecChi2NormKF,
110  Float_t ElecGSFNumHits,
111  Float_t ElecKFNumHits,
112  Float_t ElecGSFTrackResol,
113  Float_t ElecGSFTracklnPt,
114  Float_t ElecPin,
115  Float_t ElecPout,
116  Float_t ElecEecal,
117  Float_t ElecDeltaEta,
118  Float_t ElecDeltaPhi,
119  Float_t ElecMvaInSigmaEtaEta,
120  Float_t ElecMvaInHadEnergy,
121  Float_t ElecMvaInDeltaEta
122  );
123 
124  // this function can be called for all categories
125  double MVAValue(const reco::PFTau& thePFTau,
127  // this function can be called for category 1 only !!
128  double MVAValue(const reco::PFTau& thePFTau, bool usePhiAtEcalEntranceExtrapolation);
129 
130  // this function can be called for all categories
131  double MVAValue(const pat::Tau& theTau,
132  const pat::Electron& theEle, bool usePhiAtEcalEntranceExtrapolation);
133  // this function can be called for category 1 only !!
134  double MVAValue(const pat::Tau& theTau, bool usePhiAtEcalEntranceExtrapolation);
135  // track extrapolation to ECAL entrance (used to re-calculate varibales that might not be available on miniAOD)
137 
138  private:
139 
140  double dCrackEta(double eta);
141  double minimum(double a,double b);
142  double dCrackPhi(double phi, double eta);
143 
147 
156 
165 
174 
175  std::vector<TFile*> inputFilesToDelete_;
176 
177  double bField_;
179 };
180 
181 #endif
double minimum(double a, double b)
std::string mvaName_woGwGSF_BL_
std::string mvaName_NoEleMatch_woGwoGSF_BL_
bool atECalEntrance(const reco::Candidate *part, math::XYZPoint &pos)
std::string mvaName_NoEleMatch_woGwoGSF_EC_
edm::FileInPath inputFileName_
AntiElectronIDMVA6(const edm::ParameterSet &)
const GBRForest * mva_wGwGSF_EC_
Float_t * Var_NoEleMatch_wGwoGSF_Barrel_
double dCrackPhi(double phi, double eta)
const GBRForest * mva_NoEleMatch_woGwoGSF_EC_
std::string mvaName_NoEleMatch_wGwoGSF_EC_
void beginEvent(const edm::Event &, const edm::EventSetup &)
const GBRForest * mva_NoEleMatch_wGwoGSF_BL_
Float_t * Var_NoEleMatch_woGwoGSF_Endcap_
std::vector< TFile * > inputFilesToDelete_
const GBRForest * mva_woGwGSF_EC_
Analysis-level tau class.
Definition: Tau.h:55
std::string mvaName_wGwGSF_EC_
double MVAValue(Float_t TauPt, Float_t TauEtaAtEcalEntrance, Float_t TauPhi, Float_t TauLeadChargedPFCandPt, Float_t TauLeadChargedPFCandEtaAtEcalEntrance, Float_t TauEmFraction, Float_t TauLeadPFChargedHadrHoP, Float_t TauLeadPFChargedHadrEoP, Float_t TauVisMassIn, Float_t TaudCrackEta, Float_t TaudCrackPhi, Float_t TauHasGsf, Int_t TauSignalPFGammaCandsIn, Int_t TauSignalPFGammaCandsOut, const std::vector< Float_t > &GammasdEtaInSigCone, const std::vector< Float_t > &GammasdPhiInSigCone, const std::vector< Float_t > &GammasPtInSigCone, const std::vector< Float_t > &GammasdEtaOutSigCone, const std::vector< Float_t > &GammasdPhiOutSigCone, const std::vector< Float_t > &GammasPtOutSigCone, Float_t ElecEta, Float_t ElecPhi, Float_t ElecEtotOverPin, Float_t ElecChi2NormGSF, Float_t ElecChi2NormKF, Float_t ElecGSFNumHits, Float_t ElecKFNumHits, Float_t ElecGSFTrackResol, Float_t ElecGSFTracklnPt, Float_t ElecPin, Float_t ElecPout, Float_t ElecEecal, Float_t ElecDeltaEta, Float_t ElecDeltaPhi, Float_t ElecMvaInSigmaEtaEta, Float_t ElecMvaInHadEnergy, Float_t ElecMvaInDeltaEta)
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
part
Definition: HCALResponse.h:20
Float_t * Var_NoEleMatch_wGwoGSF_Endcap_
double b
Definition: hdecay.h:120
Analysis-level electron class.
Definition: Electron.h:52
const GBRForest * mva_wGwGSF_BL_
const GBRForest * mva_woGwGSF_BL_
const GBRForest * mva_NoEleMatch_wGwoGSF_EC_
double a
Definition: hdecay.h:121
std::string mvaName_wGwGSF_BL_
std::string mvaName_NoEleMatch_wGwoGSF_BL_
double dCrackEta(double eta)
const GBRForest * mva_NoEleMatch_woGwoGSF_BL_
std::string mvaName_woGwGSF_EC_
Float_t * Var_NoEleMatch_woGwoGSF_Barrel_