Line data Source code
1 : #ifndef ALIESDINPUTHANDLER_H
2 : #define ALIESDINPUTHANDLER_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 : // ESD Input Handler realisation of the AliVEventHandler interface
10 : // Author: Andreas Morsch, CERN
11 : //-------------------------------------------------------------------------
12 :
13 : #include "AliInputEventHandler.h"
14 : #include "AliESDEvent.h"
15 : class TChain;
16 : class TTree;
17 : class AliRunTag;
18 : class AliEventTag;
19 : class TMap;
20 : class AliESDfriend;
21 : class AliESDpid;
22 : class AliESDEvent;
23 : class AliPIDResponse;
24 :
25 :
26 : class AliESDInputHandler : public AliInputEventHandler {
27 :
28 : public:
29 : AliESDInputHandler();
30 : AliESDInputHandler(const char* name, const char* title);
31 : virtual ~AliESDInputHandler();
32 4 : virtual Bool_t Init(Option_t* opt) {return AliInputEventHandler::Init(opt);}
33 : virtual Bool_t Init(TTree* tree, Option_t* opt);
34 : virtual Bool_t BeginEvent(Long64_t entry);
35 0 : virtual Bool_t Notify() { return AliInputEventHandler::Notify(); };
36 : virtual Bool_t Notify(const char* path);
37 : virtual Bool_t FinishEvent();
38 : void CheckSelectionMask();
39 26 : AliVEvent *GetEvent() const {return (AliVEvent*)fEvent;}
40 16 : Option_t *GetAnalysisType() const {return fAnalysisType;}
41 : Option_t *GetDataType() const;
42 : // Tag cut summary analysis
43 : Int_t GetNEventAcceptedInFile();
44 : Int_t GetNEventRejectedInFile();
45 : Bool_t GetCutSummaryForChain(Int_t *aTotal, Int_t *aAccepted, Int_t *aRejected);
46 : Int_t GetNFilesEmpty();
47 : // HLT analysis
48 0 : AliESDEvent *GetHLTEvent() const {return fHLTEvent;}
49 0 : TTree *GetHLTTree() const {return fHLTTree;}
50 0 : void SetReadHLT() {Changed(); fUseHLT = kTRUE;}
51 0 : Bool_t GetReadHLT() const {return fUseHLT;}
52 : // Friends&Co
53 56 : AliESDfriend *GetESDfriend() const {return fFriend;}
54 2 : void SetReadFriends(Bool_t flag) {Changed(); fReadFriends = flag;}
55 0 : Bool_t GetReadFriends() const {return fReadFriends;}
56 0 : void SetFriendFileName(const char *fname) {Changed(); fFriendFileName = fname;}
57 0 : const char *GetFriendFileName() const {return fFriendFileName;}
58 : // Tag analysis
59 4 : void SetReadTags() {Changed(); fUseTags = kTRUE;}
60 8 : AliRunTag *GetRunTag() const {return fRunTag;}
61 0 : const AliEventTag *GetEventTag() const {return fEventTag;}
62 : // Get the statistics object (currently TH2). Option can be BIN0.
63 : virtual TObject *GetStatistics(Option_t *option="") const;
64 :
65 : //PID response
66 0 : virtual AliPIDResponse* GetPIDResponse() {return (AliPIDResponse*)fESDpid;}
67 : virtual void CreatePIDResponse(Bool_t isMC=kFALSE);
68 16 : AliESDpid *GetESDpid() const {return fESDpid;}
69 0 : void SetESDpid(AliESDpid* pid) {Changed(); fESDpid = pid;}
70 :
71 : //HLT
72 0 : virtual AliVfriendEvent* GetVfriendEvent() const {return fFriend;};
73 :
74 : private:
75 : AliESDInputHandler(const AliESDInputHandler& handler);
76 : AliESDInputHandler& operator=(const AliESDInputHandler& handler);
77 : void ConnectFriends();
78 : protected:
79 : // ESD event
80 : AliESDEvent *fEvent; //! Pointer to the event
81 : AliESDfriend *fFriend; //! Pointer to the esd friend
82 : AliESDpid *fESDpid; //! Pointer to PID information
83 : Option_t *fAnalysisType; //! local, proof, grid
84 : Int_t fNEvents; //! Number of events in the current tree
85 : // HLT event
86 : AliESDEvent *fHLTEvent; //! Pointer to the HLT Event (if present)
87 : TTree *fHLTTree; //! Pointer to the HLT Event (if present)
88 : Bool_t fUseHLT; // Flag to access HLT Events
89 : // ESD Tag Cut Summary
90 : TMap *fTagCutSumm; //! Tag cut summary map
91 : // ESD Tags (optional)
92 : Bool_t fUseTags; // Flag to use tags
93 : TChain *fChainT; //! File with event tags
94 : TTree *fTreeT; //! Tree of tags
95 : AliRunTag *fRunTag; //! Pointer to the run tag
96 : const AliEventTag *fEventTag; //! Current event tag
97 : // Friends
98 : Bool_t fReadFriends; // Flag for friends reading
99 : TString fFriendFileName;// Name of the file containing the frien tree (branch)
100 180 : ClassDef(AliESDInputHandler, 6);
101 : };
102 :
103 : #endif
|