Gaudi Framework, version v23r2

Home   Generated: Thu Jun 28 2012

PartPropSvc.h

Go to the documentation of this file.
00001 #ifndef __PARTPROPSVC_H__
00002 #define __PARTPROPSVC_H__
00003 
00004 #include "GaudiKernel/Service.h"
00005 #include "GaudiKernel/IPartPropSvc.h"
00006 #include "HepPDT/ParticleDataTable.hh"
00007 #include "HepPDT/TableBuilder.hh"
00008 
00009 #include <vector>
00010 #include <string>
00011 #include <utility>
00012 #include <iostream>
00013 
00014 // Forward declarations
00015 template <class TYPE> class SvcFactory;
00016 
00017 //------------------------------------------------------------------
00018 //
00019 // ClassName:   PartPropSvc
00020 //  
00021 // Description: This service provides access to particle properties.
00022 //              Uses HepPDT as the underlying layer
00023 //
00024 // Author:      Charles Leggett
00025 // 
00026 // Date:        3-8-2001
00027 // 
00028 //------------------------------------------------------------------
00029 
00030 class PartPropSvc: public extends1<Service, IPartPropSvc> {
00031 
00032 public:
00033 
00034   virtual StatusCode initialize();
00035   virtual StatusCode reinitialize();
00036   virtual StatusCode finalize();
00037 
00038   // The table
00039   HepPDT::ParticleDataTable *PDT();
00040   
00041   void setUnknownParticleHandler( HepPDT::ProcessUnknownID*, 
00042                                   const std::string&);
00043 protected:
00044 
00045   PartPropSvc( const std::string& name, ISvcLocator* svc );
00046   
00047   // Destructor.
00048   virtual ~PartPropSvc();
00049 
00050 private:
00051 
00052   // Allow SvcFactory to instantiate the service.
00053   friend class SvcFactory<PartPropSvc>;
00054 
00055   StatusCode createTable();
00056   std::vector< std::pair<std::string, 
00057                          bool(*) (std::istream&,HepPDT::TableBuilder&)> > m_inputs;
00058 
00059   StringProperty m_pdtFiles;
00060   HepPDT::ProcessUnknownID* m_upid;
00061   std::string m_upid_name;
00062 
00063   HepPDT::ParticleDataTable *m_pdt;
00064 
00065   bool (*parseTableType(std::string&))(std::istream&, HepPDT::TableBuilder&);
00066 
00067   mutable MsgStream m_log;
00068 
00069   bool m_upid_local;
00070   
00071 
00072 };
00073 
00074 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines

Generated at Thu Jun 28 2012 23:27:29 for Gaudi Framework, version v23r2 by Doxygen version 1.7.2 written by Dimitri van Heesch, © 1997-2004