00001
00002 #include "GaudiKernel/MsgStream.h"
00003 #include "GaudiKernel/AlgFactory.h"
00004 #include "GaudiKernel/IDataProviderSvc.h"
00005 #include "GaudiKernel/SmartDataPtr.h"
00006 #include "GlastSvc/GlastDetSvc/IGlastDetSvc.h"
00007 #include "gui/DisplayControl.h"
00008 #include "GuiSvc/IGuiSvc.h"
00009 #include "gui/GuiMgr.h"
00010
00011
00012 #include "TkrRecon/TkrDisplayAlg.h"
00013 #include "TkrRecon/TkrClustersRep.h"
00014 #include "TkrRecon/TkrRecObjsRep.h"
00015
00016
00017 static const AlgFactory<TkrDisplayAlg> Factory;
00018 const IAlgFactory& TkrDisplayAlgFactory = Factory;
00019
00020
00023
00024
00025 TkrDisplayAlg::TkrDisplayAlg(const std::string& name, ISvcLocator* pSvcLocator) :
00026 Algorithm(name, pSvcLocator)
00027
00028 {
00029
00030 }
00031
00032
00033 StatusCode TkrDisplayAlg::initialize()
00034
00035 {
00036
00037 m_SiClusters = 0;
00038 m_SiRecObjs = 0;
00039
00040
00041 IGuiSvc* guiSvc = 0;
00042 StatusCode sc = service("GuiSvc", guiSvc);
00043
00044
00045 if (sc.isSuccess())
00046 {
00047
00048 (guiSvc->guiMgr())->display().add(new TkrClustersRep(&m_SiClusters), "Clusters");
00049
00050
00051 (guiSvc->guiMgr())->display().add(new TkrRecObjsRep(&m_SiRecObjs), "Tracks");
00052 }
00053
00054 return sc;
00055 }
00056
00057 StatusCode TkrDisplayAlg::execute()
00058
00059 {
00060 MsgStream log(msgSvc(), name());
00061
00062 StatusCode sc = retrieve();
00063
00064 return sc;
00065 }
00066
00067
00068 StatusCode TkrDisplayAlg::finalize()
00069
00070 {
00071
00072 return StatusCode::SUCCESS;
00073 }
00074
00075
00076 StatusCode TkrDisplayAlg::retrieve()
00077
00078 {
00079 StatusCode sc = StatusCode::SUCCESS;
00080
00081 MsgStream log(msgSvc(), name());
00082
00085 DataObject* pnode =0;
00086 sc = eventSvc()->retrieveObject("/Event/TkrRecon", pnode);
00087
00088 if( sc.isFailure() ) {
00089 sc = eventSvc()->registerObject("/Event/TkrRecon",new DataObject);
00090 if( sc.isFailure() ) {
00091
00092 log << MSG::ERROR << "Could not create Raw directory" << endreq;
00093 return sc;
00094 }
00095 }
00096
00097 m_SiClusters = SmartDataPtr<SiClusters>(eventSvc(),"/Event/TkrRecon/SiClusters");
00098 m_SiRecObjs = SmartDataPtr<SiRecObjs>(eventSvc(),"/Event/TkrRecon/SiRecObjs");
00099
00100 return sc;
00101 }