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