Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 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 // 26 #include "G4LENDFission.hh" 27 #include "G4SystemOfUnits.hh" 28 #include "G4Nucleus.hh" 29 #include "G4IonTable.hh" 30 31 G4HadFinalState * G4LENDFission::ApplyYourself 32 { 33 34 G4double temp = aTrack.GetMaterial()->GetTe 35 36 //migrate to integer A and Z (GetN_asInt re 37 G4int iZ = aTarg.GetZ_asInt(); 38 G4int iA = aTarg.GetA_asInt(); 39 //G4int iM = aTarg.GetM_asInt(); 40 G4int iM = 0; 41 if ( aTarg.GetIsotope() != NULL ) { 42 iM = aTarg.GetIsotope()->Getm(); 43 } 44 45 G4double ke = aTrack.GetKineticEnergy(); 46 47 G4HadFinalState* theResult = &theParticleCh 48 theResult->Clear(); 49 50 G4GIDI_target* aTarget = get_target_from_ma 51 if ( aTarget == NULL ) return returnUnchang 52 std::vector<G4GIDI_Product>* products = aTa 53 if ( products != NULL ) 54 { 55 for ( G4int j = 0; j < int( products->si 56 { 57 G4int jZ = (*products)[j].Z; 58 G4int jA = (*products)[j].A; 59 G4int jM = (*products)[j].m; 60 61 //G4cout << "Z = " << (*products)[ 62 // << ", A = " << (*products)[ 63 // << ", EK = " << (*products)[ 64 // << ", px = " << (*products)[ 65 // << ", py = " << (*products)[ 66 // << ", pz = " << (*products)[ 67 // << ", birthTimeSec = " << (* 68 // << G4endl; 69 70 G4DynamicParticle* theSec = new G4Dyn 71 72 if ( jZ > 0 ) 73 { 74 theSec->SetDefinition( G4IonTable: 75 } 76 else if ( jA == 1 && jZ == 0 ) 77 { 78 theSec->SetDefinition( G4Neutron:: 79 } 80 else 81 { 82 theSec->SetDefinition( G4Gamma::Ga 83 } 84 85 theSec->SetMomentum( G4ThreeVector( ( 86 //G4cout << theSec->GetDefinition()-> 87 theResult->AddSecondary( theSec, secI 88 //Set time for delayed neutrons 89 //Current implementation is a little 90 if ( (*products)[j].birthTimeSec != 0 91 G4double time = (*products)[j].bir 92 theResult->GetSecondary(theResult- 93 } 94 } 95 } 96 delete products; 97 98 theResult->SetStatusChange( stopAndKill ); 99 100 return theResult; 101 102 } 103 const std::pair<G4double, G4double> G4LENDFiss 104 { 105 // max energy non-conservation is mass 106 //return std::pair<G4double, G4double> 107 return std::pair<G4double, G4double>(5 108 } 109