File indexing completed on 2024-04-06 12:30:19
0001 #ifndef SimG4Core_CustomPhysics_CustomParticle_h
0002 #define SimG4Core_CustomPhysics_CustomParticle_h 1
0003
0004 #include "G4ParticleDefinition.hh"
0005 #include "globals.hh"
0006
0007
0008
0009
0010
0011 class CustomParticle : public G4ParticleDefinition {
0012 public:
0013 CustomParticle(const G4String& aName,
0014 G4double mass,
0015 G4double width,
0016 G4double charge,
0017 G4int iSpin,
0018 G4int iParity,
0019 G4int iConjugation,
0020 G4int iIsospin,
0021 G4int iIsospin3,
0022 G4int gParity,
0023 const G4String& pType,
0024 G4int lepton,
0025 G4int baryon,
0026 G4int encoding,
0027 G4bool stable,
0028 G4double lifetime,
0029 G4DecayTable* decaytable);
0030
0031 private:
0032 G4ParticleDefinition* m_cloud;
0033 G4ParticleDefinition* m_spec;
0034
0035 public:
0036 void SetCloud(G4ParticleDefinition* theCloud);
0037 void SetSpectator(G4ParticleDefinition* theSpectator);
0038 G4ParticleDefinition* GetCloud();
0039 G4ParticleDefinition* GetSpectator();
0040 ~CustomParticle() override {}
0041 };
0042
0043 inline void CustomParticle::SetCloud(G4ParticleDefinition* theCloud) { m_cloud = theCloud; }
0044 inline G4ParticleDefinition* CustomParticle::GetCloud() { return m_cloud; }
0045 inline void CustomParticle::SetSpectator(G4ParticleDefinition* theSpectator) { m_spec = theSpectator; }
0046 inline G4ParticleDefinition* CustomParticle::GetSpectator() { return m_spec; }
0047
0048 #endif