00001 #ifndef TAURECTOOLBASE_H
00002 #define TAURECTOOLBASE_H
00003
00011 #include <string>
00012
00013 #include "tauRecTools/TauEventData.h"
00014 #include "tauRecTools/ITauToolBase.h"
00015 #include "AsgTools/AsgTool.h"
00016
00017 extern TauEventData defaultTauEventData;
00018
00019 class TauRecToolBase : public asg::AsgTool, virtual public ITauToolBase {
00020 public:
00021
00022 ASG_TOOL_INTERFACE(TauRecToolBase)
00023 ASG_TOOL_CLASS1( TauRecToolBase, ITauToolBase )
00024
00025 TauRecToolBase(const std::string& name);
00026 virtual ~TauRecToolBase() {}
00027
00028
00030
00031 virtual StatusCode initialize();
00032
00033
00035
00036 virtual StatusCode eventInitialize();
00037
00038
00040
00041 virtual StatusCode execute(xAOD::TauJet& pTau);
00042
00043
00045
00046 virtual StatusCode eventFinalize();
00047
00048
00050
00051 virtual StatusCode finalize();
00052
00053 std::string find_file(const std::string& fname) const;
00054 StatusCode readConfig();
00055
00056 void setTauEventData(TauEventData* data);
00057 TauEventData* tauEventData();
00058 const TauEventData* tauEventData() const;
00059
00060
00061
00062 protected:
00063 TauEventData* m_data = 0;
00064 bool m_in_trigger = false;
00065 std::string m_tauRecToolsTag;
00066
00067 bool inTrigger() const;
00068
00069 };
00070
00071 inline bool TauRecToolBase::inTrigger() const { return m_in_trigger; }
00072
00073 inline TauEventData* TauRecToolBase::tauEventData() {
00074 return m_data;
00075 }
00076
00077 inline const TauEventData* TauRecToolBase::tauEventData() const {
00078 return m_data;
00079 }
00080
00081 #endif //TAURECTOOLBASE_H