Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Class Members | File Members

MJGeneratorPNNLCascade.hh

Go to the documentation of this file.
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: MJGeneratorPNNLCascade.hh,v 1.2 2004/11/09 13:42:39 xliu Exp $
00009 // GEANT4 tag $Name:  $
00010 //
00011 // File:        MJGeneratorPNNLCascade.hh
00012 // Description: Single-cascade storage & beta-distribution sampling class for 
00013 //              PNNL radiactive decay model
00014 // Version:     1.0
00015 // Created:     2004-04-06
00016 // Author:      David Jordan
00017 // mail:        david.jordan@pnl.gov
00018 // phone:       509-376-0115
00019 
00020 #ifndef MJGeneratorPNNLCascade_h
00021 #define MJGeneratorPNNLCascade_h 1
00022 
00023 
00024 #include "globals.hh"
00025 #include "generators/MJGeneratorPNNLLookup.hh"
00026 
00027 #include <iostream.h>
00028 using namespace std;
00029 
00030 class MJGeneratorPNNLCascade
00031 {
00032   public:
00033     MJGeneratorPNNLCascade(){ };
00034     MJGeneratorPNNLCascade(G4int particle_type,
00035                            G4double A, G4double Z,
00036                            G4double E_endpoint, G4int delta_L, 
00037                            G4int num_gammas, G4double* gamma_list);
00038     MJGeneratorPNNLCascade(const MJGeneratorPNNLCascade& Cascade);
00039     ~MJGeneratorPNNLCascade();
00040     void operator=(const MJGeneratorPNNLCascade& Cascade);
00041 
00042     void SetChargedParticleType(G4int itype) {fType = itype;};
00043     void SetA(G4double A) {fA = A;};
00044     void SetZ(G4double Z) {fZ = Z;};
00045     void SetEndpointE(G4double E_endpoint) {fE_endpoint = E_endpoint;};   
00046     void SetDeltaL(G4int delta_L) {fDelta_L = delta_L;};
00047     void SetGammaList(G4int num_gammas, G4double* gamma_list);
00048 
00049     G4int     GetChargedParticleType() const {return fType;               }; 
00050     G4double  GetA()                   const {return fA;                  };
00051     G4double  GetZ()                   const {return fZ;                  };
00052     G4double  GetEndpointE()           const {return fE_endpoint;         };
00053     G4int     GetDeltaL()              const {return fDelta_L;            };
00054     G4int     GetNumGammas()           const {return fNum_gammas;         };
00055     G4double* GetGammaList()           const {return fGamma_list;         };
00056     G4double* GetBetaETable()          const 
00057                                {return f_pBetaEnergyGen->GetXTable();     };
00058     G4double* GetBetaDistTable()       const 
00059                                {return f_pBetaEnergyGen->GetDistTable();  }; 
00060     G4double* GetBetaLookupTable()     const 
00061                                {return f_pBetaEnergyGen->GetLookupTable();}; 
00062 
00063     G4double DoSampleChargedParticleEnergy() const;
00064     void      DoPrintCascade()   const;
00065 
00066   private:
00067     G4int fType;                  // charged particle type
00068     G4double fA;                  // parent nucleus mass number A
00069     G4double fZ;                  // parent nucleus atomic number Z
00070     G4double fE_endpoint;         // beta endpoint energy
00071     G4int fDelta_L;               // momentum change in decay
00072     G4int fNum_gammas;            // number of gammas in cascade
00073     G4double* fGamma_list;        // list of gamma energies
00074     MJGeneratorPNNLLookup* f_pBetaEnergyGen;
00075     G4double fE_alpha;            // mono-energetic alpha energy
00076 
00077     const static G4int kNUM_BETA_TABLE_ELEMENTS;
00078     const static G4int kPARTICLE_INDEX_ALPHA;
00079     const static G4int kPARTICLE_INDEX_BETA;
00080     const static G4int kPARTICLE_INDEX_POSITRON;
00081 
00082     void Setup_beta_shape(G4double Qval, G4double Z, G4double A,
00083                           G4int IDL, G4int num_entries, 
00084                           G4double* E_arr, G4double* Beta_arr);
00085     G4double  DoSampleBetaDist() const;
00086 };
00087 #endif
00088 
00089 

Generated on Mon Nov 29 16:58:50 2004 for Majorana Simulation by  doxygen 1.3.9.1