Materials.hh 3.02 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#ifndef MATERIALS_HH_
#define MATERIALS_HH_


#include "G4Element.hh"
#include "G4Material.hh"
#include "G4OpticalSurface.hh"
#include "G4MaterialTable.hh"
#include "G4MaterialPropertiesTable.hh"
#include "G4NistManager.hh"
#include "G4LogicalBorderSurface.hh"
#include "G4LogicalSkinSurface.hh"

#include <vector>

class Materials
{
    public:
            /*! \brief Get the instance of Materials class.*/
            static Materials* getInstance(void);
            /*! \brief Default destructor.*/
            ~Materials(void);
            /*! \enable optical materials */
            void UseOpticalMaterials(bool _useOptical) { useOptical = _useOptical; }
            /*! \brief Define indexes of interest.*/
            void DefineOpticalProperties(void);

            //Elements
            /*  \brief Hydrogen */
            G4Element* H;
            /*  \brief Nitrogen */
            G4Element* N;
            /*  \brief Oxygen */
            G4Element* O;
            /*  \brief Silicon */
            G4Element* Si;
37
38
            /*  \brief Nickel */
            G4Element* Ni;
39
40
            /*  \brief Tungsten */
            G4Element* W;
41
42
            /*  \brief Iron */
            G4Element* Fe;
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
            /*  \brief Carbon */
            G4Element* C;

            //Materials
            /* \brief Xenon */
            G4Material* Xenon;
            /* \brief Quartz */
            G4Material* pQuartz;
            /* \brief EM module Quartz (?) */
            G4Material* EM_Quartz;
            /* \brief Air */
            G4Material* Air;
            /* \brief Al no optical */
            G4Material* Al;
            /* \brief Copper */
            G4Material* Cu;
            /* \brief Lead */
            G4Material* Pb;
            /* \brief Tungsten */
62
            G4Material* pureW;
63
64
65
66
            /* \brief Tungsten Nickel composite */
            G4Material* NiW;
            /* \brief Tungsten Nickel composite */
            G4Material* Steel;
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
            /* \brief Polyethilene */
            G4Material* Polyethylene;
            /* \brief Polymethylmethacrylate */
            G4Material* PMMA;
            /* \brief Grease */
            G4Material* Grease;
            /* \brief Al Optical Surface */
            G4OpticalSurface* AlSurface;
            /* \brief Tile Optical Surface */
            G4OpticalSurface* TileSurface;
            /* \brief PhotonDetect Optical Surface */
            G4OpticalSurface* photonDetSurface;

    private:
            /*! \brief Private constructor.*/
            Materials(void);
            /*! \brief Private class pointer.*/
            static Materials* materials;
            /*! \brief True if FULL physics activated.*/
            bool useOptical = false;
            /*! \brief Entries of WLS response parametrizations */
            const G4int nEntriesWLS = 50;
            /*! \brief G4NistManager pointer.*/
            G4NistManager* nist_manager;
            /*! \brief G4MaterialPropertiesTable array */
            std::vector <G4MaterialPropertiesTable*> MPT_Array;


};

#endif /* MATERIALS_HH_ */