6#define GIDI_USE_BDFLS 0
8#ifndef GIDI_settings_hpp_included
9#define GIDI_settings_hpp_included 1
20#if defined( __INTEL_COMPILER )
21#pragma warning( push )
23#if __INTEL_COMPILER > 1399
24#pragma warning( disable:2021 )
25#elif __INTEL_COMPILER > 1199
26#pragma warning( disable:2304 )
31#define GIDI_settings_projectileEnergyMode_continuousEnergy 1
32#define GIDI_settings_projectileEnergyMode_grouped ( 1 << 1 )
33#define GIDI_settings_projectileEnergyMode_fixedGrid ( 1 << 2 )
57 inline bool isLabel( std::string &label )
const {
return( label ==
mLabel ); }
58 void print(
bool outline =
false,
int valuesPerLine = 10 )
const;
61 void initialize( std::string
const &label,
int size,
int length,
double const *values );
67class GIDI_settings_groups_from_bdfls {
70 std::vector<GIDI_settings_group> mGroups;
73 GIDI_settings_groups_from_bdfls( std::string
const &fileName );
74 GIDI_settings_groups_from_bdfls(
char const *fileName );
75 GIDI_settings_groups_from_bdfls( cbdfls_file
const *bdfls );
76 ~GIDI_settings_groups_from_bdfls( );
79 std::vector<std::string> getLabels(
void )
const;
80 std::vector<int> getGIDs(
void )
const;
81 void print(
bool outline =
true,
int valuesPerLine = 10 )
const;
85 void initialize2( cbdfls_file
const *bdfls );
103 double const *energies ,
104 double const *fluxes );
106 std::vector<double>
const &energies ,
107 std::vector<double>
const &fluxes );
116 void print(
int valuesPerLine = 10 )
const;
119 void initialize(
int order,
int length,
double const *energies,
double const *fluxes );
141 inline bool isLabel( std::string
const &label )
const {
return( label ==
mLabel ); }
142 inline bool isLabel(
char const *label )
const {
return( label ==
mLabel ); }
145 void print(
bool outline =
true,
int valuesPerLine = 10 )
const;
149class GIDI_settings_fluxes_from_bdfls {
152 std::vector<GIDI_settings_flux> mFluxes;
155 GIDI_settings_fluxes_from_bdfls( std::string
const &fileName,
double temperature_MeV );
156 GIDI_settings_fluxes_from_bdfls(
char const *fileName,
double temperature_MeV );
157 GIDI_settings_fluxes_from_bdfls( cbdfls_file
const *bdfls,
double temperature_MeV );
158 ~GIDI_settings_fluxes_from_bdfls( );
161 std::vector<std::string> getLabels(
void );
162 std::vector<int> getFIDs(
void );
163 void print(
bool outline =
true,
int valuesPerLine = 10 );
166 void initialize(
char const *fileName,
double temperature_MeV );
167 void initialize2( cbdfls_file
const *bdfls,
double temperature_MeV );
201 int initialize(
int PoPId,
bool transporting,
int energyMode );
239#if defined( __INTEL_COMPILER )
240#pragma warning( pop )
void print(G4double elem)
#define GIDI_settings_projectileEnergyMode_grouped
#define GIDI_settings_projectileEnergyMode_continuousEnergy
#define GIDI_settings_projectileEnergyMode_fixedGrid
void initialize(int order, int length, double const *energies, double const *fluxes)
GIDI_settings_flux_order & operator=(const GIDI_settings_flux_order &fluxOrder)
~GIDI_settings_flux_order()
GIDI_settings_flux_order(int order)
double const * getEnergies(void) const
std::vector< double > mFluxes
void print(int valuesPerLine=10) const
double const * getFluxes(void) const
std::vector< double > mEnergies
GIDI_settings_flux_order const * operator[](int order) const
bool isLabel(char const *label) const
void print(bool outline=true, int valuesPerLine=10) const
double getTemperature() const
std::vector< GIDI_settings_flux_order > mFluxOrders
int getMaxOrder(void) const
GIDI_settings_flux(std::string const &label, double temperature_MeV)
void addFluxOrder(GIDI_settings_flux_order const &fluxOrder)
std::string getLabel() const
GIDI_settings_flux & operator=(const GIDI_settings_flux &flux)
bool isLabel(std::string const &label) const
void initialize(std::string const &label, int size, int length, double const *values)
bool isLabel(std::string &label) const
std::vector< double > mBoundaries
double operator[](int const index) const
GIDI_settings_group & operator=(const GIDI_settings_group &group)
double const * pointer(void) const
void print(bool outline=false, int valuesPerLine=10) const
int getNumberOfGroups(void) const
GIDI_settings_group(std::string const &label="empty", int size=0)
std::string getLabel() const
int getGroupIndexFromEnergy(double energy, bool encloseOutOfRange) const
void setFromCDoubleArray(int length, double *values)
GIDI::ptwXPoints * groupFunction(GIDI::statusMessageReporting *smr, GIDI::ptwXYPoints *ptwXY1, double temperature, int order) const
GIDI_settings_group getGroup(void) const
GIDI_settings_group mGroup
bool isEnergyMode_fixedGrid(void) const
int addFlux(GIDI::statusMessageReporting *smr, GIDI_settings_flux const &flux)
~GIDI_settings_particle()
GIDI_settings_flux const * getProcessedFlux(double temperature) const
int getEnergyMode(void) const
GIDI::ptwXPoints * mGroupX
bool isEnergyMode_continuous(void) const
GIDI_settings_flux const * getFlux(double temperature) const
bool getTransporting(void) const
GIDI_settings_particle(int PoPId, bool transporting, int energyMode)
GIDI_settings_processedFlux const * nearestFluxToTemperature(double temperature) const
void setGroup(GIDI_settings_group const &group)
std::vector< GIDI_settings_processedFlux > mProcessedFluxes
bool isEnergyMode_grouped(void) const
int getGroupIndexFromEnergy(double e_in, bool encloseOutOfRange) const
int initialize(int PoPId, bool transporting, int energyMode)
int getNumberOfGroups(void) const
GIDI_settings_processedFlux(GIDI_settings_flux const &flux, GIDI::ptwXPoints *groupX)
GIDI::ptwXPoints * groupFunction(GIDI::statusMessageReporting *smr, GIDI::ptwXPoints *groupX, GIDI::ptwXYPoints *ptwXY1, int order) const
std::vector< GIDI::ptwXYPoints * > mFluxXY
std::vector< GIDI::ptwXPoints * > mGroupedFlux
double getTemperature() const
GIDI_settings_processedFlux & operator=(const GIDI_settings_processedFlux &flux)
~GIDI_settings_processedFlux()
GIDI_settings_particle const * getParticle(int PoPId) const
int eraseParticle(int PoPId)
int addParticle(GIDI_settings_particle const &particle)
std::map< int, GIDI_settings_particle > mParticles
void initialize(Config const *const theConfig)
Initialize the clustering model based on the Config object.
G4double energy(const ThreeVector &p, const G4double m)
struct ptwXYPoints_s ptwXYPoints
struct ptwXPoints_s ptwXPoints
struct statusMessageReporting statusMessageReporting