Moving the TPC calibration using tracks from separate directory to the TPC directory
[u/mrichter/AliRoot.git] / STEER / AliAODHandler.cxx
CommitLineData
ec4af4c1 1/**************************************************************************
2 * Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16/* $Id$ */
17
18//-------------------------------------------------------------------------
19// Implementation of the Virtual Event Handler Interface for AOD
20// Author: Andreas Morsch, CERN
21//-------------------------------------------------------------------------
22
052994fb 23
ec4af4c1 24#include <TTree.h>
e910dd36 25#include <TFile.h>
26
ec4af4c1 27#include "AliAODHandler.h"
28#include "AliAODEvent.h"
29
30ClassImp(AliAODHandler)
31
32//______________________________________________________________________________
33AliAODHandler::AliAODHandler() :
f3214a54 34 AliVEventHandler(),
ec4af4c1 35 fAODEvent(NULL),
e910dd36 36 fTreeA(NULL),
37 fFileA(NULL),
38 fName("")
ec4af4c1 39{
40 // default constructor
41}
42
43//______________________________________________________________________________
44AliAODHandler::AliAODHandler(const char* name, const char* title):
f3214a54 45 AliVEventHandler(name, title),
ec4af4c1 46 fAODEvent(NULL),
e910dd36 47 fTreeA(NULL),
48 fFileA(NULL),
49 fName("")
ec4af4c1 50{
51}
52
53//______________________________________________________________________________
54AliAODHandler::~AliAODHandler()
55{
6989bff3 56 delete fAODEvent;
57 if(fFileA){
58 // is already handled in TerminateIO
59 fFileA->Close();
60 delete fFileA;
61 }
62 delete fTreeA;
63 delete fName;
64 // destructor
ec4af4c1 65}
66
67
300d5701 68Bool_t AliAODHandler::Init(Option_t* opt)
ec4af4c1 69{
6989bff3 70 // Initialize IO
71 //
72 // Create the AODevent object
73 if(!fAODEvent){
ec4af4c1 74 fAODEvent = new AliAODEvent();
75 fAODEvent->CreateStdContent();
6989bff3 76 }
77 //
78 // File opening according to execution mode
79
80 if (!(strcmp(opt, "proof"))) {
81 // proof
82 CreateTree(0);
83 } else {
84 // local and grid
85 fFileA = new TFile(fName, "RECREATE");
86 CreateTree(1);
87 }
88 return kTRUE;
ec4af4c1 89}
90
5f380da9 91Bool_t AliAODHandler::FinishEvent()
ec4af4c1 92{
93 // Fill data structures
ec4af4c1 94 FillTree();
6989bff3 95 fAODEvent->ResetStd();
ec4af4c1 96 return kTRUE;
97}
98
99Bool_t AliAODHandler::Terminate()
100{
101 // Terminate
102 AddAODtoTreeUserInfo();
103 return kTRUE;
104}
105
106Bool_t AliAODHandler::TerminateIO()
107{
108 // Terminate IO
21501411 109 if (fFileA) {
110 fFileA->Close();
111 delete fFileA;
112 }
ec4af4c1 113 return kTRUE;
114}
115
116
954526ed 117void AliAODHandler::CreateTree(Int_t flag)
ec4af4c1 118{
119 // Creates the AOD Tree
f3214a54 120 fTreeA = new TTree("aodTree", "AliAOD tree");
ec4af4c1 121 fTreeA->Branch(fAODEvent->GetList());
954526ed 122 if (flag == 0) fTreeA->SetDirectory(0);
ec4af4c1 123}
124
125void AliAODHandler::FillTree()
126{
127 // Fill the AOD Tree
128 fTreeA->Fill();
129}
130
131
132void AliAODHandler::AddAODtoTreeUserInfo()
133{
134 // Add aod event to tree user info
135 fTreeA->GetUserInfo()->Add(fAODEvent);
136}