source: trunk/source/processes/hadronic/models/de_excitation/ablation/include/G4WilsonAblationModel.hh @ 978

Last change on this file since 978 was 819, checked in by garnier, 16 years ago

import all except CVS

File size: 5.5 KB
Line 
1//
2// ********************************************************************
3// * License and Disclaimer                                           *
4// *                                                                  *
5// * The  Geant4 software  is  copyright of the Copyright Holders  of *
6// * the Geant4 Collaboration.  It is provided  under  the terms  and *
7// * conditions of the Geant4 Software License,  included in the file *
8// * LICENSE and available at  http://cern.ch/geant4/license .  These *
9// * include a list of copyright holders.                             *
10// *                                                                  *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work  make  any representation or  warranty, express or implied, *
14// * regarding  this  software system or assume any liability for its *
15// * use.  Please see the license in the file  LICENSE  and URL above *
16// * for the full disclaimer and the limitation of liability.         *
17// *                                                                  *
18// * This  code  implementation is the result of  the  scientific and *
19// * technical work of the GEANT4 collaboration.                      *
20// *                                                                  *
21// * Parts of this code which have been  developed by QinetiQ Ltd     *
22// * under contract to the European Space Agency (ESA) are the        *
23// * intellectual property of ESA. Rights to use, copy, modify and    *
24// * redistribute this software for general public use are granted    *
25// * in compliance with any licensing, distribution and development   *
26// * policy adopted by the Geant4 Collaboration. This code has been   *
27// * written by QinetiQ Ltd for the European Space Agency, under ESA  *
28// * contract 17191/03/NL/LvH (Aurora Programme).                     *
29// *                                                                  *
30// * By using,  copying,  modifying or  distributing the software (or *
31// * any work based  on the software)  you  agree  to acknowledge its *
32// * use  in  resulting  scientific  publications,  and indicate your *
33// * acceptance of all terms of the Geant4 Software license.          *
34// ********************************************************************
35//
36#ifndef G4WilsonAblationModel_h
37#define G4WilsonAblationModel_h 1
38// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
39//
40// MODULE:              G4WilsonAblationModel.hh
41//
42// Version:             B.1
43// Date:                15/04/04
44// Author:              P R Truscott
45// Organisation:        QinetiQ Ltd, UK
46// Customer:            ESA/ESTEC, NOORDWIJK
47// Contract:            17191/03/NL/LvH
48//
49// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
50//
51// CHANGE HISTORY
52// --------------
53//
54// 6 October 2003, P R Truscott, QinetiQ Ltd, UK
55// Created.
56//
57// 15 March 2004, P R Truscott, QinetiQ Ltd, UK
58// Beta release
59//
60// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
61////////////////////////////////////////////////////////////////////////////////
62//
63#include "G4VEvaporation.hh"
64#include "G4VEvaporationChannel.hh"
65#include "G4Fragment.hh"
66#include "G4FragmentVector.hh"
67#include "G4ParticleDefinition.hh"
68#include "globals.hh"
69
70#include <vector>
71////////////////////////////////////////////////////////////////////////////////
72//
73class G4WilsonAblationModel : public G4VEvaporation
74{
75  public:
76    G4WilsonAblationModel();
77    ~G4WilsonAblationModel();
78   
79    typedef std::vector<G4ParticleDefinition*> VectorOfFragmentTypes;
80
81    G4FragmentVector * BreakItUp (const G4Fragment &theNucleus);
82    void SetProduceSecondaries (G4bool);
83    G4bool GetProduceSecondaries ();
84    void SetVerboseLevel (G4int);
85    G4int GetVerboseLevel ();
86
87  private:
88    void SelectSecondariesByEvaporation (G4Fragment*);
89    void SelectSecondariesByDefault (G4ThreeVector);
90    void PrintWelcomeMessage ();
91
92  private:
93    G4bool                 produceSecondaries;
94    G4int                  verboseLevel;
95    G4double               B;
96    G4int                  nFragTypes;
97    G4ParticleDefinition  *fragType[6];
98    G4FragmentVector      *fragmentVector;
99    VectorOfFragmentTypes  evapType;
100
101    class SumProbabilities : 
102      public std::binary_function<G4double,G4double,G4double>
103    {
104      public:
105        SumProbabilities() : total(0.0) {}
106        G4double operator() (G4double& /* probSoFar */, G4VEvaporationChannel*& frag)
107        {
108          total += frag->GetEmissionProbability();
109          return total;
110        }
111
112        G4double GetTotal() { return total; }
113      public:
114      G4double total;
115  };
116                                                                               
117
118
119};
120////////////////////////////////////////////////////////////////////////////////
121//
122inline void G4WilsonAblationModel::SetProduceSecondaries
123  (G4bool produceSecondaries1)
124  {produceSecondaries = produceSecondaries1;}
125////////////////////////////////////////////////////////////////////////////////
126//
127inline G4bool G4WilsonAblationModel::GetProduceSecondaries ()
128  {return produceSecondaries;}
129////////////////////////////////////////////////////////////////////////////////
130//
131inline void G4WilsonAblationModel::SetVerboseLevel (G4int verboseLevel1)
132  {verboseLevel = verboseLevel1;}
133////////////////////////////////////////////////////////////////////////////////
134//
135inline G4int G4WilsonAblationModel::GetVerboseLevel ()
136  {return verboseLevel;}
137////////////////////////////////////////////////////////////////////////////////
138//
139#endif
Note: See TracBrowser for help on using the repository browser.