G4PreCompoundModel.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 // by V. Lara
00029 //
00030 // Class Description
00031 // Model implementation for pre-equilibrium decay models in geant4. 
00032 // To be used in your physics list, in case you neeed this kind of physics.
00033 // Can be used as a stand-allone model, but also in conjunction with an intra-nuclear
00034 // transport, or any of the string-parton models.
00035 // Class Description - End
00036 //
00037 // Modified:
00038 // 03.09.2008 J.M.Quesada added external choice of inverse 
00039 //            cross section option.(default OPTxs=3)
00040 // 06.09.2008 J.M.Quesada external choices have been added for:
00041 //                - superimposed Coulomb barrier (if useSICB=true, default false) 
00042 //                - "never go back"  hipothesis (if useNGB=true, default false) 
00043 //                - soft cutoff from preeq. to equlibrium (if useSCO=true, default false)
00044 //                - CEM transition probabilities (if useCEMtr=true)
00045 // 30.10.2009 J.M.Quesada CEM transition probabilities are set as default
00046 // 20.08.2010 V.Ivanchenko Cleanup of the code - changed data members and inline methods
00047 // 03.01.2012 V.Ivanchenko Added pointer to G4ExcitationHandler to the 
00048 //                         constructor
00049 
00050 #ifndef G4PreCompoundModel_h
00051 #define G4PreCompoundModel_h 1
00052 
00053 #include "G4VPreCompoundModel.hh"
00054 #include "G4Fragment.hh"
00055 #include "G4ReactionProductVector.hh"
00056 #include "G4ReactionProduct.hh"
00057 #include "G4ExcitationHandler.hh"
00058 
00059 class G4PreCompoundParameters;
00060 class G4PreCompoundEmission;
00061 class G4VPreCompoundTransitions;
00062 class G4ParticleDefinition;
00063 
00064 class G4PreCompoundModel : public G4VPreCompoundModel
00065 { 
00066 public:
00067 
00068   G4PreCompoundModel(G4ExcitationHandler* ptr = 0); 
00069 
00070   virtual ~G4PreCompoundModel();
00071 
00072   virtual G4HadFinalState * ApplyYourself(const G4HadProjectile & thePrimary, 
00073                                           G4Nucleus & theNucleus);
00074 
00075   virtual G4ReactionProductVector* DeExcite(G4Fragment& aFragment);
00076   
00077   virtual void ModelDescription(std::ostream& outFile) const;
00078   
00079   void UseHETCEmission();
00080   void UseDefaultEmission();
00081   void UseGNASHTransition();
00082   void UseDefaultTransition();
00083 
00084   //for cross section selection
00085   void SetOPTxs(G4int opt);
00086 
00087   //for the rest of external choices
00088   void UseSICB();
00089   void UseNGB();
00090   void UseSCO();
00091   void UseCEMtr();
00092 
00093 private:  
00094 
00095   inline 
00096   void PerformEquilibriumEmission(const G4Fragment & aFragment, 
00097                                   G4ReactionProductVector * theResult) const;
00098 
00099   //  G4PreCompoundModel();
00100   G4PreCompoundModel(const G4PreCompoundModel &);
00101   const G4PreCompoundModel& operator=(const G4PreCompoundModel &right);
00102   G4bool operator==(const G4PreCompoundModel &right) const;
00103   G4bool operator!=(const G4PreCompoundModel &right) const;
00104 
00105   //==============
00106   // Data Members 
00107   //==============
00108 
00109   G4PreCompoundParameters*   theParameters;
00110   G4PreCompoundEmission*     theEmission;
00111   G4VPreCompoundTransitions* theTransition;
00112 
00113   const G4ParticleDefinition* proton;
00114   const G4ParticleDefinition* neutron;
00115 
00116   G4bool useHETCEmission;
00117   G4bool useGNASHTransition;
00118 
00119   //for cross section options
00120   G4int OPTxs;
00121 
00122   //for the rest of external choices
00123   G4bool useSICB;
00124   G4bool useNGB;
00125   G4bool useSCO;
00126   G4bool useCEMtr;
00127 
00128   G4int  maxZ;
00129   G4int  maxA;
00130 
00131   G4HadFinalState theResult;
00132 
00133 };
00134 
00135 inline void 
00136 G4PreCompoundModel::PerformEquilibriumEmission(const G4Fragment & aFragment,
00137                                                G4ReactionProductVector * Result) const 
00138 {
00139   G4ReactionProductVector* theEquilibriumResult = 
00140     GetExcitationHandler()->BreakItUp(aFragment);
00141   Result->insert(Result->end(),theEquilibriumResult->begin(), theEquilibriumResult->end());
00142   delete theEquilibriumResult;
00143 }
00144 
00145 #endif
00146 

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