7#include "KVSimNucleus.h"
94 CNucleus CN(toDecay.
GetZ(), toDecay.
GetA());
117 catch (std::exception&
e) {
118 Info(
"DecaySingleNucleus",
"Caught std::exception: %s",
e.what());
124 Info(
"DecaySingleNucleus",
"Caught unknown exception");
133 Info(
"DecaySingleNucleus",
"Bad Gemini decay (CNucleus::abortEvent=true)");
138 CNucleus* nuc = CN.getProducts(0);
143 N->SetParameter(
"GEMINI_PARENT_INDEX",
part_index);
146 N->SetExcitEnergy(nuc->fEx);
147 float*
v = nuc->getVelocityVector();
150 nuc = CN.getProducts();
215 if (branchname ==
"") branchname =
"gemini";
220 decayProducts->
Clear();
224 catch (std::exception&
e) {
228 std::cout <<
"\xd" <<
"Gemini++ processing, " << nDecays <<
" decays left ..." << std::flush;
230 std::cout << std::endl;
244 if (z < 19 || z > 111) {
245 Error(
"GetMaxSpinWithFissionBarrier",
"Only use for 19<=Z<=111");
248 float amin = 1.2 * z + 0.01 *
pow(z, 2);
249 float amax = 5.8 * z - 0.024 *
pow(z, 2);
251 if (a < amin || a > amax) {
252 Error(
"GetMaxSpinWithFissionBarrier",
"Only valid for Z=%d with %d<=A<=%d",
253 z, (
int)amin, (
int)amax);
256 return CYrast::instance()->getJmaxSierk(z,
a);
267 return CYrast::instance()->getBarrierFissionRLDM(z,
a, J);
278 return CYrast::instance()->getBarrierFissionSierk(0.);
winID h TVirtualViewer3D vv
Base class for KaliVeda framework.
void Clear(Option_t *opt="")
static void MakeEventBranch(TTree *tree, const TString &branchname, T &event, Int_t bufsize=10000000)
void FillTreeWithEvents(KVSimNucleus &, bool, Int_t, TTree *, TString branchname="")
void DecayEvent(const KVSimEvent *, KVSimEvent *, bool=true)
Float_t GetMaxSpinWithFissionBarrier(int, int)
void DecaySingleNucleus(KVSimNucleus &, KVSimEvent *, bool=true)
Float_t GetFissionBarrierSierk(int z, int a)
Return Sierk fission barrier for zero angular momentum.
Float_t GetFissionBarrierRLDM(int z, int a, float J)
Return Rotating Liquid Drop Model fission barrier for given spin in hbar units.
virtual ~KVGemini()
Destructor.
Description of properties and kinematics of atomic nuclei.
Double_t GetExcitEnergy() const
Int_t GetZ() const
Return the number of proton / atomic number.
TVector3 GetVelocity() const
returns velocity vector in cm/ns units
Container class for simulated nuclei, KVSimNucleus.
Nucleus in a simulated event.
const TVector3 * GetAngMom() const
Wrapper class for iterating over nuclei in KVSimEvent accessed through base pointer or reference.
virtual void Error(const char *method, const char *msgfmt,...) const
virtual void Info(const char *method, const char *msgfmt,...) const
Exception(s) thrown by KVGemini.
RVec< PromoteTypes< T0, T1 > > pow(const RVec< T0 > &v, const T1 &y)