00001
00002
00003
00004
00005
00006 #ifndef STI_MATERIAL_HH
00007 #define STI_MATERIAL_HH
00008
00009 #include "Stiostream.h"
00010 #include <string>
00011 using namespace std;
00012 #include "Sti/Base/Named.h"
00013
00014 class StiMaterial : public Named
00015 {
00016 public:
00017
00018
00019 StiMaterial();
00020 StiMaterial(const string &name,
00021 double z,
00022 double a,
00023 double density,
00024 double radLength,
00025 double ionization);
00026 virtual ~StiMaterial();
00027
00029 double getDensity() const { return _density; }
00031 double getRadLength() const { return _radLength; }
00033 double getX0() const { return _x0; }
00035 double getA() const { return _a;}
00037 double getZ() const { return _z;}
00039 double getIonization() const { return _ionization;}
00041 double getZOverA() { return _zOverA;}
00042
00043 void set(const string& name,
00044 double z,
00045 double a,
00046 double density,
00047 double radLength,
00048 double ionization);
00049
00050 protected:
00051
00053 double _z;
00055 double _a;
00057 double _density;
00059 double _radLength;
00061 double _ionization;
00063 double _zOverA;
00065 double _x0;
00066 };
00067
00068
00069
00070 ostream& operator<<(ostream& os, const StiMaterial& m);
00071
00072 #endif
00073
00074
00075
00076