1 / 9

Towards a Framework for Organized Analysis

Andreas Morsch Weekly Offline Meeting 7/6/2007. Towards a Framework for Organized Analysis. Who manages the common output objects AliAODEvent, AOD Tree and output file?. What has to be called when SlaveBegin AliAODEvent constructor Open file AOD tree constructor ExecuteAnalysis

venus
Télécharger la présentation

Towards a Framework 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 Weekly Offline Meeting 7/6/2007 Towards a Framework forOrganized Analysis

  2. Who manages the common output objects AliAODEvent, AOD Tree and output file? • What has to be called when • SlaveBegin • AliAODEvent constructor • Open file • AOD tree constructor • ExecuteAnalysis • AOD tree fill • AliAODEvent Clear • Terminate • WriteTree • Close File

  3. AliAnalysisManager AliAODEvent AliAnalysisManagerAOD AliVEvent AliAnalysisManager AliAODEvent AliVirtualEventHandler AliAnalysisManager AliAODHandler AliAODEvent

  4. AliVirtualEventHandler class AliVirtualEventHandler : public TNamed { public: AliVirtualEventHandler(); AliVirtualEventHandler(const char* name, const char* title); virtual ~AliVirtualEventHandler(); virtual void SetOutputFileName(char* fname) = 0; virtual char* GetOutputFileName() = 0; virtual Bool_t InitIO(Option_t* opt) = 0; virtual Bool_t Fill() = 0; virtual Bool_t Terminate() = 0; virtual Bool_t TerminateIO() = 0; private : ClassDef(AliVirtualEventHandler, 1); };

  5. AliAODHandler class AliAODHandler : public AliVirtualEventHandler { public: AliAODHandler(); AliAODHandler(const char* name, const char* title); virtual ~AliAODHandler(); // Implements the interface virtual void SetOutputFileName(char* fname) {fName = fname;} virtual char* GetOutputFileName() {return fName;} virtual Bool_t InitIO(Option_t* option); virtual Bool_t Fill(); virtual Bool_t Terminate(); virtual Bool_t TerminateIO(); virtual Bool_t Notify() {return kTRUE;} // AOD Specific AliAODEvent* GetAOD() {return fAODEvent;} TTree* GetTree() {return fTreeA;} void CreateTree(); void FillTree(); void AddAODtoTreeUserInfo(); };

  6. 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); }

  7. Configuration // 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");

  8. Testing • Many tasks per train • Collect code from friendly users • Default output + user output • All execution modes • Local • Proof (file merging needed) • Grid (M. Gheata)

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

More Related