00001
00002
00003 class GunMuon:
00004 '''
00005 configure Muon generator
00006 '''
00007
00008 def __init__(self,
00009 stage='null',
00010 name='Muon',
00011 volume='/dd/Structure/Pool/db-ows',
00012 start_time=0,
00013 seed=1234567):
00014
00015
00016 from Gnrtr.GnrtrConf import Gnrtr
00017 gnrtr = Gnrtr(name);
00018
00019 gnrtr.GenTools = [ "GtGunGenTool/"+name+"GunGen",
00020 "GtPositionerTool/"+name+"Pos",
00021 "GtTimeratorTool/"+name+"Tim",
00022 "GtTransformTool/"+name+"Tra",
00023 "MuonProphet/"+name+"Prophet"
00024 ]
00025
00026 gnrtr.ThisStageName = "Kinematic"
00027 gnrtr.TimeStamp = start_time
00028
00029 if stage != 'null':
00030 stage.KinematicSequence.Members.append(gnrtr)
00031
00032
00033 from GaudiKernel import SystemOfUnits as units
00034 from GenTools.GenToolsConf import GtGunGenTool,GtPositionerTool, GtTransformTool, GtTimeratorTool, GtHepEvtGenTool
00035 from MuonProphet.MuonProphetConf import MuonProphet
00036
00037 gun = GtGunGenTool(name+"GunGen",
00038 ParticlesPerEvent = 1,
00039 ParticleName = "mu+",
00040 Momentum = 5*units.GeV,
00041 MomentumMode = "Fixed",
00042 MomentumSpread = 4*units.MeV,
00043 DirectionMode = "Fixed",
00044 Direction = [ 0, 0, -1 ],
00045 DirectionSpread = 3)
00046
00047
00048 pos=GtPositionerTool(name+'Pos',Volume=volume)
00049
00050
00051 pos.Mode = "Fixed"
00052 pos.Position = [1*units.meter,
00053 1*units.meter
00054 ,10*units.meter]
00055
00056
00057 tim=GtTimeratorTool(name+'Tim')
00058 tim.LifeTime = 0.001123*units.s
00059
00060
00061 tra=GtTransformTool(name+'Tra',Volume=volume)
00062 tra.Offset = [0., 0., (0.042)*units.meter]
00063
00064
00065
00066 prophet=MuonProphet();
00067
00068 prophet.Site = "DayaBay"
00069 prophet.GenTools = [ "Li9He8Decayerator/Li9He8" ]
00070 prophet.GenYields = [ 0.5*units.cm2/units.gram ]
00071 prophet.GenYieldMeasuredAt = [260*units.GeV]
00072 prophet.GenLifetimes = [ 0.002*units.s ]
00073
00074
00075 prophet.TrkLengthInWaterThres = 20*units.cm
00076 prophet.WaterPoolTriggerEff = 0.9999
00077
00078 prophet.OutputLevel=2
00079
00080
00081 from G4DataHelpers.G4DataHelpersConf import HepMCtoG4
00082 convertor = HepMCtoG4()
00083 convertor.ZeroTime = False
00084
00085
00086 pass
00087
00088 if __name__ == "__main__":
00089 obj=GunMuon()