00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef G4PARTICLETYPECONVERTER_HH
00028 #define G4PARTICLETYPECONVERTER_HH
00029
00030 #include "G4KineticTrack.hh"
00031 #include "G4ParticleDefinition.hh"
00032
00033 #include <map>
00034
00035 class G4ParticleTypeConverter
00036 {
00037 public:
00038
00039 enum GenericType { NUCLEON,
00040 N1440, N1520, N1535, N1650, N1675, N1680, N1700, N1710, N1720, N1900, N1990, N2090, N2190, N2220, N2250,
00041 D1232, D1600, D1620, D1700, D1900, D1905, D1910, D1920, D1930, D1950,
00042 L1405, L1520, L1600, L1670, L1690, L1800, L1810, L1820, L1830, L1890, L2100, L2110,
00043 Sigma, S1385, S1660, S1670, S1750, S1775, S1915, S1940, S2030,
00044 X1530, X1690, X1820, X1950, X2030,
00045 GAMMA, PION, KAON, ETA, RHO, omega, Lambda, UNKNOWN };
00046
00047 G4ParticleTypeConverter();
00048
00049 GenericType GetGenericType(const G4ParticleDefinition* const aParticleDef);
00050 GenericType GetGenericType(const G4KineticTrack& aTrack);
00051 GenericType GetGenericType(const G4String& aParticleName);
00052
00053 G4int GetUrqmdItyp(GenericType gType);
00054 G4int GetUrqmdItyp(const G4ParticleDefinition* aParticleDef);
00055
00056 const G4ParticleDefinition* FindIso3State(const GenericType gType, const G4int isospin3);
00057
00058 private:
00059
00060 typedef std::vector<std::pair<const G4ParticleDefinition*, GenericType> >::const_iterator MapIterator;
00061 std::vector<std::pair<const G4ParticleDefinition*, GenericType> > defMap;
00062
00063 };
00064
00065
00066 #endif
00067
00068
00069
00070