Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
CustomParticle.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef CustomParticle_h
6 #define CustomParticle_h 1
7 
8 #include "G4ParticleDefinition.hh"
9 #include "globals.hh"
10 #include <memory>
11 
12 // ######################################################################
13 // ### CustomParticle ###
14 // ######################################################################
16 
17 class CustomParticle : public G4ParticleDefinition
18 {
19  friend class CustomParticleFactory;
20 private:
22  const G4String& aName, G4double mass,
23  G4double width, G4double charge,
24  G4int iSpin, G4int iParity,
25  G4int iConjugation, G4int iIsospin,
26  G4int iIsospin3, G4int gParity,
27  const G4String& pType, G4int lepton,
28  G4int baryon, G4int encoding,
29  G4bool stable, G4double lifetime,
30  G4DecayTable *decaytable
31  );
32  std::unique_ptr<G4ParticleDefinition> m_cloud{};
33  G4ParticleDefinition *m_spec{};
34 public:
35  void SetCloud(std::unique_ptr<G4ParticleDefinition> & theCloud);
36  void SetSpectator(G4ParticleDefinition* theSpectator);
37  G4ParticleDefinition* GetCloud();
38  G4ParticleDefinition* GetSpectator();
39  virtual ~CustomParticle() {}
40 };
41 
42 inline void CustomParticle::SetCloud(std::unique_ptr<G4ParticleDefinition> & theCloud){ m_cloud.swap(theCloud); }
43 inline G4ParticleDefinition* CustomParticle::GetCloud(){ return m_cloud.get(); }
44 inline void CustomParticle::SetSpectator(G4ParticleDefinition* theSpectator){ m_spec = theSpectator; }
45 inline G4ParticleDefinition* CustomParticle::GetSpectator(){ return m_spec; }
46 
47 #endif
CustomParticle::SetCloud
void SetCloud(std::unique_ptr< G4ParticleDefinition > &theCloud)
Definition: CustomParticle.h:42
CustomParticle::~CustomParticle
virtual ~CustomParticle()
Definition: CustomParticle.h:39
CustomParticle::CustomParticle
CustomParticle(const G4String &aName, G4double mass, G4double width, G4double charge, G4int iSpin, G4int iParity, G4int iConjugation, G4int iIsospin, G4int iIsospin3, G4int gParity, const G4String &pType, G4int lepton, G4int baryon, G4int encoding, G4bool stable, G4double lifetime, G4DecayTable *decaytable)
Definition: ExtraParticles/src/CustomParticle.cxx:13
Base_Fragment.mass
mass
Definition: Sherpa_i/share/common/Base_Fragment.py:59
CustomParticle::GetSpectator
G4ParticleDefinition * GetSpectator()
Definition: CustomParticle.h:45
CustomParticle::m_spec
G4ParticleDefinition * m_spec
Definition: CustomParticle.h:33
CustomParticle::GetCloud
G4ParticleDefinition * GetCloud()
Definition: CustomParticle.h:43
generateReferenceFile.encoding
encoding
Definition: generateReferenceFile.py:15
MCTruthPartClassifier::stable
@ stable
Definition: TruthClassifiers.h:148
CustomParticle::SetSpectator
void SetSpectator(G4ParticleDefinition *theSpectator)
Definition: CustomParticle.h:44
CustomParticle
Definition: CustomParticle.h:18
charge
double charge(const T &p)
Definition: AtlasPID.h:897
CustomParticleFactory
Definition: CustomParticleFactory.h:17
CustomParticle::m_cloud
std::unique_ptr< G4ParticleDefinition > m_cloud
Definition: CustomParticle.h:32
Base_Fragment.width
width
Definition: Sherpa_i/share/common/Base_Fragment.py:59