00001 #ifndef JETCALIBTOOLS_JETPILEUPCORRECTION_H
00002 #define JETCALIBTOOLS_JETPILEUPCORRECTION_H 1
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include <TEnv.h>
00012
00013 #include "JetCalibTools/IJetCalibrationTool.h"
00014 #include "JetCalibTools/JetCalibrationToolBase.h"
00015 #include "JetCalibTools/CalibrationMethods/ResidualOffsetCorrection.h"
00016
00017 class JetPileupCorrection
00018 : virtual public ::IJetCalibrationTool,
00019 virtual public ::JetCalibrationToolBase
00020 {
00021
00022 ASG_TOOL_CLASS( JetPileupCorrection, IJetCalibrationTool )
00023
00024 public:
00025 JetPileupCorrection();
00026 JetPileupCorrection(const std::string& name);
00027 JetPileupCorrection(const std::string& name, TEnv * config, TString jetAlgo, TString calibAreaTag, bool doResidual, bool doOrigin, bool isData, bool dev);
00028 virtual ~JetPileupCorrection();
00029
00030
00031 virtual StatusCode initializeTool(const std::string& name);
00032
00033 protected:
00034 virtual StatusCode calibrateImpl(xAOD::Jet& jet, JetEventInfo& jetEventInfo) const;
00035
00036 private:
00037 TEnv * m_config;
00038 TString m_jetAlgo;
00039 TString m_calibAreaTag;
00040 bool m_dev;
00041 bool m_doResidual;
00042 bool m_doOrigin;
00043 bool m_isData;
00044
00045 bool m_useFull4vectorArea;
00046 ResidualOffsetCorrection * m_residualOffsetCorr;
00047
00048 };
00049
00050 #endif