Geant4
10.03.p01
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
G4MultiBodyMomentumDist.hh
Go to the documentation of this file.
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
// * By using, copying, modifying or distributing the software (or *
21
// * any work based on the software) you agree to acknowledge its *
22
// * use in resulting scientific publications, and indicate your *
23
// * acceptance of all terms of the Geant4 Software license. *
24
// ********************************************************************
25
//
26
// $Id: G4MultiBodyMomentumDist.hh 71719 2013-06-21 00:01:54Z mkelsey $
27
// Author: Michael Kelsey (SLAC)
28
// Date: 7 March 2013
29
//
30
// Description: Singleton class to evaluate multi-body momentum distribution
31
// functions based on intial state codes and multiplicity.
32
//
33
// NOTE: Separate multiplicity-3 generators are not used, per V.Uzhinsky
34
//
35
// 20130619 Change singleton instance to be thread-local, to avoid collisions.
36
// 20130620 Address Coverity warnings about missing copy actions
37
38
#ifndef G4MultiBodyMomentumDist_h
39
#define G4MultiBodyMomentumDist_h 1
40
41
#include "
globals.hh
"
42
43
class
G4VMultiBodyMomDst
;
44
class
G4NuclNucl3BodyMomDst
;
45
class
G4NuclNucl4BodyMomDst
;
46
class
G4HadNucl3BodyMomDst
;
47
class
G4HadNucl4BodyMomDst
;
48
49
50
class
G4MultiBodyMomentumDist
{
51
public
:
52
~G4MultiBodyMomentumDist
();
53
54
static
const
G4MultiBodyMomentumDist
*
GetInstance
();
55
56
// Return appropriate generator for initial state and multiplicity
57
static
const
G4VMultiBodyMomDst
*
GetDist
(
G4int
is,
G4int
mult) {
58
return
GetInstance
()->ChooseDist(is, mult);
59
}
60
61
// Pass verbosity through to owned objects
62
static
void
setVerboseLevel
(
G4int
vb=0);
63
64
private
:
65
// Constructor is private for singleton
66
G4MultiBodyMomentumDist
();
67
const
G4VMultiBodyMomDst
* ChooseDist(
G4int
is,
G4int
mult)
const
;
68
69
void
passVerbose(
G4int
verbose);
// Pass verbosity through instance
70
71
static
G4ThreadLocal
G4MultiBodyMomentumDist
* theInstance;
// Per thread
72
73
// Generators for various initial/final state combinations
74
G4NuclNucl3BodyMomDst
* nn3BodyDst;
// N N to X Y Z
75
G4NuclNucl4BodyMomDst
* nn4BodyDst;
// N N to X Y Z W ...
76
G4HadNucl3BodyMomDst
* hn3BodyDst;
// pi,K,Y,gamma N to X Y Z
77
G4HadNucl4BodyMomDst
* hn4BodyDst;
// pi,K,Y,gamma N to X Y Z W ...
78
79
private
:
80
// Copying of modules is forbidden
81
G4MultiBodyMomentumDist
(
const
G4MultiBodyMomentumDist
&);
82
G4MultiBodyMomentumDist
& operator=(
const
G4MultiBodyMomentumDist
&);
83
};
84
85
#endif
/* G4MultiBodyMomentumDist_h */
G4MultiBodyMomentumDist::setVerboseLevel
static void setVerboseLevel(G4int vb=0)
Definition:
G4MultiBodyMomentumDist.cc:79
G4MultiBodyMomentumDist
Definition:
G4MultiBodyMomentumDist.hh:50
G4HadNucl3BodyMomDst
Definition:
G4HadNucl3BodyMomDst.hh:39
G4VMultiBodyMomDst
Definition:
G4VMultiBodyMomDst.hh:41
G4MultiBodyMomentumDist::~G4MultiBodyMomentumDist
~G4MultiBodyMomentumDist()
Definition:
G4MultiBodyMomentumDist.cc:69
G4ThreadLocal
#define G4ThreadLocal
Definition:
tls.hh:89
G4int
int G4int
Definition:
G4Types.hh:78
G4NuclNucl3BodyMomDst
Definition:
G4NuclNucl3BodyMomDst.hh:39
globals.hh
G4MultiBodyMomentumDist::GetInstance
static const G4MultiBodyMomentumDist * GetInstance()
Definition:
G4MultiBodyMomentumDist.cc:52
G4NuclNucl4BodyMomDst
Definition:
G4NuclNucl4BodyMomDst.hh:39
G4HadNucl4BodyMomDst
Definition:
G4HadNucl4BodyMomDst.hh:39
G4MultiBodyMomentumDist::GetDist
static const G4VMultiBodyMomDst * GetDist(G4int is, G4int mult)
Definition:
G4MultiBodyMomentumDist.hh:57
geant4.10.03.p01
source
processes
hadronic
models
cascade
cascade
include
G4MultiBodyMomentumDist.hh
Generated on Thu Mar 16 2017 22:38:07 for Geant4 by
1.8.5