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 #ifndef G4BCDecay_h 23 #ifndef G4BCDecay_h 27 #define G4BCDecay_h 1 24 #define G4BCDecay_h 1 28 #include "G4BCAction.hh" 25 #include "G4BCAction.hh" 29 #include "G4CollisionInitialState.hh" 26 #include "G4CollisionInitialState.hh" 30 #include "G4KineticTrack.hh" 27 #include "G4KineticTrack.hh" 31 #include "G4KineticTrackVector.hh" 28 #include "G4KineticTrackVector.hh" 32 #include <vector> 29 #include <vector> 33 30 34 class G4BCDecay : public G4BCAction 31 class G4BCDecay : public G4BCAction 35 { 32 { 36 public: 33 public: 37 34 38 G4BCDecay(){} 35 G4BCDecay(){} 39 virtual ~G4BCDecay(){} 36 virtual ~G4BCDecay(){} 40 virtual const std::vector<G4CollisionInitial 37 virtual const std::vector<G4CollisionInitialState *> & 41 GetCollisions(G4KineticTrack * aProje 38 GetCollisions(G4KineticTrack * aProjectile, 42 std::vector<G4KineticTrack *> 39 std::vector<G4KineticTrack *> & , 43 G4double theCurrentTime) 40 G4double theCurrentTime) 44 { 41 { 45 theColl.clear(); 42 theColl.clear(); 46 if(aProjectile->GetDefinition()->IsShortLi 43 if(aProjectile->GetDefinition()->IsShortLived()) 47 { 44 { 48 G4double aTime = theCurrentTime+aProject 45 G4double aTime = theCurrentTime+aProjectile->SampleResidualLifetime(); 49 G4KineticTrackVector noTarget; 46 G4KineticTrackVector noTarget; 50 G4CollisionInitialState * aDecay = 47 G4CollisionInitialState * aDecay = 51 new G4CollisionInitialState(aTime, 48 new G4CollisionInitialState(aTime, aProjectile, noTarget, this); 52 theColl.push_back(aDecay); 49 theColl.push_back(aDecay); 53 } 50 } 54 return theColl; 51 return theColl; 55 } 52 } 56 53 57 virtual G4KineticTrackVector * GetFinalState 54 virtual G4KineticTrackVector * GetFinalState(G4KineticTrack * aProjectile, 58 std::vector<G4Kin 55 std::vector<G4KineticTrack *> & ) 59 { 56 { 60 return aProjectile->Decay(); 57 return aProjectile->Decay(); 61 } 58 } 62 59 63 private: 60 private: 64 61 65 std::vector<G4CollisionInitialState *> theCo 62 std::vector<G4CollisionInitialState *> theColl; 66 }; 63 }; 67 64 68 #endif 65 #endif 69 66