Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:59:29

0001 //
0002 // ********************************************************************
0003 // * License and Disclaimer                                           *
0004 // *                                                                  *
0005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
0006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
0007 // * conditions of the Geant4 Software License,  included in the file *
0008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
0009 // * include a list of copyright holders.                             *
0010 // *                                                                  *
0011 // * Neither the authors of this software system, nor their employing *
0012 // * institutes,nor the agencies providing financial support for this *
0013 // * work  make  any representation or  warranty, express or implied, *
0014 // * regarding  this  software system or assume any liability for its *
0015 // * use.  Please see the license in the file  LICENSE  and URL above *
0016 // * for the full disclaimer and the limitation of liability.         *
0017 // *                                                                  *
0018 // * This  code  implementation is the result of  the  scientific and *
0019 // * technical work of the GEANT4 collaboration.                      *
0020 // *                                                                  *
0021 // * Parts of this code which have been  developed by QinetiQ Ltd     *
0022 // * under contract to the European Space Agency (ESA) are the        *
0023 // * intellectual property of ESA. Rights to use, copy, modify and    *
0024 // * redistribute this software for general public use are granted    *
0025 // * in compliance with any licensing, distribution and development   *
0026 // * policy adopted by the Geant4 Collaboration. This code has been   *
0027 // * written by QinetiQ Ltd for the European Space Agency, under ESA  *
0028 // * contract 17191/03/NL/LvH (Aurora Programme).                     *
0029 // *                                                                  *
0030 // * By using,  copying,  modifying or  distributing the software (or *
0031 // * any work based  on the software)  you  agree  to acknowledge its *
0032 // * use  in  resulting  scientific  publications,  and indicate your *
0033 // * acceptance of all terms of the Geant4 Software license.          *
0034 // ********************************************************************
0035 //
0036 #ifndef G4WilsonAblationModel_h
0037 #define G4WilsonAblationModel_h 1
0038 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0039 //
0040 // MODULE:              G4WilsonAblationModel.hh
0041 //
0042 // Version:     1.0
0043 // Date:        08/12/2009
0044 // Author:      P R Truscott
0045 // Organisation:    QinetiQ Ltd, UK
0046 // Customer:        ESA/ESTEC, NOORDWIJK
0047 // Contract:        17191/03/NL/LvH
0048 //
0049 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0050 //
0051 // CHANGE HISTORY
0052 // --------------
0053 //
0054 // 6 October 2003, P R Truscott, QinetiQ Ltd, UK
0055 // Created.
0056 //
0057 // 15 March 2004, P R Truscott, QinetiQ Ltd, UK
0058 // Beta release
0059 //
0060 // 08 December 2009, P R Truscott, QinetiQ Ltd, UK
0061 // Ver 1.0
0062 // Introduced vector of evaporation channels and evaporation factory.  Also
0063 // copied directly over the SumProbabilities class in G4Evaporation.hh at
0064 // version 9.2.r9, just in cases there's any subtle differences.  See .cc
0065 // file comments to see impact of the rest of the changes.
0066 //
0067 // 04 October 2014, D Mancusi
0068 // Moved theChannels and theChannelFactory to the base class, since they seem
0069 // to be common to all classes derived from G4VEvaporation.
0070 //
0071 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0072 ////////////////////////////////////////////////////////////////////////////////
0073 //
0074 #include "G4VEvaporation.hh"
0075 #include "G4Fragment.hh"
0076 #include "G4FragmentVector.hh"
0077 #include "G4ParticleDefinition.hh"
0078 #include "globals.hh"
0079 #include "G4EvaporationFactory.hh"
0080 
0081 
0082 ////////////////////////////////////////////////////////////////////////////////
0083 //
0084 class G4WilsonAblationModel : public G4VEvaporation
0085 {
0086   public:
0087     G4WilsonAblationModel();
0088     virtual ~G4WilsonAblationModel();
0089     
0090     typedef std::vector<G4ParticleDefinition*> VectorOfFragmentTypes;
0091 
0092     G4FragmentVector * BreakItUp (const G4Fragment &theNucleus);
0093     void SetProduceSecondaries (G4bool);
0094     G4bool GetProduceSecondaries ();
0095     void SetVerboseLevel (G4int);
0096     G4int GetVerboseLevel ();
0097 
0098   private:
0099     void SelectSecondariesByEvaporation (G4Fragment*);
0100     void SelectSecondariesByDefault (G4ThreeVector);
0101     void PrintWelcomeMessage ();
0102 
0103   private:
0104     G4bool                 produceSecondaries;
0105     G4int                  verboseLevel;
0106     G4double               B;
0107     G4int                  nFragTypes;
0108     G4ParticleDefinition  *fragType[6];
0109     G4FragmentVector      *fragmentVector;
0110     VectorOfFragmentTypes  evapType;
0111     G4double               fSig[200];
0112     G4int                  secID;  // Creator model ID for the secondaries created by this model
0113 };
0114 ////////////////////////////////////////////////////////////////////////////////
0115 //
0116 inline void G4WilsonAblationModel::SetProduceSecondaries 
0117   (G4bool produceSecondaries1)
0118   {produceSecondaries = produceSecondaries1;}
0119 ////////////////////////////////////////////////////////////////////////////////
0120 //
0121 inline G4bool G4WilsonAblationModel::GetProduceSecondaries ()
0122   {return produceSecondaries;}
0123 ////////////////////////////////////////////////////////////////////////////////
0124 //
0125 inline void G4WilsonAblationModel::SetVerboseLevel (G4int verboseLevel1)
0126   {verboseLevel = verboseLevel1;}
0127 ////////////////////////////////////////////////////////////////////////////////
0128 //
0129 inline G4int G4WilsonAblationModel::GetVerboseLevel ()
0130   {return verboseLevel;}
0131 ////////////////////////////////////////////////////////////////////////////////
0132 //
0133 #endif