processes/hadronic/models/de_excitation/photon_evaporation/include/G4VGammaDeexcitation.hh

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * License and Disclaimer                                           *
00004 // *                                                                  *
00005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
00006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
00007 // * conditions of the Geant4 Software License,  included in the file *
00008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
00009 // * include a list of copyright holders.                             *
00010 // *                                                                  *
00011 // * Neither the authors of this software system, nor their employing *
00012 // * institutes,nor the agencies providing financial support for this *
00013 // * work  make  any representation or  warranty, express or implied, *
00014 // * regarding  this  software system or assume any liability for its *
00015 // * use.  Please see the license in the file  LICENSE  and URL above *
00016 // * for the full disclaimer and the limitation of liability.         *
00017 // *                                                                  *
00018 // * This  code  implementation is the result of  the  scientific and *
00019 // * technical work of the GEANT4 collaboration.                      *
00020 // * By using,  copying,  modifying or  distributing the software (or *
00021 // * any work based  on the software)  you  agree  to acknowledge its *
00022 // * use  in  resulting  scientific  publications,  and indicate your *
00023 // * acceptance of all terms of the Geant4 Software license.          *
00024 // ********************************************************************
00025 //
00026 //
00027 // -------------------------------------------------------------------
00028 //      GEANT 4 class file
00029 //
00030 //      CERN, Geneva, Switzerland
00031 //
00032 //      File name:     G4VGammaDeexcitation
00033 //
00034 //      Author:        Maria Grazia Pia (pia@genova.infn.it)
00035 //
00036 //      Creation date: 23 October 1998
00037 //
00038 //      Modifications:
00039 //
00040 //        18 October 2002, F. Lei
00041 //          Added GetVaccantSN() and _vSN in order to link to ARM in low-e em
00042 //          _vSN is updated in UpdateElectron()
00043 //          Added SetVaccantSN(). It is need to to re-set _vSN after each 
00044 //          IC happened.
00045 // 
00046 //        8 March 2002, Fan Lei (flei@space.qinetiq.com)
00047 //          Added  SetEO () , GetEO(), UpdateElectrons() to allow the assignment 
00048 //          and modification of electron configuration.
00049 //          
00050 //        21 Nov 2001, Fan Lei (flei@space.qinetiq.com)
00051 //           Modified GenerateGamma() and UpdateUncleus() for implementation
00052 //           of Internal Conversion processs
00053 //
00054 //        15 April 1999, Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it)
00055 //              Added creation time evaluation for products of evaporation
00056 //
00057 // -------------------------------------------------------------------
00058 
00059 #ifndef G4VGAMMADEEXCITATION_HH
00060 #define G4VGAMMADEEXCITATION_HH
00061 
00062 #include "globals.hh"
00063 #include "G4VGammaTransition.hh"
00064 #include "G4Fragment.hh"
00065 #include "G4FragmentVector.hh"
00066 #include "G4ElectronOccupancy.hh"
00067 
00068 class G4VGammaDeexcitation {
00069 
00070 public:
00071 
00072     G4VGammaDeexcitation();
00073 
00074     virtual ~G4VGammaDeexcitation();
00075 
00076     virtual G4VGammaTransition * CreateTransition() = 0;
00077     virtual G4bool CanDoTransition() const = 0;
00078 
00079     // Single gamma transition
00080     virtual G4FragmentVector * DoTransition();
00081 
00082     // Chain of gamma transitions
00083     virtual G4FragmentVector * DoChain();
00084 
00085     virtual G4Fragment * GenerateGamma();
00086 
00087     virtual const G4Fragment & GetNucleus() const;
00088 
00089     virtual void SetNucleus(const G4Fragment & nucleus);
00090 
00091     virtual void SetVerboseLevel(G4int verbose);
00092 
00093     void SetEO(G4ElectronOccupancy eo) { _electronO = eo; };
00094     void SetVaccantSN( G4int val ) { _vSN = val;};
00095   
00096     G4ElectronOccupancy GetEO() { return _electronO; };    
00097     G4int GetVacantSN() {return _vSN;};
00098 protected:
00099 
00100     void Initialize();
00101     void UpdateNucleus(const G4Fragment * gamma);
00102     void UpdateElectrons ();
00103     void Update();
00104 
00105     G4VGammaTransition * _transition; // Owned pointer
00106     G4int _verbose;
00107 
00108 private:
00109 
00110     G4Fragment _nucleus;
00111     G4ElectronOccupancy _electronO;
00112     G4int _vSN;
00113 
00114     G4VGammaDeexcitation(const G4VGammaDeexcitation & right);
00115 
00116     const G4VGammaDeexcitation & operator = (const G4VGammaDeexcitation & right);
00117     G4bool operator == (const G4VGammaDeexcitation & right) const;
00118     G4bool operator != (const G4VGammaDeexcitation & right) const;
00119 
00120 };
00121 
00122 #endif
00123 
00124 
00125 
00126 
00127 
00128 

Generated on Fri Apr 11 17:10:27 2008 for Geant4 by  doxygen 1.4.7