]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ANALYSIS/AliAnalysisTaskFilter.h
- Changes in the calibration framework to write the filtered friends in a
[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* ESDfriend()   {return fOutputESDfriend; }
49         virtual TTree*        OutputTree()  {return fTreeEF;     }
50         virtual Long64_t      Entry()       {return fEntry;     }
51         virtual const char*   CurrentFileName();
52
53         // To add a friend track
54         void AddFriendTrackAt(AliESDfriendTrack* t, Int_t index);
55
56  protected:
57         Int_t                 fDebug;           //  Debug flag
58         Int_t                 fEntry;           //  Current entry in the chain
59         AliVEvent*            fInputEvent;      //! VEvent Input
60         AliInputEventHandler* fInputHandler;    //! Input Handler
61         AliESDfriend*         fOutputESDfriend; //! ESD friend out 
62         TTree*                fTreeEF;          //  ESD friend output Tree
63         
64         ClassDef(AliAnalysisTaskFilter, 2); // Analysis task for filtering friends
65 };
66
67 #endif