00001 // Dear emacs, this is -*- c++ -*- 00002 // $Id: TPrimitiveAuxBranchManager.h 595278 2014-05-03 09:31:05Z krasznaa $ 00003 #ifndef XAODROOTACCESS_TOOLS_TPRIMITIVEAUXBRANCHMANAGER_H 00004 #define XAODROOTACCESS_TOOLS_TPRIMITIVEAUXBRANCHMANAGER_H 00005 00006 // EDM include(s): 00007 #include "AthContainersInterfaces/AuxTypes.h" 00008 00009 // Local include(s): 00010 #include "TVirtualManager.h" 00011 00012 // Forward declaration(s): 00013 namespace SG { 00014 class IAuxTypeVector; 00015 } 00016 00017 namespace xAOD { 00018 00019 // Forward declaration(s): 00020 class THolder; 00021 00034 class TPrimitiveAuxBranchManager : public TVirtualManager { 00035 00036 public: 00038 typedef SG::auxid_t auxid_t; 00039 00041 TPrimitiveAuxBranchManager( auxid_t auxid, 00042 ::TBranch* br = 0, 00043 THolder* holder = 0 ); 00045 TPrimitiveAuxBranchManager( const TPrimitiveAuxBranchManager& parent ); 00047 ~TPrimitiveAuxBranchManager(); 00048 00050 TPrimitiveAuxBranchManager& 00051 operator=( const TPrimitiveAuxBranchManager& rhs ); 00052 00054 ::TBranch* branch() const; 00056 ::TBranch** branchPtr(); 00058 const THolder* holder() const; 00060 THolder* holder(); 00061 00063 virtual ::Int_t getEntry( ::Long64_t entry, ::Int_t getall = 0 ); 00064 00066 virtual void* object() const; 00068 virtual void setObject( void* obj ); 00069 00071 virtual ::Bool_t isSet( ::Bool_t forceSet = kTRUE ) const; 00073 virtual void reset(); 00074 00075 private: 00077 ::TBranch* m_branch; 00079 THolder* m_holder; 00081 ::Long64_t m_entry; 00083 mutable ::Bool_t m_isSet; 00084 00086 auxid_t m_auxId; 00088 mutable SG::IAuxTypeVector* m_vector; 00089 00090 }; // class TPrimitiveAuxBranchManager 00091 00092 } // namespace xAOD 00093 00094 #endif // XAODROOTACCESS_TOOLS_TPRIMITIVEAUXBRANCHMANAGER_H