Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/extended/optical/wls/src/WLSMaterials.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /examples/extended/optical/wls/src/WLSMaterials.cc (Version 11.3.0) and /examples/extended/optical/wls/src/WLSMaterials.cc (Version 11.1)


  1 //                                                  1 //
  2 // *******************************************      2 // ********************************************************************
  3 // * License and Disclaimer                         3 // * License and Disclaimer                                           *
  4 // *                                                4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of th      5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided      6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License      7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/      8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.           9 // * include a list of copyright holders.                             *
 10 // *                                               10 // *                                                                  *
 11 // * Neither the authors of this software syst     11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing fin     12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warran     13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assum     14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file      15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitatio     16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                               17 // *                                                                  *
 18 // * This  code  implementation is the result      18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboratio     19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distri     20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  ag     21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publicati     22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Sof     23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // *******************************************     24 // ********************************************************************
 25 //                                                 25 //
 26 //                                                 26 //
 27 /// \file optical/wls/src/WLSMaterials.cc          27 /// \file optical/wls/src/WLSMaterials.cc
 28 /// \brief Implementation of the WLSMaterials      28 /// \brief Implementation of the WLSMaterials class
 29 //                                                 29 //
 30 //                                                 30 //
 31 #include "WLSMaterials.hh"                         31 #include "WLSMaterials.hh"
 32                                                    32 
 33 #include "G4NistManager.hh"                        33 #include "G4NistManager.hh"
 34 #include "G4SystemOfUnits.hh"                      34 #include "G4SystemOfUnits.hh"
 35                                                    35 
 36 WLSMaterials* WLSMaterials::fInstance = nullpt     36 WLSMaterials* WLSMaterials::fInstance = nullptr;
 37                                                    37 
 38 //....oooOO0OOooo........oooOO0OOooo........oo     38 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 39                                                    39 
 40 WLSMaterials::WLSMaterials()                       40 WLSMaterials::WLSMaterials()
 41 {                                                  41 {
 42   fNistMan = G4NistManager::Instance();            42   fNistMan = G4NistManager::Instance();
 43   fNistMan->SetVerbose(2);                         43   fNistMan->SetVerbose(2);
 44                                                    44 
 45   CreateMaterials();                               45   CreateMaterials();
 46 }                                                  46 }
 47                                                    47 
 48 //....oooOO0OOooo........oooOO0OOooo........oo     48 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 49                                                    49 
 50 WLSMaterials::~WLSMaterials()                      50 WLSMaterials::~WLSMaterials()
 51 {                                                  51 {
 52   delete fAir;                                 << 
 53   delete fPMMA;                                    52   delete fPMMA;
 54   delete fPethylene;                               53   delete fPethylene;
 55   delete fFPethylene;                              54   delete fFPethylene;
 56   delete fPolystyrene;                             55   delete fPolystyrene;
 57   delete fSilicone;                                56   delete fSilicone;
 58   delete fCoating;                             << 
 59 }                                                  57 }
 60                                                    58 
 61 //....oooOO0OOooo........oooOO0OOooo........oo     59 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 62                                                    60 
 63 WLSMaterials* WLSMaterials::GetInstance()          61 WLSMaterials* WLSMaterials::GetInstance()
 64 {                                                  62 {
 65   if (!fInstance) {                            <<  63   if(!fInstance)
                                                   >>  64   {
 66     fInstance = new WLSMaterials();                65     fInstance = new WLSMaterials();
 67   }                                                66   }
 68   return fInstance;                                67   return fInstance;
 69 }                                                  68 }
 70                                                    69 
 71 //....oooOO0OOooo........oooOO0OOooo........oo     70 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 72                                                    71 
 73 G4Material* WLSMaterials::GetMaterial(const G4     72 G4Material* WLSMaterials::GetMaterial(const G4String material)
 74 {                                                  73 {
 75   G4Material* mat = fNistMan->FindOrBuildMater     74   G4Material* mat = fNistMan->FindOrBuildMaterial(material);
 76                                                    75 
 77   if (!mat) mat = G4Material::GetMaterial(mate <<  76   if(!mat)
 78   if (!mat) {                                  <<  77     mat = G4Material::GetMaterial(material);
                                                   >>  78   if(!mat)
                                                   >>  79   {
 79     G4ExceptionDescription ed;                     80     G4ExceptionDescription ed;
 80     ed << "Material " << material << " not fou     81     ed << "Material " << material << " not found!";
 81     G4Exception("WLSMaterials::GetMaterial", "     82     G4Exception("WLSMaterials::GetMaterial", "", FatalException, ed);
 82   }                                                83   }
 83                                                    84 
 84   return mat;                                      85   return mat;
 85 }                                                  86 }
 86                                                    87 
 87 //....oooOO0OOooo........oooOO0OOooo........oo     88 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 88                                                    89 
 89 void WLSMaterials::CreateMaterials()               90 void WLSMaterials::CreateMaterials()
 90 {                                                  91 {
 91   G4double density;                                92   G4double density;
 92   G4int ncomponents;                               93   G4int ncomponents;
 93   G4double fractionmass;                           94   G4double fractionmass;
 94   std::vector<G4int> natoms;                       95   std::vector<G4int> natoms;
 95   std::vector<G4double> fractionMass;              96   std::vector<G4double> fractionMass;
 96   std::vector<G4String> elements;                  97   std::vector<G4String> elements;
 97                                                    98 
 98   // Materials Definitions                         99   // Materials Definitions
 99   // =====================                        100   // =====================
100                                                   101 
101   //------------------------------------------    102   //--------------------------------------------------
102   // Vacuum                                       103   // Vacuum
103   //------------------------------------------    104   //--------------------------------------------------
104                                                   105 
105   fNistMan->FindOrBuildMaterial("G4_Galactic")    106   fNistMan->FindOrBuildMaterial("G4_Galactic");
106                                                   107 
107   //------------------------------------------    108   //--------------------------------------------------
108   // Air                                          109   // Air
109   //------------------------------------------    110   //--------------------------------------------------
110                                                   111 
111   fAir = fNistMan->FindOrBuildMaterial("G4_AIR    112   fAir = fNistMan->FindOrBuildMaterial("G4_AIR");
112                                                   113 
113   //------------------------------------------    114   //--------------------------------------------------
114   // WLSfiber PMMA                                115   // WLSfiber PMMA
115   //------------------------------------------    116   //--------------------------------------------------
116                                                   117 
117   elements.push_back("C");                        118   elements.push_back("C");
118   natoms.push_back(5);                            119   natoms.push_back(5);
119   elements.push_back("H");                        120   elements.push_back("H");
120   natoms.push_back(8);                            121   natoms.push_back(8);
121   elements.push_back("O");                        122   elements.push_back("O");
122   natoms.push_back(2);                            123   natoms.push_back(2);
123                                                   124 
124   density = 1.190 * g / cm3;                      125   density = 1.190 * g / cm3;
125                                                   126 
126   fPMMA = fNistMan->ConstructNewMaterial("PMMA    127   fPMMA = fNistMan->ConstructNewMaterial("PMMA", elements, natoms, density);
127                                                   128 
128   elements.clear();                               129   elements.clear();
129   natoms.clear();                                 130   natoms.clear();
130                                                   131 
131   //------------------------------------------    132   //--------------------------------------------------
132   // Cladding (polyethylene)                      133   // Cladding (polyethylene)
133   //------------------------------------------    134   //--------------------------------------------------
134                                                   135 
135   elements.push_back("C");                        136   elements.push_back("C");
136   natoms.push_back(2);                            137   natoms.push_back(2);
137   elements.push_back("H");                        138   elements.push_back("H");
138   natoms.push_back(4);                            139   natoms.push_back(4);
139                                                   140 
140   density = 1.200 * g / cm3;                      141   density = 1.200 * g / cm3;
141                                                   142 
142   fPethylene = fNistMan->ConstructNewMaterial( << 143   fPethylene =
                                                   >> 144     fNistMan->ConstructNewMaterial("Pethylene", elements, natoms, density);
143                                                   145 
144   elements.clear();                               146   elements.clear();
145   natoms.clear();                                 147   natoms.clear();
146                                                   148 
147   //------------------------------------------    149   //--------------------------------------------------
148   // Double Cladding (fluorinated polyethylene    150   // Double Cladding (fluorinated polyethylene)
149   //------------------------------------------    151   //--------------------------------------------------
150                                                   152 
151   elements.push_back("C");                        153   elements.push_back("C");
152   natoms.push_back(2);                            154   natoms.push_back(2);
153   elements.push_back("H");                        155   elements.push_back("H");
154   natoms.push_back(4);                            156   natoms.push_back(4);
155                                                   157 
156   density = 1.400 * g / cm3;                      158   density = 1.400 * g / cm3;
157                                                   159 
158   fFPethylene = fNistMan->ConstructNewMaterial << 160   fFPethylene =
                                                   >> 161     fNistMan->ConstructNewMaterial("FPethylene", elements, natoms, density);
159                                                   162 
160   elements.clear();                               163   elements.clear();
161   natoms.clear();                                 164   natoms.clear();
162                                                   165 
163   //------------------------------------------    166   //--------------------------------------------------
164   // Polystyrene                                  167   // Polystyrene
165   //------------------------------------------    168   //--------------------------------------------------
166                                                   169 
167   elements.push_back("C");                        170   elements.push_back("C");
168   natoms.push_back(8);                            171   natoms.push_back(8);
169   elements.push_back("H");                        172   elements.push_back("H");
170   natoms.push_back(8);                            173   natoms.push_back(8);
171                                                   174 
172   density = 1.050 * g / cm3;                      175   density = 1.050 * g / cm3;
173                                                   176 
174   fPolystyrene = fNistMan->ConstructNewMateria << 177   fPolystyrene =
                                                   >> 178     fNistMan->ConstructNewMaterial("Polystyrene", elements, natoms, density);
175                                                   179 
176   elements.clear();                               180   elements.clear();
177   natoms.clear();                                 181   natoms.clear();
178                                                   182 
179   //------------------------------------------    183   //--------------------------------------------------
180   // Silicone (Template for Optical Grease)       184   // Silicone (Template for Optical Grease)
181   //------------------------------------------    185   //--------------------------------------------------
182                                                   186 
183   elements.push_back("C");                        187   elements.push_back("C");
184   natoms.push_back(2);                            188   natoms.push_back(2);
185   elements.push_back("H");                        189   elements.push_back("H");
186   natoms.push_back(6);                            190   natoms.push_back(6);
187                                                   191 
188   density = 1.060 * g / cm3;                      192   density = 1.060 * g / cm3;
189                                                   193 
190   fSilicone = fNistMan->ConstructNewMaterial(" << 194   fSilicone =
                                                   >> 195     fNistMan->ConstructNewMaterial("Silicone", elements, natoms, density);
191                                                   196 
192   elements.clear();                               197   elements.clear();
193   natoms.clear();                                 198   natoms.clear();
194                                                   199 
195   //------------------------------------------    200   //--------------------------------------------------
196   // Aluminium                                    201   // Aluminium
197   //------------------------------------------    202   //--------------------------------------------------
198                                                   203 
199   fNistMan->FindOrBuildMaterial("G4_Al");         204   fNistMan->FindOrBuildMaterial("G4_Al");
200                                                   205 
201   //------------------------------------------    206   //--------------------------------------------------
202   // TiO2                                         207   // TiO2
203   //------------------------------------------    208   //--------------------------------------------------
204                                                   209 
205   elements.push_back("Ti");                       210   elements.push_back("Ti");
206   natoms.push_back(1);                            211   natoms.push_back(1);
207   elements.push_back("O");                        212   elements.push_back("O");
208   natoms.push_back(2);                            213   natoms.push_back(2);
209                                                   214 
210   density = 4.26 * g / cm3;                       215   density = 4.26 * g / cm3;
211                                                   216 
212   G4Material* TiO2 = fNistMan->ConstructNewMat << 217   G4Material* TiO2 =
                                                   >> 218     fNistMan->ConstructNewMaterial("TiO2", elements, natoms, density);
213                                                   219 
214   elements.clear();                               220   elements.clear();
215   natoms.clear();                                 221   natoms.clear();
216                                                   222 
217   //------------------------------------------    223   //--------------------------------------------------
218   // Scintillator Coating - 15% TiO2 and 85% p    224   // Scintillator Coating - 15% TiO2 and 85% polystyrene by weight.
219   //------------------------------------------    225   //--------------------------------------------------
220                                                   226 
221   density = 1.52 * g / cm3;                       227   density = 1.52 * g / cm3;
222                                                   228 
223   fCoating = new G4Material("Coating", density    229   fCoating = new G4Material("Coating", density, ncomponents = 2);
224                                                   230 
225   fCoating->AddMaterial(TiO2, fractionmass = 1    231   fCoating->AddMaterial(TiO2, fractionmass = 15 * perCent);
226   fCoating->AddMaterial(fPolystyrene, fraction    232   fCoating->AddMaterial(fPolystyrene, fractionmass = 85 * perCent);
227                                                   233 
228   //                                              234   //
229   // ------------ Generate & Add Material Prop    235   // ------------ Generate & Add Material Properties Table ------------
230   //                                              236   //
231                                                   237 
232   std::vector<G4double> energy = {                238   std::vector<G4double> energy = {
233     2.00 * eV, 2.03 * eV, 2.06 * eV, 2.09 * eV << 239     2.00 * eV, 2.03 * eV, 2.06 * eV, 2.09 * eV, 2.12 * eV, 2.15 * eV, 2.18 * eV,
234     2.24 * eV, 2.27 * eV, 2.30 * eV, 2.33 * eV << 240     2.21 * eV, 2.24 * eV, 2.27 * eV, 2.30 * eV, 2.33 * eV, 2.36 * eV, 2.39 * eV,
235     2.48 * eV, 2.51 * eV, 2.54 * eV, 2.57 * eV << 241     2.42 * eV, 2.45 * eV, 2.48 * eV, 2.51 * eV, 2.54 * eV, 2.57 * eV, 2.60 * eV,
236     2.72 * eV, 2.75 * eV, 2.78 * eV, 2.81 * eV << 242     2.63 * eV, 2.66 * eV, 2.69 * eV, 2.72 * eV, 2.75 * eV, 2.78 * eV, 2.81 * eV,
237     2.96 * eV, 2.99 * eV, 3.02 * eV, 3.05 * eV << 243     2.84 * eV, 2.87 * eV, 2.90 * eV, 2.93 * eV, 2.96 * eV, 2.99 * eV, 3.02 * eV,
238     3.20 * eV, 3.23 * eV, 3.26 * eV, 3.29 * eV << 244     3.05 * eV, 3.08 * eV, 3.11 * eV, 3.14 * eV, 3.17 * eV, 3.20 * eV, 3.23 * eV,
239     3.44 * eV, 3.47 * eV};                     << 245     3.26 * eV, 3.29 * eV, 3.32 * eV, 3.35 * eV, 3.38 * eV, 3.41 * eV, 3.44 * eV,
                                                   >> 246     3.47 * eV
                                                   >> 247   };
240                                                   248 
241   std::vector<G4double> energySmall = {2.0 * e << 249   std::vector<G4double> energySmall = { 2.0 * eV, 3.47 * eV };
242                                                   250 
243   //------------------------------------------    251   //--------------------------------------------------
244   // Air                                          252   // Air
245   //------------------------------------------    253   //--------------------------------------------------
246                                                   254 
247   std::vector<G4double> refractiveIndex = {1.0 << 255   std::vector<G4double> refractiveIndex = { 1.0, 1.0 };
248                                                   256 
249   auto mpt = new G4MaterialPropertiesTable();  << 257   G4MaterialPropertiesTable* mpt = new G4MaterialPropertiesTable();
250   mpt->AddProperty("RINDEX", energySmall, refr    258   mpt->AddProperty("RINDEX", energySmall, refractiveIndex);
251                                                   259 
252   fAir->SetMaterialPropertiesTable(mpt);          260   fAir->SetMaterialPropertiesTable(mpt);
253                                                   261 
254   //------------------------------------------    262   //--------------------------------------------------
255   //  PMMA for WLSfibers                          263   //  PMMA for WLSfibers
256   //------------------------------------------    264   //--------------------------------------------------
257                                                   265 
258   std::vector<G4double> refractiveIndexWLSfibe << 266   std::vector<G4double> refractiveIndexWLSfiber = { 1.60, 1.60 };
259                                                   267 
260   std::vector<G4double> absWLSfiber = {           268   std::vector<G4double> absWLSfiber = {
261     5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5. << 269     5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m,
262     5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5. << 270     5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m,
263     5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5. << 271     5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m,
264     5.40 * m, 5.40 * m, 1.10 * m, 1.10 * m, 1. << 272     5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m,
265     1. * mm,  1. * mm,  1. * mm,  1. * mm,  1. << 273     5.40 * m, 1.10 * m, 1.10 * m, 1.10 * m, 1.10 * m, 1.10 * m, 1.10 * m,
266     1. * mm,  1. * mm,  1. * mm,  1. * mm,  1. << 274     1.10 * m, 1. * mm,  1. * mm,  1. * mm,  1. * mm,  1. * mm,  1. * mm,
267                                                << 275     1. * mm,  1. * mm,  1. * mm,  1. * mm,  1. * mm,  1. * mm,  1. * mm,
268   std::vector<G4double> emissionFib = {0.05, 0 << 276     1. * mm
269                                        3.25, 3 << 277   };
270                                        12.9, 1 << 278 
271                                        15.0, 9 << 279   std::vector<G4double> emissionFib = {
272                                        0.00, 0 << 280     0.05, 0.10, 0.30, 0.50, 0.75, 1.00, 1.50, 1.85, 2.30, 2.75,
                                                   >> 281     3.25, 3.80, 4.50, 5.20, 6.00, 7.00, 8.50, 9.50, 11.1, 12.4,
                                                   >> 282     12.9, 13.0, 12.8, 12.3, 11.1, 11.0, 12.0, 11.0, 17.0, 16.9,
                                                   >> 283     15.0, 9.00, 2.50, 1.00, 0.05, 0.00, 0.00, 0.00, 0.00, 0.00,
                                                   >> 284     0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00
                                                   >> 285   };
273                                                   286 
274   // Add entries into properties table            287   // Add entries into properties table
275   auto mptWLSfiber = new G4MaterialPropertiesT << 288   G4MaterialPropertiesTable* mptWLSfiber = new G4MaterialPropertiesTable();
276   mptWLSfiber->AddProperty("RINDEX", energySma    289   mptWLSfiber->AddProperty("RINDEX", energySmall, refractiveIndexWLSfiber);
277   mptWLSfiber->AddProperty("WLSABSLENGTH", ene    290   mptWLSfiber->AddProperty("WLSABSLENGTH", energy, absWLSfiber);
278   mptWLSfiber->AddProperty("WLSCOMPONENT", ene    291   mptWLSfiber->AddProperty("WLSCOMPONENT", energy, emissionFib);
279   mptWLSfiber->AddConstProperty("WLSTIMECONSTA    292   mptWLSfiber->AddConstProperty("WLSTIMECONSTANT", 0.5 * ns);
280                                                   293 
281   fPMMA->SetMaterialPropertiesTable(mptWLSfibe    294   fPMMA->SetMaterialPropertiesTable(mptWLSfiber);
282                                                   295 
283   //------------------------------------------    296   //--------------------------------------------------
284   //  Polyethylene                                297   //  Polyethylene
285   //------------------------------------------    298   //--------------------------------------------------
286                                                   299 
287   std::vector<G4double> refractiveIndexClad1 = << 300   std::vector<G4double> refractiveIndexClad1 = { 1.49, 1.49 };
288                                                   301 
289   std::vector<G4double> absClad = {20.0 * m, 2 << 302   std::vector<G4double> absClad = { 20.0 * m, 20.0 * m };
290                                                   303 
291   // Add entries into properties table            304   // Add entries into properties table
292   auto mptClad1 = new G4MaterialPropertiesTabl << 305   G4MaterialPropertiesTable* mptClad1 = new G4MaterialPropertiesTable();
293   mptClad1->AddProperty("RINDEX", energySmall,    306   mptClad1->AddProperty("RINDEX", energySmall, refractiveIndexClad1);
294   mptClad1->AddProperty("ABSLENGTH", energySma    307   mptClad1->AddProperty("ABSLENGTH", energySmall, absClad);
295                                                   308 
296   fPethylene->SetMaterialPropertiesTable(mptCl    309   fPethylene->SetMaterialPropertiesTable(mptClad1);
297                                                   310 
298   //------------------------------------------    311   //--------------------------------------------------
299   // Fluorinated Polyethylene                     312   // Fluorinated Polyethylene
300   //------------------------------------------    313   //--------------------------------------------------
301                                                   314 
302   std::vector<G4double> refractiveIndexClad2 = << 315   std::vector<G4double> refractiveIndexClad2 = { 1.42, 1.42 };
303                                                   316 
304   // Add entries into properties table            317   // Add entries into properties table
305   auto mptClad2 = new G4MaterialPropertiesTabl << 318   G4MaterialPropertiesTable* mptClad2 = new G4MaterialPropertiesTable();
306   mptClad2->AddProperty("RINDEX", energySmall,    319   mptClad2->AddProperty("RINDEX", energySmall, refractiveIndexClad2);
307   mptClad2->AddProperty("ABSLENGTH", energySma    320   mptClad2->AddProperty("ABSLENGTH", energySmall, absClad);
308                                                   321 
309   fFPethylene->SetMaterialPropertiesTable(mptC    322   fFPethylene->SetMaterialPropertiesTable(mptClad2);
310                                                   323 
311   //------------------------------------------    324   //--------------------------------------------------
312   // Silicone                                     325   // Silicone
313   //------------------------------------------    326   //--------------------------------------------------
314                                                   327 
315   std::vector<G4double> refractiveIndexSilicon << 328   std::vector<G4double> refractiveIndexSilicone = { 1.46, 1.46 };
316                                                   329 
317   // Add entries into properties table            330   // Add entries into properties table
318   auto mptSilicone = new G4MaterialPropertiesT << 331   G4MaterialPropertiesTable* mptSilicone = new G4MaterialPropertiesTable();
319   mptSilicone->AddProperty("RINDEX", energySma    332   mptSilicone->AddProperty("RINDEX", energySmall, refractiveIndexSilicone);
320   mptSilicone->AddProperty("ABSLENGTH", energy    333   mptSilicone->AddProperty("ABSLENGTH", energySmall, absClad);
321                                                   334 
322   fSilicone->SetMaterialPropertiesTable(mptSil    335   fSilicone->SetMaterialPropertiesTable(mptSilicone);
323                                                   336 
324   //------------------------------------------    337   //--------------------------------------------------
325   //  Polystyrene                                 338   //  Polystyrene
326   //------------------------------------------    339   //--------------------------------------------------
327                                                   340 
328   std::vector<G4double> refractiveIndexPS = {1 << 341   std::vector<G4double> refractiveIndexPS = { 1.50, 1.50 };
329                                                   342 
330   std::vector<G4double> absPS = {2. * cm, 2. * << 343   std::vector<G4double> absPS = { 2. * cm, 2. * cm };
331                                                   344 
332   std::vector<G4double> scintilFast = {           345   std::vector<G4double> scintilFast = {
333     0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0. << 346     0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
334     0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0. << 347     0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
335     1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1. << 348     0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
                                                   >> 349     1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0
                                                   >> 350   };
336                                                   351 
337   // Add entries into properties table            352   // Add entries into properties table
338   auto mptPolystyrene = new G4MaterialProperti << 353   G4MaterialPropertiesTable* mptPolystyrene = new G4MaterialPropertiesTable();
339   mptPolystyrene->AddProperty("RINDEX", energy    354   mptPolystyrene->AddProperty("RINDEX", energySmall, refractiveIndexPS);
340   mptPolystyrene->AddProperty("ABSLENGTH", ene    355   mptPolystyrene->AddProperty("ABSLENGTH", energySmall, absPS);
341   mptPolystyrene->AddProperty("SCINTILLATIONCO    356   mptPolystyrene->AddProperty("SCINTILLATIONCOMPONENT1", energy, scintilFast);
342   mptPolystyrene->AddConstProperty("SCINTILLAT    357   mptPolystyrene->AddConstProperty("SCINTILLATIONYIELD", 10. / keV);
343   mptPolystyrene->AddConstProperty("RESOLUTION    358   mptPolystyrene->AddConstProperty("RESOLUTIONSCALE", 1.0);
344   mptPolystyrene->AddConstProperty("SCINTILLAT    359   mptPolystyrene->AddConstProperty("SCINTILLATIONTIMECONSTANT1", 10. * ns);
345                                                   360 
346   fPolystyrene->SetMaterialPropertiesTable(mpt    361   fPolystyrene->SetMaterialPropertiesTable(mptPolystyrene);
347                                                   362 
348   // Set the Birks Constant for the Polystyren    363   // Set the Birks Constant for the Polystyrene scintillator
349   fPolystyrene->GetIonisation()->SetBirksConst    364   fPolystyrene->GetIonisation()->SetBirksConstant(0.126 * mm / MeV);
350 }                                                 365 }
351                                                   366