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