Commit 96a69eca authored by Morfouace's avatar Morfouace
Browse files

Adding a Fission Event generator based on GEF

parent e397d977
......@@ -6,6 +6,10 @@ add_custom_command(OUTPUT NPQFSDict.cxx COMMAND ${CMAKE_BINARY_DIR}/scripts/buil
add_custom_command(OUTPUT NPDecayDict.cxx COMMAND ${CMAKE_BINARY_DIR}/scripts/build_dict.sh NPDecay.h NPDecayDict.cxx NPDecay.rootmap libNPPhysics.so NPDecayLinkDef.h DEPENDS NPDecay.h NPDecayLinkDef.h)
add_custom_command(OUTPUT NPFissionDecayDict.cxx COMMAND ${CMAKE_BINARY_DIR}/scripts/build_dict.sh NPFissionDecay.h NPFissionDecayDict.cxx NPFissionDecay.rootmap libNPPhysics.so NPFissionDecayLinkDef.h DEPENDS NPFissionDecay.h NPFissionDecayLinkDef.h)
add_custom_command(OUTPUT GEFDict.cxx COMMAND ${CMAKE_BINARY_DIR}/scripts/build_dict.sh GEF.h GEFDict.cxx GEF.rootmap libNPPhysics.so GEFLinkDef.h DEPENDS GEF.h GEFLinkDef.h)
add_custom_command(OUTPUT NPEnergyLossDict.cxx COMMAND ${CMAKE_BINARY_DIR}/scripts/build_dict.sh NPEnergyLoss.h NPEnergyLossDict.cxx NPEnergyLoss.rootmap libNPPhysics.so NPEnergyLossLinkDef.h DEPENDS NPEnergyLoss.h NPEnergyLossLinkDef.h)
add_custom_command(OUTPUT TInitialConditionsDict.cxx COMMAND ${CMAKE_BINARY_DIR}/scripts/build_dict.sh TInitialConditions.h TInitialConditionsDict.cxx TInitialConditions.rootmap libNPInitialConditions.so DEPENDS TInitialConditions.h)
......@@ -14,7 +18,9 @@ add_custom_command(OUTPUT TInteractionCoordinatesDict.cxx COMMAND ${CMAKE_BINARY
add_custom_command(OUTPUT TReactionConditionsDict.cxx COMMAND ${CMAKE_BINARY_DIR}/scripts/build_dict.sh TReactionConditions.h TReactionConditionsDict.cxx TReactionConditions.rootmap libNPReactionConditions.so DEPENDS TReactionConditions.h)
add_library(NPPhysics SHARED NPDecay.cxx NPBeam.cxx NPEnergyLoss.cxx NPFunction.cxx NPParticle.cxx NPReaction.cxx NPQFS.cxx NPParticleDict.cxx NPReactionDict.cxx NPQFSDict.cxx NPEnergyLossDict.cxx )
add_custom_command(OUTPUT TFissionConditionsDict.cxx COMMAND ${CMAKE_BINARY_DIR}/scripts/build_dict.sh TFissionConditions.h TFissionConditionsDict.cxx TFissionConditions.rootmap libNPFissionConditions.so DEPENDS TFissionConditions.h)
add_library(NPPhysics SHARED GEF.cxx NPFissionDecay.cxx NPDecay.cxx NPBeam.cxx NPEnergyLoss.cxx NPFunction.cxx NPParticle.cxx NPReaction.cxx NPQFS.cxx NPParticleDict.cxx NPReactionDict.cxx NPQFSDict.cxx NPEnergyLossDict.cxx )
target_link_libraries(NPPhysics ${ROOT_LIBRARIES} Physics NPCore)
add_library(NPInitialConditions SHARED TInitialConditions.cxx TInitialConditionsDict.cxx )
......@@ -26,4 +32,8 @@ target_link_libraries(NPInteractionCoordinates ${ROOT_LIBRARIES} )
add_library(NPReactionConditions SHARED TReactionConditions.cxx TReactionConditionsDict.cxx)
target_link_libraries(NPReactionConditions ${ROOT_LIBRARIES} )
install(FILES NPDecay.h NPBeam.h NPEnergyLoss.h NPFunction.h NPParticle.h NPNucleus.h NPReaction.h NPQFS.h TInitialConditions.h TInteractionCoordinates.h TReactionConditions.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
add_library(NPFissionConditions SHARED TFissionConditions.cxx TFissionConditionsDict.cxx)
target_link_libraries(NPFissionConditions ${ROOT_LIBRARIES} )
install(FILES GEF.h NPFissionDecay.h NPDecay.h NPBeam.h NPEnergyLoss.h NPFunction.h NPParticle.h NPNucleus.h NPReaction.h NPQFS.h TInitialConditions.h TInteractionCoordinates.h TReactionConditions.h TFissionConditions.h DESTINATION ${CMAKE_INCLUDE_OUTPUT_DIRECTORY})
This diff is collapsed.
This diff is collapsed.
/*****************************************************************************
* Copyright (C) 2009-2016 this file is part of the NPTool Project *
* *
* For the licensing terms see $NPTOOL/Licence/NPTool_Licence *
* For the list of contributors see $NPTOOL/Licence/Contributors *
*****************************************************************************/
/*****************************************************************************
* *
* Original Author : Pierre Morfouace contact: pierre.morfouace2@cea.fr *
* *
* Creation Date : Octobre 2020 *
* Last update : *
*---------------------------------------------------------------------------*
* Decription: *
* This Class hold data for fission decay of a given nuclei *
* *
* *
* *
*---------------------------------------------------------------------------*
* Comment: *
* *
* *
* *
*****************************************************************************/
#include "NPFissionDecay.h"
#include <iostream>
#include "NPOptionManager.h"
#include "NPFunction.h"
#include "NPCore.h"
#include "TF1.h"
#include "TRandom.h"
////////////////////////////////////////////////////////////////////////////////
//////////////////////////// Fission Decay //////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
NPL::FissionDecay::FissionDecay(std::string compound, std::string fission_model){
m_FissionModelName = fission_model;
m_CompoundName = compound;
}
////////////////////////////////////////////////////////////////////////////////
void NPL::FissionDecay::ReadConfiguration(NPL::InputParser parser){
vector<NPL::InputBlock*> blocks = parser.GetAllBlocksWithToken("FissionDecay");
if(blocks.size()>0 && NPOptionManager::getInstance()->GetVerboseLevel())
cout << endl << "\033[1;35m//// Fission decay found" << std::endl;
std::vector<std::string> token =
{"CompoundNucleus","FissionModel","Shoot_FF","Shoot_neutron","Shoot_gamma"};
unsigned int size = blocks.size();
for(unsigned int i = 0 ; i < size ; i++){
if(blocks[i]->HasTokenList(token)){
m_CompoundName = blocks[i]->GetString("CompoundNucleus");
m_FissionModelName = blocks[i]->GetString("FissionModel");
m_shoot_FF = blocks[i]->GetInt("Shoot_FF");
m_shoot_neutron = blocks[i]->GetInt("Shoot_neutron");
m_shoot_gamma = blocks[i]->GetInt("Shoot_gamma");
m_Compound = NPL::Particle(m_CompoundName);
if(m_FissionModelName=="GEF") m_FissionModel = new GEF(m_Compound);
}
else{
cout << "ERROR: check your input file formatting \033[0m" << endl;
exit(1);
}
}
}
////////////////////////////////////////////////////////////////////////////////
bool NPL::FissionDecay::GenerateEvent(string CompoundName, double MEx,double MEK,double MPx,double MPy,double MPz,
std::vector<NPL::Particle>& FissionFragments, std::vector<double>& Ex,
std::vector<double>& DEK,
std::vector<double>& DPx,std::vector<double>& DPy,std::vector<double>& DPz,
double& TKE, double &KE1, double& KE2){
bool worked=false;
FissionFragments.clear();
Ex.clear();
DEK.clear();
DPx.clear();
DPy.clear();
DPz.clear();
TVector3 Momentum(MPx,MPy,MPz);
Momentum.Unit();
double Theta = Momentum.Theta();
double Phi = Momentum.Phi();
m_Compound = NPL::Particle(CompoundName);
m_Compound.SetExcitationEnergy(MEx);
m_Compound.SetKineticEnergy(MEK);
if(m_FissionModelName=="GEF"){
if(m_FissionModel->IsValid(m_Compound.GetZ(), m_Compound.GetA())){
worked=true;
m_FissionModel->InitCompound(MEx,MEK);
m_FissionModel->Treat();
int Ah = m_FissionModel->GetAffh();
int Zh = m_FissionModel->GetZffh();
int Al = m_FissionModel->GetAffl();
int Zl = m_FissionModel->GetZffl();
double KEl = m_FissionModel->GetKEffl();
double KEh = m_FissionModel->GetKEffh();
NPL::Particle FFl = NPL::Particle(Zl,Al);
NPL::Particle FFh = NPL::Particle(Zh,Ah);
FFl.SetKineticEnergy(KEl);
FFh.SetKineticEnergy(KEh);
FissionFragments.push_back(FFl);
FissionFragments.push_back(FFh);
Ex.push_back(0);
Ex.push_back(0);
DEK.push_back(KEl);
DEK.push_back(KEh);
double Massl = FFl.Mass();
double Massh = FFh.Mass();
double El = KEl+Massl;
double Eh = KEh+Massh;
double Pl = sqrt(El*El-Massl*Massl);
double Ph = sqrt(Eh*Eh-Massh*Massh);
double Thetal = m_FissionModel->GetThffl();
double Thetah = m_FissionModel->GetThffh();
double Phil = m_FissionModel->GetPhffl();
double Phih = m_FissionModel->GetPhffh();
/*cout << endl;
cout << "A-> " << Al << " / " << Ah << endl;
cout << "Z-> " << Zl << " / " << Zh << endl;
cout << "Phi-> " << Phil << " / " << Phih << endl;
cout << "Theta-> " << Thetal << " / " << Thetah << endl;
cout << "KE-> " << KEl << " / " << KEh << endl;*/
TVector3 Momentuml = Pl * TVector3(sin(Thetal)*cos(Phil),
sin(Thetal)*sin(Phil),
cos(Thetal));
TVector3 Momentumh = Ph * TVector3(sin(Thetah)*cos(Phih),
sin(Thetah)*sin(Phih),
cos(Thetah));
DPx.push_back(Momentuml.X());
DPx.push_back(Momentumh.X());
DPy.push_back(Momentuml.Y());
DPy.push_back(Momentumh.Y());
DPz.push_back(Momentuml.Z());
DPz.push_back(Momentumh.Z());
TKE = m_FissionModel->GetTKE();
KE1 = m_FissionModel->GetKE1();
KE2 = m_FissionModel->GetKE2();
// Neutron emission
float* En1;
En1 = m_FissionModel->GetNeutronEnergyFrag1();
/*cout << "----- Neutron energy: " << endl;
for(int i=0; i<51; i++) {
cout << "En= " << En1[i] << endl;
}*/
}
}
return worked;
}
#ifndef NPFISSIONDECAY_H
#define NPFISSIONDECAY_H
/*****************************************************************************
* Copyright (C) 2009-2016 this file is part of the NPTool Project *
* *
* For the licensing terms see $NPTOOL/Licence/NPTool_Licence *
* For the list of contributors see $NPTOOL/Licence/Contributors *
*****************************************************************************/
/*****************************************************************************
* *
* Original Author : Pierre Morfouace contact: pierre.morfouace2@cea.fr *
* *
* Creation Date : Octobre 2020 *
* Last update : *
*---------------------------------------------------------------------------*
* Decription: *
* This Class hold data for fission decay of a given nuclei *
* *
* *
* *
*---------------------------------------------------------------------------*
* Comment: *
* *
* *
* *
* *
*****************************************************************************/
// C++ header
#include <string>
#include <vector>
#include <set>
// NPL Header
#include "NPInputParser.h"
#include "NPParticle.h"
#include "GEF.h"
namespace NPL{
class FissionDecay{
public:
FissionDecay(){};
FissionDecay(std::string compound, std::string fission_model);
~FissionDecay(){};
public:
void ReadConfiguration(std::string Path);
void ReadConfiguration(NPL::InputParser parser);
private:
GEF* m_FissionModel;
std::string m_FissionModelName;
std::string m_CompoundName;
NPL::Particle m_Compound;
double m_MotherMass;
std::vector<std::string> m_FissionFragmentName;
std::vector<NPL::Particle> m_FissionFragment;
std::vector<double> m_FissionFragmentMasses;
bool m_shoot_FF;
bool m_shoot_neutron;
bool m_shoot_gamma;
public:
// Given Energy and Momentum direction of the compound,
// Send back Momemtum and Energy of fission fragments
// Return false if the fission is not possible
bool GenerateEvent(string CompoundName, double MEx,double MEK,double MPx, double MPy,double MPz,
std::vector<NPL::Particle>& FissionFragments, std::vector<double>& Ex,
std::vector<double>& DEK,
std::vector<double>& DPx,std::vector<double>& DPy,std::vector<double>& DPz,
double& TKE, double& KE1, double& KE2);
public:// Getter
inline std::vector<std::string> GetFissionFragmentName() {return m_FissionFragmentName;};
inline std::vector<NPL::Particle> GetFissionFragment() {return m_FissionFragment;};
inline NPL::Particle GetCompound() {return m_Compound;};
inline std::string GetCompoundName() {return m_CompoundName;};
};
}
#endif
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Emax_valid 100 // Maximum allowed excitation energy
Eexc_min_multi 3 // Threshold for calc. of multi-chance fission
_Delta_S0 0 // Shell effect for SL, for individual systems
EOscale 1.0 // Scaling factor for even-odd structure in yields
Emode 1 // 0: E over BF_B 1: E over gs 2: E_neutron 12: E_proton
D_Par_Fac 1 // Scales the variation of perturbed parameters
_P_DZ_Mean_S1 -0.3
_P_DZ_Mean_S2 -0.4
_P_DZ_Mean_S3 0.2 // Shift of mean Z of Mode 3
_P_DZ_Mean_S4 0 // Shell for structure at A around 190
ZC_Mode_4L 44.4
_P_Z_Curv_S1 0.38
P_Z_Curvmod_S1 1.75 // Scales energy-dependent shift
_P_Z_Curv_S2 0.098
_S2leftmod 0.75 // Asymmetry in diffuseness of S2 mass peak
P_Z_Curvmod_S2 10 // Scales energy-dependent shift
_P_A_Width_S2 11.5 // A width of Mode 2 (box)
P_Cut_S2 0 // Divide S2 into two modes, S2a and S2b
_P_Z_Curv_S3 0.09
P_Z_Curvmod_S3 10 // Scales energy-dependent shift
P_Z_Curv_SL4 0.07
P_Z_Sigma_SL4 1.15
_P_Z_Curv_S4 0.05
P_Z_Curvmod_S4 10 // Scales energy-dependent shift
_P_Shell_S1 -3.0 // Shell effect for Mode 1 (S1)
_P_Shell_S2 -4.4 // Shell effect for Mode 2 (S2)
_P_Shell_S3 -7.2 // Shell effect for Mode 3 (SA)
P_Shell_SL4 -0.4
_P_Shell_S4 -1.0 // Shell effect for Mode 4
P_S4_NZmod -0.06 // Variation of S4 shell with N/Z (reference: 180Hg)
PZ_S3_olap_pos 39.7 // Pos. of S3 shell in light fragment (in Z)
PZ_S3_olap_curv 0.0045
ETHRESHSUPPS1 10.85
ESIGSUPPS1 1.0
Level_S11 1.6
Shell_fading 50 // fading of shell effect with E*
_T_low_S1 0.31
_T_low_S2 0.31 // Slope parameter for tunneling
_T_low_S3 0.31 // Slope parameter for tunneling
_T_low_S4 0.31 // Slope parameter for tunneling
_T_low_SL 0.31 // Slope parameter for tunneling
T_low_S11 0.36 // Slope parameter for tunneling
_P_att_pol 2.5
P_att_pol2 0
P_att_pol3 0
_P_att_rel 1 // Relative portion of attenuation
dE_Defo_S1 -2.8 // Deformation energy expense for Mode 1
dE_Defo_S2 0 // Deformation energy expense for Mode 2
dE_Defo_S3 0 // Deformation energy expense for Mode 3
dE_Defo_S4 0 // Deformation energy expense for Mode 4
betaL0 27.6
betaL1 0.67
betaH0 46.24 // Offset for deformation of heavy fragment
betaH1 0.60
kappa 0 // N/Z dedendence of A-asym. potential
TCOLLFRAC 0.04 // Tcoll per energy gain from saddle to scission
ECOLLFRAC 0.055 // Fraction of pot. energy gain from saddle to scission, going into coll. excitations
TFCOLL 0.034
TCOLLMIN 0.12
ESHIFTSASCI_intr -67 // Shift of saddle-scission energy
ESHIFTSASCI_coll -90 // Shift of saddle-scission energy
EDISSFRAC 0.35
Epot_shift 0
SIGDEFO 0.165
SIGDEFO_0 0.165
SIGDEFO_slope 0
SIGENECK 5.0 // Width of TXE by fluctuation of neck length
EexcSIGrel 0.7
DNECK 1 // Tip distance at scission / fm
FTRUNC50 1 // Truncation near Z 50
ZTRUNC50 50 // Z value for truncation
FTRUNC28 0.56 // Truncation near Z 28
ZTRUNC28 30.5 // Z value for truncation
ZMAX_S2 60 // Maximum Z of S2 channel in light fragment
NTRANSFEREO 6 // Steps for E sorting for even-odd effect
NTRANSFERE 12 // Steps for E sorting for energy division
Csort 0.5 // Smoothing of energy sorting
PZ_EO_symm 2.6 // Even-odd effect in Z at symmetry
PN_EO_Symm 2.6 // Even-odd effect in N at symmetry
R_EO_THRESH 0.398 // Threshold for asymmetry-driven even-odd effect
R_EO_SIGMA 2.0
R_EO_Max 0.6
_POLARadd 0.35 // Offset for enhanced polarization
POLARfac 1 // Enhancement of polarization of liqu. drop
T_POL_RED 0.01 // Reduction of temperature for sigma(Z)
_HOMPOL 1.3 // hbar omega of polarization oscillation
ZPOL1 0 // Extra charge polarization of S1
P_n_x 0 // Enhanced inverse neutron x section
Tscale 1
Econd 2
T_orbital 0 // From orbital ang. momentum
_Jscaling 1.0 // General scaling of fragment angular momenta
Spin_odd 0.4 // RMS Spin enhancement for odd Z
Esort_extend 1.5 // Extension of energy range for E-sorting
Esort_slope 0.04 // Onset of E-sorting around symmetry
Esort_slope_S0 0.2 // Onset of E-sorting around symmetry for S0 channel
This diff is collapsed.
This diff is collapsed.
/*****************************************************************************
* Copyright (C) 2009-2016 this file is part of the NPTool Project *
* *
* For the licensing terms see $NPTOOL/Licence/NPTool_Licence *
* For the list of contributors see $NPTOOL/Licence/Contributors *
*****************************************************************************/
/*****************************************************************************
* Original Author: Pierre Morfouace address: pierre.morfouace2@cea.fr *
* *
* Creation Date : 01/10/20 *
* Last update : *
*---------------------------------------------------------------------------*
* Decription: This class records all the information concerning the fission *
* fragment and the Ex of the fissioning system *
*---------------------------------------------------------------------------*
* Comment: *
* *
* *
*****************************************************************************/
#include <iostream>
using namespace std;
#include "TFissionConditions.h"
ClassImp(TFissionConditions)
////////////////////////////////////////////////////////////////////////////////
TFissionConditions::TFissionConditions(){
}
////////////////////////////////////////////////////////////////////////////////
TFissionConditions::~TFissionConditions(){
}
////////////////////////////////////////////////////////////////////////////////
void TFissionConditions::Clear(){
// Fissionning system
fFC_A_CN = -10;
fFC_Z_CN = -10;
fFC_Ex_CN = -10;
fFC_ELab_CN = -10;
fFC_ThetaLab_CN = -10;
// Fission process
fFC_TKE = -10;
fFC_KE1 = -10;
fFC_KE2 = -10;
fFC_Neutron_Multiplicity = -10;
// Fission Fragments
fFC_Fragment_Name.clear();
fFC_Fragment_A.clear();
fFC_Fragment_Z.clear();
fFC_Fragment_Theta.clear();
fFC_Fragment_Phi.clear();
fFC_Fragment_Kinetic_Energy.clear();
fFC_Fragment_Brho.clear();
fFC_Fragment_Momentum_Direction_X.clear();
fFC_Fragment_Momentum_Direction_Y.clear();
fFC_Fragment_Momentum_Direction_Z.clear();
}
////////////////////////////////////////////////////////////////////////////////
void TFissionConditions::Dump() const{
cout << "--------- Fission Condition Dump ---------" << endl ;
// Fissionning system
cout << "\t ---- Fissionning system ---- " << endl;
cout << "\t Z: " << fFC_Z_CN << endl;
cout << "\t A: " << fFC_A_CN << endl;
cout << "\t Ex: " << fFC_Ex_CN << endl;
cout << "\t TKE: " << fFC_TKE << endl;
cout << "\t Neutron Mult: " << fFC_Neutron_Multiplicity << endl;
// Fission fragments
unsigned int size = fFC_Fragment_A.size();
for(unsigned int i = 0 ; i < size; i ++){
cout << "\t ---- Particle " << i << " ---- " << endl;
cout << "\t Fragment Z: " << fFC_Fragment_Z[i] << endl;
cout << "\t Fragment A: " << fFC_Fragment_A[i] << endl;
}
}
#ifndef TFISSIONCONDITIONS_H
#define TFISSIONCONDITIONS_H
/*****************************************************************************
* Copyright (C) 2009-2016 this file is part of the NPTool Project *
* *
* For the licensing terms see $NPTOOL/Licence/NPTool_Licence *
* For the list of contributors see $NPTOOL/Licence/Contributors *
*****************************************************************************/
/*****************************************************************************
* Original Author: Pierre Morfouace address: pierre.morfouace2@cea.fr *
* *
* Creation Date : 01/10/20 *
* Last update : *
*---------------------------------------------------------------------------*
* Decription: This class records all the information concerning the fission *
* fragments and the Ex of the fissionning system *
*---------------------------------------------------------------------------*
* Comment: *
* *
* *
*****************************************************************************/
// STL Header
#include <vector>
#include <string>
#include <cmath>
using namespace std ;
// Root Header
#include "TObject.h"
#include "TVector3.h"
// NPTOOL headers
#include "NPGlobalSystemOfUnits.h"
#include "NPPhysicalConstants.h"
#ifdef NP_SYSTEM_OF_UNITS_H
using namespace NPUNITS;
#endif
class TFissionConditions : public TObject{
private:
// Fissionning system
int fFC_A_CN;
int fFC_Z_CN;
double fFC_Ex_CN;
double fFC_ELab_CN;
double fFC_ThetaLab_CN;
// Fission Process
double fFC_TKE;
double fFC_KE1;
double fFC_KE2;
int fFC_Neutron_Multiplicity;
// Fission Fragments
vector<string> fFC_Fragment_Name;
vector<int> fFC_Fragment_Z;
vector<int> fFC_Fragment_A;
vector<double> fFC_Fragment_Theta;
vector<double> fFC_Fragment_Phi;
vector<double> fFC_Fragment_Kinetic_Energy;
vector<double> fFC_Fragment_Brho;
vector<double> fFC_Fragment_Momentum_Direction_X;
vector<double> fFC_Fragment_Momentum_Direction_Y;
vector<double> fFC_Fragment_Momentum_Direction_Z;
public:
TFissionConditions();
virtual ~TFissionConditions();
void Clear();
void Clear(const Option_t*) {Clear();};
void Dump() const;
///////////////////// SETTERS ////////////////////////
// Fissionning system parameter
void SetA_CN (const int A_CN) {fFC_A_CN = A_CN;}//!
void SetZ_CN (const int Z_CN) {fFC_Z_CN = Z_CN;}//!
void SetEx_CN (const double Ex_CN) {fFC_Ex_CN = Ex_CN;}//!
void SetELab_CN (const double ELab_CN) {fFC_ELab_CN = ELab_CN;}//!
void SetThetaLab_CN (const double Theta_CN) {fFC_ThetaLab_CN = Theta_CN;}//!
// Fission process
void Set_TKE (const double E) {fFC_TKE = E;}//!
void Set_KE1 (const double E) {fFC_KE1 = E;}//!
void Set_KE2 (const double E) {fFC_KE2 = E;}//!
void SetNeutronMultiplicity (const int mult) {fFC_Neutron_Multiplicity = mult;}//!
// Fission Fragments
void SetFragmentName (const string name) {fFC_Fragment_Name.push_back(name);}//!
void SetFragmentZ (const int Z) {fFC_Fragment_Z.push_back(Z);}//!
void SetFragmentA (const int A) {fFC_Fragment_A.push_back(A);}//!
void SetFragmentTheta (const double Theta) {fFC_Fragment_Theta.push_back(Theta);}//!
void SetFragmentPhi (const double Phi) {fFC_Fragment_Phi.push_back(Phi);}//!
void SetFragmentKineticEnergy (const double E) {fFC_Fragment_Kinetic_Energy.push_back(E);}//!
void SetFragmentBrho (const double Brho) {fFC_Fragment_Brho.push_back(Brho);}//!
void SetFragmentMomentumX (const double P) {fFC_Fragment_Momentum_Direction_X.push_back(P);}//!
void SetFragmentMomentumY (const double P) {fFC_Fragment_Momentum_Direction_Y.push_back(P);}//!