03c7951db26a3f19ab07b1416418066ffd9a9adf
[u/mrichter/AliRoot.git] / PWG0 / dNdPt / AlidNdPt.h
1 #ifndef ALIDNDPT_H
2 #define ALIDNDPT_H
3
4 //------------------------------------------------------------------------------
5 // Abstract class for dNdPt analysis. All dNdPt components should derive from it.   
6 // 
7 // Author: J.Otwinowski 03/11/2008 
8 //------------------------------------------------------------------------------
9
10 class AliESDEvent; 
11 class AliMCEvent; 
12 class AliESDtrackCuts; 
13 class AlidNdPtEventCuts;
14 class AlidNdPtAcceptanceCuts;
15
16 #include "TNamed.h"
17 #include "TFolder.h"
18 #include "AlidNdPtHelper.h"
19
20 class AlidNdPt : public TNamed {
21 public:
22   AlidNdPt(); 
23   AlidNdPt(Char_t* name, Char_t* title);
24   ~AlidNdPt();
25
26   // Init data members
27   virtual void Init() = 0;
28
29   // Process events
30   virtual void Process(AliESDEvent *const esdEvent=0, AliMCEvent *const mcEvent=0) = 0;
31
32   // Merge output objects (needed by PROOF) 
33   virtual Long64_t Merge(TCollection* list=0) = 0;
34
35   // Analyse output histograms 
36   virtual void Analyse() = 0;
37
38   // Export analysed output objects to folder
39   virtual TFolder *ExportToFolder(TObjArray * array=0) = 0;
40
41   //
42   AlidNdPt(const AlidNdPt&); // not implemented
43   AlidNdPt& operator=(const AlidNdPt&); // not implemented
44
45   //
46   void SetEventCuts(AlidNdPtEventCuts* const cuts) { fdNdPtEventCuts = cuts; }
47   void SetAcceptanceCuts(AlidNdPtAcceptanceCuts* const cuts) { fdNdPtAcceptanceCuts = cuts; }
48   void SetTrackCuts(AliESDtrackCuts* const cuts) { fEsdTrackCuts = cuts; }
49   void SetUseMCInfo(Bool_t info) { fUseMCInfo = info; }
50   void SetAnalysisMode(AlidNdPtHelper::AnalysisMode mode) { fAnalysisMode = mode; }
51   void SetTrigger(AlidNdPtHelper::Trigger trigger) { fTrigger = trigger; }
52
53   AlidNdPtEventCuts* GetEventCuts() const { return fdNdPtEventCuts; }
54   AlidNdPtAcceptanceCuts* GetAcceptanceCuts() const { return fdNdPtAcceptanceCuts; }
55   AliESDtrackCuts* GetTrackCuts() const { return fEsdTrackCuts; }
56   Bool_t IsUseMCInfo() { return fUseMCInfo; }
57   AlidNdPtHelper::AnalysisMode GetAnalysisMode() { return fAnalysisMode; }
58   AlidNdPtHelper::Trigger GetTrigger() { return fTrigger; }
59
60 private:
61
62   AlidNdPtEventCuts      *fdNdPtEventCuts;      // event cuts
63   AlidNdPtAcceptanceCuts *fdNdPtAcceptanceCuts; // acceptance cuts
64   AliESDtrackCuts *fEsdTrackCuts;               // esd track cuts
65
66   Bool_t fUseMCInfo;                            // use MC information
67   AlidNdPtHelper::AnalysisMode fAnalysisMode;   // analysis mode TPC only, TPC + ITS
68   AlidNdPtHelper::Trigger fTrigger;             // trigger definition MB1, MB2 ...
69
70   ClassDef(AlidNdPt,1);
71 };
72
73 #endif