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 | |
30 | ClassImp(AliAODHandler) |
31 | |
32 | //______________________________________________________________________________ |
33 | AliAODHandler::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 | //______________________________________________________________________________ |
44 | AliAODHandler::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 | //______________________________________________________________________________ |
54 | AliAODHandler::~AliAODHandler() |
55 | { |
56 | // destructor |
57 | } |
58 | |
59 | |
e910dd36 |
60 | Bool_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 |
83 | Bool_t AliAODHandler::FinishEvent() |
ec4af4c1 |
84 | { |
85 | // Fill data structures |
ec4af4c1 |
86 | FillTree(); |
87 | fAODEvent->ClearStd(); |
88 | |
89 | return kTRUE; |
90 | } |
91 | |
92 | Bool_t AliAODHandler::Terminate() |
93 | { |
94 | // Terminate |
95 | AddAODtoTreeUserInfo(); |
96 | return kTRUE; |
97 | } |
98 | |
99 | Bool_t AliAODHandler::TerminateIO() |
100 | { |
101 | // Terminate IO |
80a8335a |
102 | fFileA->Close(); |
ec4af4c1 |
103 | return kTRUE; |
104 | } |
105 | |
106 | |
107 | void AliAODHandler::CreateTree() |
108 | { |
109 | // Creates the AOD Tree |
f3214a54 |
110 | fTreeA = new TTree("aodTree", "AliAOD tree"); |
ec4af4c1 |
111 | fTreeA->Branch(fAODEvent->GetList()); |
112 | } |
113 | |
114 | void AliAODHandler::FillTree() |
115 | { |
116 | // Fill the AOD Tree |
117 | fTreeA->Fill(); |
118 | } |
119 | |
120 | |
121 | void AliAODHandler::AddAODtoTreeUserInfo() |
122 | { |
123 | // Add aod event to tree user info |
124 | fTreeA->GetUserInfo()->Add(fAODEvent); |
125 | } |