Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -202,9 +202,11 @@ set(BxDecay0_HEADERS
bxdecay0/Sb125.h
bxdecay0/Sb126.h
bxdecay0/Sb133.h
# bxdecay0/Sc44.h # Added from 2025-12-XX
bxdecay0/Sc44.h # Added Sc44 and Sc44m from 2025-12-16
bxdecay0/Sc44m.h
bxdecay0/Sc48.h
bxdecay0/Se76low.h
bxdecay0/Se83.h # Added from 2025-12-16
bxdecay0/Sm148low.h
bxdecay0/Sm150low.h
bxdecay0/Sn114low.h
Expand Down Expand Up @@ -392,9 +394,11 @@ set(BxDecay0_SOURCES
bxdecay0/Sb125.cc
bxdecay0/Sb126.cc
bxdecay0/Sb133.cc
# bxdecay0/Sc44.cc # Added from 2025-12-XX
bxdecay0/Sc44.cc # Added Sc44 and Sc44m from 2025-12-10
bxdecay0/Sc44m.cc
bxdecay0/Sc48.cc
bxdecay0/Se76low.cc
bxdecay0/Se83.cc # Added from 2025-12-16
bxdecay0/Sm148low.cc
bxdecay0/Sm150low.cc
bxdecay0/Sn114low.cc
Expand Down Expand Up @@ -563,8 +567,10 @@ if(BUILD_TESTING)
bxdecay0/testing/test_bb_utils.cxx
bxdecay0/testing/test_bb.cxx
bxdecay0/testing/test_genbbsub.cxx
# bxdecay0/testing/test_Sc44.cxx # Added from 2025-12-XX
bxdecay0/testing/test_Sc44.cxx # Added Sc44 and Sc44m from 2025-12-16
bxdecay0/testing/test_Sc44m.cxx
bxdecay0/testing/test_Ga68.cxx # Added from 2025-12-05
bxdecay0/testing/test_Se83.cxx # Added from 2025-12-16
bxdecay0/testing/test_decay0_generator.cxx
bxdecay0/testing/test_event_reader.cxx
)
Expand Down
5 changes: 3 additions & 2 deletions bxdecay0/Ga68.cc
Original file line number Diff line number Diff line change
Expand Up @@ -66,15 +66,15 @@ namespace bxdecay0 {

// Three possible β⁺ decay modes
if (pbeta <= 0.000285) {
decay0_beta(prng_, event_, 1.8991, -30, 0., 0., t);
decay0_beta(prng_, event_, 0.2432, -30, 0., 0., t);
goto label_1656;
}
if (pbeta <= 1.190) {
decay0_beta(prng_, event_, 0.8217, -30, 0., 0., t);
goto label_1077;
}
if (pbeta <= 88.9103) {
decay0_beta(prng_, event_, 0.2432, -30, 0., 0., t);
decay0_beta(prng_, event_, 1.8991, -30, 0., 0., t);
goto label_10000;
}
// Six electron-capture processes
Expand All @@ -98,6 +98,7 @@ namespace bxdecay0 {
decay0_gamma(prng_, event_, 0.01, 0., 0., t);
goto label_1077;
}
decay0_gamma(prng_, event_, 0.01, 0., 0., t);
goto label_10000;

label_2822:
Expand Down
119 changes: 119 additions & 0 deletions bxdecay0/Sc44.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
// Copyright 1995-2016 V.I. Tretyak
// Copyright 2011-2017 F. Mauger
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.

// Ourselves:
#include <bxdecay0/Sc44.h>

// Standard library:
#include <cmath>
#include <sstream>
#include <stdexcept>

// This project:
#include <bxdecay0/PbAtShell.h>
#include <bxdecay0/alpha.h>
#include <bxdecay0/beta.h>
#include <bxdecay0/beta1.h>
#include <bxdecay0/beta2.h>
#include <bxdecay0/beta_1fu.h>
#include <bxdecay0/electron.h>
#include <bxdecay0/event.h>
#include <bxdecay0/gamma.h>
#include <bxdecay0/i_random.h>
#include <bxdecay0/nucltransK.h>
#include <bxdecay0/nucltransKL.h>
#include <bxdecay0/nucltransKLM.h>
#include <bxdecay0/nucltransKLM_Pb.h>
#include <bxdecay0/pair.h>
#include <bxdecay0/particle.h>
#include <bxdecay0/positron.h>

namespace bxdecay0 {

void Sc44(i_random & prng_, event & event_, const double tcnuc_, double & tdnuc_)
{
double t;
double tdlev;
double p;
double pbeta;
double tclev;
double thlev;
double thnuc;
// Scheme of Sc44 decay (National Nuclear Data Center (NNDC), Brookhaven National Laboratory).
// levels in keV.
// Input : tcnuc_ - time of creation of nucleus (sec)
// Output: tdnuc_ - time of decay of nucleus (sec)
// // common/genevent/tevst,npfull,npgeant(100),pmoment(3,100),// ptime(100).
// VIT, 7.05.1998
thnuc = 1.45512e+04;
tdnuc_ = tcnuc_ - thnuc / std::log(2.) * std::log(prng_());
tclev = 0.;
pbeta = 100. * prng_();

// One possible β⁺ decay mode
if (pbeta <= 94.27) {
decay0_beta(prng_, event_, 1.4737, -20, 0., 0., t);
goto label_1157;
}
// Three electron-capture processes
if (pbeta <= 94.2744) {
decay0_gamma(prng_, event_, 0.04, 0., 0., t);
goto label_3302;
}
if (pbeta <= 95,293) {
decay0_gamma(prng_, event_, 0.04, 0., 0., t);
goto label_2657;
}
decay0_gamma(prng_, event_, 0.04, 0., 0., t);
goto label_1157;

label_3302:
thlev = 35e-15;
p = 100. * prng_();
if (p <= 72.55) {
decay0_nucltransK(prng_, event_, 2.14442, 0.00404, 0.0, 0.0, tclev, thlev, tdlev);
goto label_1157;
}
decay0_nucltransK(prng_, event_, 3.30133, 0.00404, 9.3e-6, 0.0, tclev, thlev, tdlev);
goto label_10000;


label_2657:
thlev = 30e-15;
p = 100. * prng_();
if (p <= 89.0) {
decay0_nucltransK(prng_, event_, 1.4995, 0.00404, 3.1e-5, 0.0, tclev, thlev, tdlev);
goto label_1157;
}
decay0_nucltransK(prng_, event_, 2.6564, 0.00404, 1.34e-5, 0.0, tclev, thlev, tdlev);
goto label_10000;

label_1157:
thlev = 2.95e-12;
decay0_nucltransK(prng_, event_, 1.157, 0.00404, 6.0e-5, 0.0, tclev, thlev, tdlev);

label_10000:
return;

}
// end of Sc44.f

} // end of namespace bxdecay0

// end of Sc44.cc
// Local Variables: --
// mode: c++ --
// End: --
17 changes: 17 additions & 0 deletions bxdecay0/Sc44.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#ifndef BXDECAY0_SC44_H
#define BXDECAY0_SC44_H

namespace bxdecay0 {

class i_random;
class event;

void Sc44(i_random & prng_, event & event_, const double tcnuc_, double & tdnuc_);

} // end of namespace bxdecay0

#endif // BXDECAY0_SC44_H

// Local Variables: --
// mode: c++ --
// End: --
102 changes: 102 additions & 0 deletions bxdecay0/Sc44m.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
// Copyright 1995-2016 V.I. Tretyak
// Copyright 2011-2017 F. Mauger
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.

// Ourselves:
#include <bxdecay0/Sc44m.h>

// Standard library:
#include <cmath>
#include <sstream>
#include <stdexcept>

// This project:
#include <bxdecay0/PbAtShell.h>
#include <bxdecay0/alpha.h>
#include <bxdecay0/beta.h>
#include <bxdecay0/beta1.h>
#include <bxdecay0/beta2.h>
#include <bxdecay0/beta_1fu.h>
#include <bxdecay0/electron.h>
#include <bxdecay0/event.h>
#include <bxdecay0/gamma.h>
#include <bxdecay0/i_random.h>
#include <bxdecay0/nucltransK.h>
#include <bxdecay0/nucltransKL.h>
#include <bxdecay0/nucltransKLM.h>
#include <bxdecay0/nucltransKLM_Pb.h>
#include <bxdecay0/pair.h>
#include <bxdecay0/particle.h>
#include <bxdecay0/positron.h>

namespace bxdecay0 {

void Sc44m(i_random & prng_, event & event_, const double tcnuc_, double & tdnuc_)
{
double t;
double tdlev;
double p;
double pbeta;
double tclev;
double thlev;
double thnuc;
// Scheme of Sc44m decay (National Nuclear Data Center (NNDC), Brookhaven National Laboratory).
// levels in keV.
// Input : tcnuc_ - time of creation of nucleus (sec)
// Output: tdnuc_ - time of decay of nucleus (sec)
// // common/genevent/tevst,npfull,npgeant(100),pmoment(3,100),// ptime(100).
// VIT, 7.05.1998
thnuc = 2.10996e+05;
tdnuc_ = tcnuc_ - thnuc / std::log(2.) * std::log(prng_());
tclev = 0.;
pbeta = 100. * prng_();

// IT to Sc44
if (pbeta <= 98.77) {
decay0_nucltransK(prng_, event_, 0.271251, 0.005, 0.14, 0., tclev, thlev, tdlev);
return;
}

// Electron-capture process
decay0_gamma(prng_, event_, 0.04, 0., 0., t);
goto label_3285;

label_3285:
thlev = 13.3e-12;
decay0_nucltransK(prng_, event_, 1.0019, 0.00404, 9.3e-6, 0.0, tclev, thlev, tdlev);
goto label_10000;


label_2283:
thlev = 1.9e-12;
decay0_nucltransK(prng_, event_, 1.1261, 0.00404, 1.34e-5, 0.0, tclev, thlev, tdlev);
goto label_10000;

label_1157:
thlev = 2.95e-12;
decay0_nucltransK(prng_, event_, 1.157, 0.00404, 6.0e-5, 0.0, tclev, thlev, tdlev);

label_10000:
return;

}
// end of Sc44m.f

} // end of namespace bxdecay0

// end of Sc44m.cc
// Local Variables: --
// mode: c++ --
// End: --
17 changes: 17 additions & 0 deletions bxdecay0/Sc44m.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#ifndef BXDECAY0_SC44M_H
#define BXDECAY0_SC44M_H

namespace bxdecay0 {

class i_random;
class event;

void Sc44m(i_random & prng_, event & event_, const double tcnuc_, double & tdnuc_);

} // end of namespace bxdecay0

#endif // BXDECAY0_SC44M_H

// Local Variables: --
// mode: c++ --
// End: --
Loading
Loading