1 / 16

Strategy for Organized Analysis

Andreas Morsch ATF Meeting 20/06/2007. Strategy for Organized Analysis. Why Organized Analysis ?. Most efficient way for many users (analysis tasks) to read and process the full data set. In particular if resources are sparse. Optimise CPU/IO ratio But also

lanza
Download Presentation

Strategy for Organized Analysis

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. Andreas Morsch ATF Meeting 20/06/2007 Strategy forOrganized Analysis

  2. Why Organized Analysis ? • Most efficient way for many users (analysis tasks) to read and process the full data set. • In particular if resources are sparse. • Optimise CPU/IO ratio • But also • Helps to develop a common well tested framework for analysis. • Develops common knowledge base and terminology. • Helps documenting the analysis procedure and makes results reproducible.

  3. Scope • Focus on production of AODs from ESD/AOD

  4. Design Goals • Flexible task and data container structure • User code independent of computing schema (interactive: local/proof or batch: grid) • Input data: ESD, AOD • Same design (done) • Common base class ? • Output data: • AOD + user histograms • Transparent handling of memory resident and file resident data

  5. Implementation • Analysis train/taxi similar to PHENIX • Based on the existing AliAnalysisManager/Task framework (A. and M. Gheata)

  6. Organization of Data and Tasks • One analysis “train” on the complete data set. • Limits the complexity of the production. • Should be designed to give the optimum under all conditions. • Organisation of analysis tasks • One job executing all tasks.

  7. Organization of Tasks • Proposal • On top level • Tasks reading ESDs/AOD and producing AODs. • Organized by analysis manager • Below top level • Sub tasks producing intermediate transient data • Organized by users (PWGs)

  8. Task QA (to be done) • Protection against sub-task crashes • “Isolate” tasks using C++ try-throw-catch mechanism • Check memory / task • Check output data size / task • Protection against data corruption • Access rights per task • Dynamic cancelling of tasks • Input data quality checks • could be the first task in the row • Robust book-keeping

  9. Example:Jet Reconstruction Framework AliJetFinder AliJetReader AliUA1JetFinderV1 AliFastJetFinder AliJetESDReader AliJetKineReader

  10. Possible Integration into General Analysis Framework AliAnalysisTask Steers Delegates AliAnalysisUserTask User AnalysisCode Implements Interface Deals with AliAODEvent Documents selection and analysis parameters Factory Configuration Macro Working prototype for AliAnalysisTaskJets exists

  11. Output File Handling AliVirtualEventHandler AliAnalysisManager AliAODHandler AliAODEvent

  12. User Code void AliAnalysisTaskJets::CreateOutputObjects() { // Create the output container // // Default AOD AliAODHandler* handler = (AliAODHandler*) ((AliAnalysisManager::GetAnalysisManager())->GetEventHandler()); fAOD = handler->GetAOD(); fTreeA = handler->GetTree(); fJetFinder->ConnectAOD(fAOD); }

  13. Configuration (output) // Make the analysis manager // AliAODHandler* aodHandler = new AliAODHandler(); aodHandler->SetOutputFileName("aod.root"); AliAnalysisManager *mgr = new AliAnalysisManager(‘Analysis Train’, ‘Test’); mgr->SetEventHandler(aodHandler); AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(‘AODTree’, TTree::Class(), AliAnalysisManager::kOutputContainer, "default");

  14. Configuration (tasks) AliAnalysisManager *mgr = new AliAnalysisManager("Jet Manager", "Jet Manager"); mgr-> SetDebugLevel(10); AliAnalysisTaskJets *jetana = new AliAnalysisTaskJets("JetAnalysis"); jetana->SetDebugLevel(10); mgr->AddTask(jetana); mgr->ConnectInput (jetana, 0, cinput1); mgr->ConnectOutput(jetana, 0, coutput1);

  15. Tested so far • Train with following wagon • AliAnalysisTaskESDfilter • ->AOD • AliAnalysisTaskJets • ->AOD • ->Histogram • Runs • Locally • CAF • GRID tests ongoing

  16. Next steps • AOD as input • Event mixing use case • Using input event handler ?

More Related