KaliVeda
1.14/2
Toolkit for HIC analysis
Loading...
Searching...
No Matches
KVFissionKinematics.cpp
1
//Created by KVClassFactory on Mon May 2 14:00:47 2016
2
//Author: John Frankland,,,
3
4
#include "KVFissionKinematics.h"
5
6
#include <KVPosition.h>
7
8
ClassImp
(
KVFissionKinematics
)
9
10
11
18
19
KVFissionKinematics
::
KVFissionKinematics
(const
KVNucleus
& fis,
Int_t
Z1,
Int_t
A1)
20
:
KVBase
(), fFission(2), fMother(fis), fDaughter(Z1, A1)
21
{
22
// Initialize fission kinematics calculation
23
//
24
// 'fis' is the fissioning nucleus, we take into account its kinematics
25
// KVFissionKinematics(fis); // symmetric fission
26
// KVFissionKinematics(fis, Z1); // specify Z of one fission fragment, masses calculated from N/Z
27
// KVFissionKinematics(fis, Z1, A1); // specify Z & A of one fission fragment
28
29
if
(!Z1) {
30
// set daughter to half of mother
31
fDaughter.SetZandA(fis.GetZ() / 2, fis.GetA() / 2);
32
}
33
else
if
(!A1) {
34
// mass of daughter not given. use N/Z ratio of mother.
35
fDaughter.SetN(Z1 * fMother.GetNsurZ());
36
}
37
}
38
39
40
43
44
const
KVSimEvent
*
KVFissionKinematics::Generate
()
45
{
46
// Generate a fission event
47
48
fFission
.
Clear
();
49
50
KVNucleus
* ff1, *ff2;
51
(ff1 =
fFission
.
AddParticle
())->SetZandA(
fDaughter
.
GetZ
(),
fDaughter
.
GetA
());
52
(ff2 =
fFission
.
AddParticle
())->SetZandA(
fMother
.
GetZ
() -
fDaughter
.
GetZ
(),
fMother
.
GetA
() -
fDaughter
.
GetA
());
53
54
Double_t
vrel = ff1->
GetFissionVelocity
(ff2);
55
Double_t
mu = ff1->
GetMass
() * ff2->
GetMass
() / (ff1->
GetMass
() + ff2->
GetMass
());
56
57
KVPosition
pp(0, 180, 0, 360);
58
TVector3
fis_axis = pp.
GetRandomDirection
(
"isotropic"
);
59
ff1->
SetVelocity
((mu * vrel / ff1->
GetMass
())*fis_axis);
60
ff2->
SetVelocity
((-mu * vrel / ff2->
GetMass
())*fis_axis);
61
62
if
(
fMother
.
GetVelocity
().
Mag2
() > 0.) {
63
// boost to frame of fissioning nucleus
64
fFission
.
SetFrame
(
"lab"
, -
fMother
.
GetVelocity
());
65
ff1->
SetVelocity
(ff1->
GetFrame
(
"lab"
)->
GetVelocity
());
66
ff2->
SetVelocity
(ff2->
GetFrame
(
"lab"
)->
GetVelocity
());
67
}
68
69
return
&
fFission
;
70
}
71
72
73
Int_t
int Int_t
Double_t
double Double_t
KVBase
Base class for KaliVeda framework.
Definition
KVBase.h:142
KVEvent::Clear
void Clear(Option_t *opt="")
Definition
KVEvent.h:238
KVFissionKinematics
Simple calculation of two-body decay.
Definition
KVFissionKinematics.h:17
KVFissionKinematics::Generate
const KVSimEvent * Generate()
Generate a fission event.
Definition
KVFissionKinematics.cpp:44
KVFissionKinematics::fFission
KVSimEvent fFission
calculated fission event
Definition
KVFissionKinematics.h:18
KVFissionKinematics::fDaughter
KVNucleus fDaughter
one of the fission fragments
Definition
KVFissionKinematics.h:20
KVFissionKinematics::fMother
KVNucleus fMother
mother nucleus
Definition
KVFissionKinematics.h:19
KVNucleus
Description of properties and kinematics of atomic nuclei.
Definition
KVNucleus.h:126
KVNucleus::GetA
Int_t GetA() const
Definition
KVNucleus.cpp:802
KVNucleus::GetFissionVelocity
Double_t GetFissionVelocity(KVNucleus *nuc=0, Int_t formula=kDefaultFormula)
Definition
KVNucleus.cpp:1883
KVNucleus::GetZ
Int_t GetZ() const
Return the number of proton / atomic number.
Definition
KVNucleus.cpp:773
KVParticle::SetVelocity
void SetVelocity(const TVector3 &)
Set velocity of particle (in cm/ns units)
Definition
KVParticle.cpp:1097
KVParticle::GetFrame
KVParticle const * GetFrame(const Char_t *frame, Bool_t warn_and_return_null_if_unknown=kTRUE) const
Definition
KVParticle.cpp:865
KVParticle::GetMass
Double_t GetMass() const
Definition
KVParticle.h:574
KVParticle::GetVelocity
TVector3 GetVelocity() const
returns velocity vector in cm/ns units
Definition
KVParticle.cpp:1030
KVPosition
Base class used for handling geometry in a multidetector array.
Definition
KVPosition.h:91
KVPosition::GetRandomDirection
virtual TVector3 GetRandomDirection(Option_t *t="isotropic")
Definition
KVPosition.cpp:242
KVSimEvent
Container class for simulated nuclei, KVSimNucleus.
Definition
KVSimEvent.h:22
KVTemplateEvent::AddParticle
Particle * AddParticle()
Definition
KVTemplateEvent.h:369
KVTemplateEvent::SetFrame
void SetFrame(const Char_t *frame, const KVFrameTransform &ft)
Definition
KVTemplateEvent.h:713
TVector3
TVector3::Mag2
Double_t Mag2() const
ClassImp
ClassImp(TPyArg)
kaliveda.doxygen
KVMultiDet
simulation
KVFissionKinematics.cpp
Generated on Wed Oct 23 2024 12:45:22 for KaliVeda by
1.9.8