Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

TkrDisplayAlg.cxx

Go to the documentation of this file.
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 //#include "Gaudi/Event
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         //Zero the data members to insure they don't get used accidentally
00037         m_SiClusters = 0;
00038         m_SiRecObjs  = 0;
00039 
00040         //Look for the gui service
00041         IGuiSvc* guiSvc = 0;
00042         StatusCode sc = service("GuiSvc", guiSvc);
00043 
00044         //Ok, see if we can set up the display
00045         if (sc.isSuccess()) 
00046         {
00047                 //Set up the display rep for Clusters
00048                 (guiSvc->guiMgr())->display().add(new TkrClustersRep(&m_SiClusters), "Clusters");
00049 
00050                 //Set up the display rep for the reconstructed objects
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 //-------------------- private ----------------------
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 }

Generated at Wed Nov 21 12:21:21 2001 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000