00001 00002 // $Id: AlgHandle.cxx,v 1.16 2003/12/07 06:13:36 gmieg Exp $ 00003 // 00004 // AlgHandle.cxx 00005 // 00006 // AlgHandle is the user access channel for AlgBase derived objects. 00007 // 00008 // Author: G. Irwin 2/2000 00010 00011 #include <cassert> 00012 00013 #include "Algorithm/AlgBase.h" 00014 #include "Algorithm/AlgHandle.h" 00015 00016 ClassImp(AlgHandle) 00017 00018 //______________________________________________________________________ 00019 AlgHandle::AlgHandle() : 00020 fAlgBase(0) 00021 , fAlgConfigRef(0) 00022 { 00023 } 00024 00025 //______________________________________________________________________ 00026 AlgHandle::AlgHandle(AlgBase *ab, TRef &acr) : 00027 fAlgBase(ab) 00028 , fAlgConfigRef(acr) 00029 { 00030 } 00031 00032 //______________________________________________________________________ 00033 AlgHandle::AlgHandle(const AlgHandle &ah) : 00034 TNamed(ah) 00035 , fAlgBase(ah.fAlgBase) 00036 , fAlgConfigRef(ah.fAlgConfigRef) 00037 { 00038 } 00039 00040 //______________________________________________________________________ 00041 AlgHandle::~AlgHandle() 00042 { 00043 } 00044 00045 //______________________________________________________________________ 00046 AlgConfig &AlgHandle::GetAlgConfig() 00047 { 00048 return (AlgConfig &) *fAlgConfigRef.GetObject(); 00049 } 00050 00051 //______________________________________________________________________ 00052 TRef &AlgHandle::GetAlgConfigRef() const 00053 { 00054 return (TRef &) fAlgConfigRef; 00055 } 00056 00057 //______________________________________________________________________ 00058 const char *AlgHandle::GetName() const 00059 { 00060 00061 // Returns ClassName() if there is no assigned TNamed name. 00062 return strlen(TNamed::GetName()) > 0 ? TNamed::GetName() : ClassName(); 00063 } 00064 00065 //______________________________________________________________________ 00066 void AlgHandle::RunAlg(CandHandle &ch, CandContext &cx) 00067 { 00068 fAlgBase->RunAlg((AlgConfig &) *fAlgConfigRef.GetObject(), ch, cx); 00069 }
1.3.9.1