]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ANALYSIS/AliAnalysisTaskFilter.h
Use the MCchain flag in GetChainForTestMode
[u/mrichter/AliRoot.git] / ANALYSIS / AliAnalysisTaskFilter.h
1 #ifndef ALIANALYSISTASKFILTER_H
2 #define ALIANALYSISTASKFILTER_H
3  
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8
9 //////////////////////////////////////////////////////////////////////////
10 //
11 //  Base class for filtering friends
12 //
13 //////////////////////////////////////////////////////////////////////////
14
15 #include "AliAnalysisTask.h"
16 class AliVEvent;
17 class AliESDEvent;
18 class AliESDfriend;
19 class AliInputEventHandler;
20 class AliESDfriendTrack;
21
22 class TTree;
23
24 class AliAnalysisTaskFilter : public AliAnalysisTask
25 {
26  public:
27         AliAnalysisTaskFilter();
28         AliAnalysisTaskFilter(const char* name);
29         AliAnalysisTaskFilter(const AliAnalysisTaskFilter& obj);
30         AliAnalysisTaskFilter& operator=(const AliAnalysisTaskFilter& other);
31         virtual ~AliAnalysisTaskFilter() {;}
32
33         // Implementation of interface methods
34         virtual void ConnectInputData(Option_t *option = "");
35         virtual void CreateOutputObjects();
36         virtual void Exec(Option_t* option);
37         virtual void SetDebugLevel(Int_t level) {fDebug = level;}
38         virtual void Init() {;}
39         virtual void UserCreateOutputObjects()  {;}
40         virtual void UserExec(Option_t* /*option*/) {;}
41
42         // To be implemented by user
43         virtual Bool_t UserSelectESDfriendForCurrentEvent(){return kTRUE;}
44
45         // Getters
46         virtual Int_t         DebugLevel()  {return fDebug;     }
47         virtual AliVEvent*    InputEvent()  {return fInputEvent;}
48         virtual AliESDfriend* InputFriend() {return fInputESDfriend;}
49         virtual AliESDfriend* ESDfriend()   {return fOutputESDfriend; }
50         virtual TTree*        OutputTree()  {return fTreeEF;     }
51         virtual Long64_t      Entry()       {return fEntry;     }
52         virtual const char*   CurrentFileName();
53
54         // To add/skip a friend track
55         void AddFriendTrackAt(AliESDfriendTrack* t, Int_t index);
56         void SkipFriendTrackAt(Int_t index);
57
58  protected:
59         Int_t                 fDebug;           //  Debug flag
60         Int_t                 fEntry;           //  Current entry in the chain
61         AliVEvent*            fInputEvent;      //! VEvent Input
62         AliInputEventHandler* fInputHandler;    //! Input Handler
63         AliESDfriend*         fOutputESDfriend; //! ESD friend out 
64         TTree*                fTreeEF;          //  ESD friend output Tree
65         AliESDfriend*         fInputESDfriend;  //! ESD friend input
66         
67         ClassDef(AliAnalysisTaskFilter, 3); // Analysis task for filtering friends
68 };
69
70 #endif