This is an old revision of the document!
It can be very useful to let Gauss write out MCParticles in the Generation directly (without the detector simulation), which then can be analysed. This can be achieved the following way (write this at the end of your version of Gauss-Job.py):
gtos = GenerationToSimulation() gtos.SkipGeant = True gs = GaudiSequencer("GenMonitor") MCTruthStream = OutputStream("MCTruthStream") MCTruthStream.ItemList += [ "/Event/Gen#1", "/Event/Gen/HepMCEvents#1", "/Event/MC#1", "/Event/MC/Header#1", "/Event/MC/Particles#1", "/Event/MC/Vertices#1" ] MCTruthStream.Output = "DATAFILE='MCTruth.sim' TYP='POOL_ROOTTREE' OPT='RECREATE'" gs.Members += [ SimInit(), gtos, MCTruthStream ]
The root file can then be run over with an MCTupleTool in DaVinci (with certain restrictions, i.e. only tools which only access 4-vectors will run…)
To avoid error messages like:
MainEventGaussSim FATAL SimInit:: Exception throw: put():: could not register 'LHCb::MCHeader' at address '/Event/MC/Header' StatusCode=2
you have to make sure that you have included
Gauss().Phases = ["Generator"] Gauss().Output = 'NONE' Gauss().Histograms = 'NONE'
in your Gauss-Job.py file.
You can run EvtGen standalone, letting the particles decay at rest. This is very fast, as no underlying event has to be generated. A prototype file could look like (Gauss v41r1):
#Event Type: 11114001 from Configurables import Generation Generation().EventType = 11114001 from Configurables import StandAloneDecayTool Generation().SampleGenerationTool = "StandAloneDecayTool"; Generation().addTool( StandAloneDecayTool ) Generation().StandAloneDecayTool.ProductionTool = "PythiaProduction"; from Configurables import ToolSvc from Configurables import EvtGenDecay ToolSvc().addTool( EvtGenDecay ) ToolSvc().EvtGenDecay.UserDecayFile ="$DECFILESROOT/dkfiles/Bd_Kstmumu=DecProdCut.dec" Generation().StandAloneDecayTool.SignalPIDList = [ 511,-511 ]
These both things (running EvtGen standalone and writing out MCParticles) can of course be combined.