| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

IBD.py

Go to the documentation of this file.
00001 #!/usr/bin/env python
00002 
00003 class IBD:
00004     '''
00005        configure IBD generator
00006     '''
00007 
00008     def __init__(self,
00009                  stage='null',
00010                  name='IBD',
00011                  volume='/dd/Structure/AD/db-oil1',
00012                  start_time=0,
00013                  seed=1234567):
00014 
00015         # set up Gnrtr itself
00016         from Gnrtr.GnrtrConf import Gnrtr
00017         gnrtr = Gnrtr(name);
00018 
00019         gnrtr.GenTools = [ "GtHepEvtGenTool/"+name+"Gen",
00020                            "GtPositionerTool/"+name+"Pos",
00021                            "GtTimeratorTool/"+name+"Tim",
00022                            "GtTransformTool/"+name+"Tra"]
00023 
00024         gnrtr.ThisStageName = "Kinematic"
00025         gnrtr.TimeStamp = start_time
00026 
00027         if stage != 'null':
00028             stage.KinematicSequence.Members.append(gnrtr)
00029 
00030         # set up each tools
00031         from GaudiKernel import SystemOfUnits as units
00032         from GenTools.GenToolsConf import GtPositionerTool, GtTransformTool, GtTimeratorTool, GtHepEvtGenTool
00033         # Set up Gen
00034         nevents=10000
00035         hepevt_source="InverseBeta.exe -seed %(seed)s -n %(nevents)s|"
00036         # Deal with executable
00037         if hepevt_source[-1] == "|":
00038             exe = hepevt_source.split(' ')[0]
00039             if exe[0] != '/':   # Try to find full path
00040                 import os, os.path
00041                 path = os.getenv('PATH')
00042                 for p in path:
00043                     if (os.path.isfile(path+"/"+exe)):
00044                         exe = path+"/"+exe
00045                         break
00046                     continue
00047                 pass
00048             source = exe + ' ' + ' '.join(hepevt_source.split(' ')[1:])
00049             if "%" in source:   # Fill in any placemarks
00050                 source = source%{'nevents':str(nevents),
00051                                  'seed':str(seed)}
00052                 pass
00053             pass
00054         
00055         
00056         #generator
00057         gen=GtHepEvtGenTool(name+'Gen',HepEvtDataSource = source)
00058         #gen.OutputLevel = 2
00059         gen.HepEvtDataSource = source
00060         
00061         # Set up positioner
00062         pos=GtPositionerTool(name+'Pos',Volume=volume)
00063         pos.Strategy = "FullVolume" # also "AvoidDaughters" and "Surface"
00064         pos.Mode = "Uniform"
00065         #pos.Mode = "Fixed"
00066         pos.Spread = 2.5*units.m
00067         pos.Position = [0,0,0.0*units.m]
00068         
00069         # Set up timerator
00070         tim=GtTimeratorTool(name+'Tim')
00071         tim.LifeTime = int(27*units.s)
00072         
00073         # transform
00074         tra=GtTransformTool(name+'Tra',Volume=volume)
00075         
00076         pass
00077 
00078 if __name__ == "__main__":
00079     obj=IBD()
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:11:56 2011 for MDC09a by doxygen 1.4.7