00001
00002 #ifndef GAUDIKERNEL_IPARTICLEPROPERTYSVC_H
00003 #define GAUDIKERNEL_IPARTICLEPROPERTYSVC_H
00004
00005
00006 #include "GaudiKernel/IService.h"
00007 #include <vector>
00008
00009
00010 class ParticleProperty;
00011
00012
00013 static const InterfaceID IID_IParticlePropertySvc(70, 2 , 0);
00014
00022 class IParticlePropertySvc : virtual public IService {
00023
00024 public:
00025
00026 typedef std::vector<ParticleProperty*> VectPP;
00027 typedef VectPP::const_iterator const_iterator;
00028 typedef VectPP::iterator iterator;
00029
00031 static const InterfaceID& interfaceID() { return IID_IParticlePropertySvc; }
00032
00044 virtual StatusCode push_back( const std::string& particle,
00045 int geantId, int jetsetId,
00046 double charge, double mass, double tlife ,
00047 const std::string& evtName , int pythiaId ,
00048 double maxWidth ) = 0;
00049
00054 virtual StatusCode push_back( ParticleProperty* pp ) = 0;
00055
00057 virtual const_iterator begin() const = 0;
00058
00060 virtual const_iterator end() const = 0;
00061
00063 virtual int size() const = 0;
00064
00066 virtual ParticleProperty* find( int geantId ) = 0;
00067
00069 virtual ParticleProperty* findByStdHepID( int stdHepID ) = 0;
00070
00072 virtual ParticleProperty* find( const std::string& name ) = 0;
00073
00075 virtual ParticleProperty* findByPythiaID( int pythiaID ) =0;
00076
00078 virtual StatusCode erase( int geantId ) = 0;
00079
00081 virtual StatusCode erase( const std::string& name ) = 0;
00082
00084 virtual StatusCode eraseByStdHepID( int stdHepID ) = 0;
00085
00086 };
00087
00088 #endif
00089
00090