00001 #ifndef TOPUTILS_WZOBJECT_SEL_H__
00002 #define TOPUTILS_WZOBJECT_SEL_H__
00003
00004
00005 #include <vector>
00006
00007
00008 #include "core/include/SError.h"
00009 #include "plug-ins/include/SToolBase.h"
00010 #include "topUtils/topUtils/TopObjectSel.h"
00011
00012
00013 #include "manTreeSFrameBase/include/MEventTool.h"
00014
00015
00016 #include "manTree/MElectron.h"
00017 #include "manTree/MMuon.h"
00018 #include "manTree/MJet.h"
00019
00020
00021 class MuonSmear;
00022 class JESUncertaintyProvider;
00023 class egammaOQ;
00024 class TopObjectSel;
00025
00029 class WZObjectSel : public TopObjectSel {
00030
00031 public:
00032
00034 WZObjectSel(SCycleBase* parent );
00035
00037 virtual ~WZObjectSel();
00038
00040 bool doMuonElectronJetObjectSelection(MEventTool* event);
00041
00042
00044 egammaOQ* egammaOQTool() {return m_egammaOQ;}
00045
00046 void Cutflow();
00047
00048 bool m_count;
00049
00050 void Count(bool setCount);
00051
00052 double GetPxSmearedDiff();
00053 double GetPySmearedDiff();
00054 std::vector<double> m_passed_pxdiff;
00055 std::vector<double> m_passed_pydiff;
00056
00057 TLorentzVector m_sumtl;
00058 TLorentzVector mutagMETCorrection();
00059
00060
00061 protected:
00062
00063
00064
00065
00066 double m_muonPtCut;
00067 double m_jetPtCut;
00068
00069
00070
00071 int m_staco;
00072 int m_pT;
00073 int m_hits;
00074 int m_eta;
00075 int m_z0;
00076 int m_iso;
00077
00078 int m_auth;
00079 int m_otx_oq;
00080 int m_pT_el;
00081 int m_eta_el;
00082 int m_medium;
00083 int m_z0_el;
00084 int m_iso_el;
00085 int m_ovlp_e;
00086 int m_ovlp_mu;
00087
00088 double m_emPtCut;
00089 double m_emEtCone30;
00090 double m_emEtCone20C1;
00091 double m_emEtCone20C2;
00092 double m_jvfCut;
00093 double m_sv0Cut;
00094
00096 bool m_realData;
00097
00099 egammaOQ* m_egammaOQ;
00100
00102 bool m_sortByPt;
00103
00104 };
00105
00106
00107 #endif // TOPUTILS_WZOBJECT_SEL_H__