Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4PDGCodeChecker.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26// G4PDGCodeChecker
27
28// Author: Hisaya Kurashige, 17 August 1999
29// --------------------------------------------------------------------
30#ifndef G4PDGCodeChecker_hh
31#define G4PDGCodeChecker_hh 1
32
33#include "G4ios.hh"
34#include "globals.hh"
35
37{
38 public:
40 ~G4PDGCodeChecker() = default;
41
42 G4int CheckPDGCode(G4int code, const G4String& type);
43
44 inline G4int GetQuarkContent(G4int flavor) const;
45 inline G4int GetAntiQuarkContent(G4int flavor) const;
46
47 inline G4bool IsAntiParticle() const;
48
49 inline G4int GetQuarkFlavor(G4int idx) const;
50
51 inline G4int GetSpin() const;
52 inline G4int GetExotic() const;
53 inline G4int GetRadial() const;
54 inline G4int GetMultiplet() const;
55
56 G4bool CheckCharge(G4double charge) const;
57
58 inline G4int GetVerboseLevel() const;
59 inline void SetVerboseLevel(G4int verbose);
60
61 protected:
62 enum
63 {
65 };
66
67 private:
68 void GetDigits(G4int code);
69 G4int CheckForQuarks();
70 G4int CheckForDiQuarks();
71 G4int CheckForMesons();
72 G4int CheckForBaryons();
73 G4int CheckForNuclei();
74
75 private:
76 G4int verboseLevel = 0;
77
78 G4int code = 0;
79 G4String theParticleType = "";
80
81 G4int higherSpin = 0;
82 G4int exotic = 0;
83 G4int radial = 0;
84 G4int multiplet = 0;
85 G4int quark1 = 0;
86 G4int quark2 = 0;
87 G4int quark3 = 0;
88 G4int spin = 0;
89
90 G4int theQuarkContent[NumberOfQuarkFlavor];
91 G4int theAntiQuarkContent[NumberOfQuarkFlavor];
92 // The number of quark (minus Sign means anti-quark) contents
93 // The value of flavor is assigned as follows
94 // 0:d, 1:u, 2:s, 3:c,
95 // 4:b, 5:t, 6:l(down type quark) 7:h(up type quark)
96};
97
98// ------------------------
99// Inline methods
100// ------------------------
101
103{
104 G4int value = 0;
105 if ((flavor >= 0) && (flavor < NumberOfQuarkFlavor)) {
106 value = theQuarkContent[flavor];
107 }
108 return value;
109}
110
112{
113 G4int value = 0;
114 if ((flavor >= 0) && (flavor < NumberOfQuarkFlavor)) {
115 value = theAntiQuarkContent[flavor];
116 }
117 return value;
118}
119
121{
122 G4int value;
123 if (idx == 0)
124 value = quark1;
125 else if (idx == 1)
126 value = quark2;
127 else if (idx == 2)
128 value = quark3;
129 else
130 value = -1;
131 return value;
132}
133
135{
136 return exotic;
137}
138
140{
141 return radial;
142}
143
145{
146 return multiplet;
147}
148
150{
151 return spin;
152}
153
155{
156 return (code < 0);
157}
158
160{
161 verboseLevel = value;
162}
163
165{
166 return verboseLevel;
167}
168
169#endif
double G4double
Definition G4Types.hh:83
bool G4bool
Definition G4Types.hh:86
int G4int
Definition G4Types.hh:85
~G4PDGCodeChecker()=default
G4bool IsAntiParticle() const
G4int GetSpin() const
G4int GetVerboseLevel() const
G4int CheckPDGCode(G4int code, const G4String &type)
G4int GetQuarkContent(G4int flavor) const
G4int GetQuarkFlavor(G4int idx) const
G4bool CheckCharge(G4double charge) const
G4int GetExotic() const
G4int GetAntiQuarkContent(G4int flavor) const
void SetVerboseLevel(G4int verbose)
G4int GetRadial() const
G4int GetMultiplet() const