| # Gaudi Framework, version v21r11 |

Home |  | Generated: 30 Sep 2010

# 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