SusyNtuple
|
00001 // Dear emacs, this is -*- c++ -*- 00002 #ifndef SUSYNTUPLE_MUON_H 00003 #define SUSYNTUPLE_MUON_H 00004 00005 #include "SusyNtuple/Lepton.h" 00006 #include "SusyNtuple/SusyNtSys.h" 00007 #include "SusyNtuple/MuonId.h" 00008 00009 #include <vector> 00010 00011 namespace Susy 00012 { 00014 class Muon : public Lepton 00015 { 00016 public: 00017 Muon(){ clear(); } 00018 virtual ~Muon(){}; 00019 Muon(const Muon &); 00021 Muon& operator=(const Muon &); 00022 00023 bool isCombined; 00024 00025 float idTrackPt; 00026 float idTrackEta; 00027 float idTrackPhi; 00028 int idTrackQ; 00029 float idTrackTheta; 00030 float idTrackQoverP; 00031 00032 float msTrackPt; 00033 float msTrackEta; 00034 float msTrackPhi; 00035 int msTrackQ; 00036 float msTrackTheta; 00037 float msTrackQoverP; 00038 00039 // Muon quality flags 00040 bool veryLoose; 00041 bool loose; 00042 bool medium; 00043 bool tight; 00044 00045 // efficiency SF per muon quality WP 00046 std::vector<float> muoEffSF; 00047 00048 bool isBadMuon; 00049 bool isCosmic; 00050 00051 // Systematic sf 00052 float ms_up; 00053 float ms_dn; 00054 float id_up; 00055 float id_dn; 00056 float scale_up; 00057 float scale_dn; 00058 00059 // SF uncertainties 00060 std::vector<float> errEffSF_stat_up; 00061 std::vector<float> errEffSF_stat_dn; 00062 std::vector<float> errEffSF_syst_up; 00063 std::vector<float> errEffSF_syst_dn; 00064 00065 // Polymorphism, baby!! 00066 bool isEle() const { return false; } 00067 bool isMu() const { return true; } 00068 void setState(int sys); 00069 00071 void print() const; 00072 00074 void clear(){ 00075 isCombined = 0; 00076 idTrackPt = idTrackEta = idTrackPhi = 0; 00077 msTrackPt = msTrackEta = msTrackPhi = 0; 00078 idTrackQ = msTrackQ = 0; 00079 idTrackTheta = idTrackQoverP = 0; 00080 msTrackTheta = msTrackQoverP = 0; 00081 veryLoose = loose = medium = tight = false; 00082 00083 muoEffSF.assign(MuonId::MuonIdInvalid, 1); 00084 errEffSF_stat_up.assign(MuonId::MuonIdInvalid, 0); 00085 errEffSF_stat_dn.assign(MuonId::MuonIdInvalid, 0); 00086 errEffSF_syst_up.assign(MuonId::MuonIdInvalid, 0); 00087 errEffSF_syst_dn.assign(MuonId::MuonIdInvalid, 0); 00088 00089 isBadMuon = isCosmic = false; 00090 ms_up = ms_dn = id_up = id_dn = scale_up = scale_dn = 0; 00091 00092 Lepton::clear(); 00093 } 00094 00095 ClassDef(Muon, 14); 00096 }; 00097 } // Susy 00098 #endif