G4ExcitationHandler.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 // Hadronic Process: Nuclear De-excitations
00029 // by V. Lara (May 1998)
00030 //
00031 // Modifications:
00032 // 30 June 1998 by V. Lara:
00033 //      -Using G4ParticleTable and therefore G4IonTable
00034 //       it can return all kind of fragments produced in 
00035 //       deexcitation
00036 //      -It uses default algorithms for:
00037 //              Evaporation: G4StatEvaporation
00038 //              MultiFragmentation: G4DummyMF (a dummy one)
00039 //              Fermi Breakup model: G4StatFermiBreakUp
00040 //
00041 // 03 September 2008 by J. M. Quesada for external choice of inverse 
00042 //    cross section option
00043 // 06 September 2008 JMQ Also external choices have been added for 
00044 //    superimposed Coulomb barrier (if useSICBis set true, by default is false)  
00045 // 23 January 2012 by V.Ivanchenko remove obsolete data members; added access
00046 //    methods to deexcitation components
00047 //                   
00048 
00049 #ifndef G4ExcitationHandler_h
00050 #define G4ExcitationHandler_h 1
00051 
00052 #include "globals.hh"
00053 #include "G4Fragment.hh"
00054 #include "G4ReactionProductVector.hh"
00055 #include "G4IonTable.hh"
00056 
00057 class G4VMultiFragmentation;
00058 class G4VFermiBreakUp;
00059 class G4VEvaporation;
00060 class G4VEvaporationChannel;
00061 class G4FermiFragmentsPool;
00062 
00063 class G4ExcitationHandler 
00064 {
00065 public:
00066 
00067   G4ExcitationHandler(); 
00068   ~G4ExcitationHandler();
00069 
00070 private:
00071 
00072   G4ExcitationHandler(const G4ExcitationHandler &right);
00073   const G4ExcitationHandler & operator=(const G4ExcitationHandler &right);
00074   G4bool operator==(const G4ExcitationHandler &right) const;
00075   G4bool operator!=(const G4ExcitationHandler &right) const;
00076   
00077 public:
00078 
00079   G4ReactionProductVector * BreakItUp(const G4Fragment &theInitialState) const;
00080 
00081   void SetEvaporation(G4VEvaporation* ptr);
00082 
00083   void SetMultiFragmentation(G4VMultiFragmentation* ptr);
00084 
00085   void SetFermiModel(G4VFermiBreakUp* ptr);
00086 
00087   void SetPhotonEvaporation(G4VEvaporationChannel* ptr);
00088 
00089   void SetMaxZForFermiBreakUp(G4int aZ);
00090   void SetMaxAForFermiBreakUp(G4int anA);
00091   void SetMaxAandZForFermiBreakUp(G4int anA,G4int aZ);
00092   void SetMinEForMultiFrag(G4double anE);
00093 
00094   // access methods
00095   inline G4VEvaporation* GetEvaporation();
00096   inline G4VMultiFragmentation* GetMultiFragmentation();
00097   inline G4VFermiBreakUp* GetFermiModel();
00098   inline G4VEvaporationChannel* SetPhotonEvaporation();
00099 
00100   // for inverse cross section choice
00101   inline void SetOPTxs(G4int opt);
00102   // for superimposed Coulomb Barrir for inverse cross sections
00103   inline void UseSICB();
00104 
00105 private:
00106 
00107   void SetParameters();
00108   
00109   G4VEvaporation* theEvaporation;
00110   
00111   G4VMultiFragmentation* theMultiFragmentation;
00112   
00113   G4VFermiBreakUp* theFermiModel;
00114  
00115   G4VEvaporationChannel* thePhotonEvaporation;
00116 
00117   G4FermiFragmentsPool* thePool;
00118 
00119   G4int maxZForFermiBreakUp;
00120   G4int maxAForFermiBreakUp;
00121   G4double minEForMultiFrag;
00122   G4double minExcitation;
00123 
00124   G4IonTable* theTableOfIons;
00125 
00126   G4int OPTxs;
00127   G4bool useSICB;
00128   G4bool isEvapLocal;
00129   
00130 };
00131 
00132 inline G4VEvaporation* G4ExcitationHandler::GetEvaporation()
00133 {
00134   return theEvaporation;
00135 }
00136 
00137 inline G4VMultiFragmentation* G4ExcitationHandler::GetMultiFragmentation()
00138 {
00139   return theMultiFragmentation;
00140 }
00141 
00142 inline G4VFermiBreakUp* G4ExcitationHandler::GetFermiModel()
00143 {
00144   return theFermiModel;
00145 }
00146 
00147 inline G4VEvaporationChannel* G4ExcitationHandler::SetPhotonEvaporation()
00148 {
00149   return thePhotonEvaporation;
00150 }
00151 
00152 inline void G4ExcitationHandler::SetOPTxs(G4int opt) 
00153 { 
00154   OPTxs = opt; 
00155   SetParameters();
00156 }
00157 
00158 inline void G4ExcitationHandler::UseSICB()
00159 { 
00160   useSICB = true; 
00161   SetParameters();
00162 }
00163 
00164 #endif

Generated on Mon May 27 17:48:13 2013 for Geant4 by  doxygen 1.4.7