mirror of
https://github.com/gwm17/catima.git
synced 2024-11-23 02:38:51 -05:00
commit
a03c201964
|
@ -1,13 +1,3 @@
|
||||||
CATima
|
|
||||||
=======
|
|
||||||
C++ library for caclulalaton of energy loss, range, angular scattering and time of flight of the particle passing through matter.
|
|
||||||
The library is based on physics used in the ATIMA code,however its not 100% copy of ATIMA physics.
|
|
||||||
see CREDITS for more details.
|
|
||||||
|
|
||||||
The WebAtima UI to this library can be found here:
|
|
||||||
* https://web-docs.gsi.de/~aprochaz/webatima (only inside GSI)
|
|
||||||
* https://isotopea.com/webatima
|
|
||||||
|
|
||||||
Installation
|
Installation
|
||||||
------------
|
------------
|
||||||
CMake is used to build the library. For default build use:
|
CMake is used to build the library. For default build use:
|
||||||
|
|
21
docs/api.rst
Normal file
21
docs/api.rst
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
API Reference
|
||||||
|
#############
|
||||||
|
|
||||||
|
.. doxygenstruct:: catima::Projectile
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. doxygenclass:: catima::Material
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. doxygenclass:: catima::Layers
|
||||||
|
:members:
|
||||||
|
|
||||||
|
.. doxygenstruct:: catima::Result
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
|
|
||||||
|
.. doxygenstruct:: catima::MultiResult
|
||||||
|
:members:
|
||||||
|
:undoc-members:
|
||||||
|
|
||||||
|
|
|
@ -130,151 +130,3 @@ Example Files
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Compound material
|
|
||||||
The predefined compound material can be used using the __Z__ field as an ID of the compound.
|
|
||||||
The following are supported:
|
|
||||||
```
|
|
||||||
Plastics = 201,
|
|
||||||
Air = 202,
|
|
||||||
CH2 = 203,
|
|
||||||
LH2 = 204,
|
|
||||||
LD2 = 205,
|
|
||||||
Water = 206,
|
|
||||||
Diamond = 207,
|
|
||||||
Glass = 208,
|
|
||||||
ALMG3 = 209,
|
|
||||||
ArCO2_30 = 210,
|
|
||||||
CF4 = 211,
|
|
||||||
Isobutane = 212,
|
|
||||||
Kapton = 213,
|
|
||||||
Mylar = 214,
|
|
||||||
NaF = 215,
|
|
||||||
P10 = 216,
|
|
||||||
Polyolefin = 217,
|
|
||||||
CmO2 = 218,
|
|
||||||
Suprasil = 219,
|
|
||||||
HAVAR = 220,
|
|
||||||
Steel = 221,
|
|
||||||
CO2 = 222,
|
|
||||||
CH4 = 223,
|
|
||||||
Methanol = 224,
|
|
||||||
Acetone = 225,
|
|
||||||
Acetylene = 226,
|
|
||||||
Adenine = 227,
|
|
||||||
Adipose_Tissue = 228,
|
|
||||||
Alanine = 229,
|
|
||||||
Bakelite = 230,
|
|
||||||
AgBr = 231,
|
|
||||||
AgCl = 232,
|
|
||||||
AgI = 233,
|
|
||||||
Al2O3 = 234,
|
|
||||||
Amber = 235,
|
|
||||||
Ammonia = 236,
|
|
||||||
Aniline = 237,
|
|
||||||
Anthracene = 238,
|
|
||||||
A_150 = 239,
|
|
||||||
B_100 = 240,
|
|
||||||
BaF2 = 241,
|
|
||||||
BaSO4 = 242,
|
|
||||||
Benzene = 243,
|
|
||||||
BeO = 244,
|
|
||||||
BGO = 245,
|
|
||||||
Blood = 246,
|
|
||||||
Bone_Compact = 247,
|
|
||||||
Bone_Cortical = 248,
|
|
||||||
Brain_ICRP = 249,
|
|
||||||
B4C = 250,
|
|
||||||
BC400 = 251,
|
|
||||||
nButanol = 252,
|
|
||||||
C_552 = 253,
|
|
||||||
CdTe = 254,
|
|
||||||
CdWO4 = 255,
|
|
||||||
CaCO3 = 256,
|
|
||||||
CaF2 = 257,
|
|
||||||
CaO = 258,
|
|
||||||
CaWO4 = 259,
|
|
||||||
CsF = 260,
|
|
||||||
CsI = 261,
|
|
||||||
CCl4 = 262,
|
|
||||||
C2Cl4 = 263,
|
|
||||||
Cellophane = 264,
|
|
||||||
Chlorobenzene = 265,
|
|
||||||
Chloroform = 266,
|
|
||||||
Cyclohexane = 267,
|
|
||||||
Concrete = 268,
|
|
||||||
Diethyl_Ether = 269,
|
|
||||||
Ethane = 270,
|
|
||||||
Ethanol = 271,
|
|
||||||
Ethylene = 272,
|
|
||||||
Eye_lens = 273,
|
|
||||||
Fe2O3 = 274,
|
|
||||||
FeO = 275,
|
|
||||||
Freon12 = 276,
|
|
||||||
Freon12B2 = 277,
|
|
||||||
Freon13 = 278,
|
|
||||||
Freon13B1 = 279,
|
|
||||||
Freon13I1 = 280,
|
|
||||||
Gd2O2S = 281,
|
|
||||||
GaAs = 282,
|
|
||||||
Gel_Photo_Emulsion = 283,
|
|
||||||
Glass_Pyrex = 284,
|
|
||||||
Glass_Lead = 285,
|
|
||||||
Glucose = 286,
|
|
||||||
Glutamine = 287,
|
|
||||||
Glycerol = 288,
|
|
||||||
Guanine = 289,
|
|
||||||
Gypsum = 290,
|
|
||||||
nHeptane = 291,
|
|
||||||
nHexane = 292,
|
|
||||||
KI = 293,
|
|
||||||
K2O = 294,
|
|
||||||
LaBr3 = 295,
|
|
||||||
LaOBr = 296,
|
|
||||||
La2O2S = 297,
|
|
||||||
Lung = 298,
|
|
||||||
MgCO3 = 299,
|
|
||||||
MgF2 = 300,
|
|
||||||
MgO = 301,
|
|
||||||
MS20_Tissue = 302,
|
|
||||||
Muscle_skeletal = 303,
|
|
||||||
Muscle_strained = 304,
|
|
||||||
Muscle_sucrose = 305,
|
|
||||||
Muscle_no_sucrose = 306,
|
|
||||||
Na2CO3 = 307,
|
|
||||||
NaI = 308,
|
|
||||||
NaCl = 309,
|
|
||||||
Na2O = 310,
|
|
||||||
NaNO3 = 311,
|
|
||||||
Naphthalene = 312,
|
|
||||||
Nitrobenzene = 313,
|
|
||||||
N2O = 314,
|
|
||||||
Octane = 315,
|
|
||||||
Paraffin = 316,
|
|
||||||
nPentane = 317,
|
|
||||||
PhotoEmulsion = 318,
|
|
||||||
PuO2 = 319,
|
|
||||||
Polyacrylonitrile = 320,
|
|
||||||
Polycarbonate = 321,
|
|
||||||
PMMA = 322,
|
|
||||||
POM = 323,
|
|
||||||
Polypropylene = 324,
|
|
||||||
Polystyrene = 325,
|
|
||||||
Propane = 326,
|
|
||||||
nPropanol = 327,
|
|
||||||
PVC = 328,
|
|
||||||
Pyridine = 329,
|
|
||||||
SiO2 = 330,
|
|
||||||
Skin = 331,
|
|
||||||
Sucrose = 332,
|
|
||||||
Teflon = 333,
|
|
||||||
TlCl = 334,
|
|
||||||
Toluene = 335,
|
|
||||||
Trichloroethylene = 336,
|
|
||||||
WF6 = 337,
|
|
||||||
UC2 = 338,
|
|
||||||
UC = 339,
|
|
||||||
UO2 = 340,
|
|
||||||
Urea = 341,
|
|
||||||
Valine = 342
|
|
||||||
```
|
|
||||||
|
|
|
@ -1,10 +1,6 @@
|
||||||
CATima library manual
|
CATima library manual
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
Compiling and Instalation
|
|
||||||
-------------------------
|
|
||||||
See [README.md](README.md) for details.
|
|
||||||
[link2](catima_calculator.md)
|
|
||||||
Units
|
Units
|
||||||
------
|
------
|
||||||
The following units are used for input and outputs:
|
The following units are used for input and outputs:
|
||||||
|
@ -21,10 +17,10 @@ Projectile
|
||||||
The __Projectile__ class is used to store projectile data.
|
The __Projectile__ class is used to store projectile data.
|
||||||
Each projectile must provide A,Z combination, additionally charge state can be set as well.
|
Each projectile must provide A,Z combination, additionally charge state can be set as well.
|
||||||
The example of projectile definition:
|
The example of projectile definition:
|
||||||
~~~~~~~~~~~~~~~~~~~{.cpp}
|
```cpp
|
||||||
catima::Projectile p1(12,6); //12C projectile
|
catima::Projectile p1(12,6); //12C projectile
|
||||||
catima::Projectile p2(12,6,5); //12C(5+) projectile
|
catima::Projectile p2(12,6,5); //12C(5+) projectile
|
||||||
~~~~~~~~~~~~~~~~~~~
|
```
|
||||||
|
|
||||||
to set the energy of the projectile in MeV/u units:
|
to set the energy of the projectile in MeV/u units:
|
||||||
```cpp
|
```cpp
|
||||||
|
@ -224,3 +220,151 @@ It provides only basic interface.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Compound Pre-defined Materials
|
||||||
|
==============================
|
||||||
|
The predefined compound material can be used using the __Z__ field as an ID of the compound.
|
||||||
|
The following are supported:
|
||||||
|
```
|
||||||
|
Plastics = 201,
|
||||||
|
Air = 202,
|
||||||
|
CH2 = 203,
|
||||||
|
LH2 = 204,
|
||||||
|
LD2 = 205,
|
||||||
|
Water = 206,
|
||||||
|
Diamond = 207,
|
||||||
|
Glass = 208,
|
||||||
|
ALMG3 = 209,
|
||||||
|
ArCO2_30 = 210,
|
||||||
|
CF4 = 211,
|
||||||
|
Isobutane = 212,
|
||||||
|
Kapton = 213,
|
||||||
|
Mylar = 214,
|
||||||
|
NaF = 215,
|
||||||
|
P10 = 216,
|
||||||
|
Polyolefin = 217,
|
||||||
|
CmO2 = 218,
|
||||||
|
Suprasil = 219,
|
||||||
|
HAVAR = 220,
|
||||||
|
Steel = 221,
|
||||||
|
CO2 = 222,
|
||||||
|
CH4 = 223,
|
||||||
|
Methanol = 224,
|
||||||
|
Acetone = 225,
|
||||||
|
Acetylene = 226,
|
||||||
|
Adenine = 227,
|
||||||
|
Adipose_Tissue = 228,
|
||||||
|
Alanine = 229,
|
||||||
|
Bakelite = 230,
|
||||||
|
AgBr = 231,
|
||||||
|
AgCl = 232,
|
||||||
|
AgI = 233,
|
||||||
|
Al2O3 = 234,
|
||||||
|
Amber = 235,
|
||||||
|
Ammonia = 236,
|
||||||
|
Aniline = 237,
|
||||||
|
Anthracene = 238,
|
||||||
|
A_150 = 239,
|
||||||
|
B_100 = 240,
|
||||||
|
BaF2 = 241,
|
||||||
|
BaSO4 = 242,
|
||||||
|
Benzene = 243,
|
||||||
|
BeO = 244,
|
||||||
|
BGO = 245,
|
||||||
|
Blood = 246,
|
||||||
|
Bone_Compact = 247,
|
||||||
|
Bone_Cortical = 248,
|
||||||
|
Brain_ICRP = 249,
|
||||||
|
B4C = 250,
|
||||||
|
BC400 = 251,
|
||||||
|
nButanol = 252,
|
||||||
|
C_552 = 253,
|
||||||
|
CdTe = 254,
|
||||||
|
CdWO4 = 255,
|
||||||
|
CaCO3 = 256,
|
||||||
|
CaF2 = 257,
|
||||||
|
CaO = 258,
|
||||||
|
CaWO4 = 259,
|
||||||
|
CsF = 260,
|
||||||
|
CsI = 261,
|
||||||
|
CCl4 = 262,
|
||||||
|
C2Cl4 = 263,
|
||||||
|
Cellophane = 264,
|
||||||
|
Chlorobenzene = 265,
|
||||||
|
Chloroform = 266,
|
||||||
|
Cyclohexane = 267,
|
||||||
|
Concrete = 268,
|
||||||
|
Diethyl_Ether = 269,
|
||||||
|
Ethane = 270,
|
||||||
|
Ethanol = 271,
|
||||||
|
Ethylene = 272,
|
||||||
|
Eye_lens = 273,
|
||||||
|
Fe2O3 = 274,
|
||||||
|
FeO = 275,
|
||||||
|
Freon12 = 276,
|
||||||
|
Freon12B2 = 277,
|
||||||
|
Freon13 = 278,
|
||||||
|
Freon13B1 = 279,
|
||||||
|
Freon13I1 = 280,
|
||||||
|
Gd2O2S = 281,
|
||||||
|
GaAs = 282,
|
||||||
|
Gel_Photo_Emulsion = 283,
|
||||||
|
Glass_Pyrex = 284,
|
||||||
|
Glass_Lead = 285,
|
||||||
|
Glucose = 286,
|
||||||
|
Glutamine = 287,
|
||||||
|
Glycerol = 288,
|
||||||
|
Guanine = 289,
|
||||||
|
Gypsum = 290,
|
||||||
|
nHeptane = 291,
|
||||||
|
nHexane = 292,
|
||||||
|
KI = 293,
|
||||||
|
K2O = 294,
|
||||||
|
LaBr3 = 295,
|
||||||
|
LaOBr = 296,
|
||||||
|
La2O2S = 297,
|
||||||
|
Lung = 298,
|
||||||
|
MgCO3 = 299,
|
||||||
|
MgF2 = 300,
|
||||||
|
MgO = 301,
|
||||||
|
MS20_Tissue = 302,
|
||||||
|
Muscle_skeletal = 303,
|
||||||
|
Muscle_strained = 304,
|
||||||
|
Muscle_sucrose = 305,
|
||||||
|
Muscle_no_sucrose = 306,
|
||||||
|
Na2CO3 = 307,
|
||||||
|
NaI = 308,
|
||||||
|
NaCl = 309,
|
||||||
|
Na2O = 310,
|
||||||
|
NaNO3 = 311,
|
||||||
|
Naphthalene = 312,
|
||||||
|
Nitrobenzene = 313,
|
||||||
|
N2O = 314,
|
||||||
|
Octane = 315,
|
||||||
|
Paraffin = 316,
|
||||||
|
nPentane = 317,
|
||||||
|
PhotoEmulsion = 318,
|
||||||
|
PuO2 = 319,
|
||||||
|
Polyacrylonitrile = 320,
|
||||||
|
Polycarbonate = 321,
|
||||||
|
PMMA = 322,
|
||||||
|
POM = 323,
|
||||||
|
Polypropylene = 324,
|
||||||
|
Polystyrene = 325,
|
||||||
|
Propane = 326,
|
||||||
|
nPropanol = 327,
|
||||||
|
PVC = 328,
|
||||||
|
Pyridine = 329,
|
||||||
|
SiO2 = 330,
|
||||||
|
Skin = 331,
|
||||||
|
Sucrose = 332,
|
||||||
|
Teflon = 333,
|
||||||
|
TlCl = 334,
|
||||||
|
Toluene = 335,
|
||||||
|
Trichloroethylene = 336,
|
||||||
|
WF6 = 337,
|
||||||
|
UC2 = 338,
|
||||||
|
UC = 339,
|
||||||
|
UO2 = 340,
|
||||||
|
Urea = 341,
|
||||||
|
Valine = 342
|
||||||
|
```
|
||||||
|
|
|
@ -29,13 +29,13 @@ extensions = [
|
||||||
'breathe'
|
'breathe'
|
||||||
]
|
]
|
||||||
|
|
||||||
breathe_projects = {'nurex':'build/doxygenxml/'}
|
breathe_projects = {'catima':'build/doxygenxml/'}
|
||||||
breathe_default_project = 'catima'
|
breathe_default_project = 'catima'
|
||||||
breathe_domain_by_extenstion = {'h':'cpp'}
|
breathe_domain_by_extenstion = {'h':'cpp'}
|
||||||
primary_domain = 'cpp'
|
primary_domain = 'cpp'
|
||||||
highlight_language = 'cpp'
|
highlight_language = 'cpp'
|
||||||
# Add any paths that contain templates here, relative to this directory.
|
# Add any paths that contain templates here, relative to this directory.
|
||||||
templates_path = ['_templates']
|
#templates_path = ['_templates']
|
||||||
|
|
||||||
# List of patterns, relative to source directory, that match files and
|
# List of patterns, relative to source directory, that match files and
|
||||||
# directories to ignore when looking for source files.
|
# directories to ignore when looking for source files.
|
||||||
|
@ -53,4 +53,4 @@ html_theme = 'sphinx_rtd_theme'
|
||||||
# Add any paths that contain custom static files (such as style sheets) here,
|
# Add any paths that contain custom static files (such as style sheets) here,
|
||||||
# relative to this directory. They are copied after the builtin static files,
|
# relative to this directory. They are copied after the builtin static files,
|
||||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||||
html_static_path = ['_static']
|
#html_static_path = ['_static']
|
||||||
|
|
|
@ -17,6 +17,24 @@ Content
|
||||||
|
|
||||||
README
|
README
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
:caption: Manual
|
||||||
|
|
||||||
|
catima_manual
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
:caption: Console App
|
||||||
|
|
||||||
|
catima_calculator
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
:caption: API Reference
|
||||||
|
|
||||||
|
api
|
||||||
|
|
||||||
|
|
||||||
Indices and tables
|
Indices and tables
|
||||||
==================
|
==================
|
||||||
|
|
18
structures.h
18
structures.h
|
@ -38,9 +38,15 @@ namespace catima{
|
||||||
double Z=0;
|
double Z=0;
|
||||||
double Q=0;
|
double Q=0;
|
||||||
double T=0;
|
double T=0;
|
||||||
Projectile& operator()(double e){T=e;return *this;}
|
|
||||||
Projectile(){}
|
/// constructor
|
||||||
|
/// @param a - mass
|
||||||
|
/// @param z - proton number
|
||||||
|
/// @param q - charge state
|
||||||
|
/// @param t - energy in MeV/u
|
||||||
Projectile(double a, double z, double q=0, double t=0):A(a),Z(z),Q(q),T(t){if(q==0)Q=Z;}
|
Projectile(double a, double z, double q=0, double t=0):A(a),Z(z),Q(q),T(t){if(q==0)Q=Z;}
|
||||||
|
Projectile& operator()(double e){T=e;return *this;}
|
||||||
|
Projectile() = default;
|
||||||
};
|
};
|
||||||
|
|
||||||
bool operator==(const Projectile &a, const Projectile&b);
|
bool operator==(const Projectile &a, const Projectile&b);
|
||||||
|
@ -85,10 +91,10 @@ namespace catima{
|
||||||
* constructor to add 1 or multiple element into the Material
|
* constructor to add 1 or multiple element into the Material
|
||||||
* \code{.cpp}
|
* \code{.cpp}
|
||||||
* Maetrial water({
|
* Maetrial water({
|
||||||
{1,1,2},
|
* {1,1,2},
|
||||||
{16,8,1},
|
* {16,8,1},
|
||||||
1.0, // optional density
|
* 1.0, // optional density
|
||||||
});
|
* });
|
||||||
* \endcode
|
* \endcode
|
||||||
*/
|
*/
|
||||||
Material(std::initializer_list<std::array<double,3>>list,double _density=0.0, double ipot = 0.0, double mass=0.0);
|
Material(std::initializer_list<std::array<double,3>>list,double _density=0.0, double ipot = 0.0, double mass=0.0);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user