fisx: fisx::Layer Class Reference

fisx

Public Member Functions | Public Attributes | Friends | List of all members
fisx::Layer Class Reference

Class containing the composition of a layer. More...

`#include <fisx_layer.h>`

Inherited by fisx::Detector.

## Public Member Functions
| Layer (const std::string &name="", const double &density=0.0, const double &thickness=0.0, const double &funnyFactor=1.0)
void | setMaterial (const std::string &materialName)
void | setMaterial (const Material &material)
std::map< std::string, double > | getComposition (const Elements &elements) const
const Material & | getMaterial () const
double | getTransmission (const double &energy, const Elements &elements, const double &angle=90.0) const
std::map< std::string, double > | getMassAttenuationCoefficients (const double &energy, const Elements &elements) const
std::map< std::string, std::vector< double > > | getMassAttenuationCoefficients (const std::vector< double > &energies, const Elements &elements) const
std::vector< double > | getTransmission (const std::vector< double > &energy, const Elements &elements, const double &angle=90.0) const
bool | hasMaterialComposition () const
std::vector< std::pair< std::string, double > > | getPeakFamilies (const double &energy, const Elements &elements) const
const std::string & | getMaterialName () const
void | setDensity (const double &density)
void | setThickness (const double &thickness)
const double & | getDensity () const
const double & | getThickness () const
const double & | getFunnyFactor () const
std::map< std::string, double > | getComposition (const Elements &elements)

## Public Attributes
std::string | name

## Friends
std::ostream & | operator<< (std::ostream &o, Layer const &layer)

## Detailed Description

Class containing the composition of a layer.

## Member Function Documentation

## § getComposition()

std::map< std::string, double > fisx::Layer::getComposition | ( | const Elements & | elements | ) | const

Get the layer composition either from internal material or from name. In the later case the elements instance is not used.

## § getMassAttenuationCoefficients() [1/2]

std::map< std::string, double > fisx::Layer::getMassAttenuationCoefficients | ( | const double & | energy,
|  | const Elements & | elements
| ) |  | const

Get the layer mass attenuation coefficients transmission at the given energy using the elements library supplied. If the material is not defined or cannot be handled, it will throw the relevant error.

## § getMassAttenuationCoefficients() [2/2]

std::map< std::string, std::vector< double > > fisx::Layer::getMassAttenuationCoefficients | ( | const std::vector< double > & | energies,
|  | const Elements & | elements
| ) |  | const

Get the layer mass attenuation coefficients transmission at the given energies using the elements library supplied. If the material is not defined or cannot be handled, it will throw the relevant error.

## § getMaterial()

const Material& fisx::Layer::getMaterial | ( |  | ) | const
| inline

Eventually get a handle to underlying material

## § getPeakFamilies()

std::vector< std::pair< std::string, double > > fisx::Layer::getPeakFamilies | ( | const double & | energy,
|  | const Elements & | elements
| ) |  | const

Given an energy and a reference to an elements library return an ordered vector of pairs. The first element is the peak family ("Si K", "Pb L1", ...) and the second the binding energy.

## § getTransmission() [1/2]

double fisx::Layer::getTransmission | ( | const double & | energy,
|  | const Elements & | elements,
|  | const double & | angle = `90.0`
| ) |  | const

Get the layer transmission at the given energy using the elements library supplied. If the material is not defined or cannot be handled, it will throw the relevant error.

## § getTransmission() [2/2]

std::vector< double > fisx::Layer::getTransmission | ( | const std::vector< double > & | energy,
|  | const Elements & | elements,
|  | const double & | angle = `90.0`
| ) |  | const

Get the layer transmissions at the given energies using the elements library supplied. If the material is not defined or cannot be handled, it will throw the relevant error.

## § hasMaterialComposition()

bool fisx::Layer::hasMaterialComposition | ( |  | ) | const

Return true if material composition was specified. Returns false if only the name or formula of the material was given.

The documentation for this class was generated from the following files:

- fisx_layer.h
- fisx_layer.cpp