Line data Source code
1 : #ifndef ALIAODINPUTHANDLER_H
2 : #define ALIAODINPUTHANDLER_H
3 : /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4 : * See cxx source for full Copyright notice */
5 :
6 : /* $Id$ */
7 :
8 : //-------------------------------------------------------------------------
9 : // AOD Input Handler realisation of the AliVEventHandler interface
10 : // Author: Andreas Morsch, CERN
11 : //-------------------------------------------------------------------------
12 :
13 : #include "AliInputEventHandler.h"
14 : #include "AliAODEvent.h"
15 : #include "AliMCEvent.h"
16 : #include "AliAODMCHeader.h"
17 : class TList;
18 : class AliMCEvent;
19 : class TH2F;
20 : class AliMCEvent;
21 : class AliAODpidUtil;
22 : class AliPIDResponse;
23 :
24 :
25 : class AliAODInputHandler : public AliInputEventHandler {
26 :
27 : public:
28 : AliAODInputHandler();
29 : AliAODInputHandler(const char* name, const char* title);
30 : virtual ~AliAODInputHandler();
31 0 : virtual Bool_t Init(Option_t* /*opt*/) {return kTRUE;}
32 : virtual Bool_t Init(TTree* tree, Option_t* opt);
33 0 : AliAODEvent *GetEvent() const {return fEvent;}
34 0 : AliMCEvent *MCEvent() const {return fMCEvent;}
35 : virtual void AddFriend(char* filename);
36 : virtual Bool_t BeginEvent(Long64_t entry);
37 0 : virtual Bool_t Notify() { return AliVEventHandler::Notify();};
38 : virtual Bool_t Notify(const char* path);
39 : virtual Bool_t FinishEvent();
40 : Option_t *GetDataType() const;
41 : // Get the statistics object (currently TH2). Option can be BIN0.
42 : virtual TObject *GetStatistics(Option_t *option="") const;
43 : // Provisions for event merging
44 0 : void SetMergeEvents(Bool_t flag) {fMergeEvents = flag;}
45 14 : Bool_t GetMergeEvents() const {return fMergeEvents;}
46 0 : AliAODEvent* GetEventToMerge() {return fAODEventToMerge;}
47 0 : TTree* GetTreeToMerge() const {return fTreeToMerge;}
48 0 : void SetMergeOffset(Int_t ioff) {fMergeOffset = ioff;}
49 0 : Int_t GetMergeOffset() const {return fMergeOffset;}
50 0 : void SetMergeTracks(Bool_t flag) {fMergeTracks = flag;}
51 0 : Bool_t GetMergeTracks() const {return fMergeTracks;}
52 0 : void SetMergeEMCALClusters(Bool_t flag) {fMergeEMCALClusters = flag;}
53 0 : Bool_t GetMergeEMCALClusters() const {return fMergeEMCALClusters;}
54 0 : void SetMergeEMCALCells(Bool_t flag) {fMergeEMCALCells = flag;}
55 0 : Bool_t GetMergeEMCALCells() const {return fMergeEMCALCells ;}
56 0 : void SetMergePHOSClusters(Bool_t flag) {fMergePHOSClusters = flag;}
57 0 : Bool_t GetMergePHOSClusters() const {return fMergePHOSClusters ;}
58 0 : void SetMergePHOSCells(Bool_t flag) {fMergePHOSCells = flag;}
59 0 : Bool_t GetMergePHOSCells() const {return fMergePHOSCells ;}
60 0 : void SetMergeEMCALTrigger(Bool_t flag) {fMergeEMCALTrigger = flag;}
61 0 : Bool_t GetMergeEMCALTrigger() const {return fMergeEMCALTrigger ;}
62 0 : void SetMergePHOSTrigger(Bool_t flag) {fMergePHOSTrigger = flag;}
63 0 : Bool_t GetMergePHOSTrigger() const {return fMergePHOSTrigger ;}
64 0 : void SetMergeHMPIDrings(Bool_t flag) {fMergeHMPIDrings = flag;}
65 0 : Bool_t GetMergeHMPIDrings() const {return fMergeHMPIDrings ;}
66 :
67 : //PID response
68 0 : virtual AliPIDResponse* GetPIDResponse() {return (AliPIDResponse*)fAODpidUtil;}
69 : virtual void CreatePIDResponse(Bool_t isMC=kFALSE);
70 0 : AliAODpidUtil *GetAODpidUtil() const { return fAODpidUtil; }
71 :
72 : private:
73 : void ConnectFriends();
74 : AliAODInputHandler(const AliAODInputHandler& handler);
75 : AliAODInputHandler& operator=(const AliAODInputHandler& handler);
76 : private:
77 : AliAODEvent *fEvent; //! Pointer to the event
78 : AliMCEvent *fMCEvent; //! Pointer to the MCEvent
79 : TList *fFriends; // List of friend trees
80 : AliAODpidUtil *fAODpidUtil; //! Pointer to PID information
81 :
82 : // Support for merged events
83 : Bool_t fMergeEvents; // Flag for event merging
84 : Bool_t fMergeTracks; // Merge tracks
85 : Bool_t fMergeEMCALClusters; // Merge PHOS cluster
86 : Bool_t fMergePHOSClusters; // Merge EMCAL cluster
87 : Bool_t fMergeEMCALCells; // Merge PHOS cluster
88 : Bool_t fMergePHOSCells; // Merge EMCAL cluster
89 : Bool_t fMergeEMCALTrigger; // Merge EMCAL cluster
90 : Bool_t fMergePHOSTrigger; // Merge PHOS cluster
91 : Bool_t fMergeHMPIDrings; // Merge HMPID rings information
92 : Bool_t fFriendsConnected;// Friends are connected
93 : TFile *fFileToMerge; //! File for merging
94 : TTree *fTreeToMerge; //! Tree for merging
95 : AliAODEvent *fAODEventToMerge; //! Event for merging
96 : Int_t fMergeOffset; //! Event offset for merging
97 : TH2F* fHistStatistics[2]; //! how many events are cut away why {all,bin 0}
98 170 : ClassDef(AliAODInputHandler, 4);
99 : };
100 :
101 : #endif
|