ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4ExcitedSigmaConstructor.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4ExcitedSigmaConstructor.hh
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 //
27 //
28 //
29 // --------------------------------------------------------------
30 // GEANT 4 class implementation file
31 //
32 // History: first implementation, based on object model of
33 // 10 oct 1998 H.Kurashige
34 // ---------------------------------------------------------------
35 #ifndef G4ExcitedSigmaConstructor_h
36 #define G4ExcitedSigmaConstructor_h 1
37 
38 #include "globals.hh"
39 #include "G4ios.hh"
41 
43 {
44  //This class is a utility class for construction
45  //short lived particles
46 
47  public:
50 
51  protected:
52  virtual G4bool Exist( G4int ){return true;}
53 
55  virtual G4String GetName(G4int iIso3, G4int iState);
56  virtual G4String GetMultipletName(G4int iState);
57  virtual G4double GetMass( G4int state, G4int iso);
58  virtual G4double GetWidth( G4int state, G4int iso);
59  virtual G4int GetiSpin(G4int iState);
60  virtual G4int GetiParity(G4int iState);
61  virtual G4int GetEncodingOffset(G4int iState);
62 
64  G4int iIso3, G4int iState,
65  G4bool fAnti = false);
66  private:
68  G4double br, G4int iIso3, G4bool fAnti);
70  G4double br, G4int iIso3, G4bool fAnti);
72  G4double br, G4int iIso3, G4bool fAnti);
74  G4double br, G4int iIso3, G4bool fAnti);
76  G4double br, G4int iIso3, G4bool fAnti);
78  G4double br, G4int iIso3, G4bool fAnti);
80  G4double br, G4int iIso3, G4bool fAnti);
82  G4double br, G4int iIso3, G4bool fAnti);
83 
84  public:
85  enum { NStates = 8 };
86  private:
87  enum { SigmaIsoSpin = 2 };
88 
89  private:
90  static const char* name[ NStates ];
91  static const G4double mass[ NStates ];
92  static const G4double width[ NStates ];
93  static const G4int iSpin[ NStates ];
94  static const G4int iParity[ NStates ];
95  static const G4int encodingOffset[ NStates ];
96 
97  public:
98  enum { NumberOfDecayModes = 8 };
99  private:
100  enum { NK=0, NKStar=1, SigmaPi=2, SigmaStarPi=3, LambdaPi=4,
102  private:
104 };
105 
106 
107 
108 inline
110 {
111  return iSpin[iState];
112 }
113 
114 inline
116 {
117  return iParity[iState];
118 }
119 
120 inline
122 {
123  return encodingOffset[iState];
124 }
125 
126 inline
128 {
129  G4int quark=0;
130  if ( iQ == 0 ){
131  // s-quark
132  quark = 3;
133  } else if ( iQ == 1 ){
134  if (iIso3 == -2) {
135  // d-quark
136  quark = 1;
137  } else {
138  // u-quark
139  quark = 2;
140  }
141  } else if ( iQ == 2 ){
142  if (iIso3 == +2) {
143  // u-quark
144  quark = 2;
145  } else {
146  // d-quark
147  quark = 1;
148  }
149  }
150  return quark;
151 }
152 
153 inline
155 {
156  return name[iState];
157 }
158 
159 inline
161  {
162  G4String particle = name[iState];
163  if (iIso3 == +2) {
164  particle += "+";
165  } else if (iIso3 == 0) {
166  particle += "0";
167  } else if (iIso3 == -2) {
168  particle += "-";
169  }
170  return particle;
171 }
172 #endif
173 
174 
175 
176 
177 
178 
179 
180 
181 
182