00001
00002
00003 #ifndef __TSELECTORTOOLBASE__
00004 #define __TSELECTORTOOLBASE__
00005
00014
00015 #include "TString.h"
00016
00017
00018 #include "TAccept.h"
00019
00020
00021
00022
00023 #ifdef ROOTCORE
00024 #include <RootCore/Packages.h>
00025 #ifdef ROOTCORE_PACKAGE_D3PDReader
00026 #define PAT_CORE_D3PDREADER
00027 #endif
00028 #endif
00029
00030 class TObject;
00031
00032
00033 namespace Root {
00034 class TSelectorToolBase
00035 {
00036
00037 public:
00039 TSelectorToolBase(const char* name="TSelectorToolBase") :
00040 m_name(name),
00041 m_accept( Form("%s_TAccept",name) )
00042 {
00043 }
00044
00046 virtual ~TSelectorToolBase(){}
00047
00048
00049
00050 public:
00052 virtual int initialize() = 0;
00053
00055 virtual int finalize() = 0;
00056
00057
00059 inline const char* getName() const { return m_name.Data(); };
00060
00061
00063 const Root::TAccept& getTAccept( ) const
00064 {
00065 return m_accept;
00066 }
00067
00068 #ifdef PAT_CORE_D3PDREADER
00069
00070 virtual const Root::TAccept& accept( const TObject& ) {return m_accept;}
00071 #endif
00072
00073
00074 #ifdef ROOTCORE
00075
00076 ClassDef(TSelectorToolBase,1);
00077 #endif
00078
00079
00080
00081 protected:
00083 TString m_name;
00084
00086 mutable TAccept m_accept;
00087
00088
00089 };
00090
00091
00092 }
00093
00094 #endif