SusyNtuple
|
00001 // Dear emacs, this is -*- c++ -*- 00002 #ifndef SUSYNTUPLE_ELECTRON_H 00003 #define SUSYNTUPLE_ELECTRON_H 00004 00005 // std 00006 #include <vector> 00007 00008 // SusyNtuple 00009 #include "SusyNtuple/Lepton.h" 00010 #include "SusyNtuple/SusyNtSys.h" 00011 #include "SusyNtuple/ElectronId.h" 00012 00013 namespace Susy 00014 { 00016 class Electron : public Lepton 00017 { 00018 public: 00019 Electron(){ clear(); } 00020 virtual ~Electron(){}; 00021 Electron(const Electron &); 00023 Electron& operator=(const Electron &); 00024 00025 // Cluster/track variables 00026 float clusE; 00027 float clusEta; 00028 float clusPhi; 00029 float trackPt; 00030 float trackEta; 00031 00032 //LH quality flags 00033 bool veryLooseLH; 00034 bool looseLH; 00035 bool mediumLH; 00036 bool tightLH; 00037 00038 //Without d0 cut 00039 bool looseLH_nod0; 00040 bool mediumLH_nod0; 00041 bool tightLH_nod0; 00042 00043 // efficiency SF per electron LH WP 00044 std::vector<float> eleEffSF; 00045 00046 bool isChargeFlip; 00047 00048 //AT: This is insane >50! 00049 float res_all_dn; 00050 float res_all_up; 00051 /* 00052 float res_matCalo_dn; 00053 float res_matCalo_up; 00054 float res_matCryo_dn; 00055 float res_matCryo_up; 00056 float res_matGap_dn; 00057 float res_matGap_up; 00058 float res_matId_dn; 00059 float res_matId_up; 00060 float res_nom; 00061 float res_none; 00062 float res_pileup_dn; 00063 float res_pileup_up; 00064 float res_sampTerm_dn; 00065 float res_sampTerm_up; 00066 float res_z_dn; 00067 float res_z_up; 00068 */ 00069 float scale_all_dn; 00070 float scale_all_up; 00071 /* 00072 float scale_G4_dn; 00073 float scale_G4_up; 00074 float scale_L1_dn; 00075 float scale_L1_up; 00076 float scale_L2_dn; 00077 float scale_L2_up; 00078 float scale_LArCalib_dn; 00079 float scale_LArCalib_up; 00080 float scale_LArECalib_dn; 00081 float scale_LArECalib_up; 00082 float scale_LArEunconv_dn; 00083 float scale_LArEunconv_up; 00084 float scale_LArUnconv_dn; 00085 float scale_LArUnconv_up; 00086 float scale_last; 00087 float scale_matCalo_dn; 00088 float scale_matCalo_up; 00089 float scale_matCryo_dn; 00090 float scale_matCryo_up; 00091 float scale_matId_dn; 00092 float scale_matId_up; 00093 float scale_nom; 00094 float scale_none; 00095 float scale_ped_dn; 00096 float scale_ped_up; 00097 float scale_ps_dn; 00098 float scale_ps_up; 00099 float scale_s12_dn; 00100 float scale_s12_up; 00101 float scale_ZeeStat_dn; 00102 float scale_ZeeStat_up; 00103 float scale_ZeeSys_dn; 00104 float scale_ZeeSys_up; 00105 */ 00106 // float eff_corr_dn; 00107 // float eff_corr_up; 00108 // float eff_uncorr_dn; 00109 // float eff_uncorr_up; 00110 std::vector<float> errEffSF_id_corr_up; 00111 std::vector<float> errEffSF_id_corr_dn; 00112 std::vector<float> errEffSF_reco_corr_up; 00113 std::vector<float> errEffSF_reco_corr_dn; 00114 /* 00115 float scale_mom_dn; 00116 float scale_mom_up; 00117 */ 00118 // Polymorphism, baby!! 00119 bool isEle() const { return true; } 00120 bool isMu() const { return false; } 00121 00123 void setState(int sys); 00124 00126 void print() const; 00127 00129 void clear(){ 00130 clusE = clusEta = clusPhi = trackPt = trackEta = 0; 00131 veryLooseLH = looseLH= mediumLH = tightLH = false; 00132 looseLH_nod0= mediumLH_nod0 = tightLH_nod0 = false; 00133 isChargeFlip = false; 00134 00135 res_all_dn= res_all_up= 0; 00136 /* 00137 res_matCalo_dn= res_matCalo_up=0; 00138 res_matCryo_dn= res_matCryo_up= res_matGap_dn= res_matGap_up=0; 00139 res_matId_dn= res_matId_up= res_nom= res_none=0; 00140 res_pileup_dn= res_pileup_up=0; 00141 res_sampTerm_dn=res_sampTerm_up= res_z_dn=res_z_up=0; 00142 */ 00143 scale_all_dn=scale_all_up=0; 00144 /* 00145 scale_G4_dn=scale_G4_up=0; 00146 scale_L1_dn=scale_L1_up=scale_L2_dn=scale_L2_up=0; 00147 scale_LArCalib_dn= scale_LArCalib_up= 00148 scale_LArECalib_dn=scale_LArECalib_up=0; 00149 scale_LArEunconv_dn=scale_LArEunconv_up= 00150 scale_LArUnconv_dn=scale_LArUnconv_up=0; 00151 scale_last=0; 00152 scale_matCalo_dn=scale_matCalo_up= 00153 scale_matCryo_dn=scale_matCryo_up=scale_matId_dn=0; 00154 scale_matId_up=scale_nom=scale_none=0; 00155 scale_ped_dn=scale_ped_up=scale_ps_dn= 00156 scale_ps_up=scale_s12_dn=scale_s12_up=0; 00157 scale_ZeeStat_dn=scale_ZeeStat_up= 00158 scale_ZeeSys_dn=scale_ZeeSys_up=scale_mom_dn=scale_mom_up=0; 00159 */ 00160 // eff_corr_dn = eff_corr_up =0; 00161 // eff_uncorr_dn = eff_uncorr_up =0; 00162 eleEffSF.assign(ElectronId::ElectronIdInvalid, 1); 00163 errEffSF_id_corr_up.assign(ElectronId::ElectronIdInvalid, 0); 00164 errEffSF_id_corr_dn.assign(ElectronId::ElectronIdInvalid, 0); 00165 errEffSF_reco_corr_up.assign(ElectronId::ElectronIdInvalid, 0); 00166 errEffSF_reco_corr_dn.assign(ElectronId::ElectronIdInvalid, 0); 00167 00168 Lepton::clear(); 00169 } 00170 00171 ClassDef(Electron, 14); 00172 }; 00173 } //Susy 00174 #endif