SusyNtuple
SusyNtuple/Electron.h
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
 All Classes Functions Variables Typedefs Enumerations Enumerator