1 #ifndef ALIAODHANDLER_H
2 #define ALIAODHANDLER_H
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 //-------------------------------------------------------------------------
9 // Implementation of the Event Handler Interface for AOD
10 // Author: Andreas Morsch, CERN
11 //-------------------------------------------------------------------------
13 #include "AliVEventHandler.h"
21 class AliAODHandler : public AliVEventHandler {
25 AliAODHandler(const char* name, const char* title);
26 virtual ~AliAODHandler();
27 virtual void SetOutputFileName(const char* fname);
28 virtual const char* GetOutputFileName();
29 virtual Bool_t Init(Option_t* option);
30 virtual Bool_t Init(TTree* /*tree*/, Option_t* /*option*/) {return kTRUE;}
31 virtual Bool_t BeginEvent(Long64_t /*entry*/) {return kTRUE;}
32 virtual Bool_t Notify() { return AliVEventHandler::Notify(); };
33 virtual Bool_t Notify(const char * /* path */) {return kTRUE;}
34 virtual Bool_t FinishEvent();
35 virtual Bool_t Terminate();
36 virtual Bool_t TerminateIO();
38 virtual void SetCreateNonStandardAOD() {fIsStandard = kFALSE;}
39 virtual void SetNeedsHeaderReplication() {fNeedsHeaderReplication = kTRUE;}
40 virtual void SetNeedsTracksBranchReplication() {fNeedsTracksBranchReplication = kTRUE;}
41 virtual void SetNeedsVerticesBranchReplication() {fNeedsVerticesBranchReplication = kTRUE;}
42 virtual void SetNeedsV0sBranchReplication() {fNeedsV0sBranchReplication = kTRUE;}
43 virtual void SetNeedsTrackletsBranchReplication() {fNeedsTrackletsBranchReplication = kTRUE;}
44 virtual void SetNeedsPMDClustersBranchReplication() {fNeedsPMDClustersBranchReplication = kTRUE;}
45 virtual void SetNeedsJetsBranchReplication() {fNeedsJetsBranchReplication = kTRUE;}
46 virtual void SetNeedsFMDClustersBranchReplication() {fNeedsFMDClustersBranchReplication = kTRUE;}
47 virtual void SetNeedsCaloClustersBranchReplication() {fNeedsCaloClustersBranchReplication = kTRUE;}
48 virtual void SetAODIsReplicated() {fAODIsReplicated = kTRUE;}
50 AliAODEvent* GetAOD() {return fAODEvent;}
51 virtual TTree* GetTree() const {return fTreeA;}
52 void CreateTree(Int_t flag);
54 void AddAODtoTreeUserInfo();
55 void AddBranch(const char* cname, void* addobj);
56 Bool_t IsStandard() {return fIsStandard;}
57 Bool_t NeedsHeaderReplication() {return fNeedsHeaderReplication;}
58 Bool_t NeedsTracksBranchReplication() {return fNeedsTracksBranchReplication;}
59 Bool_t NeedsVerticesBranchReplication() {return fNeedsVerticesBranchReplication;}
60 Bool_t NeedsV0sBranchReplication() {return fNeedsV0sBranchReplication;}
61 Bool_t NeedsTrackletsBranchReplication() {return fNeedsTrackletsBranchReplication;}
62 Bool_t NeedsPMDClustersBranchReplication() {return fNeedsPMDClustersBranchReplication;}
63 Bool_t NeedsJetsBranchReplication() {return fNeedsJetsBranchReplication;}
64 Bool_t NeedsFMDClustersBranchReplication() {return fNeedsFMDClustersBranchReplication;}
65 Bool_t NeedsCaloClustersBranchReplication() {return fNeedsCaloClustersBranchReplication;}
66 Bool_t AODIsReplicated() {return fAODIsReplicated;}
68 void SetInputTree(TTree* /*tree*/) {;}
70 AliAODHandler(const AliAODHandler&); // Not implemented
71 AliAODHandler& operator=(const AliAODHandler&); // Not implemented
73 Bool_t fIsStandard; // Flag for standard aod creation
74 Bool_t fNeedsHeaderReplication; // Flag for header replication
75 Bool_t fNeedsTracksBranchReplication; // Flag for tracks replication
76 Bool_t fNeedsVerticesBranchReplication; // Flag for vertices replication
77 Bool_t fNeedsV0sBranchReplication; // Flag for V0s replication
78 Bool_t fNeedsTrackletsBranchReplication; // Flag for Tracklets replication
79 Bool_t fNeedsPMDClustersBranchReplication; // Flag for PMDClusters replication
80 Bool_t fNeedsJetsBranchReplication; // Flag for Jets replication
81 Bool_t fNeedsFMDClustersBranchReplication; // Flag for FMDClusters replication
82 Bool_t fNeedsCaloClustersBranchReplication; // Flag for CaloClusters replication
83 Bool_t fAODIsReplicated; // Flag true if replication as been executed
85 AliAODEvent *fAODEvent; //! Pointer to the AOD event
86 TTree *fTreeA; //! tree for AOD persistency
87 TFile *fFileA; //! Output file
88 TString fFileName; // Output file name
89 ClassDef(AliAODHandler, 2);