Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/particles/management/src/G4Ions.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /particles/management/src/G4Ions.cc (Version 11.3.0) and /particles/management/src/G4Ions.cc (Version 1.1)


                                                   >>   1 // This code implementation is the intellectual property of
                                                   >>   2 // the GEANT4 collaboration.
  1 //                                                  3 //
  2 // ******************************************* <<   4 // By copying, distributing or modifying the Program (or any work
  3 // * License and Disclaimer                    <<   5 // based on the Program) you indicate your acceptance of this statement,
  4 // *                                           <<   6 // and all its terms.
  5 // * The  Geant4 software  is  copyright of th << 
  6 // * the Geant4 Collaboration.  It is provided << 
  7 // * conditions of the Geant4 Software License << 
  8 // * LICENSE and available at  http://cern.ch/ << 
  9 // * include a list of copyright holders.      << 
 10 // *                                           << 
 11 // * Neither the authors of this software syst << 
 12 // * institutes,nor the agencies providing fin << 
 13 // * work  make  any representation or  warran << 
 14 // * regarding  this  software system or assum << 
 15 // * use.  Please see the license in the file  << 
 16 // * for the full disclaimer and the limitatio << 
 17 // *                                           << 
 18 // * This  code  implementation is the result  << 
 19 // * technical work of the GEANT4 collaboratio << 
 20 // * By using,  copying,  modifying or  distri << 
 21 // * any work based  on the software)  you  ag << 
 22 // * use  in  resulting  scientific  publicati << 
 23 // * acceptance of all terms of the Geant4 Sof << 
 24 // ******************************************* << 
 25 //                                                  7 //
 26 // G4Ions class implementation                 <<   8 // $Id: G4Ions.cc,v 1.3.6.1.2.2 1999/12/14 07:08:14 gunter Exp $
                                                   >>   9 // GEANT4 tag $Name: geant4-01-01 $
 27 //                                                 10 //
 28 // Authors: G.Cosmo, 4 April 1996 - Object mod <<  11 // 
 29 //          H.Kurashige, 27 June 1998 - First  <<  12 // ----------------------------------------------------------------------
 30 // ------------------------------------------- <<  13 //      GEANT 4 class implementation file
                                                   >>  14 //
                                                   >>  15 //      For information related to this code contact:
                                                   >>  16 //      CERN, CN Division, ASD Group
                                                   >>  17 //      History: first implementation, based on object model of
                                                   >>  18 //      4th April 1996, G.Cosmo
                                                   >>  19 // **********************************************************************
 31                                                    20 
 32 #include "G4Ions.hh"                           <<  21 #include "g4std/fstream"
                                                   >>  22 #include "g4std/iomanip"
 33                                                    23 
 34 #include "G4PhysicalConstants.hh"              <<  24 #include "G4Ions.hh"
 35 #include "G4SystemOfUnits.hh"                  << 
 36                                                    25 
 37 #include <fstream>                             <<  26  // ######################################################################
 38 #include <iomanip>                             <<  27 // ###                           Ions                                ###
                                                   >>  28 // ######################################################################
 39                                                    29 
 40 // clang-format off                            << 
 41 G4Ions::G4Ions(                                    30 G4Ions::G4Ions(
 42        const G4String&     aName,        G4dou     31        const G4String&     aName,        G4double            mass,
 43        G4double            width,        G4dou     32        G4double            width,        G4double            charge,   
 44        G4int               iSpin,        G4int     33        G4int               iSpin,        G4int               iParity,    
 45        G4int               iConjugation, G4int     34        G4int               iConjugation, G4int               iIsospin,   
 46        G4int               iIsospin3,    G4int     35        G4int               iIsospin3,    G4int               gParity,
 47        const G4String&     pType,        G4int     36        const G4String&     pType,        G4int               lepton,      
 48        G4int               baryon,       G4int     37        G4int               baryon,       G4int               encoding,
 49        G4bool              stable,       G4dou     38        G4bool              stable,       G4double            lifetime,
 50        G4DecayTable        *decaytable , G4boo <<  39        G4DecayTable        *decaytable )
 51        const G4String&     subType,            <<  40  : G4ParticleWithCuts( aName,mass,width,charge,iSpin,iParity,
 52        G4int               anti_encoding,      <<  41            iConjugation,iIsospin,iIsospin3,gParity,pType,
 53        G4double            excitation,         <<  42            lepton,baryon,encoding,stable,lifetime,decaytable )
 54        G4int               isomer              << 
 55 )                                              << 
 56   : G4ParticleDefinition( aName,mass,width,cha << 
 57                           iConjugation,iIsospi << 
 58                           lepton,baryon,encodi << 
 59         shortlived, subType, anti_encoding),   << 
 60     theExcitationEnergy(excitation),           << 
 61     theIsomerLevel(isomer)                     << 
 62 // clang-format on                             << 
 63 {                                              << 
 64   if ((aName == "proton") || (aName == "neutro << 
 65     isGeneralIon = false;                      << 
 66   }                                            << 
 67   else if ((aName == "GenericIon") || (aName = << 
 68            || (aName == "deuteron") || (aName  << 
 69   {                                            << 
 70     isGeneralIon = false;                      << 
 71   }                                            << 
 72   else if ((aName == "anti_He3") || (aName ==  << 
 73            || (aName == "anti_alpha"))         << 
 74   {                                            << 
 75     isGeneralIon = false;                      << 
 76   }                                            << 
 77   else if ((aName == "iron") || (aName == "oxy << 
 78            || (aName == "helium") || (aName == << 
 79            || (aName == "Ps-1s") || (aName ==  << 
 80   {                                            << 
 81     isGeneralIon = false;                      << 
 82   }                                            << 
 83   else if (aName == "hypertriton" || aName ==  << 
 84            || aName == "anti_hyperalpha" || aN << 
 85            || aName == "doublehyperH4" || aNam << 
 86            || aName == "doublehyperdoubleneutr << 
 87            || aName == "hyperHe5" || aName ==  << 
 88   {                                            << 
 89     isGeneralIon = false;                      << 
 90   }                                            << 
 91   else {                                       << 
 92     isGeneralIon = true;                       << 
 93   }                                            << 
 94                                                << 
 95   // isomer level isset to 9                   << 
 96   // if isomer level is set to 0 for excited s << 
 97   //                                           << 
 98   if ((theExcitationEnergy > 0.0) && (isomer = << 
 99                                                << 
100   if (GetAtomicNumber() == 0) {                << 
101     // AtomicNumber/Mass is positive even for  << 
102     SetAtomicNumber(std::abs(G4int(GetPDGCharg << 
103     SetAtomicMass(std::abs(GetBaryonNumber())) << 
104   }                                            << 
105 }                                              << 
106                                                << 
107 G4Ions::G4FloatLevelBase G4Ions::FloatLevelBas << 
108 {                                                  43 {
109   G4Ions::G4FloatLevelBase flb = noFloat;      <<  44   // initialize excitation energy/level
110   switch (flbChar) {                           <<  45    theExcitationEnergy = 0.0;
111     case 'x':                                  << 
112     case 'X':                                  << 
113       flb = plusX;                             << 
114       break;                                   << 
115     case 'y':                                  << 
116     case 'Y':                                  << 
117       flb = plusY;                             << 
118       break;                                   << 
119     case 'z':                                  << 
120     case 'Z':                                  << 
121       flb = plusZ;                             << 
122       break;                                   << 
123     case 'u':                                  << 
124     case 'U':                                  << 
125       flb = plusU;                             << 
126       break;                                   << 
127     case 'v':                                  << 
128     case 'V':                                  << 
129       flb = plusV;                             << 
130       break;                                   << 
131     case 'w':                                  << 
132     case 'W':                                  << 
133       flb = plusW;                             << 
134       break;                                   << 
135     case 'r':                                  << 
136     case 'R':                                  << 
137       flb = plusR;                             << 
138       break;                                   << 
139     case 's':                                  << 
140     case 'S':                                  << 
141       flb = plusS;                             << 
142       break;                                   << 
143     case 't':                                  << 
144     case 'T':                                  << 
145       flb = plusT;                             << 
146       break;                                   << 
147     case 'a':                                  << 
148     case 'A':                                  << 
149       flb = plusA;                             << 
150       break;                                   << 
151     case 'b':                                  << 
152     case 'B':                                  << 
153       flb = plusB;                             << 
154       break;                                   << 
155     case 'c':                                  << 
156     case 'C':                                  << 
157       flb = plusC;                             << 
158       break;                                   << 
159     case 'd':                                  << 
160     case 'D':                                  << 
161       flb = plusD;                             << 
162       break;                                   << 
163     case 'e':                                  << 
164     case 'E':                                  << 
165       flb = plusE;                             << 
166       break;                                   << 
167     case '\0':                                 << 
168     default:                                   << 
169       break;                                   << 
170   }                                            << 
171   return flb;                                  << 
172 }                                                  46 }
173                                                    47 
174 G4Ions::G4FloatLevelBase G4Ions::FloatLevelBas << 
175 {                                              << 
176   // clang-format off                          << 
177   static G4Ions::G4FloatLevelBase flb[] =      << 
178   { noFloat,                                   << 
179     plusX, plusY, plusZ, plusU, plusV, plusW,  << 
180     plusR, plusS, plusT, plusA, plusB, plusC,  << 
181   // clang-format on                           << 
182   return (flbIdx >= 0 && flbIdx < 15) ? flb[fl << 
183 }                                              << 
184                                                    48 
185 char G4Ions::FloatLevelBaseChar(G4Ions::G4Floa <<  49 G4Ions* G4Ions::IonsDefinition()
186 {                                                  50 {
187   // clang-format off                          <<  51   return this;
188   static char flbChar[] = {'\0', 'X', 'Y', 'Z' << 
189                            'S',  'T', 'A', 'B' << 
190   // clang-format on                           << 
191   return flbChar[static_cast<G4int>(flb)];     << 
192 }                                                  52 }
193                                                    53