ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4ExcitedMesonConstructor.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4ExcitedMesonConstructor.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 // This code plementation is the intellectual property of
27 // the GEANT4 collaboration.
28 //
29 // By copying, distributing or modifying the Program (or any work
30 // based on the Program) you indicate your acceptance of this statement,
31 // and all its terms.
32 //
33 //
34 //
35 // --------------------------------------------------------------
36 // GEANT 4 class implementation file
37 //
38 // History: first implementation, based on object model of
39 // 10 oct 1998 H.Kurashige
40 // ---------------------------------------------------------------
41 #ifndef G4ExcitedMesonConstructor_h
42 #define G4ExcitedMesonConstructor_h 1
43 
44 #include "globals.hh"
45 #include "G4ios.hh"
46 class G4DecayTable;
47 
49 {
50  //This class is a utility class for construction
51  //short lived particles
52 
53  public:
54  G4ExcitedMesonConstructor(G4int nStates = 0, G4int isoSpin=0);
56 
57  public:
58  virtual void Construct(G4int indexOfState = -1);
59 
60  protected:
61  void ConstructMesons(G4int indexOfState, G4int indexOfType);
62 
63  G4String GetName(G4int iIso3, G4int iState, G4int idxType);
64  G4double GetCharge(G4int iIsoSpin3);
65  G4int GetEncoding(G4int iIsoSpin3, G4int idxState, G4int idxType);
66  G4int GetQuarkContents(G4int iQ, G4int iIso3, G4int iType);
67 
68  public:
69  enum { NMultiplets = 10 };
70  protected:
71  enum {
72  N11P1 = 0, N13P0 = 1, N13P1 = 2, N13P2 = 3,
73  N11D2 = 4, N13D1 = 5, N13D3 = 6,
74  N21S0 = 7, N23S1 = 8, N23P2 = 9
75  };
76 
77  public:
78  enum { NMesonTypes = 5 };
79  protected:
80  enum { TPi=0, TEta=1, TEtaPrime=2, TK=3, TAntiK=4 };
81 
82  protected:
83  const G4String type;
86 
87  G4bool Exist(G4int idxState, G4int idxType);
88  G4double GetCharge(G4int iIsoSpin3, G4int idxType);
89  static const char* name[ NMultiplets ][ NMesonTypes ];
90  static const G4double mass[ NMultiplets ][ NMesonTypes ];
91  static const G4double massKdiff[ NMultiplets ];
92  static const G4double width[ NMultiplets ][ NMesonTypes ];
93  static const G4double widthKdiff[ NMultiplets ];
94  static const G4int iIsoSpin[ NMesonTypes ];
95  static const G4int iSpin[ NMultiplets ];
96  static const G4int iParity[ NMultiplets ];
97  static const G4int iGParity[ NMultiplets ][ NMesonTypes ];
99  static const G4int encodingOffset[ NMultiplets ];
100 
101  public:
102  enum { NumberOfDecayModes = 19 };
103  protected:
104  enum { MPiGamma = 0, MRhoGamma=1, M2Pi=2, MPiRho=3,
105  M3Pi= 4, MPiEta=5, M4Pi=6, MKKStar=7,
107  M2Eta=12, M2K=13, M2KPi=14, MPiOmega=15,
108  MPiF2=16, MPiF0=17, MPiA2=18 };
109  enum { MKPi = 0, MKStarPi=1, MKRho=2, MKOmega=3,
111 
112 
114 
116  G4int , G4int, G4int);
117 
119  G4double br, G4int iIso3, G4int iType);
121  G4double br, G4int iIso3, G4int iType);
123  G4double br, G4int iIso3, G4int iType);
125  G4double br, G4int iIso3, G4int iType);
127  G4double br, G4int iIso3, G4int iType);
129  G4double br, G4int iIso3, G4int iType);
131  G4double br, G4int iIso3, G4int iType);
133  G4double br, G4int iIso3,G4int iIso);
135  G4double br, G4int iIso3, G4int iIso);
137  G4double br, G4int iIso3, G4int iIso);
139  G4double br, G4int iIso3, G4int iIso);
141  G4double br, G4int iIso3, G4int iIso);
143  G4double br, G4int iIso3, G4int iIso);
145  G4double br, G4int iIso3, G4int iIso);
147  G4double br, G4int iIso3, G4int iIso);
149  G4double br, G4int iIso3, G4int iIso);
151  G4double br, G4int iIso3, G4int iIso);
153  G4double br, G4int iIso3, G4int iIso);
155  G4double br, G4int iIso3, G4int iIso);
157  G4double br, G4int iIso3, G4int iIso);
159  G4double br, G4int iIso3, G4int iIso);
161  G4double br, G4int iIso3, G4int iIso);
163  G4double br, G4int iIso3, G4int iIso);
165  G4double br, G4int iIso3, G4int iIso);
167  G4double br, G4int iIso3, G4int iIso);
169  G4double br, G4int iIso3, G4int iIso);
170 
171 
172 
173 };
174 
175 
176 inline
178  G4int iState,
179  G4int iType)
180 {
181  G4String particle = name[iState][iType];
182  if (iType == TPi) {
183  if ( iIso3 == +2 ){
184  particle += "+";
185  } else if ( iIso3 == -2 ){
186  particle += "-";
187  } else {
188  particle += "0";
189  }
190  } else if (iType == TK) {
191  if ( iIso3 == +1 ){
192  particle += "+";
193  } else if ( iIso3 == -1 ){
194  particle += "0";
195  }
196  } else if (iType == TAntiK) {
197  if ( iIso3 == +1 ){
198  particle += "0";
199  particle = "anti_" + particle;
200  } else if ( iIso3 == -1 ){
201  particle += "-";
202  }
203  }
204  return particle;
205 }
206 
207 #endif