00001 // This code implementation is the intellectual property of 00002 // the RD44 GEANT4 collaboration. 00003 // 00004 // By copying, distributing or modifying the Program (or any work 00005 // based on the Program) you indicate your acceptance of this statement, 00006 // and all its terms. 00007 // 00008 // $Id: MJGeneratorPNNLRadioisotope.hh,v 1.2 2004/11/09 13:42:39 xliu Exp $ 00009 // GEANT4 tag $Name: $ 00010 // 00011 // File: MJGeneratorPNNLRadioisotope.hh 00012 // Description: Single-isotope storage class for PNNL radiactive decay model 00013 // Version: 1.0 00014 // Created: 2004-04-06 00015 // Author: David Jordan 00016 // mail: david.jordan@pnl.gov 00017 // phone: 509-376-0115 00018 00019 #ifndef MJGeneratorPNNLRadioisotope_h 00020 #define MJGeneratorPNNLRadioisotope_h 1 00021 00022 #include "generators/MJGeneratorPNNLCascade.hh" 00023 #include "generators/MJGeneratorPNNLCascadeEvent.hh" 00024 #include "generators/MJGeneratorPNNLLookup.hh" 00025 #include "globals.hh" 00026 00027 class MJGeneratorPNNLRadioisotope 00028 { 00029 public: 00030 MJGeneratorPNNLRadioisotope() { }; 00031 MJGeneratorPNNLRadioisotope(G4String cascade_filename); 00032 MJGeneratorPNNLRadioisotope(const MJGeneratorPNNLRadioisotope& 00033 RadioIsotope); 00034 ~MJGeneratorPNNLRadioisotope(); 00035 void operator=(const MJGeneratorPNNLRadioisotope& RadioIsotope); 00036 00037 void SetCascadeFilename(G4String cascade_filename) { 00038 fCascade_filename = cascade_filename; }; 00039 G4String GetCascadeFilename() { return fCascade_filename; }; 00040 00041 MJGeneratorPNNLCascadeEvent DoCascadeEvent() const; 00042 void DoPrintCascadeList() const; 00043 00044 private: 00045 G4String fCascade_filename; 00046 G4double fA; // nucleus mass number A 00047 G4double fZ; // nucleus atomic number Z 00048 G4int fNum_cascades; // number of cascades 00049 MJGeneratorPNNLCascade** fCascade_list; 00050 G4double* fBranching_fraction_list; 00051 MJGeneratorPNNLLookup* f_pCascadeSelector; 00052 }; 00053 00054 #endif 00055 00056