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 // 26 // 23 // >> 24 // $Id: G4gspart.cc,v 1.5 2001/07/16 15:38:23 gcosmo Exp $ >> 25 // GEANT4 tag $Name: geant4-04-00 $ 27 // 26 // 28 #include "G4ProcessManager.hh" 27 #include "G4ProcessManager.hh" 29 #include "G3toG4.hh" 28 #include "G3toG4.hh" 30 #include "G3PartTable.hh" 29 #include "G3PartTable.hh" 31 30 32 void PG4gspart(G4String *tokens) << 31 void PG4gspart(G4String tokens[]) 33 { 32 { 34 // fill the parameter containers 33 // fill the parameter containers 35 G3fillParams(tokens,PTgspart); 34 G3fillParams(tokens,PTgspart); 36 35 37 // interpret the parameters 36 // interpret the parameters 38 G4String chnpar = Spar[0]; 37 G4String chnpar = Spar[0]; 39 G4int ipart = Ipar[0]; 38 G4int ipart = Ipar[0]; 40 G4int itrtyp = Ipar[1]; 39 G4int itrtyp = Ipar[1]; 41 G4int nwb = Ipar[2]; 40 G4int nwb = Ipar[2]; 42 G4double amass = Rpar[0]; 41 G4double amass = Rpar[0]; 43 G4double charge = Rpar[1]; 42 G4double charge = Rpar[1]; 44 G4double tlife = Rpar[2]; 43 G4double tlife = Rpar[2]; 45 G4double *ubuf = &Rpar[3]; 44 G4double *ubuf = &Rpar[3]; 46 45 47 G4gspart(ipart,chnpar,itrtyp,amass,charge, 46 G4gspart(ipart,chnpar,itrtyp,amass,charge,tlife,ubuf,nwb); 48 } 47 } 49 48 50 void G4gspart(G4int, G4String, G4int, G4double << 49 void G4gspart(G4int ipart, G4String chnpar, G4int itrtyp, G4double amass, 51 G4double, G4double, G4double*, G << 50 G4double charge, G4double tlife, G4double*, G4int) 52 { 51 { 53 } 52 } 54 53 55 #ifdef OMIT_CODE 54 #ifdef OMIT_CODE 56 void G4gspart(G4int ipart, G4String chnpar, G4 55 void G4gspart(G4int ipart, G4String chnpar, G4int itrtyp, G4double amass, 57 G4double charge, G4double tlife, 56 G4double charge, G4double tlife, G4double*, G4int) 58 { 57 { 59 // Handle conversion of itrtyp into an app 58 // Handle conversion of itrtyp into an appropriate ProcessManager 60 G4ProcessManager *mgr = 0; 59 G4ProcessManager *mgr = 0; 61 switch (itrtyp) { 60 switch (itrtyp) { 62 case 1: 61 case 1: 63 // gamma 62 // gamma 64 // $$$ mgr = gammaProcessManager; 63 // $$$ mgr = gammaProcessManager; 65 break; 64 break; 66 case 2: 65 case 2: 67 // electron 66 // electron 68 // $$$ mgr = electronProcessManager; 67 // $$$ mgr = electronProcessManager; 69 break; 68 break; 70 case 3: 69 case 3: 71 // neutron 70 // neutron 72 // $$$ mgr = neutronProcessManager; 71 // $$$ mgr = neutronProcessManager; 73 break; 72 break; 74 case 4: 73 case 4: 75 // hadron 74 // hadron 76 // $$$ mgr = hadronProcessManager; 75 // $$$ mgr = hadronProcessManager; 77 break; 76 break; 78 case 5: 77 case 5: 79 // muon 78 // muon 80 // $$$ mgr = muonProcessManager; 79 // $$$ mgr = muonProcessManager; 81 break; 80 break; 82 case 6: 81 case 6: 83 // geantino 82 // geantino 84 // $$$ mgr = geantinoProcessManager; 83 // $$$ mgr = geantinoProcessManager; 85 break; 84 break; 86 case 7: 85 case 7: 87 // heavy ion 86 // heavy ion 88 // $$$ mgr = heavyIonProcessManager; 87 // $$$ mgr = heavyIonProcessManager; 89 break; 88 break; 90 case 8: 89 case 8: 91 // light ion 90 // light ion 92 // $$$ mgr = lightIonProcessManager; 91 // $$$ mgr = lightIonProcessManager; 93 break; 92 break; 94 default: 93 default: 95 // $$$ mgr = theProcessManager; 94 // $$$ mgr = theProcessManager; 96 break; 95 break; 97 } 96 } 98 97 99 // Create the particle; provide parameters 98 // Create the particle; provide parameters and a process mgr. 100 G4ParticleDefinition *part = new G4Particl 99 G4ParticleDefinition *part = new G4ParticleDefinition(chnpar); 101 part->SetProcessManager(mgr); 100 part->SetProcessManager(mgr); 102 part->SetPDGMass(amass); 101 part->SetPDGMass(amass); 103 part->SetPDGCharge(charge); 102 part->SetPDGCharge(charge); 104 part->SetPDGLifeTime(tlife); 103 part->SetPDGLifeTime(tlife); 105 104 106 // add to particle table 105 // add to particle table 107 G3Part.put(&ipart, part); 106 G3Part.put(&ipart, part); 108 } 107 } 109 #endif 108 #endif 110 109