Title: Status of software development for MPD
1Status of software development for MPD
- Oleg Rogachevsky
- for MPD collaboration
Round Table discussion III 5 November 2008 Dubna
2Software Simulation - Analysis chain
3FairRoot Features
- The same framework can be used for Simulation and
Analysis - Fully ROOT based
- VMC for simulation
- IO scheme (TChain, friend TTrees, TFolders ) for
persistency - TTask to organize the analysis data flow
- Completely configurable via ROOT macros
- Easy to maintain (only ROOT standard services are
used) - Geometry / navigation system models
- G3/G4 Native geometrical models
- Geometry Modeller (TGeoManager) ( G3/FLUKA G4?)
4MpdRoot extension of FairRoot
- FairRoot (Former CbmRoot) has started at the end
of 2003 - First released in March 2004
- Oct 04 release was used to produce data for the
CBM technical report - June 05 release ( Hades initialization scheme
adapted ) - Sept. 06 PANDA collaboration decided to use
CbmRoot as simulation and analysis framework - Oct. 06 CbmRoot was renamed to FairRoot
- Oct. 07 MPD group started to use FairRoot as
framework - for MPD simulation
- Details in http//cbmroot.gsi.de
5FairRoot external software
ROOT 5.20 Geant4 4.9.p02 Geant3.21vmc.1.9
(r227) VGM 3.0 Geant4 VMC (2.5) CLHEP 2.0.3.3
ApMon -Application Monitoring API for C (v.
2.2.5) Cmake 2.6.0Â Â Â Â Â Â Â Â (optional) GSL (GNU
Scientific Library) PLUTO (v.412) Pythia6
Boost (1.35) Â
6MpdRoot SVN repository
WEB page http//xfarm4.jinr.ru/viewvc/trunk
7MpdRoot Simulation
ROOT
Geant3
Geometry Manager
Virtual MC
Magnet
Geant4
Pipe
FLUKA
Cave
IO Manager
GeoInterface
Run Manager
RunTime DataBase
Module
Magnetic Field
Primary Generator
TPC
Straw EC
Root files Configuration, Parameters, Geometry
Detector
EVGEN
Tasks
TOF
ETOF
Particle Generator
Field Map
ZDC
FastMC
ASCII
Urqmd
8TPC implementation(Yu. Zanevsky group)
MC geometry
Pad responce
9TOF implementation(V. Golovatyuk group)
MC geometry
Mass separation
10ECAL implementation(I. Tyapkin group)
Occupancy in the BARREL calorimeter Detector
size 3x3 cm2
Occupancy in the END CAP calorimeter Detector
size 3x3 cm2
p after background subtraction
p with combinatorial background
?0 extraction
11ZDC implementation(A. Kurepin A. Litvinenko
group)
MC geometry
Trigger centrality determination
12StrawECT implementation(V.Peshekhonov group)
Extension of the pseudorapidity region
MC geometry
13MPD Event display
TPC
TOF
ETOF
StrawECT
ZDC
14Detector simulation
System MC Geometry Digitisation
TPC segmented hitproducer
Straw ECT segmented hitproducer
ETOF monolitic
TOF Segmented hitproducer
ECAL Segmented Shower model
ZDC Segmented Hitproducer
15MpdRoot Analysis
Root files MCPoints, Hits, Digits, Tracks
ROOT
Geometry Manager
MySQL Configuration, Parameters, Geometry
IO Manager
Run Manager
GeoInterface
RunTime DataBase
Module
Primary Generator
Magnetic Field
Root files Configuration, Parameters, Geometry
Detector
EVGEN
Tasks
digitizers
Analysis
Tracking
16Tracking
UrQMD AuAu collision at ?s 9 GeV b
0 Nparticles gt 1000
17Tracking in TPC
(Zinchenko A.)
preliminary
preliminary
18Global Tracking(TPC StrawECT ETOF)
Efficiency vs pseudorapidity
preliminary
Momentum resolution
19Physics analyses
Monte Carlo codes UrQMD v. 2.3 Pluto v.
4.12 Pythia 6 SHIELD (N.Sobolevsky INR) FastMC
(N. Amelin et al.) Nuclear cascade ( K.Gudima et
al. IAP ASM Moldova)
Physical observables flow, HBT correlation,
multiplicity fluctuation, pt fluctuation,
strangeness-to-entropy ratio Details in
G.Musulmanbekovs report
20Software for SPD
First version has been done with Geant4 Started
to implement detector geometry into mpdroot
framework Look at A.Nagaitsevs report
21Computing
NICA/MPD PC farm 2 interactive PC
5 Tb disk space
Scientific Linux 5.2 All external
packages for MpdRoot are installed
configured MpdRoot is taken from svn repository
30 users
22Summary ToDo List
- Software framework for MPD (MpdRoot) can be used
for detailed simulation of detectors geometry and
response - Basic detectors of MPD are implemented in the
framework - Study of the track reconstruction is in progress
- More realistic detectors responses (hit
produsers) - Join physics analyses with detector simulation
23Virtual Monte Carlo (VMC)
24ASCII Input format for the Geometry
- Creation of a volume
- Volume name
- Shape
- Shape parameters
- Medium
- Positioning of the volume in a mother (Node)
- Mother
- Transformation (position and rotation matrix)
TUBE
25Material Geometry Interface
TGeo Geometry/Material TGeoVolume TGeoNode TGeoMat
erial
- Advantage
- more flexibility different inputs can be used.
Oracle DB
CbmGeoInterface
ASCII
G3 Geometry/Material
G3Builder
RootBuilder
XYZ Geometry/Material
Root files
XYZBuilder
26CBM Runtime Database
27IO Features
- Dynamic Tree creation at initialisation time
- Simulation CbmDetectorInit()
- Analysis CbmTaskInit()
- ( automatic partial IO )
- Chaining Input data
- TChain services
- Connection of Data levels
- Use of Root Friend mechanism
- Combined Chaining Friend Mechanism
28Simulation Macro loading Libs
// Load basic libraries gROOT-gtLoadMacro("VMC
WORKDIR/gconfig/basiclibs.C") basiclibs()
// Load CBMROOT libraries gSystem-gtLoad("libG
eoBase") gSystem-gtLoad("libParBase") gSys
tem-gtLoad("libCbm") gSystem-gtLoad("libPassive
") gSystem-gtLoad("libGen") gSystem-gtLoad("li
bSts") gSystem-gtLoad("libTrd")
gSystem-gtLoad("libTof") gSystem-gtLoad("libRic
h")
Base Libs
Cbm Spec. Libs
29Simulation Macro
-
- //create the Run Class
- CbmRunSim fRun new CbmRunSim()
-
- // set the MC version used
- fRun-gtSetName("TGeant3") //for G4 use
"TGeant4" -
- //Choose the Geant 3 Navigation System
- fRun-gtSetGeoModel("G3Native") // "TGeo" flag
in case of TGeoManager -
- // choose an output file name
- fRun-gtSetOutputFile("test.root")
30Simulation Macro- Create Modules
- CbmModule Cave new CbmCave("WORLD")
- Cave-gtSetGeometryFileName("PASSIVE/CAVE",
"v03a") - fRun-gtAddModule(Cave)
- CbmModule Target new CbmTarget("Target")
- Target-gtSetGeometryFileName("PASSIVE/TARGET",
"v03a") - fRun-gtAddModule(Target)
- CbmModule Pipe new CbmPIPE("PIPE")
- Pipe-gtSetGeometryFileName("PASSIVE/PIPE",
"v03a") - fRun-gtAddModule(Pipe)
- CbmModule Magnet new CbmMagnet("MAGNET")
- Magnet-gtSetGeometryFileName("PASSIVE/MAGNET",
"v03a") - fRun-gtAddModule(Magnet)
31Simulation Macro- Create Detectors
- CbmDetector STS new CbmSts("STS", kTRUE)
- STS-gtSetGeometryFileName("STS/STS", "v03c")
- fRun-gtAddModule(STS)
- CbmDetector TOF new CbmTof("TOF", kTRUE )
- TOF-gtSetGeometryFileName("TOF/TOF", "v03_v10")
- fRun-gtAddModule(TOF)
- CbmDetector TRD new CbmTRD("TRD",kFALSE )
- TRD-gtSetGeometryFileName("TRD/TRD", "v04b_9" )
- fRun-gtAddModule(TRD)
32Simulation Macro-Event Generators
- CbmPrimaryGenerator priGen new
CbmPrimaryGenerator() - fRun-gtSetGenerator(priGen)
- CbmUrqmdGenerator fGen1 new CbmUrqmdGenerator("0
0-03fm.100ev.f14") - CbmPlutoGenerator fGen2 new CbmPlutoGenerator("j
psi.root") - CbmParticleGenerator fGen3 new
CbmParticleGenerator() - fRun-gtAddGenerator(fGen1)
- fRun-gtAddGenerator(fGen2)
- fRun-gtAddGenerator(fGen3)
33Simulation Macro-Magnetic Field
- // setting a field map
- CbmField fMagField new CbmField("Dipole
Field") - fMagField-gtreadAsciifile("FieldIron.map") //
read ASCII file - fMagField-gtreadRootfile("FieldIron.root") //
read Root file - // setting a constant field
- CbmConstField fMagFieldnew CbmConstField()
- fMagField-gtSetFieldXYZ(0, 30 ,0 ) // values are
in kG - // MinX-75, MinY-40,MinZ-12 ,MaxX75, MaxY40
,MaxZ124 ) - fMagField-gtSetFieldRegions(-74, -39 ,-22 , 74, 39
, 160 ) // values are in cm - fRun-gtSetField(fMagField)
34Simulation Macro- Run Simulation
- fRun-gtInit() // Initialize the simulation
- Simulation
- 1. Initialize the VMC (Simulation)
- 2. Initialize Tasks (if they are used in
Simulation) - fRun-gtRun(NoOfEvent) //Run the Simulation
35Analysis Macro
-
- gROOT-gtLoadMacro("VMCWORKDIR/gconfig/basiclibs.C
") - basiclibs()
- gSystem-gtLoad("libCbm")
- gSystem-gtLoad("libITrack")
- CbmRunAna fRun new CbmRunAna()
- fRun-gtSetInputFile(/d/STS_AuAu25Gev_Urqmd.root")
- fRun-gtSetOutputFile(trackOutput.root")
-
36Algorithms CBMTask
- Tasks can be organized into a hierarchy and
displayed in the browser. - The CBMTask base class (TTask)
- Init() //Initialization
- Exec(Option_t option)
- In Analysis macro
-
- // Algorithm definition
- CbmStsTrackFinder tr CbmStsTrackFinder("
track finder") - // Add the algorithm in the list of
algorithms - fRun-gtAddTask(tr)
-
37Tasks Mechanism
- CBMTask Task1new CBMTask("Task1") CBMTask
Task2new CBMTask("Task2") - CBMTask Task3new CBMTask("Task3")
- CBMTask Task4new CBMTask("Task4")
- CBMTask Task5new CBMTask("Task5")
- CBMTask Task6new CBMTask("Task6")
- Task1-gtAdd(Task2)
- Task1-gtAdd(Task3)
- Task2-gtAdd(Task4)
- Task2-gtAdd(Task5)
- Task3-gtAdd(Task6)
38Initialisation scheme (Analysis)
File1
File2
39Track Visualization
40Example Visualization macro
-
- gROOT-gtLoadMacro("VMCWORKDIR/gconfig/basiclibs.C"
) - basiclibs()
- gSystem-gtLoad("libCbm")
- ......
- TFile file new TFile("test.root")
- TGeoManager geoMan (TGeoManager)
file-gtGet("CBMGeom") - TCanvas c1 new TCanvas("c1", "", 100, 100,
800, 800) - c1-gtSetFillColor(10)
- geoMan-gtDrawTracks("same/Nneutron")
- geoMan-gtSetVisLevel(3)
- geoMan-gtGetMasterVolume()-gtDraw("same")