/search.css" rel="stylesheet" type="text/css"/> /search.js">
00001 #!/usr/bin/env python 00002 ''' 00003 Configure radioactivity background generators 00004 00005 Examples for how to use. 00006 For Fifteen package usage: 00007 00008 from SourceRate.Radioactivity import K40_PMT 00009 k40_PMT=K40_PMT() 00010 00011 from Gnrtr.GnrtrConf import Gnrtr 00012 gnrtrK40PMT = Gnrtr("gnrtrK40PMT"); 00013 gnrtrK40PMT.GenTools = k40_PMT.tools() 00014 gnrtrK40PMT.ThisStageName = "Kinematic" 00015 gnrtrK40PMT.TimeStamp = int(wallTime) 00016 stageCfg.KinematicSequence.Members.append(gnrtrK40PMT) 00017 00018 For Single usage: 00019 00020 from SourceRate.Radioactivity import U238_sst 00021 u238_sst=U238_sst() 00022 00023 import GenTools 00024 gtc = GenTools.Configure(genname="U238_sst") 00025 gtc.generator.TimeStamp = int(wallTime) 00026 gtc.register(u238_sst) 00027 00028 ''' 00029 00030 import GaudiKernel.SystemOfUnits as units 00031 00032 class Radioact: 00033 ''' Configure GenDecay generator ''' 00034 00035 def __init__(self, 00036 name = None, 00037 volume = None, 00038 nuclide = None, 00039 abundance = None, 00040 strategy = None, 00041 material = None, 00042 fillvolumes = None, 00043 ): 00044 00045 from GenDecay.Helpers import Decay 00046 00047 radioact = Decay(name) 00048 radioact.decay.ParentNuclide = nuclide 00049 radioact.decay.ParentAbundance = abundance 00050 radioact.decay.SecularEquilibrium = True 00051 radioact.decay.CorrelationTime = 0.01*units.second 00052 00053 radioact.positioner.Volume = volume 00054 radioact.positioner.Position = [0, 0, 0] 00055 radioact.positioner.Mode = "Uniform" 00056 radioact.positioner.Spread = 20*units.m 00057 radioact.positioner.Strategy = strategy 00058 if radioact.positioner.Strategy == 'VolumeType': 00059 radioact.positioner.FillVolumes = [fillvolumes] 00060 if radioact.positioner.Strategy == 'Material': 00061 radioact.positioner.FillMaterials = [material] 00062 00063 radioact.transformer.Volume = volume 00064 00065 self.radioact = radioact 00066 00067 def tools(self): 00068 return self.radioact.tools() 00069 00070 pass 00071 00072 #U238 00073 class U238_gds: 00074 ''' U238 in gd doped scintillator ''' 00075 00076 def __init__(self, 00077 volume): 00078 u238 = Radioact(name = 'U238_gds', 00079 volume = volume, 00080 nuclide = 'U238', 00081 abundance = 5.06e16, 00082 strategy = 'Material', 00083 material = 'GdDopedLS') 00084 self.u238 = u238 00085 def tools(self): 00086 return self.u238.tools() 00087 00088 pass 00089 00090 00091 class U238_lso: 00092 ''' U238 in luquid scintillator ''' 00093 00094 def __init__(self, 00095 volume): 00096 u238 = Radioact(name = 'U238_lso', 00097 volume = volume, 00098 nuclide = 'U238', 00099 abundance = 5.43e16, 00100 strategy = 'Material', 00101 material = 'LiquidScintillator') 00102 self.u238 = u238 00103 def tools(self): 00104 return self.u238.tools() 00105 00106 pass 00107 00108 class U238_PMT: 00109 ''' U238 in PMT ''' 00110 00111 def __init__(self, 00112 volume): 00113 u238 = Radioact(name = 'U238_PMT', 00114 volume = volume, 00115 nuclide = 'U238', 00116 abundance = 6.21e19, 00117 strategy = 'VolumeType', 00118 fillvolumes= 'lvPmtHemiVacuum') 00119 self.u238 = u238 00120 def tools(self): 00121 return self.u238.tools() 00122 00123 pass 00124 00125 class U238_2inPMT: 00126 ''' U238 in 2 inch PMT ''' 00127 00128 def __init__(self, 00129 volume): 00130 u238 = Radioact(name = 'U238_2inPMT', 00131 volume = volume, 00132 nuclide = 'U238', 00133 abundance = 3.05e17, 00134 strategy = 'VolumeType', 00135 fillvolumes= 'lvHeadonPmtVacuum') 00136 self.u238 = u238 00137 def tools(self): 00138 return self.u238.tools() 00139 00140 pass 00141 00142 class U238_sst: 00143 ''' U238 in stainless steel ''' 00144 00145 def __init__(self, 00146 volume): 00147 u238 = Radioact(name = 'U238_sst', 00148 volume = volume, 00149 nuclide = 'U238', 00150 abundance = 4.65e18, 00151 strategy = 'Material', 00152 material = 'StainlessSteel') 00153 self.u238 = u238 00154 def tools(self): 00155 return self.u238.tools() 00156 00157 pass 00158 00159 #Th232 00160 class Th232_gds: 00161 ''' Th232 in gd doped scintillator ''' 00162 00163 def __init__(self, 00164 volume): 00165 th232 = Radioact(name = 'Th232_gds', 00166 volume = volume, 00167 nuclide = 'Th232', 00168 abundance = 5.19e16, 00169 strategy = 'Material', 00170 material = 'GdDopedLS') 00171 self.th232 = th232 00172 def tools(self): 00173 return self.th232.tools() 00174 00175 pass 00176 00177 00178 class Th232_lso: 00179 ''' Th232 in liquid scintillator ''' 00180 00181 def __init__(self, 00182 volume): 00183 th232 = Radioact(name = 'Th232_lso', 00184 volume = volume, 00185 nuclide = 'Th232', 00186 abundance = 5.57e16, 00187 strategy = 'Material', 00188 material = 'LiquidScintillator') 00189 self.th232 = th232 00190 def tools(self): 00191 return self.th232.tools() 00192 00193 pass 00194 00195 class Th232_PMT: 00196 ''' Th232 in PMT ''' 00197 00198 def __init__(self, 00199 volume): 00200 th232 = Radioact(name = 'Th232_PMT', 00201 volume = volume, 00202 nuclide = 'Th232', 00203 abundance = 1.38e20, 00204 strategy = 'VolumeType', 00205 fillvolumes= 'lvPmtHemiVacuum') 00206 self.th232 = th232 00207 def tools(self): 00208 return self.th232.tools() 00209 00210 pass 00211 00212 class Th232_2inPMT: 00213 ''' Th232 in 2 inch PMT ''' 00214 00215 def __init__(self, 00216 volume): 00217 th232 = Radioact(name = 'Th232_2inPMT', 00218 volume = volume, 00219 nuclide = 'Th232', 00220 abundance = 1.59e17, 00221 strategy = 'VolumeType', 00222 fillvolumes= 'lvHeadonPmtVacuum') 00223 self.th232 = th232 00224 def tools(self): 00225 return self.th232.tools() 00226 00227 pass 00228 00229 class Th232_sst: 00230 ''' Th232 in stainless steel ''' 00231 00232 def __init__(self, 00233 volume): 00234 th232 = Radioact(name = 'Th232_sst', 00235 volume = volume, 00236 nuclide = 'Th232', 00237 abundance = 7.22e19, 00238 strategy = 'Material', 00239 material = 'StainlessSteel') 00240 self.th232 = th232 00241 def tools(self): 00242 return self.th232.tools() 00243 00244 pass 00245 00246 #K40 00247 class K40_gds: 00248 ''' K40 in gd doped scintillator ''' 00249 00250 def __init__(self, 00251 volume): 00252 k40 = Radioact(name = 'K40_gds', 00253 volume = volume, 00254 nuclide = 'K40', 00255 abundance = 3.01e17, 00256 strategy = 'Material', 00257 material = 'GdDopedLS') 00258 self.k40 = k40 00259 def tools(self): 00260 return self.k40.tools() 00261 00262 pass 00263 00264 00265 class K40_lso: 00266 ''' K40 in liquid scintillator ''' 00267 00268 def __init__(self, 00269 volume): 00270 k40 = Radioact(name = 'K40_lso', 00271 volume = volume, 00272 nuclide = 'K40', 00273 abundance = 3.23e17, 00274 strategy = 'Material', 00275 material = 'LiquidScintillator') 00276 self.k40 = k40 00277 def tools(self): 00278 return self.k40.tools() 00279 00280 pass 00281 00282 class K40_PMT: 00283 ''' K40 in PMT ''' 00284 00285 def __init__(self, 00286 volume): 00287 k40 = Radioact(name = 'K40_PMT', 00288 volume = volume, 00289 nuclide = 'K40', 00290 abundance = 4.71e19, 00291 strategy = 'VolumeType', 00292 fillvolumes= 'lvPmtHemiVacuum') 00293 self.k40 = k40 00294 def tools(self): 00295 return self.k40.tools() 00296 00297 pass 00298 00299 class K40_2inPMT: 00300 ''' K40 in 2 inch PMT ''' 00301 00302 def __init__(self, 00303 volume): 00304 k40 = Radioact(name = 'K40_2inPMT', 00305 volume = volume, 00306 nuclide = 'K40', 00307 abundance = 8.52e17, 00308 strategy = 'VolumeType', 00309 fillvolumes= 'lvHeadonPmtVacuum') 00310 self.k40 = k40 00311 def tools(self): 00312 return self.k40.tools() 00313 00314 pass 00315 00316 class K40_sst: 00317 ''' K40 in stainless steel ''' 00318 00319 def __init__(self, 00320 volume): 00321 k40 = Radioact(name = 'K40_sst', 00322 volume = volume, 00323 nuclide = 'K40', 00324 abundance = 1.43e19, 00325 strategy = 'Material', 00326 material = 'StainlessSteel') 00327 self.k40 = k40 00328 def tools(self): 00329 return self.k40.tools() 00330 00331 pass 00332 00333 #Co60 00334 class Co60_PMT: 00335 ''' Co60 in PMT ''' 00336 00337 def __init__(self, 00338 volume): 00339 co60 = Radioact(name = 'Co60_PMT', 00340 volume = volume, 00341 nuclide = 'Co60', 00342 abundance = 3.51e8, 00343 strategy = 'VolumeType', 00344 fillvolumes= 'lvPmtHemiVacuum') 00345 self.co60 = co60 00346 def tools(self): 00347 return self.co60.tools() 00348 00349 pass 00350 00351 class Co60_sst: 00352 ''' Co60 in stainless steel ''' 00353 00354 def __init__(self, 00355 volume): 00356 co60 = Radioact(name = 'Co60_sst', 00357 volume = volume, 00358 nuclide = 'Co60', 00359 abundance = 9.11e9, 00360 strategy = 'Material', 00361 material = 'StainlessSteel') 00362 self.co60 = co60 00363 def tools(self): 00364 return self.co60.tools() 00365 00366 pass 00367 00368 #------------------------------------------------ 00369 from GenDecay.GenDecayConf import GtDecayerator 00370 from GenTools.Helpers import RadSlab 00371 class U238_rock: 00372 ''' U238 in rock ''' 00373 00374 def __init__(self): 00375 u238decay = GtDecayerator(name = 'U238_rock', 00376 ParentNuclide = 'U238', 00377 ParentAbundance = 3.12149e+25, 00378 SecularEquilibrium = True, 00379 CorrelationTime = 0.01*units.second ) 00380 u238 = RadSlab(gun = u238decay) 00381 self.u238 = u238 00382 def tools(self): 00383 return [self.u238.gun, self.u238.multivol] 00384 pass 00385 00386 00387 class Th232_rock: 00388 ''' Th232 in rock ''' 00389 00390 def __init__(self): 00391 th232decay = GtDecayerator(name = 'Th232_rock', 00392 ParentNuclide = 'Th232', 00393 ParentAbundance = 9.3699e+25, 00394 SecularEquilibrium = True, 00395 CorrelationTime = 0.01*units.second ) 00396 th232 = RadSlab(gun = th232decay) 00397 self.th232 = th232 00398 def tools(self): 00399 return [self.th232.gun, self.th232.multivol] 00400 pass 00401 00402 class K40_rock: 00403 ''' K40 in rock ''' 00404 00405 def __init__(self): 00406 k40decay = GtDecayerator(name = 'K40_rock', 00407 ParentNuclide = 'K40', 00408 ParentAbundance = 6.06011e+29, 00409 SecularEquilibrium = True, 00410 CorrelationTime = 0.01*units.second ) 00411 k40 = RadSlab(gun = k40decay) 00412 self.k40 = k40 00413 def tools(self): 00414 return [self.k40.gun, self.k40.multivol] 00415 pass 00416 00417 00418 from GenTools.Helpers import CalibPmts 00419 class U238_calibPMT: 00420 ''' U238 in calibration PMTs ''' 00421 00422 def __init__(self): 00423 u238decay = GtDecayerator(name = 'U238_calibPmt', 00424 ParentNuclide = 'U238', 00425 ParentAbundance = 3.05e17, 00426 SecularEquilibrium = True, 00427 CorrelationTime = 0.01*units.second ) 00428 u238 = CalibPmts(gun = u238decay) 00429 self.u238 = u238 00430 def tools(self): 00431 return [self.u238.gun, self.u238.multivol] 00432 pass 00433 00434 class Th232_calibPMT: 00435 ''' Th232 in calibration PMTs ''' 00436 00437 def __init__(self): 00438 th232decay = GtDecayerator(name = 'Th232_calibPmt', 00439 ParentNuclide = 'Th232', 00440 ParentAbundance = 1.59e17, 00441 SecularEquilibrium = True, 00442 CorrelationTime = 0.01*units.second ) 00443 th232 = CalibPmts(gun = th232decay) 00444 self.th232 = th232 00445 def tools(self): 00446 return [self.th232.gun, self.th232.multivol] 00447 pass 00448 00449 class K40_calibPMT: 00450 ''' K40 in calibration PMTs ''' 00451 00452 def __init__(self): 00453 k40decay = GtDecayerator(name = 'K40_calibPmt', 00454 ParentNuclide = 'K40', 00455 ParentAbundance = 8.52e17, 00456 SecularEquilibrium = True, 00457 CorrelationTime = 0.01*units.second ) 00458 k40 = CalibPmts(gun = k40decay) 00459 self.k40 = k40 00460 def tools(self): 00461 return [self.k40.gun, self.k40.multivol] 00462 pass