G4PhotonEvaporation.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 // $Id$
00027 //
00028 // -------------------------------------------------------------------
00029 //      GEANT 4 class file
00030 //
00031 //      CERN, Geneva, Switzerland
00032 //
00033 //      File name:     G4PhotonEvaporation
00034 //
00035 //      Author:        Maria Grazia Pia (pia@genova.infn.it)
00036 //
00037 //      Creation date: 23 October 1998
00038 //
00039 //Modifications:
00040 //
00041 // 18 October 2002, Fan Lei (flei@space.qinetiq.com)
00042 //   
00043 //        Implementation of Internal Convertion process in discrete deexcitation
00044 //        The following public methods have been added. 
00045 //
00046 //            void SetICM (G4bool);
00047 //            void RDMForced(G4bool);
00048 //            void SetMaxHalfLife(G4double) ;
00049 //            void SetEOccupancy( G4ElectronOccupancy  eOccupancy) ;
00050 //            G4ElectronOccupancy GetEOccupancy () ;
00051 //            G4int GetVacantShellNumber () { return _vShellNumber;};
00052 //
00053 //        and the following priivate menbers
00054 //
00055 //            G4ElectronOccupancy _eOccupancy;
00056 //            G4int _vShellNumber;
00057 //
00058 // 11 May 2010, V.Ivanchenko added EmittedFragment and BreakUpFragment
00059 //                           methods
00060 // 
00061 // -------------------------------------------------------------------
00062 
00063 #ifndef G4PHOTONEVAPORATION_HH
00064 #define G4PHOTONEVAPORATION_HH 1
00065 
00066 #include "globals.hh"
00067 #include "G4VEvaporationChannel.hh"
00068 #include "G4VEmissionProbability.hh"
00069 #include "G4VGammaDeexcitation.hh"
00070 #include "G4ElectronOccupancy.hh"
00071 
00072 class G4Fragment;
00073 
00074 class G4PhotonEvaporation : public G4VEvaporationChannel {
00075 
00076 public:
00077 
00078     G4PhotonEvaporation();
00079 
00080     virtual ~G4PhotonEvaporation();
00081 
00082     virtual G4Fragment* EmittedFragment(G4Fragment* theNucleus);
00083 
00084     virtual G4FragmentVector* BreakUpFragment(G4Fragment* theNucleus);
00085 
00086     virtual G4FragmentVector * BreakItUp(const G4Fragment & nucleus);
00087 
00088     virtual G4FragmentVector * BreakUp(const G4Fragment & nucleus);
00089 
00090     virtual G4double GetEmissionProbability(G4Fragment* theNucleus);
00091 
00092     virtual void SetEmissionStrategy(G4VEmissionProbability * probAlgorithm);
00093 
00094     void SetVerboseLevel(G4int verbose);
00095 
00096     void SetICM (G4bool);
00097 
00098     void RDMForced (G4bool);
00099   
00100     void SetMaxHalfLife(G4double);
00101 
00102     void SetTimeLimit(G4double value);
00103  
00104     void SetEOccupancy( G4ElectronOccupancy  eOccupancy) ;
00105 
00106     G4ElectronOccupancy GetEOccupancy () { return _eOccupancy;} ;
00107    
00108     G4int GetVacantShellNumber () { return _vShellNumber;};
00109 
00110 private:
00111 
00112     G4int _verbose;
00113     G4bool _myOwnProbAlgorithm;
00114     G4VEmissionProbability * _probAlgorithm;
00115     G4VGammaDeexcitation * _discrDeexcitation;
00116     G4VGammaDeexcitation * _contDeexcitation;
00117 
00118     G4ElectronOccupancy _eOccupancy;
00119     G4int _vShellNumber;
00120 
00121     G4Fragment* _nucleus;
00122     G4double _gammaE;
00123 
00124     G4PhotonEvaporation(const G4PhotonEvaporation & right);
00125     const G4PhotonEvaporation & operator = (const G4PhotonEvaporation & right);
00126 
00127     G4bool operator == (const G4PhotonEvaporation & right) const;
00128     G4bool operator != (const G4PhotonEvaporation & right) const;
00129 
00130   //#ifdef debug
00131   //  void CheckConservation(const G4Fragment & theInitialState, G4FragmentVector * Result) const;
00132   //#endif
00133 
00134 
00135 };
00136 
00137 #endif
00138 
00139 
00140 

Generated on Mon May 27 17:49:18 2013 for Geant4 by  doxygen 1.4.7