]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/ESD/AliESDInputHandler.h
doxy: do not show whitespace diffs on bulk edit
[u/mrichter/AliRoot.git] / STEER / ESD / AliESDInputHandler.h
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     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     virtual Bool_t       Notify() { return AliInputEventHandler::Notify(); };
36     virtual Bool_t       Notify(const char* path);
37     virtual Bool_t       FinishEvent();
38     void                 CheckSelectionMask();
39     AliESDEvent         *GetEvent()        const {return fEvent;}
40     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     AliESDEvent         *GetHLTEvent()     const {return fHLTEvent;}
49     TTree               *GetHLTTree()      const {return fHLTTree;}    
50     void                 SetReadHLT()            {Changed(); fUseHLT = kTRUE;}
51     Bool_t               GetReadHLT()      const {return fUseHLT;}
52     // Friends&Co
53     AliESDfriend        *GetESDfriend()    const {return fFriend;}
54     void                 SetReadFriends(Bool_t flag)   {Changed(); fReadFriends = flag;}
55     Bool_t               GetReadFriends()  const {return fReadFriends;}
56     void                 SetFriendFileName(const char *fname)  {Changed(); fFriendFileName = fname;}
57     const char          *GetFriendFileName() const {return fFriendFileName;}
58     // Tag analysis
59     void                 SetReadTags()           {Changed(); fUseTags = kTRUE;}
60     AliRunTag           *GetRunTag() const       {return fRunTag;}
61     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     virtual AliPIDResponse* GetPIDResponse() {return (AliPIDResponse*)fESDpid;}
67     virtual void CreatePIDResponse(Bool_t isMC=kFALSE);
68     AliESDpid           *GetESDpid()       const {return fESDpid;}
69     void                 SetESDpid(AliESDpid* pid)     {Changed(); fESDpid = pid;}
70
71     //HLT
72     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     ClassDef(AliESDInputHandler, 6);
101 };
102
103 #endif