30 #include "fisx_xrfconfig.h" 40 typedef std::map<std::string, std::map<int, std::map<std::string, std::map<std::string, double> > > > \
41 expectedLayerEmissionType;
42 typedef std::map<std::string, std::map<int, std::map<std::string, std::map<std::string, double> > > >::const_iterator \
43 iteratorExpectedLayerEmissionType;
54 XRF(
const std::string & configurationFile);
74 void setBeam(
const std::vector<double> & energies, \
75 const std::vector<double> & weight, \
76 const std::vector<int> & characteristic = std::vector<int>(), \
77 const std::vector<double> & divergency = std::vector<double>());
83 void setBeam(
const double & energy,
const double & divergency = 0.0);
102 void setSample(
const std::vector<Layer> & layers,
const int & referenceLayer = 0);
108 void setSample(
const std::string & name, \
109 const double & density = 1.0, \
110 const double & thickness = 1.0);
144 void setGeometry(
const double & alphaIn,
const double & alphaOut,\
145 const double & scatteringAngle = -90.);
152 void setRefenceLayer(
const std::string & name);
164 void addCollimator();
186 std::map< std::string, std::map< std::string, std::map<std::string, std::map<std::string, double> > > >\
187 getExpectedPrimaryEmission(
const std::vector<std::string> & elementList,
206 std::map<std::string, std::map<int, std::map<std::string, std::map<std::string, double> > > > \
207 getMultilayerFluorescence(
const std::string & element, \
208 const Elements & elementsLibrary,
const int & sampleLayerIndex = 0, \
209 const std::string & lineFamily =
"",
const int & secondary = 0, \
210 const int & useGeometricEfficiency = 1,
const int & useMassFractions = 0, \
211 const double & secondaryCalculationLimit = 0.0);
240 std::map<std::string, std::map<int, std::map<std::string, std::map<std::string, double> > > > \
241 getMultilayerFluorescence(
const std::vector<std::string> & elementFamilyLayer, \
242 const Elements & elementsLibrary,
const int & secondary = 0, \
243 const int & useGeometricEfficiency = 1, \
244 const int & useMassFractions = 0, \
245 const double & secondaryCalculationLimit = 0.0);
247 std::map<std::string, std::map<int, std::map<std::string, std::map<std::string, double> > > > \
248 getMultilayerFluorescence(
const std::vector<std::string> & elementList,
250 const std::vector<int> & layerList, \
251 const std::vector<std::string> & familyList, \
252 const int & secondary = 0, \
253 const int & useGeometricEfficiency = 1, \
254 const int & useMassFractions = 0, \
255 const double & secondaryCalculationLimit = 0.0);
258 double getEnergyThreshold(
const std::string & elementName,
const std::string & family, \
259 const Elements & elementsLibrary)
const;
269 const std::vector<Layer> &
getBeamFilters()
const {
return this->configuration.getBeamFilters();};
274 const std::vector<TransmissionTable> &
getUserBeamFilters()
const {
return this->configuration.getUserBeamFilters();};
279 const std::vector<Layer> &
getSample()
const {
return this->configuration.getSample();};
284 const std::vector<Layer> &
getAttenuators()
const {
return this->configuration.getAttenuators();};
289 const std::vector<TransmissionTable> &
getUserAttenuators()
const {
return this->configuration.getUserAttenuators();};
297 const double & getAlphaIn()
const {
return this->configuration.getAlphaIn();};
298 const double & getAlphaOut()
const {
return this->configuration.getAlphaOut();};
299 const double & getScatteringAngle()
const {
return this->configuration.getScatteringAngle();};
300 const int & getReferenceLayer()
const {
return this->configuration.getReferenceLayer();};
316 expectedLayerEmissionType lastMultilayerFluorescence;
void setBeamFilters(const std::vector< Layer > &filters)
Definition: fisx_xrf.cpp:93
const std::vector< TransmissionTable > & getUserBeamFilters() const
Definition: fisx_xrf.h:274
const std::vector< Layer > & getSample() const
Definition: fisx_xrf.h:279
void setUserAttenuators(const std::vector< TransmissionTable > &userAttenuators)
Definition: fisx_xrf.cpp:131
Definition: fisx_xrfconfig.h:38
Class describing an X-ray beam.
Definition: fisx_beam.h:65
void setDetector(const Detector &detector)
Definition: fisx_xrf.cpp:136
const std::vector< Layer > & getAttenuators() const
Definition: fisx_xrf.h:284
double getGeometricEfficiency(const int &layerIndex=0) const
Definition: fisx_xrf.cpp:141
Definition: fisx_element.cpp:34
void setUserBeamFilters(const std::vector< TransmissionTable > &userFilters)
Definition: fisx_xrf.cpp:99
Class containing the composition of a layer.
Definition: fisx_layer.h:43
Class handling the physical properties.
Definition: fisx_elements.h:60
const std::vector< Layer > & getBeamFilters() const
Definition: fisx_xrf.h:269
void setReferenceLayer(const int &index)
const Detector & getDetector() const
Definition: fisx_xrf.h:294
const Beam & getBeam() const
Definition: fisx_xrfconfig.cpp:532
void setConfiguration(const XRFConfig &configuration)
Definition: fisx_xrf.h:37
XRF()
Definition: fisx_xrf.cpp:40
const XRFConfig & getConfiguration() const
Definition: fisx_xrf.cpp:257
void setGeometry(const double &alphaIn, const double &alphaOut, const double &scatteringAngle=-90.)
Definition: fisx_xrf.cpp:60
void setBeam(const Beam &beam)
Definition: fisx_xrf.cpp:73
Class describing the detector.
Definition: fisx_detector.h:40
const std::vector< TransmissionTable > & getUserAttenuators() const
Definition: fisx_xrf.h:289
void setAttenuators(const std::vector< Layer > &attenuators)
Definition: fisx_xrf.cpp:126
const Beam & getBeam() const
Definition: fisx_xrf.h:264
void readConfigurationFromFile(const std::string &fileName)
Definition: fisx_xrf.cpp:54
void setSample(const std::vector< Layer > &layers, const int &referenceLayer=0)
Definition: fisx_xrf.cpp:105