VGM Version 5.3
Loading...
Searching...
No Matches
IElement.h
Go to the documentation of this file.
1// $Id$
2
3// -----------------------------------------------------------------------
4// The VGM package of the Virtual Geometry Model
5// Copyright (C) 2007, Ivana Hrivnacova
6// All rights reserved.
7//
8// For the licensing terms see vgm/LICENSE.
9// Contact: ivana@ipno.in2p3.fr
10// -----------------------------------------------------------------------
11
13//
19
20#ifndef VGM_I_ELEMENT_H
21#define VGM_I_ELEMENT_H
22
23#include <iostream>
24#include <string>
25#include <vector>
26
27namespace VGM {
28class IIsotope;
29
30typedef std::vector<IIsotope*> IsotopeVector;
31typedef std::vector<double> RelAbundanceVector;
32
34{
35 public:
36 virtual ~IElement() {}
37
38 // methods
41 virtual std::string Name() const = 0;
44 virtual std::string Symbol() const = 0;
47 virtual double Z() const = 0;
50 virtual double N() const = 0;
54 virtual double A() const = 0;
58 virtual int NofIsotopes() const = 0;
61 virtual IIsotope* Isotope(int i) const = 0;
66 virtual double RelAbundance(int i) const = 0;
67};
68} // namespace VGM
69
70std::ostream& operator<<(std::ostream& out, const VGM::IElement& element);
71
72#endif // VGM_I_ELEMENT_H
std::ostream & operator<<(std::ostream &out, const VGM::IElement &element)
Definition element.cxx:22
The VGM interface to elements.
Definition IElement.h:34
virtual IIsotope * Isotope(int i) const =0
Return the i-th isotope constituing this element.
virtual ~IElement()
Definition IElement.h:36
virtual int NofIsotopes() const =0
Return the number of isotopes constituing this element.
virtual double Z() const =0
Return the effective atomic number.
virtual double RelAbundance(int i) const =0
Return the relative abundance (the fraction of nb of atomes per volume) of the i-th isotope constitui...
virtual std::string Name() const =0
Return the name of this element.
virtual std::string Symbol() const =0
Return the symbol of this element.
virtual double A() const =0
Return the effective effective mass of a mole in g/mole.
virtual double N() const =0
Return the effective number of nucleons.
The VGM interface to elements.
Definition IIsotope.h:28
VGM interfaces.
Definition VMedium.h:28
std::vector< double > RelAbundanceVector
Definition IElement.h:31
std::vector< IIsotope * > IsotopeVector
Definition IElement.h:30