G4WilsonAblationModel.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 // *                                                                  *
00021 // * Parts of this code which have been  developed by QinetiQ Ltd     *
00022 // * under contract to the European Space Agency (ESA) are the        *
00023 // * intellectual property of ESA. Rights to use, copy, modify and    *
00024 // * redistribute this software for general public use are granted    *
00025 // * in compliance with any licensing, distribution and development   *
00026 // * policy adopted by the Geant4 Collaboration. This code has been   *
00027 // * written by QinetiQ Ltd for the European Space Agency, under ESA  *
00028 // * contract 17191/03/NL/LvH (Aurora Programme).                     *
00029 // *                                                                  *
00030 // * By using,  copying,  modifying or  distributing the software (or *
00031 // * any work based  on the software)  you  agree  to acknowledge its *
00032 // * use  in  resulting  scientific  publications,  and indicate your *
00033 // * acceptance of all terms of the Geant4 Software license.          *
00034 // ********************************************************************
00035 //
00036 #ifndef G4WilsonAblationModel_h
00037 #define G4WilsonAblationModel_h 1
00038 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00039 //
00040 // MODULE:              G4WilsonAblationModel.hh
00041 //
00042 // Version:             1.0
00043 // Date:                08/12/2009
00044 // Author:              P R Truscott
00045 // Organisation:        QinetiQ Ltd, UK
00046 // Customer:            ESA/ESTEC, NOORDWIJK
00047 // Contract:            17191/03/NL/LvH
00048 //
00049 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00050 //
00051 // CHANGE HISTORY
00052 // --------------
00053 //
00054 // 6 October 2003, P R Truscott, QinetiQ Ltd, UK
00055 // Created.
00056 //
00057 // 15 March 2004, P R Truscott, QinetiQ Ltd, UK
00058 // Beta release
00059 //
00060 // 08 December 2009, P R Truscott, QinetiQ Ltd, UK
00061 // Ver 1.0
00062 // Introduced vector of evaporation channels and evaporation factory.  Also
00063 // copied directly over the SumProbabilities class in G4Evaporation.hh at
00064 // version 9.2.r9, just in cases there's any subtle differences.  See .cc
00065 // file comments to see impact of the rest of the changes.
00066 //
00067 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00069 //
00070 #include "G4VEvaporation.hh"
00071 #include "G4VEvaporationChannel.hh"
00072 #include "G4Fragment.hh"
00073 #include "G4FragmentVector.hh"
00074 #include "G4ParticleDefinition.hh"
00075 #include "globals.hh"
00076 #include "G4VEvaporationFactory.hh"
00077 #include "G4EvaporationFactory.hh"
00078 
00079 
00080 #include <vector>
00082 //
00083 class G4WilsonAblationModel : public G4VEvaporation
00084 {
00085   public:
00086     G4WilsonAblationModel();
00087     ~G4WilsonAblationModel();
00088     
00089     typedef std::vector<G4ParticleDefinition*> VectorOfFragmentTypes;
00090 
00091     G4FragmentVector * BreakItUp (const G4Fragment &theNucleus);
00092     void SetProduceSecondaries (G4bool);
00093     G4bool GetProduceSecondaries ();
00094     void SetVerboseLevel (G4int);
00095     G4int GetVerboseLevel ();
00096 
00097   private:
00098     void SelectSecondariesByEvaporation (G4Fragment*);
00099     void SelectSecondariesByDefault (G4ThreeVector);
00100     void PrintWelcomeMessage ();
00101 
00102   private:
00103     G4bool                 produceSecondaries;
00104     G4int                  verboseLevel;
00105     G4double               B;
00106     G4int                  nFragTypes;
00107     G4ParticleDefinition  *fragType[6];
00108     G4FragmentVector      *fragmentVector;
00109     VectorOfFragmentTypes  evapType;
00110 
00111     std::vector<G4VEvaporationChannel*> * theChannels;
00112     G4VEvaporationFactory * theChannelFactory;
00113 
00114 };
00116 //
00117 inline void G4WilsonAblationModel::SetProduceSecondaries 
00118   (G4bool produceSecondaries1)
00119   {produceSecondaries = produceSecondaries1;}
00121 //
00122 inline G4bool G4WilsonAblationModel::GetProduceSecondaries ()
00123   {return produceSecondaries;}
00125 //
00126 inline void G4WilsonAblationModel::SetVerboseLevel (G4int verboseLevel1)
00127   {verboseLevel = verboseLevel1;}
00129 //
00130 inline G4int G4WilsonAblationModel::GetVerboseLevel ()
00131   {return verboseLevel;}
00133 //
00134 #endif

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