Presentation is loading. Please wait.

Presentation is loading. Please wait.

October 10-12, 1 AliRoot: I/O organisation ROOT in the ALICE experiment I/O Structure Run-Time Data-Exchange.

Similar presentations


Presentation on theme: "October 10-12, 1 AliRoot: I/O organisation ROOT in the ALICE experiment I/O Structure Run-Time Data-Exchange."— Presentation transcript:

1 October 10-12, 2002YS@ROOT_Workshop 1 AliRoot: I/O organisation ROOT in the ALICE experiment I/O Structure Run-Time Data-Exchange

2 2 October 10-12, 2002 YS@ROOT_Workshop Event generator Geometry Transport model AliRoot, the cartoon

3 3 October 10-12, 2002 YS@ROOT_Workshop The Geometry 12 independent detectors which cooperate to track and identify particles

4 4 October 10-12, 2002 YS@ROOT_Workshop AliRoot Layout Structure of the framework reflects the ALICE experiment sub-structure STEER coordinates the cooperation between detectors

5 5 October 10-12, 2002 YS@ROOT_Workshop The Data Structure the data to reflect the detector sub-structure

6 6 October 10-12, 2002 YS@ROOT_Workshop Structure of « raw » data: gAlice: Run Info TBranch : PHOS TBranch : ITS TClonesArrayTParticles TClonesArray PHOS.Hits.root ITS.Hits.root galice.root 1 common TFile + 1 TFile per detector TTree 0,…i,…,n : kinematics TTree 0,…i,…,n : hits TreeH 0,…i,…,n : hits +1 TTree per event

7 7 October 10-12, 2002 YS@ROOT_Workshop

8 8 October 10-12, 2002 YS@ROOT_Workshop Reconstruction Tasks RecParticle Tracks PHOS Hits SDigits Digits RecPoints ITS Detector stand alone tasks Tracks RecPoints Tracks TPC Detectors collaborate Hits SDigits ITS Underlying event Signal event Merging

9 9 October 10-12, 2002 YS@ROOT_Workshop Structure of a task:TTask Clusterizer:TTask (per detector) Clusterizer::Exec(){ User code ; } Digitizer:TTask (per detector) Digitizer::Exec(){ User code ; } root> AliEMCALDigitizer d; root> d.ExecuteTask() Reconstructioner:TTask ALICE 1…12 root> AliReconstructioner r; root> r.ExecuteTask() Reconstructioner:TTask (per detector) root> AliEMCALReconstructioner r; root> r.ExecuteTask() root> AliEMCALClusterizer c; root> c.ExecuteTask()

10 10 October 10-12, 2002 YS@ROOT_Workshop Structure of reconstructed data TBranch v1,…vn TClonesArray SDigits.root Reco.root TTree 0,…i,…n Each task generates one TFile 1 event per TTree task versioning in TBranch ITS.SDigits.root PHOS.SDigits.root PHOS.Reco.root ITS.Reco.root Detector wise splitting

11 11 October 10-12, 2002 YS@ROOT_Workshop

12 12 October 10-12, 2002 YS@ROOT_Workshop Run-time Data-Exchange  Post transient data to a white board  Structure the white board according to detector sub-structure & tasks results  Each detector is responsible for posting its data  Tasks access data from the white board  Detectors cooperate through the white board

13 13 October 10-12, 2002 YS@ROOT_Workshop Run-time Data-Exchange  Post transient data to a white board : make use of TFolder : Unix-dir like structure root dir //Folders Direct search: TObject * TFolder::FindObjectAny(name) ; Add a folder: TFolder::AddFolder(name) ; Add any object: TFolder::Add(Tobject *) ;

14 14 October 10-12, 2002 YS@ROOT_Workshop Run-time Data-Exchange  Structure the white board according to detector sub-structure & tasks results

15 15 October 10-12, 2002 YS@ROOT_Workshop Run-time Data-Exchange  Each detector is responsible for posting its data: delegate all the transactions to a singleton object, one per detector root> AliPHOSGetter *gime = AliPHOSGetter::GetInstance(common_filename) ; root> gime->Event(n) ;// one event at the time root> TClonesArray digits = gime->Digits() ;

16 16 October 10-12, 2002 YS@ROOT_Workshop Run-time Data-Exchange  Structure the white board according to detector sub-structure & tasks results

17 17 October 10-12, 2002 YS@ROOT_Workshop Run-time Data-Exchange  Tasks access data from the white board  Detectors cooperate through the white board Have a general getter that has a list of detector and executes tasks recursively AliGetter * gime = AliGetter::GetInstance() ; AliPHOSGetter *gimeP = AliPHOSGetter::GetInstance() ; AliEMCALGetter *gimeE = AliEMCALGetter::GetInstance() ; gime->Add(gimeP, gimeE) ; gime->Event(n) ; for (i=0; i RecParticles()->GetEntries(); i++) for (j=0; j RecParticles()->GetEntries(); j++) if( AreBack2Back(gimeP->RecParticle(i), gimeE->RecParticle(j)) ) njets++ ;


Download ppt "October 10-12, 1 AliRoot: I/O organisation ROOT in the ALICE experiment I/O Structure Run-Time Data-Exchange."

Similar presentations


Ads by Google