Geant4
10.00.p02
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
G4INCLIAvatar.cc
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
// INCL++ intra-nuclear cascade model
27
// Pekka Kaitaniemi, CEA and Helsinki Institute of Physics
28
// Davide Mancusi, CEA
29
// Alain Boudard, CEA
30
// Sylvie Leray, CEA
31
// Joseph Cugnon, University of Liege
32
//
33
#define INCLXX_IN_GEANT4_MODE 1
34
35
#include "
globals.hh
"
36
37
/*
38
* IAvatar.cc
39
*
40
* \date 4 juin 2009
41
* \author Pekka Kaitaniemi
42
*/
43
44
#include "
G4INCLIAvatar.hh
"
45
#include "
G4INCLRandom.hh
"
46
#include <sstream>
47
48
namespace
G4INCL
{
49
50
G4ThreadLocal
long
IAvatar::nextID
= 1;
51
52
IAvatar::IAvatar
() :
53
type(
UnknownAvatarType
),
54
theTime(0.)
55
{
56
ID
=
nextID
;
57
nextID
++;
58
}
59
60
IAvatar::IAvatar
(
G4double
time) :
61
type(
UnknownAvatarType
),
62
theTime(time)
63
{
64
ID
=
nextID
;
65
nextID
++;
66
}
67
68
IAvatar::~IAvatar
() {
69
}
70
71
std::string
IAvatar::toString
() {
72
std::stringstream entry;
73
std::stringstream particleString;
74
ParticleList
pl =
getParticles
();
75
G4int
numberOfParticles
= 0;
76
for
(
ParticleIter
i=pl.begin(), e=pl.end(); i!=e; ++i) {
77
numberOfParticles++;
78
particleString << (*i)->getID() <<
" "
;
79
}
80
if
(numberOfParticles == 1) particleString <<
"-1"
;
81
entry <<
getID
() <<
" "
82
<<
getType
() <<
" "
83
<<
getTime
() <<
" "
84
<< particleString.str();
85
return
entry.str();
86
}
87
88
G4INCL::FinalState
*
IAvatar::getFinalState
()
89
{
90
INCL_DEBUG
(
"Random seeds before preInteraction: "
<<
Random::getSeeds
() << std::endl);
91
preInteraction
();
92
INCL_DEBUG
(
"Random seeds before getChannel: "
<<
Random::getSeeds
() << std::endl);
93
IChannel
*c =
getChannel
();
94
if
( !c ) {
95
return
NULL;
96
}
97
INCL_DEBUG
(
"Random seeds before getFinalState: "
<<
Random::getSeeds
() << std::endl);
98
FinalState
*fs = c->
getFinalState
();
99
INCL_DEBUG
(
"Random seeds before postInteraction: "
<<
Random::getSeeds
() << std::endl);
100
fs =
postInteraction
(fs);
101
delete
c;
102
return
fs;
103
}
104
105
}
G4INCL::IAvatar::IAvatar
IAvatar()
Definition:
G4INCLIAvatar.cc:52
G4INCL::IChannel
Channel generates a final state of an avatar.
Definition:
G4INCLIChannel.hh:56
G4INCL::IAvatar::getChannel
virtual G4INCL::IChannel * getChannel()=0
G4INCLRandom.hh
G4INCL
Definition:
G4INCLBinaryCollisionAvatar.hh:52
G4INCL::IAvatar::preInteraction
virtual void preInteraction()=0
G4INCL::IAvatar::postInteraction
virtual FinalState * postInteraction(FinalState *)=0
G4INCL::IAvatar::~IAvatar
virtual ~IAvatar()
Definition:
G4INCLIAvatar.cc:68
G4ThreadLocal
#define G4ThreadLocal
Definition:
tls.hh:52
G4int
int G4int
Definition:
G4Types.hh:78
G4INCL::IAvatar::ID
long ID
Definition:
G4INCLIAvatar.hh:85
G4INCL::IAvatar::nextID
static G4ThreadLocal long nextID
Definition:
G4INCLIAvatar.hh:87
G4INCL::UnorderedVector< Particle * >
G4INCL::Random::getSeeds
SeedVector getSeeds()
Get the seeds of the current generator.
Definition:
G4INCLRandom.cc:70
G4INCL::IAvatar::getTime
G4double getTime() const
Definition:
G4INCLIAvatar.hh:71
G4INCL::FinalState
Final state of an interaction.
Definition:
G4INCLFinalState.hh:63
G4INCL::IAvatar::getID
long getID() const
Definition:
G4INCLIAvatar.hh:81
G4INCL::IAvatar::getParticles
virtual ParticleList getParticles() const =0
numberOfParticles
static G4ThreadLocal int numberOfParticles
Definition:
tpia_particle.cc:46
globals.hh
G4INCL::IChannel::getFinalState
virtual G4INCL::FinalState * getFinalState()=0
G4INCL::IAvatar::getFinalState
G4INCL::FinalState * getFinalState()
Definition:
G4INCLIAvatar.cc:88
G4INCLIAvatar.hh
G4INCL::IAvatar::toString
std::string toString()
Definition:
G4INCLIAvatar.cc:71
G4double
double G4double
Definition:
G4Types.hh:76
INCL_DEBUG
#define INCL_DEBUG(x)
Definition:
G4INCLLogger.hh:224
G4INCL::UnknownAvatarType
Definition:
G4INCLIAvatar.hh:58
G4INCL::IAvatar::getType
AvatarType getType() const
Definition:
G4INCLIAvatar.hh:77
G4INCL::ParticleIter
ParticleList::const_iterator ParticleIter
Definition:
G4INCLParticle.hh:91
geant4.10.00.p02
source
processes
hadronic
models
inclxx
utils
src
G4INCLIAvatar.cc
Generated on Thu Dec 31 2015 10:41:04 for Geant4 by
1.8.8