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;
 
   48         inline double operator[]( 
int const index )
 const { 
return( mBoundaries[index] ); }
 
   49         inline int size( 
void )
 const { 
return( (
int) mBoundaries.size( ) ); }
 
   51         inline double const *
pointer( 
void )
 const { 
return( &(mBoundaries[0]) ); }
 
   54         inline std::string 
getLabel( )
 const { 
return( mLabel ); }
 
   56         inline bool isLabel( std::string &label )
 const { 
return( label == mLabel ); }
 
   57         void print( 
bool outline = 
false, 
int valuesPerLine = 10 ) 
const;
 
   60         void initialize( std::string 
const &label, 
int size, 
int length, 
double const *values );
 
   66 class GIDI_settings_groups_from_bdfls {
 
   69         std::vector<GIDI_settings_group> mGroups;
 
   72         GIDI_settings_groups_from_bdfls( std::string 
const &fileName );
 
   73         GIDI_settings_groups_from_bdfls( 
char const *fileName );
 
   74         GIDI_settings_groups_from_bdfls( cbdfls_file 
const *bdfls );
 
   75         ~GIDI_settings_groups_from_bdfls( );
 
   78         std::vector<std::string> getLabels( 
void ) 
const;
 
   79         std::vector<int> getGIDs( 
void ) 
const;
 
   80         void print( 
bool outline = 
true, 
int valuesPerLine = 10 ) 
const;
 
   84         void initialize2( cbdfls_file 
const *bdfls );
 
   95         std::vector<double> mEnergies;   
 
   96         std::vector<double> mFluxes;     
 
  102                                   double const  *energies   ,
 
  103                                   double const  *fluxes      );
 
  105                                   std::vector<double> 
const  &energies   ,
 
  106                                   std::vector<double> 
const  &fluxes      );
 
  110         inline int getOrder( 
void )
 const { 
return( mOrder ); }
 
  111         inline int size( 
void )
 const { 
return( (
int) mEnergies.size( ) ); }
 
  112         inline double const *
getEnergies( 
void )
 const { 
return( &(mEnergies[0]) ); }
 
  113         inline double const *
getFluxes( 
void )
 const { 
return( &(mFluxes[0]) ); }
 
  114         void print( 
int valuesPerLine = 10 ) 
const;
 
  117         void initialize( 
int order, 
int length, 
double const *energies, 
double const *fluxes );
 
  125         std::vector<GIDI_settings_flux_order> mFluxOrders;   
 
  134         inline int getMaxOrder( 
void )
 const { 
return( (
int) mFluxOrders.size( ) - 1 ); }
 
  135         inline int size( 
void )
 const { 
return( (
int) mFluxOrders.size( ) ); }
 
  137         inline std::string 
getLabel( )
 const { 
return( mLabel ); }
 
  138         inline bool isLabel( std::string 
const &label )
 const { 
return( label == mLabel ); }
 
  139         inline bool isLabel( 
char const *label )
 const { 
return( label == mLabel ); }
 
  142         void print( 
bool outline = 
true, 
int valuesPerLine = 10 ) 
const;
 
  146 class GIDI_settings_fluxes_from_bdfls {
 
  149         std::vector<GIDI_settings_flux> mFluxes;
 
  152         GIDI_settings_fluxes_from_bdfls( std::string 
const &fileName, 
double temperature_MeV );
 
  153         GIDI_settings_fluxes_from_bdfls( 
char const *fileName, 
double temperature_MeV );
 
  154         GIDI_settings_fluxes_from_bdfls( cbdfls_file 
const *bdfls, 
double temperature_MeV );
 
  155         ~GIDI_settings_fluxes_from_bdfls( );
 
  158         std::vector<std::string> getLabels( 
void );
 
  159         std::vector<int> getFIDs( 
void );
 
  160         void print( 
bool outline = 
true, 
int valuesPerLine = 10 );
 
  163         void initialize( 
char const *fileName, 
double temperature_MeV );
 
  164         void initialize2( cbdfls_file 
const *bdfls, 
double temperature_MeV );
 
  172         std::vector<GIDI::ptwXYPoints *> mFluxXY;          
 
  173         std::vector<GIDI::ptwXPoints *> mGroupedFlux;      
 
  192         std::vector<GIDI_settings_processedFlux> mProcessedFluxes;
 
  197         int initialize( 
int PoPId, 
bool transporting, 
int energyMode );
 
  204         inline int getPoPId( 
void )
 const { 
return( mPoPId ); }
 
  223         std::map<int, GIDI_settings_particle> mParticles;
 
  235 #if defined( __INTEL_COMPILER ) 
  236 #pragma warning( pop ) 
  239 #endif      // End of GIDI_settings_hpp_included 
GIDI::ptwXPoints * groupFunction(GIDI::statusMessageReporting *smr, GIDI::ptwXPoints *groupX, GIDI::ptwXYPoints *ptwXY1, int order) const 
 
int getNumberOfGroups(void) const 
 
int getNumberOfGroups(void) const 
 
struct statusMessageReporting statusMessageReporting
 
bool isEnergyMode_continuous(void) const 
 
GIDI::ptwXPoints * groupFunction(GIDI::statusMessageReporting *smr, GIDI::ptwXYPoints *ptwXY1, double temperature, int order) const 
 
double const * getEnergies(void) const 
 
GIDI_settings_flux const * getFlux(double temperature) const 
 
bool isEnergyMode_fixedGrid(void) const 
 
int addFlux(GIDI::statusMessageReporting *smr, GIDI_settings_flux const &flux)
 
GIDI_settings_particle(int PoPId, bool transporting, int energyMode)
 
struct ptwXYPoints_s ptwXYPoints
 
void print(int valuesPerLine=10) const 
 
GIDI_settings_group(std::string const &label="empty", int size=0)
 
void setGroup(GIDI_settings_group const &group)
 
GIDI_settings_group getGroup(void) const 
 
~GIDI_settings_flux_order()
 
double getTemperature() const 
 
GIDI_settings_processedFlux(GIDI_settings_flux const &flux, GIDI::ptwXPoints *groupX)
 
int addParticle(GIDI_settings_particle const &particle)
 
GIDI_settings_flux_order const * operator[](int order) const 
 
GIDI_settings_particle const * getParticle(int PoPId) const 
 
double const * getFluxes(void) const 
 
struct ptwXPoints_s ptwXPoints
 
double operator[](int const index) const 
 
~GIDI_settings_particle()
 
void print(bool outline=true, int valuesPerLine=10) const 
 
GIDI_settings_processedFlux const * nearestFluxToTemperature(double temperature) const 
 
int getMaxOrder(void) const 
 
double const * pointer(void) const 
 
int getGroupIndexFromEnergy(double e_in, bool encloseOutOfRange) const 
 
void initialize(Config const *const theConfig)
Initialize the clustering model based on the Config object. 
 
void print(G4double elem)
 
int getEnergyMode(void) const 
 
void print(bool outline=false, int valuesPerLine=10) const 
 
int eraseParticle(int PoPId)
 
bool isLabel(std::string &label) const 
 
int getGroupIndexFromEnergy(double energy, bool encloseOutOfRange) const 
 
G4double energy(const ThreeVector &p, const G4double m)
 
std::string getLabel() const 
 
double getTemperature() const 
 
bool isLabel(std::string const &label) const 
 
#define GIDI_settings_projectileEnergyMode_fixedGrid
 
bool getTransporting(void) const 
 
bool isLabel(char const *label) const 
 
GIDI_settings_flux(std::string const &label, double temperature_MeV)
 
void setFromCDoubleArray(int length, double *values)
 
~GIDI_settings_processedFlux()
 
#define GIDI_settings_projectileEnergyMode_grouped
 
bool isEnergyMode_grouped(void) const 
 
int initialize(int PoPId, bool transporting, int energyMode)
 
std::string getLabel() const 
 
GIDI_settings_flux_order(int order)
 
#define GIDI_settings_projectileEnergyMode_continuousEnergy
 
void addFluxOrder(GIDI_settings_flux_order const &fluxOrder)