CMS 3D CMS Logo

CMSAntiSIMP.cc
Go to the documentation of this file.
1 
3 #include "G4PhysicalConstants.hh"
4 #include "G4SystemOfUnits.hh"
5 #include "G4ParticleTable.hh"
6 
7 #include "G4PhaseSpaceDecayChannel.hh"
8 #include "G4DecayTable.hh"
9 
11 
13  if (theInstance != nullptr)
14  return theInstance;
15  const G4String name = "chibar";
16  // search in particle table]
17  G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
18  G4ParticleDefinition* anInstance = pTable->FindParticle(name);
19  if (anInstance == nullptr) {
20  // create particle
21  //
22  // Arguments for constructor are as follows
23  // name mass width charge
24  // 2*spin parity C-conjugation
25  // 2*Isospin 2*Isospin3 G-parity
26  // type lepton number baryon number PDG encoding
27  // stable lifetime decay table
28  // shortlived subType anti_encoding
29 
30  anInstance = new G4ParticleDefinition(
31  name, mass, 0, 0.0, 1, +1, 0, 0, -1, 0, "simp", 0, +1, -9000006, true, -1.0, nullptr, false, "nucleon");
32  }
33  theInstance = reinterpret_cast<CMSAntiSIMP*>(anInstance);
34  return theInstance;
35 }
36 
38 
40  return Definition(1 * GeV); // will use correct mass if instance exists
41 }
static CMSAntiSIMP * AntiSIMPDefinition(double mass)
Definition: CMSAntiSIMP.cc:37
static CMSAntiSIMP * AntiSIMP()
Definition: CMSAntiSIMP.cc:39
static CMSAntiSIMP * Definition(double mass)
Definition: CMSAntiSIMP.cc:12
static CMSAntiSIMP * theInstance
Definition: CMSAntiSIMP.h:10