00001
00002
00004
00005 #ifndef ANALYSISCALIBRATIONDATAINTERFACETOOL_H
00006 #define ANALYSISCALIBRATIONDATAINTERFACETOOL_H
00007
00008 #include "AthenaBaseComps/AthAlgTool.h"
00009 #include "GaudiKernel/ToolHandle.h"
00010 #include "JetTagCalibration/CalibrationBroker.h"
00011 #include "CalibrationDataInterface/CalibrationDataInterfaceBase.h"
00012 #include "CalibrationDataInterface/ICalibrationDataInterfaceTool.h"
00013 #include "Rtypes.h"
00014 #include <vector>
00015 #include <string>
00016 #include <utility>
00017
00018 class AtlasDetectorID;
00019 class Identifier;
00020 class Jet;
00021
00022 namespace Analysis
00023 {
00024
00025 class CalibrationDataVariables;
00026
00060 class CalibrationDataInterfaceTool :
00061 public AthAlgTool, virtual public ICalibrationDataInterfaceTool, public CalibrationDataInterfaceBase
00062 {
00063 public:
00064 CalibrationDataInterfaceTool(const std::string&,const std::string&,const IInterface*);
00065
00067 virtual ~CalibrationDataInterfaceTool ();
00068
00070 StatusCode queryInterface( const InterfaceID& riid, void** ppvIf );
00071
00073 virtual StatusCode initialize();
00075 virtual StatusCode finalize ();
00076
00084 CalibResult getEfficiency (const Jet& jet, const std::string& label,
00085 const std::string& OP, Uncertainty unc = None) const;
00086
00088 CalibResult getMCEfficiency (const Jet& jet, const std::string& label,
00089 const std::string& OP, Uncertainty unc = None) const;
00090
00092 CalibResult getScaleFactor (const Jet& jet, const std::string& label,
00093 const std::string& OP, Uncertainty unc = None) const;
00094
00095 private:
00096
00098 void registerObjects(const std::string& folder, const std::string& OP) const;
00099
00101 void retrieveFunctionArguments(const Jet& jet, const std::string& object, Double_t* x) const;
00102
00104 void makeVariables (const Jet& jet, CalibrationDataVariables& x) const;
00105
00106
00107
00109 std::string m_EffcalibrationBName;
00110 std::string m_EffcalibrationCName;
00111 std::string m_EffcalibrationTName;
00112 std::string m_EffcalibrationLightName;
00113 std::string m_SFcalibrationBName;
00114 std::string m_SFcalibrationCName;
00115 std::string m_SFcalibrationTName;
00116 std::string m_SFcalibrationLightName;
00117
00119 ToolHandle<CalibrationBroker> m_broker;
00120
00121 };
00122 }
00123
00124 #endif