7d8fb8f5f519fb887be1a3228af71267f58cd0ff
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnReaderTask.h
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  * See cxx source for full Copyright notice                               *
4  **************************************************************************/
5
6 //----------------------------------------------------------------------------------
7 //  Class AliRsnReaderTask
8 // ------------------------
9 // Reader for conversion of ESD output into the internal format
10 // used for resonance study.
11 // ---
12 // original author: A. Pulvirenti             (email: alberto.pulvirenti@ct.infn.it)
13 // ---
14 // adapted for Analysis Framework
15 // by    : R. Vernet                          (email: renaud.vernet@cern.ch)
16 //----------------------------------------------------------------------------------
17
18 #ifndef ALIRSNREADERTASK_H
19 #define ALIRSNREADERTASK_H
20
21 #include "AliAnalysisTaskSE.h"
22 #include "AliRsnReader.h"
23 #include "AliRsnPID.h"
24
25 class TTree;
26 class TBranch;
27 class AliESDEvent;
28
29 class AliRsnReaderTask : public AliAnalysisTaskSE
30 {
31 public:
32
33     enum ESource {
34         kESD = 0,
35         kAOD,
36         kMC
37     };
38
39     AliRsnReaderTask(ESource source = kESD);
40         AliRsnReaderTask(const char *name, ESource source = kESD);
41         virtual ~AliRsnReaderTask() {Clear();}
42
43     // Implementation of interface methods
44     virtual void UserCreateOutputObjects();
45     virtual void Init();
46     virtual void LocalInit() {Init();}
47     virtual void UserExec(Option_t *option);
48     virtual void Terminate(Option_t *option);
49         
50         // setters
51         void SetReader(AliRsnReader *reader) {fReader = reader;}
52         void SetPID(AliRsnPID *pid) {fPID = pid;}
53         void SetSource(ESource source) {fSource = source;}
54         
55         // getters
56         AliRsnReader* GetReader() {return fReader;}
57         AliRsnPID*    GetPID() {return fPID;}
58
59 private:
60
61     AliRsnReaderTask(const AliRsnReaderTask&);
62         AliRsnReaderTask& operator=(const AliRsnReaderTask&);
63         
64         ESource fSource;   // source of data
65         
66         AliRsnReader* fReader;     // read manager
67         AliRsnPID*    fPID;        // particle identification manager
68         TClonesArray* fRsnEvents;  // output events in the AliRsnEvent format
69         
70         ClassDef(AliRsnReaderTask, 0); // implementation of RsnReader as AnalysisTaskSE
71 };
72
73 #endif