00001 #ifndef TOPUTILS_BTAGRANDOMISER_H__
00002 #define TOPUTILS_BTAGRANDOMISER_H__
00003
00004
00005 class TopObjectSel;
00006 namespace Analysis {
00007 class CalibrationDataInterfaceROOT;
00008 }
00009
00010 #include <vector>
00011 #include "TRandom3.h"
00012
00013 #include "manTree/MJet.h"
00014
00015 #include "plug-ins/include/SToolBase.h"
00016
00022 class BTagRandomiser : public SToolBase {
00023
00024 public:
00025
00027 BTagRandomiser(SCycleBase* base);
00028
00030 ~BTagRandomiser();
00031
00033 void Init(const TopObjectSel* objsel);
00034
00035 double GetNewTaggedJets(const std::vector<const manchester::MJet*>* inputbjets, std::vector<const manchester::MJet*>& outputbjets, std::vector<const manchester::MJet*>& outputlightjets, int errormode);
00036
00037 protected:
00038
00040 const Analysis::CalibrationDataInterfaceROOT* m_btagsf_tool;
00041
00043 bool m_own_btagsf_tool;
00044
00046 TRandom3 m_rand;
00047
00048 };
00049
00050 #endif //TOPUTILS_BTAGRANDOMISER