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

In This Package:

GunMuon.py

Go to the documentation of this file.
00001 #!/usr/bin/env python
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         # set up Gnrtr itself
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         # set up each tools
00033         from GaudiKernel import SystemOfUnits as units
00034         from GenTools.GenToolsConf import GtGunGenTool,GtPositionerTool, GtTransformTool, GtTimeratorTool, GtHepEvtGenTool
00035         from MuonProphet.MuonProphetConf import MuonProphet
00036         # Set up Gen
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         # Set up positioner
00048         pos=GtPositionerTool(name+'Pos',Volume=volume)
00049         # I should use relateiv
00050         #pos.Mode = "Relative"
00051         pos.Mode = "Fixed"
00052         pos.Position = [1*units.meter,
00053                         1*units.meter
00054                         ,10*units.meter]
00055         
00056         # Set up timerator
00057         tim=GtTimeratorTool(name+'Tim')
00058         tim.LifeTime = 0.001123*units.s
00059         
00060         # transform
00061         tra=GtTransformTool(name+'Tra',Volume=volume)
00062         tra.Offset = [0., 0., (0.042)*units.meter]
00063 
00064         ## More surprise from muon starts from here.
00065         # muon prophet
00066         prophet=MuonProphet();
00067         #prophet.Active=False;        
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         # trigger related configuration
00075         prophet.TrkLengthInWaterThres = 20*units.cm
00076         prophet.WaterPoolTriggerEff = 0.9999
00077 
00078         prophet.OutputLevel=2
00079 
00080         # Set false, otherwise all times will be reset so the signal vertex is at t=0.
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()
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 21:01:51 2011 for MuonProphet by doxygen 1.4.7