Fix for CMake
[u/mrichter/AliRoot.git] / PWG0 / multiplicity / AliMultiplicityTask.h
1 /* $Id$ */
2
3 #ifndef AliMultiplicityTask_H
4 #define AliMultiplicityTask_H
5
6 #include "AliAnalysisTask.h"
7
8 #include <TString.h>
9 #include "AliPWG0Helper.h"
10
11 class AliESDtrackCuts;
12 class AliMultiplicityCorrection;
13 class TNtuple;
14 class AliCorrection;
15 class TH1;
16 class TH1D;
17 class AliESDEvent;
18
19 class AliMultiplicityTask : public AliAnalysisTask {
20   public:
21     AliMultiplicityTask(const char* opt = "");
22     virtual ~AliMultiplicityTask();
23
24     virtual void   ConnectInputData(Option_t *);
25     virtual void   CreateOutputObjects();
26     virtual void   Exec(Option_t*);
27     virtual void   Terminate(Option_t *);
28
29     void SetTrackCuts(AliESDtrackCuts* cuts) { fEsdTrackCuts = cuts; }
30     void SetPtSpectrum(TH1D* hist) { fPtSpectrum = hist; }
31
32     void SetAnalysisMode(AliPWG0Helper::AnalysisMode mode) { fAnalysisMode = mode; }
33     void SetTrigger(AliPWG0Helper::Trigger trigger) { fTrigger = trigger; }
34     void SetDeltaPhiCut(Float_t cut) { fDeltaPhiCut = cut; }
35
36     void SetReadMC(Bool_t flag = kTRUE) { fReadMC = flag; }
37     void SetUseMCVertex(Bool_t flag = kTRUE) { fUseMCVertex = flag; }
38
39  protected:
40     AliESDEvent *fESD;    //! ESD object
41
42     TString fOption;      // option string
43     AliPWG0Helper::AnalysisMode fAnalysisMode; // detector that is used for analysis
44     AliPWG0Helper::Trigger fTrigger;           // trigger that is used
45     Float_t fDeltaPhiCut;                      // cut in delta phi (only SPD)
46
47     Bool_t  fReadMC;       // if true reads MC data (to build correlation maps)
48     Bool_t  fUseMCVertex;  // the MC vtx is used instead of the ESD vertex (for syst. check)
49
50     AliMultiplicityCorrection* fMultiplicity; //! object containing the extracted data
51     AliESDtrackCuts* fEsdTrackCuts;           // Object containing the parameters of the esd track cuts
52
53     Bool_t fSystSkipParticles;     //! if true skips particles (systematic study)
54     AliCorrection* fParticleCorrection[8]; //! correction from measured to generated particles for different particles for trigger, vertex sample in |eta| < 2; switch on with "particle-efficiency"
55                                            // for each of the species (0..3): pi, k, p, other; for systematic study of pt cut off
56                                            // 4..7 counts for the same species the decayed particles (in generated) and stopped (in measured)
57     Int_t fSelectProcessType;        //! 0 = all (default), 1 = ND, 2 = SD, 3 = DD (for systematic study)
58     TNtuple *fParticleSpecies;       //! per event: vtx_mc, (pi, k, p, rest (in |eta| < 1)) X (true, recon) + (nolabel,
59                                      // doubleTracks, doublePrimaries) [doubleTracks + doublePrimaries are already part of
60                                      // rec. particles!); enable with: particle-species
61     TH1* fdNdpT;                     //! true pT spectrum (MC)
62
63     TH1D* fPtSpectrum;               // function that modifies the pt spectrum (syst. study)
64
65     TList* fOutput;                  //! list send on output slot 0
66     
67  private:
68     AliMultiplicityTask(const AliMultiplicityTask&);
69     AliMultiplicityTask& operator=(const AliMultiplicityTask&);
70
71   ClassDef(AliMultiplicityTask, 1);
72 };
73
74 #endif