removed duplications in AlidNdPtHelper and AliPWG0Helper and small changes
[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 "AliPWG0Helper.h"
19 #include "AlidNdPtHelper.h"
20
21 class AlidNdPt : public TNamed {
22 public:
23   AlidNdPt(); 
24   AlidNdPt(Char_t* name, Char_t* title);
25   ~AlidNdPt();
26
27   // Init data members
28   virtual void Init() = 0;
29
30   // Process events
31   virtual void Process(AliESDEvent *const esdEvent=0, AliMCEvent *const mcEvent=0) = 0;
32
33   // Merge output objects (needed by PROOF) 
34   virtual Long64_t Merge(TCollection* list=0) = 0;
35
36   // Analyse output histograms 
37   virtual void Analyse() = 0;
38
39   // Export analysed output objects to folder
40   virtual TFolder *ExportToFolder(TObjArray * array=0) = 0;
41
42   //
43   AlidNdPt(const AlidNdPt&); // not implemented
44   AlidNdPt& operator=(const AlidNdPt&); // not implemented
45
46   //
47   void SetEventCuts(AlidNdPtEventCuts* const cuts)              { fdNdPtEventCuts = cuts; }
48   void SetAcceptanceCuts(AlidNdPtAcceptanceCuts* const cuts)    { fdNdPtAcceptanceCuts = cuts; }
49   void SetTrackCuts(AliESDtrackCuts* const cuts)                { fEsdTrackCuts = cuts; }
50   void SetUseMCInfo(const Bool_t info)                          { fUseMCInfo = info; }
51   void SetAnalysisMode(const AlidNdPtHelper::AnalysisMode mode) { fAnalysisMode = mode; }
52   void SetTrigger(const AliPWG0Helper::Trigger trigger)         { fTrigger = trigger; }
53
54   AlidNdPtEventCuts* GetEventCuts() const                       { return fdNdPtEventCuts; }
55   AlidNdPtAcceptanceCuts* GetAcceptanceCuts() const             { return fdNdPtAcceptanceCuts; }
56   AliESDtrackCuts* GetTrackCuts() const                         { return fEsdTrackCuts; }
57   Bool_t IsUseMCInfo() const                                    { return fUseMCInfo; }
58   AlidNdPtHelper::AnalysisMode GetAnalysisMode() const          { return fAnalysisMode; }
59   AliPWG0Helper::Trigger GetTrigger() const                     { return fTrigger; }
60
61 private:
62
63   AlidNdPtEventCuts      *fdNdPtEventCuts;      // event cuts
64   AlidNdPtAcceptanceCuts *fdNdPtAcceptanceCuts; // acceptance cuts
65   AliESDtrackCuts *fEsdTrackCuts;               // esd track cuts
66
67   Bool_t fUseMCInfo;                            // use MC information
68   AlidNdPtHelper::AnalysisMode fAnalysisMode;   // analysis mode TPC only, TPC + ITS
69   AliPWG0Helper::Trigger fTrigger;              // trigger definition MB1, MB2 ...
70
71   ClassDef(AlidNdPt,1);
72 };
73
74 #endif