ROOT logo
#ifndef HMaterials_h
#define HMaterials_h

#include "TObject.h"

class HMaterials : public TObject {

private:

    static const Int_t    nElements = 17;   // Number of materials stored in this class.

    static const Char_t  *cName[nElements]; // Material names.
    static const Float_t  fA   [nElements]; // Atomic mass in g/mole.
    static const Float_t  fZ   [nElements]; // Atomic number.
    static const Float_t  fRho [nElements]; // Density in g/cm³
    static const Float_t  fX0  [nElements]; // Radiation length in cm.
    static const Float_t  fI   [nElements]; // Mean excitation energy.

protected:

    static Int_t   getIdx       (const Char_t *id);

public:

    static Float_t getA         (const Char_t *id) { return fA  [getIdx(id)]; }
    static Float_t getZ         (const Char_t *id) { return fZ  [getIdx(id)]; }
    static Float_t getDensity   (const Char_t *id) { return fRho[getIdx(id)]; }
    static Float_t getExciteEner(const Char_t *id) { return fI  [getIdx(id)]; }
    static Float_t getRadLength (const Char_t *id) { return fX0 [getIdx(id)]; }

    ClassDef(HMaterials, 0)
};

#endif // Materials_h
 hmaterials.h:1
 hmaterials.h:2
 hmaterials.h:3
 hmaterials.h:4
 hmaterials.h:5
 hmaterials.h:6
 hmaterials.h:7
 hmaterials.h:8
 hmaterials.h:9
 hmaterials.h:10
 hmaterials.h:11
 hmaterials.h:12
 hmaterials.h:13
 hmaterials.h:14
 hmaterials.h:15
 hmaterials.h:16
 hmaterials.h:17
 hmaterials.h:18
 hmaterials.h:19
 hmaterials.h:20
 hmaterials.h:21
 hmaterials.h:22
 hmaterials.h:23
 hmaterials.h:24
 hmaterials.h:25
 hmaterials.h:26
 hmaterials.h:27
 hmaterials.h:28
 hmaterials.h:29
 hmaterials.h:30
 hmaterials.h:31
 hmaterials.h:32
 hmaterials.h:33
 hmaterials.h:34