400 likes | 532 Views
Status of software development for MPD. Oleg Rogachevsky for MPD collaboration. Round Table discussion III 5 November 2008 Dubna. Determine particle properties at target vertex. Event Generator. Transport particles through the detector material. Transport. Simulation. SIM.
E N D
Status of software development for MPD Oleg Rogachevsky for MPD collaboration Round Table discussion III 5 November 2008 Dubna
Determine particle properties at target vertex Event Generator Transport particles through the detector material Transport Simulation SIM Digitizer Determine detector response RAW Determine physical space point parameters from detector hits Storage Levels Hit Finder Reconstruction Analysis Determine momentum vector and PID for all tracks Physics Analysis Software Simulation - Analysis chain Round Table III
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?) FairRoot Features Round Table III
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 MpdRoot – extension of FairRoot Round Table III
FairRoot: external software ROOT 5.20 Geant4 4.9.p02 Geant3.21+vmc.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) Round Table III
MpdRoot: SVN repository WEB page: http://xfarm4.jinr.ru/viewvc/trunk Round Table III
MySQL Configuration, Parameters, Geometry MpdRoot: Simulation ROOT Geometry Manager Geant3 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 Tasks EVGEN TOF ETOF Particle Generator Field Map ZDC FastMC ASCII Urqmd Round Table III
TPC implementation(Yu. Zanevsky group) MC geometry Pad responce Round Table III
TOF implementation(V. Golovatyuk group) MC geometry Mass separation Round Table III
M(MeV) ECAL implementation(I. Tyapkin group) Occupancy in the BARREL calorimeter Detector size – 3x3 cm2 Occupancy in the END CAP calorimeter Detector size – 3x3 cm2 π° after background subtraction π° with combinatorial background 0extraction Round Table III
ZDC implementation(A. Kurepin & A. Litvinenko group) MC geometry Trigger & centrality determination Round Table III
StrawECT implementation(V.Peshekhonov group) Extension of the pseudorapidity region MC geometry Round Table III
MPD Event display TPC TOF ETOF StrawECT ZDC Round Table III
Detector simulation Round Table III
MpdRoot: Analysis Root files MCPoints, Hits, Digits, Tracks ROOT Geometry Manager MySQL Configuration, Parameters, Geometry IO Manager GeoInterface Run Manager RunTime DataBase Module Primary Generator Magnetic Field Root files Configuration, Parameters, Geometry Detector Tasks EVGEN digitizers Tracking Analysis Round Table III
Tracking UrQMD AuAu collision at s = 9 GeV b = 0 Nparticles > 1000 Round Table III
Tracking in TPC (Zinchenko A.) preliminary preliminary Round Table III
Global Tracking(TPC + StrawECT + ETOF) Efficiency vspseudorapidity preliminary Momentum resolution Round Table III
Physics 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.Musulmanbekov’s report Round Table III
Software for SPD First version has been done with Geant4 Started to implement detector geometry into mpdroot framework Look at A.Nagaitsev’s report Round Table III
Computing 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 Round Table III
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 Summary & ToDo List • More realistic detectors responses (hit produsers) • Join physics analyses with detector simulation Round Table III
G3 G3 transport User Code VMC G4 G4 transport FLUKA transport FLUKA Reconstruction Geometrical Modeller Visualisation Virtual Monte Carlo (VMC) Round Table III
Creation of a volume Volume name Shape Shape parameters Medium Positioning of the volume in a mother (Node) Mother Transformation (position and rotation matrix) ASCII: Input format for the Geometry TUBE Round Table III
Advantage: more flexibility : different inputs can be used. Material & Geometry Interface TGeo Geometry/Material TGeoVolume TGeoNode TGeoMaterial Oracle DB CbmGeoInterface ASCII G3 Geometry/Material G3Builder RootBuilder XYZ Geometry/Material Root files XYZBuilder Round Table III
The Runtime Database is the manager class for all Parameter containers: Creation, Initialization, Output Runtime Database Created in the init() function of the tasks via the container factories or in the macro Container Factories 2 Inputs 1 Output List of Parameter Containers List of Runs read() write() Filled during initialization ASCII File ROOT File Oracle IO defined in the macro CBM Runtime Database Round Table III
Dynamic Tree creation at initialisation time Simulation: CbmDetector::Init() Analysis: CbmTask::Init() ( automatic partial IO ) Chaining Input data TChain services Connection of Data levels Use of Root Friend mechanism Combined Chaining & Friend Mechanism IO Features Round Table III
Simulation Macro – loading Libs // Load basic libraries gROOT->LoadMacro("$VMCWORKDIR/gconfig/basiclibs.C"); basiclibs(); // Load CBMROOT libraries gSystem->Load("libGeoBase"); gSystem->Load("libParBase"); gSystem->Load("libCbm"); gSystem->Load("libPassive"); gSystem->Load("libGen"); gSystem->Load("libSts"); gSystem->Load("libTrd"); gSystem->Load("libTof"); gSystem->Load("libRich"); Base Libs Cbm Spec. Libs Round Table III
//create the Run Class CbmRunSim *fRun = new CbmRunSim(); // set the MC version used fRun->SetName("TGeant3"); //for G4 use "TGeant4" //Choose the Geant 3 Navigation System fRun->SetGeoModel("G3Native"); // "TGeo" flag in case of TGeoManager // choose an output file name fRun->SetOutputFile("test.root"); Simulation Macro Round Table III
CbmModule *Cave= new CbmCave("WORLD"); Cave->SetGeometryFileName("PASSIVE/CAVE", "v03a"); fRun->AddModule(Cave); CbmModule *Target= new CbmTarget("Target"); Target->SetGeometryFileName("PASSIVE/TARGET", "v03a"); fRun->AddModule(Target); CbmModule *Pipe= new CbmPIPE("PIPE"); Pipe->SetGeometryFileName("PASSIVE/PIPE", "v03a"); fRun->AddModule(Pipe); CbmModule *Magnet= new CbmMagnet("MAGNET"); Magnet->SetGeometryFileName("PASSIVE/MAGNET", "v03a"); fRun->AddModule(Magnet); Simulation Macro- Create Modules Round Table III
CbmDetector *STS= new CbmSts("STS", kTRUE); STS->SetGeometryFileName("STS/STS", "v03c"); fRun->AddModule(STS); CbmDetector *TOF= new CbmTof("TOF", kTRUE ); TOF->SetGeometryFileName("TOF/TOF", "v03_v10"); fRun->AddModule(TOF); CbmDetector *TRD= new CbmTRD("TRD",kFALSE ); TRD->SetGeometryFileName("TRD/TRD", "v04b_9" ); fRun->AddModule(TRD); Simulation Macro- Create Detectors Round Table III
CbmPrimaryGenerator *priGen= new CbmPrimaryGenerator(); fRun->SetGenerator(priGen); CbmUrqmdGenerator *fGen1= new CbmUrqmdGenerator("00-03fm.100ev.f14"); CbmPlutoGenerator *fGen2= new CbmPlutoGenerator("jpsi.root"); CbmParticleGenerator *fGen3= new CbmParticleGenerator(); fRun->AddGenerator(fGen1); fRun->AddGenerator(fGen2); fRun->AddGenerator(fGen3); Simulation Macro-Event Generators Round Table III
// setting a field map CbmField *fMagField= new CbmField("Dipole Field"); fMagField->readAsciifile("FieldIron.map"); // read ASCII file fMagField->readRootfile("FieldIron.root"); // read Root file // setting a constant field CbmConstField *fMagField=new CbmConstField(); fMagField->SetFieldXYZ(0, 30 ,0 ); // values are in kG // MinX=-75, MinY=-40,MinZ=-12 ,MaxX=75, MaxY=40 ,MaxZ=124 ); fMagField->SetFieldRegions(-74, -39 ,-22 , 74, 39 , 160 ); // values are in cm fRun->SetField(fMagField); Simulation Macro-Magnetic Field Round Table III
fRun->Init(); // Initialize the simulation Simulation: 1. Initialize the VMC (Simulation) 2. Initialize Tasks (if they are used in Simulation) fRun->Run(NoOfEvent); //Run the Simulation Simulation Macro- Run Simulation Round Table III
{ gROOT->LoadMacro("$VMCWORKDIR/gconfig/basiclibs.C"); basiclibs(); gSystem->Load("libCbm"); gSystem->Load("libITrack"); CbmRunAna *fRun= new CbmRunAna(); fRun->SetInputFile(“/d/STS_AuAu25Gev_Urqmd.root"); fRun->SetOutputFile(“trackOutput.root"); Analysis Macro Round Table III
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->AddTask(tr); } Algorithms : CBMTask Round Table III
Tasks Mechanism • CBMTask *Task1=new CBMTask("Task1") CBMTask *Task2=new CBMTask("Task2") • CBMTask *Task3=new CBMTask("Task3") • CBMTask *Task4=new CBMTask("Task4") • CBMTask *Task5=new CBMTask("Task5") • CBMTask *Task6=new CBMTask("Task6") • Task1->Add(Task2) • Task1->Add(Task3) • Task2->Add(Task4) • Task2->Add(Task5) • Task3->Add(Task6) Round Table III
CbmTask Parameters Data CbmParIo RunId1 RunId1 CbmTask::SetContainers() CbmTask::init() Par. Cont. Sim. Data CbmTask::Exec() CbmParIo CbmTask::Reinit() RunId2 RunId2 Par. Cont Sim. Data CbmTask::Exec() Initialisation scheme (Analysis) File=1 File=2 Round Table III
Track Visualization Round Table III
{ gROOT->LoadMacro("$VMCWORKDIR/gconfig/basiclibs.C"); basiclibs(); gSystem->Load("libCbm"); ...... TFile* file = new TFile("test.root"); TGeoManager *geoMan = (TGeoManager*) file->Get("CBMGeom"); TCanvas* c1 = new TCanvas("c1", "", 100, 100, 800, 800); c1->SetFillColor(10); geoMan->DrawTracks("same/Nneutron"); geoMan->SetVisLevel(3); geoMan->GetMasterVolume()->Draw("same"); } Example: Visualization macro Round Table III