/search.css" rel="stylesheet" type="text/css"/> /search.js">
00001 #!/usr/bin/env python 00002 00003 class Muon: 00004 ''' 00005 configure Muon generator 00006 ''' 00007 00008 def __init__(self, 00009 stage='null', 00010 name='Muon', 00011 volume='/dd/Structure/AD/db-ade1', 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 00035 musicsite = 'DYB' 00036 00037 nevents=5000 00038 00039 hepEvtDataSource = "Muon.exe -n 1000 -s %s -v ADE -seed %s -r Yes -music_dir /mnt/sda3/wangzhe/dybinst/data/trunk/NewMuonGenerator/data|"%(musicsite,seed) 00040 00041 exe = hepEvtDataSource.split(' ')[0] 00042 NAME = exe[exe.rfind('/')+1:] 00043 dot = NAME.rfind('.') 00044 baseNAME = NAME 00045 if dot > 0: baseNAME = NAME[:dot] 00046 sanitized = baseNAME.replace('.','_') 00047 00048 # If we got an executable and it is relative, look for it in the path 00049 if hepEvtDataSource[-1] == '|' and hepEvtDataSource[0] != '/': 00050 import os, os.path 00051 path = os.getenv('PATH') 00052 for p in path: 00053 if (os.path.isfile(path+'/'+exe)): 00054 hepEvtDataSource = path+'/'+exe + ' ' + ' '.join(hepEvtDataSource.split(' ')[1:]) 00055 break 00056 continue 00057 pass 00058 00059 #generator 00060 gen=GtHepEvtGenTool(name+'Gen',HepEvtDataSource = hepEvtDataSource) 00061 #gen.OutputLevel = 2 00062 gen.HepEvtDataSource = hepEvtDataSource 00063 00064 # Set up positioner 00065 pos=GtPositionerTool(name+'Pos',Volume=volume) 00066 pos.Mode = "Relative" 00067 pos.Position = [0,0,0] 00068 00069 # Set up timerator 00070 tim=GtTimeratorTool(name+'Tim') 00071 tim.LifeTime = 0.001123*units.s 00072 00073 # transform 00074 tra=GtTransformTool(name+'Tra',Volume=volume) 00075 tra.Offset = [0., 0., 0.] 00076 00077 pass 00078 00079 if __name__ == "__main__": 00080 obj=Muon()