00001 #ifndef TOPUTILS_HvyNOBJECT_SEL_H__
00002 #define TOPUTILS_HvyNOBJECT_SEL_H__
00003
00004
00005 #include <vector>
00006 #include <map>
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/MMissingEt.h"
00019 #include "manTree/MJet.h"
00020
00021
00022 class MuonSmear;
00023 class JESUncertaintyProvider;
00024 class egammaOQ;
00025 class TopObjectSel;
00026
00030 class HvyNObjectSel : public TopObjectSel {
00031
00032 public:
00033
00035 HvyNObjectSel(SCycleBase* parent,std::map<TString,double> cut );
00036
00038 virtual ~HvyNObjectSel();
00039
00041 bool doHNMuonElectronJetObjectSelection(MEventTool* event);
00042 void OutCuts(std::map<TString,double> cut);
00043 double trans_mass(const manchester::MMuon* muon, const manchester::MMissingEt* met);
00044
00045 protected:
00046
00047
00048 double m_muonPtCut;
00049 double m_leadmuonPtCut;
00050 double m_muonchi2;
00051 double m_muoneta;
00052 double m_muonjetdr;
00053 double m_reliso;
00054 double m_absiso;
00055 double m_Z0;
00056 double m_etcone;
00057 double m_emjetdr;
00058 double m_electronmuondr;
00059 double m_loosejetPtCut;
00060 double m_jeteta;
00061 double m_jetPtCut;
00062 double m_emPtCut;
00063 double m_jvfCut;
00064
00065
00067 bool m_realData;
00068
00070 bool m_sortByPt;
00071
00072 };
00073
00074
00075 #endif // TOPUTILS_hvynOBJECT_SEL_H__