Skip to content

Commit 59cdd95

Browse files
authored
Merge pull request #138 from rest-for-physics/mariajmz_wattformula
Formula for evaporation neutrons from U238
2 parents 6940f67 + 7a28f27 commit 59cdd95

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

inc/TRestGeant4PrimaryGeneratorInfo.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,7 @@ enum class EnergyDistributionTypes {
4848
std::string EnergyDistributionTypesToString(const EnergyDistributionTypes&);
4949
EnergyDistributionTypes StringToEnergyDistributionTypes(const std::string&);
5050

51-
enum class EnergyDistributionFormulas {
52-
COSMIC_NEUTRONS,
53-
COSMIC_GAMMAS,
54-
};
51+
enum class EnergyDistributionFormulas { COSMIC_NEUTRONS, COSMIC_GAMMAS, FISSION_NEUTRONS_U238 };
5552

5653
std::string EnergyDistributionFormulasToString(const EnergyDistributionFormulas&);
5754
EnergyDistributionFormulas StringToEnergyDistributionFormulas(const std::string&);

src/TRestGeant4PrimaryGeneratorInfo.cxx

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,8 @@ string TRestGeant4PrimaryGeneratorTypes::EnergyDistributionFormulasToString(
174174
return "CosmicNeutrons";
175175
case EnergyDistributionFormulas::COSMIC_GAMMAS:
176176
return "CosmicGammas";
177+
case EnergyDistributionFormulas::FISSION_NEUTRONS_U238:
178+
return "FissionNeutronsU238";
177179
}
178180
cout << "TRestGeant4PrimaryGeneratorTypes::EnergyDistributionFormulasToString - Error - Unknown energy "
179181
"distribution formula"
@@ -190,6 +192,10 @@ EnergyDistributionFormulas TRestGeant4PrimaryGeneratorTypes::StringToEnergyDistr
190192
EnergyDistributionFormulasToString(EnergyDistributionFormulas::COSMIC_GAMMAS),
191193
TString::ECaseCompare::kIgnoreCase)) {
192194
return EnergyDistributionFormulas::COSMIC_GAMMAS;
195+
} else if (TString(type).EqualTo(
196+
EnergyDistributionFormulasToString(EnergyDistributionFormulas::FISSION_NEUTRONS_U238),
197+
TString::ECaseCompare::kIgnoreCase)) {
198+
return EnergyDistributionFormulas::FISSION_NEUTRONS_U238;
193199
} else {
194200
cout << "TRestGeant4PrimaryGeneratorTypes::StringToEnergyDistributionFormulas - Error - Unknown "
195201
"energyDistributionFormulas: "
@@ -218,6 +224,17 @@ TF1 TRestGeant4PrimaryGeneratorTypes::EnergyDistributionFormulasToRootFormula(
218224
}
219225
case EnergyDistributionFormulas::COSMIC_GAMMAS:
220226
exit(1);
227+
case EnergyDistributionFormulas::FISSION_NEUTRONS_U238: {
228+
// Watt formula for U238. The spectrum parameters are from this reference
229+
// https://arxiv.org/pdf/hep-ex/0312050
230+
const char* title = "Watt formula: Neutrons from U238 fission";
231+
auto distribution =
232+
TF1(title, "TMath::Exp(-x/712.4) * TMath::SinH(TMath::Sqrt(0.0056405*x))", 0, 10000); // keV
233+
distribution.SetNormalized(true);
234+
distribution.SetTitle(title);
235+
distribution.GetXaxis()->SetTitle("Energy (keV)");
236+
return distribution;
237+
}
221238
}
222239
cout << "TRestGeant4PrimaryGeneratorTypes::EnergyDistributionFormulasToRootFormula - Error - Unknown "
223240
"energy distribution formula"

0 commit comments

Comments
 (0)