170 likes | 180 Views
This report provides an introduction to the concept of Virtual Monte Carlo (VMC) and its implementation in the ALICE software project. It discusses the separation of VMC and ALICE-specific code, the use of VMC in generator interfaces and ROOT, and the contributions made by ALICE to VMC. The report also includes details on the implementation of TGeant3, TFluka, and Pythia6 in VMC, as well as the future plans for VMC.
E N D
ALICE Report on theUse of VMC Andreas Morsch CERN Virtual MC Workshop CERN 29/11/2004
Introduction • The concept of the Virtual Monte Carlo (VMC) has been gradually developed by the ALICE software project • First implemented as a specific wrapper to GEANT3, TGeant3, to allow smooth migration from FORTRAN based simulation to a C++ framework avoiding the parallel development of two framework. • The requirement to reuse the user simulation code when ALICE moves from GEANT3 to FLUKA or GEANT4 based simulation lead to an abstraction of TGeant3. • Separation of VMC and ALICE specific code allowed to move the interface to ROOT and to make it available to non-ALICE users. • The ALICE simulation framework is bases on VMC, generator interfaces and ROOT • ALICE still contributes to VMC. Recently mainly through the implementation of TFluka.
AliRoot Modules G4 G3 FLUKA ISAJET AliEn gLite AliRoot Virtual MC AliReconstruction HIJING AliSimulation EVGEN MEVSIM STEER PYTHIA6 PDF PMD EMCAL TRD ITS PHOS TOF ZDC RICH HBTP STRUCT CRT START FMD MUON TPC RALICE PROOF ESD AliAnalysis ROOT
G3 G3 transport User Code G4 VMC G4 transport FLUKA transport FLUKA Reconstruction Virtual Geometrical Modeller Geometrical Modeller Visualisation VMC + TGeo
Event Generator Interfaces External Generators Event cocktails Parameterization Libraries
TVirtualMCApplication TVirtualMCStack TVirtualMCDecayer AliMC AliStack AliDecayerPythia ALICE Specific Implementations of VMC Components
TVirtualMC TVirtualMCDecayer AliRun TVirtualMCApplication AliDecayer AliDecayerPythia TVirtualMCStack AliRunLoader AliStack AliMC AliGenerator I/O VMC in AliRoot
Initialisation AliMC AliModule TVirtualMC AliRun TV..MCApplic.. Init() InitMC() Init () Gcvolu Gcpos AliMaterial AliMedium AddParticles() ConstructGeometry() CreateGeometry() InitGeometry() Init() BuildPhysics()
Simulation Run AliMC TVirtualMC AliGenerator AliRun TV..MCApplic.. AliModule Run() ProcessRun() BeginEvent() GeneratePrimaries() Generate() PreTrack() Field() TrackPosition() TrackMomentum() TrackTime() IsTrackEntering() . . Stepping() StepManager() PostTrack()
AliStack • Implemented as TClonesArray of TParticles • Mother-daughter relation via indices • PurifyKine() • Keep only particles along direct genealogical line between flagged secondary (e.g. secondary producing hit) and primary particle. • ReorderKine() • Reorder daughter particles of the same mother into continuous sequence. Needed for TFluka.
AliMCDecayerPythia • Implemented using Pythia6 routine py1ent • Possibility to force certain predefined decay-modes • dimuon • smilileptonic • D->Kp .... • Used by • TGeant3 for decays of particles with finite lifetime but unknown decay modes • Generators like AliGenParam to decay short-lived resonances
AliGenerator AliStack AliGenParam AliGenLib AliDecayer VMC components and Generators
Run Time Configuration { new TGeant3("C++ Interface to Geant3"); TVirtualMCDecayer *decayer = new AliDecayerPythia(); decayer->SetForceDecay(kAll); decayer->Init(); gMC->SetExternalDecayer(decayer); gMC->SetProcess("DCAY",1); gMC->SetProcess("PAIR",1); gMC->SetProcess("COMP",1); gMC->SetProcess("PHOT",1); . . .
Virtual Monte Carlo:Status and Plans • TGeant3 • Used in production • TGeant4 • Used for Geant4 physics validation • TFluka • Implemented • Testing ongoing (in collaboration with Cuban institute (CEADEN)) • Next PDC with TFluka
TFluka TFluka TFluka TFluka TFluka TFluka TFlukaMCGeometry TGeoMCGeometry TFlukaConfigtOption TFlukaConfigtOption TFlukaConfigtOption TFlukaConfigOption TFluka Implementation idnrwr g1wr g1rtwr conhwr inihwr jomiwr lkdbwr lkfxwr lkmgwr lkwr nrmlwr rgrpwr isvhwr magfld TVirtualMC eedraw endraw mgdraw sodraw usdraw source abscff dffcff queffc rflct rfrndx stupre stprf TFluka Text Input Fluka Geometry Navigation FLUKA Fluka User Routines
HMPID: 5 GeV Pions Geant3 FLUKA
More ... ... in Andrei Gheata’s presentation