]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/SPECTRA/Nuclei/deuteronpA/AliAnalysisDeuteronpA.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / Nuclei / deuteronpA / AliAnalysisDeuteronpA.h
1 #ifndef ALIANALYSISDEUTERONPA_H
2 #define ALIANALYSISDEUTERONPA_H
3
4 //////////////////////////////////////////////////////////////////////////////
5 //                                                                          //
6 // This analysis extracts pT-spectra of charged kaons, protons, and pions.  //
7 // It is based on particles identifation via the dE/dx signal of the TPC.   //
8 //                                                                          //
9 //////////////////////////////////////////////////////////////////////////////
10
11 class TH1;
12 class TH1F;
13 class TH2F;
14 class TH3F;
15 class TList;
16 class TObjArray;
17 class AliESDEvent;
18 class AliESDtrack;
19 class AliESDtrackCuts;
20 class AliHeader;
21 class AliESDpid;
22 class AliAnalysisUtils;
23
24
25 #include "AliAnalysisTaskSE.h"
26 #include "THnSparse.h"
27
28 class AliAnalysisDeuteronpA : public AliAnalysisTaskSE {
29  public:
30   AliAnalysisDeuteronpA(const char *name);
31   AliAnalysisDeuteronpA();
32   virtual ~AliAnalysisDeuteronpA() {}
33   //
34   virtual void   UserCreateOutputObjects();
35   virtual void   UserExec(Option_t *option);
36   virtual void   Terminate(Option_t *);
37   //
38   void           SetESDtrackCuts(AliESDtrackCuts * trackCuts){fESDtrackCuts = trackCuts;};
39   void           SetAlephParameters(const Double_t * parameters){for(Int_t j=0;j<5;j++) fAlephParameters[j] = parameters[j]; Initialize();};
40   void           SetIsMCtrue(Bool_t isMCdata = kTRUE){fMCtrue = isMCdata;};
41   void           SetRapCMSpA(Bool_t isRapCMSpA = kTRUE){fRapCMSpA = isRapCMSpA;};
42   //
43   void           Initialize();
44   //
45   
46  private:
47   //
48   void  BinLogAxis(const TH1 *h);
49   //
50   AliESDEvent *fESD;                   //! ESD object
51   TList       *fListHist;              //! list for histograms
52   //
53   AliESDtrackCuts * fESDtrackCuts;     // basic cut variables
54   AliESDtrackCuts * fESDTrackCutsMult; // cuts for the MULTIPLICITY DETERMINATION
55   AliESDpid       * fESDpid;           // basic TPC object for n-sigma cuts
56   Bool_t        fMCtrue;               // flag if real data or MC is processed
57   Bool_t        fRapCMSpA;             // flag if shift to CMS_NN system for pA
58   Double_t      fAlephParameters[5];   // Aleph Parameters for Bethe-Bloch
59   AliAnalysisUtils  *fUtils;           // For vertex cut and pileup rejection
60   //
61   //
62   //
63   THnSparseF * fHistRealTracks;        //! histogram with all necessary information for real tracks
64   THnSparseF * fHistMCparticles;       //! histogram with all necessary information for MC particles
65   //
66   TH3F       * fHistPidQA;             //! histogram for the QA of the PID
67   TH2F       * fHistTofQA;             //! histogram for the QA of the PID
68   TH2F       * fHistMult;              //! control histogram for multiplicity
69   TH1F       * fHistCentrality;        //! control histogram for centrality
70   TH2F       * fHistMomCorr;           //! histogram for momentum and rapidity correction due to wrong propagation mass
71   TH3F       * fHistEtaPtGen;          //! histogram for rapidity correction due to cuts on generation level
72   TH2F       * fHistVertex;            //! histogram to monitor the vertex position and resolution
73   TH1F       * fHistVertexRes;         //! histogram for difference between MC truth and rec vertex z position
74   TH2F       * fHistVertexResTracks;   //! histogram to control vertex positon vs no. of primary tracks
75   //
76   AliAnalysisDeuteronpA(const AliAnalysisDeuteronpA&); 
77   AliAnalysisDeuteronpA& operator=(const AliAnalysisDeuteronpA&); 
78
79   ClassDef(AliAnalysisDeuteronpA, 1); 
80 };
81
82 #endif