ATLAS Offline Software
AMSBNeutralino.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // class header
6 #include "AMSBNeutralino.hh"
7 
8 // ######################################################################
9 // ### Neutralino ###
10 // ######################################################################
11 
12 
13 AMSBNeutralino* AMSBNeutralino::s_theInstance = NULL;
14 
15 AMSBNeutralino* AMSBNeutralino::Definition(G4double mass, G4double width, G4double charge, G4double PDG, G4bool stable, G4double lifetime, G4bool shortlived)
16 {
17 
18  if (s_theInstance !=0 && (mass>=0. || width>=0. || lifetime>=0.) )
19  {
20  G4ExceptionDescription description;
21  description << "Trying to redefine the AMSB Neutralino properties after it has been constructed is not allowed";
22  G4Exception("AMSBNeutralino", "FailedRedefinition", FatalException, description);
23  abort();
24  }
25 
26  if (s_theInstance != 0)
27  {
28  return s_theInstance;
29  }
30 
31 
32  // Arguments for constructor are as follows
33  // name mass width charge
34  // 2*spin parity C-conjugation
35  // 2*Isospin 2*Isospin3 G-parity
36  // type lepton number baryon number PDG encoding
37  // stable lifetime decay table
38  // shortlived subType anti_encoding
39 
40  if (mass >= 0)
41  {
42 
43  G4ParticleDefinition* anInstance =
44  new G4ParticleDefinition("s_chi_0_1", mass, width, charge,
45  1, 0, 0,
46  0, 0, 0,
47  "supersymmetric", 0, 0, PDG,
48  stable, lifetime, NULL,
49  shortlived, "Neutralino");
50 
51  s_theInstance = reinterpret_cast<AMSBNeutralino*>(anInstance);
52  return s_theInstance;
53  }
54  else
55  {
56  G4ExceptionDescription description;
57  description << "Trying to create a particle with default constructor is not allowed";
58  G4Exception("AMSBNeutralino", "DefaultConstructorCalled", FatalException, description);
59  abort();
60  }
61 }
Base_Fragment.mass
mass
Definition: Sherpa_i/share/common/Base_Fragment.py:59
PDG20
Definition: Trigger/TrigHypothesis/TrigBphysHypo/src/Constants.h:9
MCTruthPartClassifier::stable
@ stable
Definition: TruthClassifiers.h:148
charge
double charge(const T &p)
Definition: AtlasPID.h:756
Base_Fragment.width
width
Definition: Sherpa_i/share/common/Base_Fragment.py:59
description
std::string description
glabal timer - how long have I taken so far?
Definition: hcg.cxx:88