/search.css" rel="stylesheet" type="text/css"/> /search.js">
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

Radioactivity.py
Go to the documentation of this file.
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
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Fri May 16 2014 09:54:48 for SourceRate by doxygen 1.7.4