00001
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
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
00031 from GaudiKernel import SystemOfUnits as units
00032 from GenTools.GenToolsConf import GtPositionerTool, GtTransformTool, GtTimeratorTool, GtHepEvtGenTool
00033
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
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
00060 gen=GtHepEvtGenTool(name+'Gen',HepEvtDataSource = hepEvtDataSource)
00061
00062 gen.HepEvtDataSource = hepEvtDataSource
00063
00064
00065 pos=GtPositionerTool(name+'Pos',Volume=volume)
00066 pos.Mode = "Relative"
00067 pos.Position = [0,0,0]
00068
00069
00070 tim=GtTimeratorTool(name+'Tim')
00071 tim.LifeTime = 0.001123*units.s
00072
00073
00074 tra=GtTransformTool(name+'Tra',Volume=volume)
00075 tra.Offset = [0., 0., 0.]
00076
00077 pass
00078
00079 if __name__ == "__main__":
00080 obj=Muon()