1 / 17

AliRoot: I/O organisation

Learn about I/O structure, runtime data exchange & detectors cooperation in the ALICE Experiment using AliRoot framework.

natashak
Download Presentation

AliRoot: I/O organisation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AliRoot: I/O organisation ROOT in the ALICE experiment I/O Structure Run-Time Data-Exchange YS@ROOT_Workshop

  2. GEANT4 Transport model Fluka GEANT3 Geometry AliRoot Event generator AliRoot, the cartoon 010011110010111001000001011 YS@ROOT_Workshop

  3. The Geometry 12 independent detectors which cooperate to track and identify particles YS@ROOT_Workshop

  4. AliRoot Layout • Structure of the framework reflects the ALICE experiment sub-structure • STEER coordinates the cooperation between detectors YS@ROOT_Workshop

  5. The Data 010011110010111001000001011 Structure the data to reflect the detector sub-structure YS@ROOT_Workshop

  6. 1 common TFile + 1 TFile per detector +1 TTree per event galice.root TTree0,…i,…,n : kinematics TClonesArray TParticles gAlice: Run Info PHOS.Hits.root TTree0,…i,…,n : hits TBranch : PHOS TClonesArray ITS.Hits.root TreeH0,…i,…,n : hits TBranch : ITS TClonesArray Structure of « raw » data: YS@ROOT_Workshop

  7. YS@ROOT_Workshop

  8. ITS ITS Signal event Underlying event Hits Hits Detector stand alone tasks SDigits SDigits Merging Digits TPC RecPoints RecPoints PHOS Tracks Tracks Tracks Detectors collaborate RecParticle Reconstruction Tasks YS@ROOT_Workshop

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

  10. Detector wise splitting PHOS.SDigits.root SDigits.root • Each task generates one TFile • 1 event per TTree • task versioning in TBranch ITS.SDigits.root TTree0,…i,…n TBranchv1,…vn PHOS.Reco.root Reco.root ITS.Reco.root TClonesArray Structure of reconstructed data YS@ROOT_Workshop

  11. YS@ROOT_Workshop

  12. 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 YS@ROOT_Workshop

  13. 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 *) ; YS@ROOT_Workshop

  14. Run-time Data-Exchange • Structure the white board according to detector sub-structure & tasks results YS@ROOT_Workshop

  15. 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() ; YS@ROOT_Workshop

  16. Run-time Data-Exchange • Structure the white board according to detector sub-structure & tasks results YS@ROOT_Workshop

  17. 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<gimeP->RecParticles()->GetEntries(); i++) for (j=0; j<gimeE->RecParticles()->GetEntries(); j++) if( AreBack2Back(gimeP->RecParticle(i), gimeE->RecParticle(j)) ) njets++ ; YS@ROOT_Workshop

More Related