Go to the documentation of this file.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
00019 class GAUDI_API IParticlePropertySvc: virtual public IService {
00020
00021 public:
00023 DeclareInterfaceID(IParticlePropertySvc,3,0);
00024
00025
00026 typedef std::vector<ParticleProperty*> VectPP;
00027 typedef VectPP::const_iterator const_iterator;
00028 typedef VectPP::iterator iterator;
00029
00041 virtual StatusCode push_back( const std::string& particle,
00042 int geantId, int jetsetId,
00043 double charge, double mass, double tlife ,
00044 const std::string& evtName , int pythiaId ,
00045 double maxWidth ) = 0;
00046
00051 virtual StatusCode push_back( ParticleProperty* pp ) = 0;
00052
00054 virtual const_iterator begin() const = 0;
00055
00057 virtual const_iterator end() const = 0;
00058
00060 virtual int size() const = 0;
00061
00063 virtual ParticleProperty* find( int geantId ) = 0;
00064
00066 virtual ParticleProperty* findByStdHepID( int stdHepID ) = 0;
00067
00069 virtual ParticleProperty* find( const std::string& name ) = 0;
00070
00072 virtual ParticleProperty* findByPythiaID( int pythiaID ) =0;
00073
00075 virtual StatusCode erase( int geantId ) = 0;
00076
00078 virtual StatusCode erase( const std::string& name ) = 0;
00079
00081 virtual StatusCode eraseByStdHepID( int stdHepID ) = 0;
00082
00083 };
00084
00085 #endif
00086
00087