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.2)


  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;                                     52   delete fAir;
 53   delete fPMMA;                                    53   delete fPMMA;
 54   delete fPethylene;                               54   delete fPethylene;
 55   delete fFPethylene;                              55   delete fFPethylene;
 56   delete fPolystyrene;                             56   delete fPolystyrene;
 57   delete fSilicone;                                57   delete fSilicone;
 58   delete fCoating;                                 58   delete fCoating;
 59 }                                                  59 }
 60                                                    60 
 61 //....oooOO0OOooo........oooOO0OOooo........oo     61 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 62                                                    62 
 63 WLSMaterials* WLSMaterials::GetInstance()          63 WLSMaterials* WLSMaterials::GetInstance()
 64 {                                                  64 {
 65   if (!fInstance) {                            <<  65   if(!fInstance)
                                                   >>  66   {
 66     fInstance = new WLSMaterials();                67     fInstance = new WLSMaterials();
 67   }                                                68   }
 68   return fInstance;                                69   return fInstance;
 69 }                                                  70 }
 70                                                    71 
 71 //....oooOO0OOooo........oooOO0OOooo........oo     72 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 72                                                    73 
 73 G4Material* WLSMaterials::GetMaterial(const G4     74 G4Material* WLSMaterials::GetMaterial(const G4String material)
 74 {                                                  75 {
 75   G4Material* mat = fNistMan->FindOrBuildMater     76   G4Material* mat = fNistMan->FindOrBuildMaterial(material);
 76                                                    77 
 77   if (!mat) mat = G4Material::GetMaterial(mate <<  78   if(!mat)
 78   if (!mat) {                                  <<  79     mat = G4Material::GetMaterial(material);
                                                   >>  80   if(!mat)
                                                   >>  81   {
 79     G4ExceptionDescription ed;                     82     G4ExceptionDescription ed;
 80     ed << "Material " << material << " not fou     83     ed << "Material " << material << " not found!";
 81     G4Exception("WLSMaterials::GetMaterial", "     84     G4Exception("WLSMaterials::GetMaterial", "", FatalException, ed);
 82   }                                                85   }
 83                                                    86 
 84   return mat;                                      87   return mat;
 85 }                                                  88 }
 86                                                    89 
 87 //....oooOO0OOooo........oooOO0OOooo........oo     90 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 88                                                    91 
 89 void WLSMaterials::CreateMaterials()               92 void WLSMaterials::CreateMaterials()
 90 {                                                  93 {
 91   G4double density;                                94   G4double density;
 92   G4int ncomponents;                               95   G4int ncomponents;
 93   G4double fractionmass;                           96   G4double fractionmass;
 94   std::vector<G4int> natoms;                       97   std::vector<G4int> natoms;
 95   std::vector<G4double> fractionMass;              98   std::vector<G4double> fractionMass;
 96   std::vector<G4String> elements;                  99   std::vector<G4String> elements;
 97                                                   100 
 98   // Materials Definitions                        101   // Materials Definitions
 99   // =====================                        102   // =====================
100                                                   103 
101   //------------------------------------------    104   //--------------------------------------------------
102   // Vacuum                                       105   // Vacuum
103   //------------------------------------------    106   //--------------------------------------------------
104                                                   107 
105   fNistMan->FindOrBuildMaterial("G4_Galactic")    108   fNistMan->FindOrBuildMaterial("G4_Galactic");
106                                                   109 
107   //------------------------------------------    110   //--------------------------------------------------
108   // Air                                          111   // Air
109   //------------------------------------------    112   //--------------------------------------------------
110                                                   113 
111   fAir = fNistMan->FindOrBuildMaterial("G4_AIR    114   fAir = fNistMan->FindOrBuildMaterial("G4_AIR");
112                                                   115 
113   //------------------------------------------    116   //--------------------------------------------------
114   // WLSfiber PMMA                                117   // WLSfiber PMMA
115   //------------------------------------------    118   //--------------------------------------------------
116                                                   119 
117   elements.push_back("C");                        120   elements.push_back("C");
118   natoms.push_back(5);                            121   natoms.push_back(5);
119   elements.push_back("H");                        122   elements.push_back("H");
120   natoms.push_back(8);                            123   natoms.push_back(8);
121   elements.push_back("O");                        124   elements.push_back("O");
122   natoms.push_back(2);                            125   natoms.push_back(2);
123                                                   126 
124   density = 1.190 * g / cm3;                      127   density = 1.190 * g / cm3;
125                                                   128 
126   fPMMA = fNistMan->ConstructNewMaterial("PMMA    129   fPMMA = fNistMan->ConstructNewMaterial("PMMA", elements, natoms, density);
127                                                   130 
128   elements.clear();                               131   elements.clear();
129   natoms.clear();                                 132   natoms.clear();
130                                                   133 
131   //------------------------------------------    134   //--------------------------------------------------
132   // Cladding (polyethylene)                      135   // Cladding (polyethylene)
133   //------------------------------------------    136   //--------------------------------------------------
134                                                   137 
135   elements.push_back("C");                        138   elements.push_back("C");
136   natoms.push_back(2);                            139   natoms.push_back(2);
137   elements.push_back("H");                        140   elements.push_back("H");
138   natoms.push_back(4);                            141   natoms.push_back(4);
139                                                   142 
140   density = 1.200 * g / cm3;                      143   density = 1.200 * g / cm3;
141                                                   144 
142   fPethylene = fNistMan->ConstructNewMaterial( << 145   fPethylene =
                                                   >> 146     fNistMan->ConstructNewMaterial("Pethylene", elements, natoms, density);
143                                                   147 
144   elements.clear();                               148   elements.clear();
145   natoms.clear();                                 149   natoms.clear();
146                                                   150 
147   //------------------------------------------    151   //--------------------------------------------------
148   // Double Cladding (fluorinated polyethylene    152   // Double Cladding (fluorinated polyethylene)
149   //------------------------------------------    153   //--------------------------------------------------
150                                                   154 
151   elements.push_back("C");                        155   elements.push_back("C");
152   natoms.push_back(2);                            156   natoms.push_back(2);
153   elements.push_back("H");                        157   elements.push_back("H");
154   natoms.push_back(4);                            158   natoms.push_back(4);
155                                                   159 
156   density = 1.400 * g / cm3;                      160   density = 1.400 * g / cm3;
157                                                   161 
158   fFPethylene = fNistMan->ConstructNewMaterial << 162   fFPethylene =
                                                   >> 163     fNistMan->ConstructNewMaterial("FPethylene", elements, natoms, density);
159                                                   164 
160   elements.clear();                               165   elements.clear();
161   natoms.clear();                                 166   natoms.clear();
162                                                   167 
163   //------------------------------------------    168   //--------------------------------------------------
164   // Polystyrene                                  169   // Polystyrene
165   //------------------------------------------    170   //--------------------------------------------------
166                                                   171 
167   elements.push_back("C");                        172   elements.push_back("C");
168   natoms.push_back(8);                            173   natoms.push_back(8);
169   elements.push_back("H");                        174   elements.push_back("H");
170   natoms.push_back(8);                            175   natoms.push_back(8);
171                                                   176 
172   density = 1.050 * g / cm3;                      177   density = 1.050 * g / cm3;
173                                                   178 
174   fPolystyrene = fNistMan->ConstructNewMateria << 179   fPolystyrene =
                                                   >> 180     fNistMan->ConstructNewMaterial("Polystyrene", elements, natoms, density);
175                                                   181 
176   elements.clear();                               182   elements.clear();
177   natoms.clear();                                 183   natoms.clear();
178                                                   184 
179   //------------------------------------------    185   //--------------------------------------------------
180   // Silicone (Template for Optical Grease)       186   // Silicone (Template for Optical Grease)
181   //------------------------------------------    187   //--------------------------------------------------
182                                                   188 
183   elements.push_back("C");                        189   elements.push_back("C");
184   natoms.push_back(2);                            190   natoms.push_back(2);
185   elements.push_back("H");                        191   elements.push_back("H");
186   natoms.push_back(6);                            192   natoms.push_back(6);
187                                                   193 
188   density = 1.060 * g / cm3;                      194   density = 1.060 * g / cm3;
189                                                   195 
190   fSilicone = fNistMan->ConstructNewMaterial(" << 196   fSilicone =
                                                   >> 197     fNistMan->ConstructNewMaterial("Silicone", elements, natoms, density);
191                                                   198 
192   elements.clear();                               199   elements.clear();
193   natoms.clear();                                 200   natoms.clear();
194                                                   201 
195   //------------------------------------------    202   //--------------------------------------------------
196   // Aluminium                                    203   // Aluminium
197   //------------------------------------------    204   //--------------------------------------------------
198                                                   205 
199   fNistMan->FindOrBuildMaterial("G4_Al");         206   fNistMan->FindOrBuildMaterial("G4_Al");
200                                                   207 
201   //------------------------------------------    208   //--------------------------------------------------
202   // TiO2                                         209   // TiO2
203   //------------------------------------------    210   //--------------------------------------------------
204                                                   211 
205   elements.push_back("Ti");                       212   elements.push_back("Ti");
206   natoms.push_back(1);                            213   natoms.push_back(1);
207   elements.push_back("O");                        214   elements.push_back("O");
208   natoms.push_back(2);                            215   natoms.push_back(2);
209                                                   216 
210   density = 4.26 * g / cm3;                       217   density = 4.26 * g / cm3;
211                                                   218 
212   G4Material* TiO2 = fNistMan->ConstructNewMat << 219   G4Material* TiO2 =
                                                   >> 220     fNistMan->ConstructNewMaterial("TiO2", elements, natoms, density);
213                                                   221 
214   elements.clear();                               222   elements.clear();
215   natoms.clear();                                 223   natoms.clear();
216                                                   224 
217   //------------------------------------------    225   //--------------------------------------------------
218   // Scintillator Coating - 15% TiO2 and 85% p    226   // Scintillator Coating - 15% TiO2 and 85% polystyrene by weight.
219   //------------------------------------------    227   //--------------------------------------------------
220                                                   228 
221   density = 1.52 * g / cm3;                       229   density = 1.52 * g / cm3;
222                                                   230 
223   fCoating = new G4Material("Coating", density    231   fCoating = new G4Material("Coating", density, ncomponents = 2);
224                                                   232 
225   fCoating->AddMaterial(TiO2, fractionmass = 1    233   fCoating->AddMaterial(TiO2, fractionmass = 15 * perCent);
226   fCoating->AddMaterial(fPolystyrene, fraction    234   fCoating->AddMaterial(fPolystyrene, fractionmass = 85 * perCent);
227                                                   235 
228   //                                              236   //
229   // ------------ Generate & Add Material Prop    237   // ------------ Generate & Add Material Properties Table ------------
230   //                                              238   //
231                                                   239 
232   std::vector<G4double> energy = {                240   std::vector<G4double> energy = {
233     2.00 * eV, 2.03 * eV, 2.06 * eV, 2.09 * eV << 241     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 << 242     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 << 243     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 << 244     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 << 245     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 << 246     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};                     << 247     3.26 * eV, 3.29 * eV, 3.32 * eV, 3.35 * eV, 3.38 * eV, 3.41 * eV, 3.44 * eV,
                                                   >> 248     3.47 * eV
                                                   >> 249   };
240                                                   250 
241   std::vector<G4double> energySmall = {2.0 * e << 251   std::vector<G4double> energySmall = { 2.0 * eV, 3.47 * eV };
242                                                   252 
243   //------------------------------------------    253   //--------------------------------------------------
244   // Air                                          254   // Air
245   //------------------------------------------    255   //--------------------------------------------------
246                                                   256 
247   std::vector<G4double> refractiveIndex = {1.0 << 257   std::vector<G4double> refractiveIndex = { 1.0, 1.0 };
248                                                   258 
249   auto mpt = new G4MaterialPropertiesTable();     259   auto mpt = new G4MaterialPropertiesTable();
250   mpt->AddProperty("RINDEX", energySmall, refr    260   mpt->AddProperty("RINDEX", energySmall, refractiveIndex);
251                                                   261 
252   fAir->SetMaterialPropertiesTable(mpt);          262   fAir->SetMaterialPropertiesTable(mpt);
253                                                   263 
254   //------------------------------------------    264   //--------------------------------------------------
255   //  PMMA for WLSfibers                          265   //  PMMA for WLSfibers
256   //------------------------------------------    266   //--------------------------------------------------
257                                                   267 
258   std::vector<G4double> refractiveIndexWLSfibe << 268   std::vector<G4double> refractiveIndexWLSfiber = { 1.60, 1.60 };
259                                                   269 
260   std::vector<G4double> absWLSfiber = {           270   std::vector<G4double> absWLSfiber = {
261     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,
262     5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5. << 272     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. << 273     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. << 274     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. << 275     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. << 276     1.10 * m, 1. * mm,  1. * mm,  1. * mm,  1. * mm,  1. * mm,  1. * mm,
267                                                << 277     1. * mm,  1. * mm,  1. * mm,  1. * mm,  1. * mm,  1. * mm,  1. * mm,
268   std::vector<G4double> emissionFib = {0.05, 0 << 278     1. * mm
269                                        3.25, 3 << 279   };
270                                        12.9, 1 << 280 
271                                        15.0, 9 << 281   std::vector<G4double> emissionFib = {
272                                        0.00, 0 << 282     0.05, 0.10, 0.30, 0.50, 0.75, 1.00, 1.50, 1.85, 2.30, 2.75,
                                                   >> 283     3.25, 3.80, 4.50, 5.20, 6.00, 7.00, 8.50, 9.50, 11.1, 12.4,
                                                   >> 284     12.9, 13.0, 12.8, 12.3, 11.1, 11.0, 12.0, 11.0, 17.0, 16.9,
                                                   >> 285     15.0, 9.00, 2.50, 1.00, 0.05, 0.00, 0.00, 0.00, 0.00, 0.00,
                                                   >> 286     0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00
                                                   >> 287   };
273                                                   288 
274   // Add entries into properties table            289   // Add entries into properties table
275   auto mptWLSfiber = new G4MaterialPropertiesT    290   auto mptWLSfiber = new G4MaterialPropertiesTable();
276   mptWLSfiber->AddProperty("RINDEX", energySma    291   mptWLSfiber->AddProperty("RINDEX", energySmall, refractiveIndexWLSfiber);
277   mptWLSfiber->AddProperty("WLSABSLENGTH", ene    292   mptWLSfiber->AddProperty("WLSABSLENGTH", energy, absWLSfiber);
278   mptWLSfiber->AddProperty("WLSCOMPONENT", ene    293   mptWLSfiber->AddProperty("WLSCOMPONENT", energy, emissionFib);
279   mptWLSfiber->AddConstProperty("WLSTIMECONSTA    294   mptWLSfiber->AddConstProperty("WLSTIMECONSTANT", 0.5 * ns);
280                                                   295 
281   fPMMA->SetMaterialPropertiesTable(mptWLSfibe    296   fPMMA->SetMaterialPropertiesTable(mptWLSfiber);
282                                                   297 
283   //------------------------------------------    298   //--------------------------------------------------
284   //  Polyethylene                                299   //  Polyethylene
285   //------------------------------------------    300   //--------------------------------------------------
286                                                   301 
287   std::vector<G4double> refractiveIndexClad1 = << 302   std::vector<G4double> refractiveIndexClad1 = { 1.49, 1.49 };
288                                                   303 
289   std::vector<G4double> absClad = {20.0 * m, 2 << 304   std::vector<G4double> absClad = { 20.0 * m, 20.0 * m };
290                                                   305 
291   // Add entries into properties table            306   // Add entries into properties table
292   auto mptClad1 = new G4MaterialPropertiesTabl    307   auto mptClad1 = new G4MaterialPropertiesTable();
293   mptClad1->AddProperty("RINDEX", energySmall,    308   mptClad1->AddProperty("RINDEX", energySmall, refractiveIndexClad1);
294   mptClad1->AddProperty("ABSLENGTH", energySma    309   mptClad1->AddProperty("ABSLENGTH", energySmall, absClad);
295                                                   310 
296   fPethylene->SetMaterialPropertiesTable(mptCl    311   fPethylene->SetMaterialPropertiesTable(mptClad1);
297                                                   312 
298   //------------------------------------------    313   //--------------------------------------------------
299   // Fluorinated Polyethylene                     314   // Fluorinated Polyethylene
300   //------------------------------------------    315   //--------------------------------------------------
301                                                   316 
302   std::vector<G4double> refractiveIndexClad2 = << 317   std::vector<G4double> refractiveIndexClad2 = { 1.42, 1.42 };
303                                                   318 
304   // Add entries into properties table            319   // Add entries into properties table
305   auto mptClad2 = new G4MaterialPropertiesTabl    320   auto mptClad2 = new G4MaterialPropertiesTable();
306   mptClad2->AddProperty("RINDEX", energySmall,    321   mptClad2->AddProperty("RINDEX", energySmall, refractiveIndexClad2);
307   mptClad2->AddProperty("ABSLENGTH", energySma    322   mptClad2->AddProperty("ABSLENGTH", energySmall, absClad);
308                                                   323 
309   fFPethylene->SetMaterialPropertiesTable(mptC    324   fFPethylene->SetMaterialPropertiesTable(mptClad2);
310                                                   325 
311   //------------------------------------------    326   //--------------------------------------------------
312   // Silicone                                     327   // Silicone
313   //------------------------------------------    328   //--------------------------------------------------
314                                                   329 
315   std::vector<G4double> refractiveIndexSilicon << 330   std::vector<G4double> refractiveIndexSilicone = { 1.46, 1.46 };
316                                                   331 
317   // Add entries into properties table            332   // Add entries into properties table
318   auto mptSilicone = new G4MaterialPropertiesT    333   auto mptSilicone = new G4MaterialPropertiesTable();
319   mptSilicone->AddProperty("RINDEX", energySma    334   mptSilicone->AddProperty("RINDEX", energySmall, refractiveIndexSilicone);
320   mptSilicone->AddProperty("ABSLENGTH", energy    335   mptSilicone->AddProperty("ABSLENGTH", energySmall, absClad);
321                                                   336 
322   fSilicone->SetMaterialPropertiesTable(mptSil    337   fSilicone->SetMaterialPropertiesTable(mptSilicone);
323                                                   338 
324   //------------------------------------------    339   //--------------------------------------------------
325   //  Polystyrene                                 340   //  Polystyrene
326   //------------------------------------------    341   //--------------------------------------------------
327                                                   342 
328   std::vector<G4double> refractiveIndexPS = {1 << 343   std::vector<G4double> refractiveIndexPS = { 1.50, 1.50 };
329                                                   344 
330   std::vector<G4double> absPS = {2. * cm, 2. * << 345   std::vector<G4double> absPS = { 2. * cm, 2. * cm };
331                                                   346 
332   std::vector<G4double> scintilFast = {           347   std::vector<G4double> scintilFast = {
333     0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0. << 348     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. << 349     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. << 350     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,
                                                   >> 351     1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0
                                                   >> 352   };
336                                                   353 
337   // Add entries into properties table            354   // Add entries into properties table
338   auto mptPolystyrene = new G4MaterialProperti    355   auto mptPolystyrene = new G4MaterialPropertiesTable();
339   mptPolystyrene->AddProperty("RINDEX", energy    356   mptPolystyrene->AddProperty("RINDEX", energySmall, refractiveIndexPS);
340   mptPolystyrene->AddProperty("ABSLENGTH", ene    357   mptPolystyrene->AddProperty("ABSLENGTH", energySmall, absPS);
341   mptPolystyrene->AddProperty("SCINTILLATIONCO    358   mptPolystyrene->AddProperty("SCINTILLATIONCOMPONENT1", energy, scintilFast);
342   mptPolystyrene->AddConstProperty("SCINTILLAT    359   mptPolystyrene->AddConstProperty("SCINTILLATIONYIELD", 10. / keV);
343   mptPolystyrene->AddConstProperty("RESOLUTION    360   mptPolystyrene->AddConstProperty("RESOLUTIONSCALE", 1.0);
344   mptPolystyrene->AddConstProperty("SCINTILLAT    361   mptPolystyrene->AddConstProperty("SCINTILLATIONTIMECONSTANT1", 10. * ns);
345                                                   362 
346   fPolystyrene->SetMaterialPropertiesTable(mpt    363   fPolystyrene->SetMaterialPropertiesTable(mptPolystyrene);
347                                                   364 
348   // Set the Birks Constant for the Polystyren    365   // Set the Birks Constant for the Polystyrene scintillator
349   fPolystyrene->GetIonisation()->SetBirksConst    366   fPolystyrene->GetIonisation()->SetBirksConstant(0.126 * mm / MeV);
350 }                                                 367 }
351                                                   368