ATLAS Offline Software
Loading...
Searching...
No Matches
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
17class CustomParticle : public G4ParticleDefinition
18{
20private:
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{};
34public:
35 void SetCloud(std::unique_ptr<G4ParticleDefinition> & theCloud);
36 void SetSpectator(G4ParticleDefinition* theSpectator);
37 G4ParticleDefinition* GetCloud();
38 G4ParticleDefinition* GetSpectator();
39 virtual ~CustomParticle() {}
40};
41
42inline void CustomParticle::SetCloud(std::unique_ptr<G4ParticleDefinition> & theCloud){ m_cloud.swap(theCloud); }
43inline G4ParticleDefinition* CustomParticle::GetCloud(){ return m_cloud.get(); }
44inline void CustomParticle::SetSpectator(G4ParticleDefinition* theSpectator){ m_spec = theSpectator; }
45inline G4ParticleDefinition* CustomParticle::GetSpectator(){ return m_spec; }
46
47#endif
double charge(const T &p)
Definition AtlasPID.h:997
const double width
void SetCloud(std::unique_ptr< G4ParticleDefinition > &theCloud)
friend class CustomParticleFactory
virtual ~CustomParticle()
G4ParticleDefinition * GetSpectator()
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)
G4ParticleDefinition * GetCloud()
std::unique_ptr< G4ParticleDefinition > m_cloud
void SetSpectator(G4ParticleDefinition *theSpectator)
G4ParticleDefinition * m_spec