28 #ifndef FISX_XRFCONFIG_H 29 #define FISX_XRFCONFIG_H 31 #include "fisx_detector.h" 32 #include "fisx_beam.h" 33 #include "fisx_transmissiontable.h" 43 friend std::ostream& operator<< (std::ostream& o,
XRFConfig const & config);
45 void readConfigurationFromFile(
const std::string & fileName);
46 void saveConfigurationToFile(
const std::string & fileName);
51 void setBeam(
const double & energy,
const double & divergency);
52 void setBeam(
const std::vector<double> & energies, \
53 const std::vector<double> & weight, \
54 const std::vector<int> & characteristic = std::vector<int>(), \
55 const std::vector<double> & divergency = std::vector<double>());
62 const std::vector<double> & densities, \
63 const std::vector<double> & thicknesses, \
64 const std::vector<std::string> & comments);
77 void setGeometry(
const double & alphaIn,
const double & alphaOut,
const double & scatteringAngle = 90.);
84 void setSample(
const std::vector<Layer> & layers,
const int & referenceLayer = 0);
85 void setSample(
const std::vector<std::string> & names, \
86 const std::vector<double> & densities, \
87 const std::vector<double> & thicknesses, \
88 const std::vector<std::string> & comments,
89 const int & referenceLayer = 0);
103 const std::vector<double> & densities, \
104 const std::vector<double> & thicknesses, \
105 const std::vector<std::string> & comments);
117 void addCollimator();
139 const std::vector<Layer> & getBeamFilters()
const {
return this->beamFilters;};
140 const std::vector<TransmissionTable> & getUserBeamFilters()
const {
return this->userBeamFilters;};
141 const std::vector<Layer> & getSample()
const {
return this->sample;};
142 const std::vector<Layer> & getAttenuators()
const {
return this->attenuators;};
143 const std::vector<TransmissionTable> & getUserAttenuators()
const {
return this->userAttenuators;};
144 const Detector & getDetector()
const {
return this->detector;};
145 const double & getAlphaIn()
const {
return this->alphaIn;};
146 const double & getAlphaOut()
const {
return this->alphaOut;};
147 const double & getScatteringAngle()
const {
return this->scatteringAngle;};
148 const int & getReferenceLayer()
const {
return this->referenceLayer;};
152 std::vector<Material> materials;
153 std::vector<Layer> beamFilters;
154 std::vector<Layer> sample;
155 std::vector<Layer> attenuators;
156 std::vector<TransmissionTable> userBeamFilters;
157 std::vector<TransmissionTable> userAttenuators;
161 double scatteringAngle;
185 #endif // FISX_SRF_CONFIG_H void setBeam(const double &energy, const double &divergency)
Definition: fisx_xrfconfig.cpp:522
void setUserBeamFilters(const std::vector< TransmissionTable > &userBeamFilters)
Definition: fisx_xrfconfig.cpp:543
Definition: fisx_xrfconfig.h:38
Class describing an X-ray beam.
Definition: fisx_beam.h:65
Definition: fisx_element.cpp:34
void setGeometry(const double &alphaIn, const double &alphaOut, const double &scatteringAngle=90.)
Definition: fisx_xrfconfig.cpp:42
void setSample(const std::vector< Layer > &layers, const int &referenceLayer=0)
Definition: fisx_xrfconfig.cpp:548
const Beam & getBeam() const
Definition: fisx_xrfconfig.cpp:532
void setUserAttenuators(const std::vector< TransmissionTable > &userAttenuators)
Definition: fisx_xrfconfig.cpp:563
void setReferenceLayer(int referenceLayer)
void setDetector(const Detector &detector)
Definition: fisx_xrfconfig.cpp:568
Class describing the detector.
Definition: fisx_detector.h:40
void setAttenuators(const std::vector< Layer > &attenuators)
Definition: fisx_xrfconfig.cpp:558
void setBeamFilters(const std::vector< std::string > &names, const std::vector< double > &densities, const std::vector< double > &thicknesses, const std::vector< std::string > &comments)