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 )
39 std::vector<double> mBoundaries;
49 inline double operator[](
int const index )
const {
return( mBoundaries[index] ); }
50 inline int size(
void )
const {
return( (
int) mBoundaries.size( ) ); }
52 inline double const *
pointer(
void )
const {
return( &(mBoundaries[0]) ); }
55 inline std::string
getLabel( )
const {
return( mLabel ); }
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 );
96 std::vector<double> mEnergies;
97 std::vector<double> mFluxes;
103 double const *energies ,
104 double const *fluxes );
106 std::vector<double>
const &energies ,
107 std::vector<double>
const &fluxes );
112 inline int getOrder(
void )
const {
return( mOrder ); }
113 inline int size(
void )
const {
return( (
int) mEnergies.size( ) ); }
114 inline double const *
getEnergies(
void )
const {
return( &(mEnergies[0]) ); }
115 inline double const *
getFluxes(
void )
const {
return( &(mFluxes[0]) ); }
116 void print(
int valuesPerLine = 10 )
const;
119 void initialize(
int order,
int length,
double const *energies,
double const *fluxes );
127 std::vector<GIDI_settings_flux_order> mFluxOrders;
137 inline int getMaxOrder(
void )
const {
return( (
int) mFluxOrders.size( ) - 1 ); }
138 inline int size(
void )
const {
return( (
int) mFluxOrders.size( ) ); }
140 inline std::string
getLabel( )
const {
return( mLabel ); }
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 );
175 std::vector<GIDI::ptwXYPoints *> mFluxXY;
176 std::vector<GIDI::ptwXPoints *> mGroupedFlux;
185 GIDI::ptwXPoints *
groupFunction( GIDI::statusMessageReporting *smr, GIDI::ptwXPoints *groupX, GIDI::ptwXYPoints *ptwXY1,
int order )
const;
195 GIDI::ptwXPoints *mGroupX;
196 std::vector<GIDI_settings_processedFlux> mProcessedFluxes;
201 int initialize(
int PoPId,
bool transporting,
int energyMode );
208 inline int getPoPId(
void )
const {
return( mPoPId ); }
213 GIDI::ptwXPoints *
groupFunction( GIDI::statusMessageReporting *smr, GIDI::ptwXYPoints *ptwXY1,
double temperature,
int order )
const;
227 std::map<int, GIDI_settings_particle> mParticles;
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
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
void print(int valuesPerLine=10) const
double const * getFluxes(void) const
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
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
bool isLabel(std::string &label) const
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
bool isEnergyMode_fixedGrid(void) const
int addFlux(GIDI::statusMessageReporting *smr, GIDI_settings_flux const &flux)
~GIDI_settings_particle()
int getEnergyMode(void) const
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)
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
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)
void initialize(Config const *const theConfig)
Initialize the clustering model based on the Config object.