Bug in raw data sector assignment for reference PM corrected
[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{
56// destructor
57}
58
59
e910dd36 60Bool_t AliAODHandler::InitIO(Option_t* opt)
ec4af4c1 61{
62 // Initialize IO
e910dd36 63 //
64 // Create the AODevent object
ec4af4c1 65 fAODEvent = new AliAODEvent();
66 fAODEvent->CreateStdContent();
e910dd36 67 //
68 // File opening according to execution mode
69
70 if (!(strcmp(opt, "proof"))) {
71 // proof
72 } else {
73 // local and grid
74 fFileA = new TFile(fName, "RECREATE");
75 }
76 //
77 // Create the output tree
ec4af4c1 78 CreateTree();
79
80 return kTRUE;
81}
82
5f380da9 83Bool_t AliAODHandler::FinishEvent()
ec4af4c1 84{
85 // Fill data structures
ec4af4c1 86 FillTree();
87 fAODEvent->ClearStd();
88
89 return kTRUE;
90}
91
92Bool_t AliAODHandler::Terminate()
93{
94 // Terminate
95 AddAODtoTreeUserInfo();
96 return kTRUE;
97}
98
99Bool_t AliAODHandler::TerminateIO()
100{
101 // Terminate IO
21501411 102 if (fFileA) {
103 fFileA->Close();
104 delete fFileA;
105 }
ec4af4c1 106 return kTRUE;
107}
108
109
110void AliAODHandler::CreateTree()
111{
112 // Creates the AOD Tree
f3214a54 113 fTreeA = new TTree("aodTree", "AliAOD tree");
ec4af4c1 114 fTreeA->Branch(fAODEvent->GetList());
115}
116
117void AliAODHandler::FillTree()
118{
119 // Fill the AOD Tree
120 fTreeA->Fill();
121}
122
123
124void AliAODHandler::AddAODtoTreeUserInfo()
125{
126 // Add aod event to tree user info
127 fTreeA->GetUserInfo()->Add(fAODEvent);
128}