Geant4 Cross Reference |
1 // 1 // 2 // ******************************************* 2 // ******************************************************************** 3 // * License and Disclaimer << 3 // * DISCLAIMER * 4 // * 4 // * * 5 // * The Geant4 software is copyright of th << 5 // * The following disclaimer summarizes all the specific disclaimers * 6 // * the Geant4 Collaboration. It is provided << 6 // * of contributors to this software. The specific disclaimers,which * 7 // * conditions of the Geant4 Software License << 7 // * govern, are listed with their locations in: * 8 // * LICENSE and available at http://cern.ch/ << 8 // * http://cern.ch/geant4/license * 9 // * include a list of copyright holders. << 10 // * 9 // * * 11 // * Neither the authors of this software syst 10 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 11 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 12 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 13 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file << 14 // * use. * 16 // * for the full disclaimer and the limitatio << 17 // * 15 // * * 18 // * This code implementation is the result << 16 // * This code implementation is the intellectual property of the * 19 // * technical work of the GEANT4 collaboratio << 17 // * GEANT4 collaboration. * 20 // * By using, copying, modifying or distri << 18 // * By copying, distributing or modifying the Program (or any work * 21 // * any work based on the software) you ag << 19 // * based on the Program) you indicate your acceptance of this * 22 // * use in resulting scientific publicati << 20 // * statement, and all its terms. * 23 // * acceptance of all terms of the Geant4 Sof << 24 // ******************************************* 21 // ******************************************************************** 25 // 22 // >> 23 // >> 24 // $Id: G4ExcitedBaryonConstructor.cc,v 1.6 2001/07/11 10:02:07 gunter Exp $ >> 25 // GEANT4 tag $Name: geant4-05-02 $ >> 26 // >> 27 // 26 // ------------------------------------------- 28 // -------------------------------------------------------------- 27 // GEANT 4 class implementation file << 29 // GEANT 4 class implementation file 28 // 30 // 29 // History: first implementation, based o 31 // History: first implementation, based on object model of 30 // 10 oct 1998 H.Kurashige 32 // 10 oct 1998 H.Kurashige 31 // ------------------------------------------- 33 // --------------------------------------------------------------- 32 34 >> 35 33 #include "G4ExcitedBaryonConstructor.hh" 36 #include "G4ExcitedBaryonConstructor.hh" 34 37 35 #include "G4ExcitedBaryons.hh" << 36 #include "G4ParticleDefinition.hh" 38 #include "G4ParticleDefinition.hh" 37 #include "G4ParticleTable.hh" 39 #include "G4ParticleTable.hh" 38 #include "G4SystemOfUnits.hh" << 40 #include "G4ShortLivedTable.hh" >> 41 #include "G4PhaseSpaceDecayChannel.hh" >> 42 #include "G4VDecayChannel.hh" >> 43 #include "G4DecayTable.hh" >> 44 >> 45 >> 46 G4ExcitedBaryonConstructor::G4ExcitedBaryonConstructor(G4int nStates, >> 47 G4int isoSpin) >> 48 : NumberOfStates(nStates), iIsoSpin(isoSpin), type("baryon"), >> 49 iConjugation(0), iGParity(0), leptonNumber(0), baryonNumber(1) >> 50 { >> 51 } 39 52 40 G4ExcitedBaryonConstructor::G4ExcitedBaryonCon << 53 G4ExcitedBaryonConstructor::~G4ExcitedBaryonConstructor() 41 : NumberOfStates(nStates), iIsoSpin(isoSpin) << 54 { 42 {} << 55 } 43 56 44 void G4ExcitedBaryonConstructor::Construct(G4i 57 void G4ExcitedBaryonConstructor::Construct(G4int idx) 45 { 58 { 46 if (idx < 0) { << 59 if (idx < 0 ) { 47 for (G4int state = 0; state < NumberOfStat << 60 for (G4int state=0; state< NumberOfStates; state +=1) { 48 ConstructParticle(state); << 61 ConstructParticle(state); 49 ConstructAntiParticle(state); << 62 ConstructAntiParticle(state); 50 } << 63 } 51 } << 64 } else if (idx < NumberOfStates) { 52 else if (idx < NumberOfStates) { << 53 ConstructParticle(idx); 65 ConstructParticle(idx); 54 ConstructAntiParticle(idx); 66 ConstructAntiParticle(idx); 55 } << 67 } else { 56 else { << 57 #ifdef G4VERBOSE 68 #ifdef G4VERBOSE 58 if (G4ParticleTable::GetParticleTable()->G << 69 if (G4ParticleTable::GetParticleTable()->GetVerboseLevel()>1) { 59 G4cerr << "G4ExcitedBaryonConstructor::C 70 G4cerr << "G4ExcitedBaryonConstructor::Construct()"; 60 G4cerr << " illegal index os state = " 71 G4cerr << " illegal index os state = " << idx << G4endl; 61 } 72 } 62 #endif 73 #endif 63 } 74 } 64 } 75 } 65 76 >> 77 >> 78 #include "G4ExcitedBaryons.hh" >> 79 66 void G4ExcitedBaryonConstructor::ConstructPart 80 void G4ExcitedBaryonConstructor::ConstructParticle(G4int idx) 67 { 81 { 68 if (!Exist(idx)) return; << 82 if (!Exist(idx) ) return; 69 83 70 // Construct Resonace particles as dynami 84 // Construct Resonace particles as dynamic object 71 // Arguments for constructor are as follo 85 // Arguments for constructor are as follows 72 // name mass 86 // name mass width charge 73 // 2*spin parity C-co 87 // 2*spin parity C-conjugation 74 // 2*Isospin 2*Isospin3 88 // 2*Isospin 2*Isospin3 G-parity 75 // type lepton number bary 89 // type lepton number baryon number PDG encoding 76 // stable lifetime de << 90 // stable lifetime decay table 77 << 91 >> 92 78 G4String name; 93 G4String name; 79 G4ParticleDefinition* particle; 94 G4ParticleDefinition* particle; >> 95 >> 96 for (G4int iIso3 = -1*iIsoSpin; iIso3 <= iIsoSpin; iIso3 +=2) { >> 97 name= GetName(iIso3, idx); 80 98 81 for (G4int iIso3 = -1 * iIsoSpin; iIso3 <= i << 82 name = GetName(iIso3, idx); << 83 << 84 // clang-format off << 85 particle = new G4ExcitedBaryons( 99 particle = new G4ExcitedBaryons( 86 name, GetMass(idx,iIso3), GetWidth( << 100 name, GetMass(idx), GetWidth(idx), GetCharge(iIso3), 87 GetiSpin(idx), GetiParity(idx), iConjugatio 101 GetiSpin(idx), GetiParity(idx), iConjugation, 88 iIsoSpin, iIso3, iGParit 102 iIsoSpin, iIso3, iGParity, 89 type, leptonNumber, baryo 103 type, leptonNumber, baryonNumber, GetEncoding( iIso3,idx), 90 false, 0.0, null << 104 false, 0.0, NULL 91 ); 105 ); 92 // clang-format on << 93 << 94 ((G4ExcitedBaryons*)(particle))->SetMultip 106 ((G4ExcitedBaryons*)(particle))->SetMultipletName(GetMultipletName(idx)); 95 particle->SetDecayTable(CreateDecayTable(n << 107 particle->SetDecayTable(CreateDecayTable( name, iIso3, idx, false)); 96 } 108 } 97 } 109 } 98 110 99 void G4ExcitedBaryonConstructor::ConstructAnti 111 void G4ExcitedBaryonConstructor::ConstructAntiParticle(G4int idx) 100 { 112 { 101 if (!Exist(idx)) return; << 113 if (!Exist(idx) ) return; 102 114 103 // Construct Resonace particles as dynami 115 // Construct Resonace particles as dynamic object 104 // Arguments for constructor are as follo 116 // Arguments for constructor are as follows 105 // name mass 117 // name mass width charge 106 // 2*spin parity C-co 118 // 2*spin parity C-conjugation 107 // 2*Isospin 2*Isospin3 119 // 2*Isospin 2*Isospin3 G-parity 108 // type lepton number bary 120 // type lepton number baryon number PDG encoding 109 // stable lifetime de << 121 // stable lifetime decay table 110 << 122 >> 123 111 G4String name; 124 G4String name; 112 G4ParticleDefinition* particle; 125 G4ParticleDefinition* particle; 113 << 126 114 for (G4int iIso3 = -1 * iIsoSpin; iIso3 <= i << 127 for (G4int iIso3 = -1*iIsoSpin; iIso3 <= iIsoSpin; iIso3 +=2) { 115 name = GetName(iIso3, idx); 128 name = GetName(iIso3, idx); 116 name = "anti_" + name; 129 name = "anti_" + name; 117 130 118 // clang-format off << 119 particle = new G4ExcitedBaryons( 131 particle = new G4ExcitedBaryons( 120 name, GetMass(idx,iIso3), GetWidth(idx,iIso3 << 132 name, GetMass(idx), GetWidth(idx), -1.0*GetCharge(iIso3), 121 GetiSpin(idx), GetiParity(idx), iConjugatio 133 GetiSpin(idx), GetiParity(idx), iConjugation, 122 iIsoSpin, -1*iIso3, iGParit 134 iIsoSpin, -1*iIso3, iGParity, 123 type, leptonNumber, 135 type, leptonNumber, 124 -1*baryonNumber, 136 -1*baryonNumber, 125 -1*GetEncoding( iIs 137 -1*GetEncoding( iIso3,idx), 126 false, 0.0, nullptr << 138 false, 0.0, NULL 127 ); 139 ); 128 // clang-format on << 129 140 130 ((G4ExcitedBaryons*)(particle))->SetMultip 141 ((G4ExcitedBaryons*)(particle))->SetMultipletName(GetMultipletName(idx)); 131 particle->SetDecayTable(CreateDecayTable(n << 142 particle->SetDecayTable(CreateDecayTable( name, iIso3, idx, true)); 132 } 143 } >> 144 133 } 145 } 134 146 135 G4double G4ExcitedBaryonConstructor::GetCharge << 147 G4double G4ExcitedBaryonConstructor::GetCharge(G4int iIsoSpin3) 136 { 148 { 137 G4double charge = 0.0; 149 G4double charge = 0.0; 138 // clang-format off << 150 static G4double quark_charge[7] = 139 static const G4double quark_charge[7] = << 140 { 151 { 141 0., -1./3., +2./3., -1./3., +2./3., -1./3. 152 0., -1./3., +2./3., -1./3., +2./3., -1./3., +2./3. 142 }; 153 }; 143 // clang-format on << 154 144 << 155 for (G4int idx=0; idx<3; idx+=1){ 145 for (G4int idx = 0; idx < 3; idx += 1) { << 156 charge += quark_charge[GetQuarkContents(idx, iIsoSpin3)]*eplus; 146 charge += quark_charge[GetQuarkContents(id << 147 } 157 } 148 return charge; 158 return charge; 149 } 159 } 150 160 151 G4int G4ExcitedBaryonConstructor::GetEncoding( << 161 G4int G4ExcitedBaryonConstructor::GetEncoding(G4int iIsoSpin3, G4int idxState) 152 { 162 { 153 G4int encoding = GetEncodingOffset(idxState) 163 G4int encoding = GetEncodingOffset(idxState); 154 encoding += 1000 * GetQuarkContents(0, iIsoS << 164 encoding += 1000*GetQuarkContents(0, iIsoSpin3); 155 encoding += 100 * GetQuarkContents(1, iIsoSp << 165 encoding += 100*GetQuarkContents(1, iIsoSpin3); 156 encoding += 10 * GetQuarkContents(2, iIsoSpi << 166 encoding += 10*GetQuarkContents(2, iIsoSpin3); 157 if (GetiSpin(idxState) < 9) { << 167 if (GetiSpin(idxState) <9) { 158 encoding += GetiSpin(idxState) + 1; << 168 encoding += GetiSpin(idxState) +1; 159 } << 169 } else { 160 else { << 170 encoding += (GetiSpin(idxState) +1)*10000000; 161 encoding += (GetiSpin(idxState) + 1) * 100 << 162 } 171 } 163 return encoding; 172 return encoding; 164 } 173 } 165 174