]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/SPECTRA/AliAnalysisTaskChargedHadronSpectra.h
Changes requested in report #61429: PID: Separating response functions from ESD ...
[u/mrichter/AliRoot.git] / PWG2 / SPECTRA / AliAnalysisTaskChargedHadronSpectra.h
CommitLineData
635c8b48 1#ifndef ALIANALYSISTASKCHARGEDHADRONSPECTRA_H
2#define ALIANALYSISTASKCHARGEDHADRONSPECTRA_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
11class TH1;
12class TH1F;
13class TH2F;
14class TH3F;
15class TList;
16class TObjArray;
17class AliESDEvent;
18class AliESDtrack;
19class AliESDtrackCuts;
20class AliHeader;
10d100d4 21class AliESDpid;
635c8b48 22
23
24#include "AliAnalysisTaskSE.h"
25
26class AliAnalysisTaskChargedHadronSpectra : public AliAnalysisTaskSE {
27 public:
28 AliAnalysisTaskChargedHadronSpectra(const char *name);
29 AliAnalysisTaskChargedHadronSpectra();
30 virtual ~AliAnalysisTaskChargedHadronSpectra() {}
31 //
c77fc043 32 virtual void UserCreateOutputObjects();
33 virtual void UserExec(Option_t *option);
635c8b48 34 virtual void Terminate(Option_t *);
35 //
36 void SetESDtrackCuts(AliESDtrackCuts * trackCuts){fESDtrackCuts = trackCuts;};
37 void SetAlephParameters(const Double_t * parameters){for(Int_t j=0;j<5;j++) fAlephParameters[j] = parameters[j];};
38 void SetIsMCtrue(Bool_t isMCdata = kTRUE){fMCtrue = isMCdata;};
39 //
40 static TH1D * AnalyseClassicProton(const TH3F * input, Int_t EtaBin, const Double_t * AlephParams);
41 static TH1D * AnalyseClassicPion(const TH3F * input, Int_t EtaBin, const Double_t * AlephParams);
42 static TH1D * AnalyseClassicKaon(const TH3F * input, Int_t EtaBin, const Double_t * AlephParams);
43 //
44 static void Postprocess(const TList * ListOfHistogramsMC,const TList * ListOfHistogramsData, const Char_t *filename);
45
46 private:
47 //
48 void BinLogX(const TH1 *h);
49 Int_t GetPythiaEventProcessType(const AliHeader* aHeader, const Bool_t adebug = kFALSE) const;
50 //
51 AliESDEvent *fESD; //! ESD object
c77fc043 52 TList *fListHist; //! list for histograms
635c8b48 53 //
10d100d4 54 AliESDtrackCuts * fESDtrackCuts; // basic cut variables
55 AliESDpid * fESDpid; // basic TPC object for n-sigma cuts
635c8b48 56 Bool_t fMCtrue; // flag if real data or MC is processed
57 Double_t fAlephParameters[5]; // Aleph Parameters for Bethe-Bloch
58 //
59 // MC histogram
60 //
c77fc043 61 TH3F *fHistPtMCKaon; //! (mult,eta,pT) for Kaons MC truth; neg. x-axis for neg. particles, pos. x-axis for pos. particles
62 TH3F *fHistPtMCProton; //! (mult,eta,pT) for Protons MC truth; neg. x-axis for neg. particles, pos. x-axis for pos. particles
63 TH3F *fHistPtMCPion; //! (mult,eta,pT) for Pions MC truth; neg. x-axis for neg. particles, pos. x-axis for pos. particles
64 TH3F *fHistPtMCElectron; //! (mult,eta,pT) for Electrons MC truth; neg. x-axis for neg. particles, pos. x-axis for pos. particles
65 TH3F *fHistPtMCMuon; //! (mult,eta,pT) for Muons MC truth; neg. x-axis for neg. particles, pos. x-axis for pos. particles
635c8b48 66
67 // reconstructed particle histograms
c77fc043 68 TH3F *fHistPtEtaKaon; //! (mult,eta,pT) for Kaons; neg. x-axis for neg. particles, pos. x-axis for pos. particles
69 TH3F *fHistPtEtaKaonNoKink; //! (mult,eta,pT) for Kaons withou accepting the Kink mother; neg. x-axis for neg. particles, pos. x-axis for pos. particles
70 TH3F *fHistPtEtaProton; //! (mult,eta,pT) for Protons; neg. x-axis for neg. particles, pos. x-axis for pos. particles
71 TH3F *fHistPtEtaProtonDCA; //! (DCA,eta,pT) for Protons; neg. x-axis for neg. particles, pos. x-axis for pos. particles; special histogram for protons
72 TH3F *fHistPtEtaPion; //! (mult,eta,pT) for Pions; neg. x-axis for neg. particles, pos. x-axis for pos. particles
73 TH3F *fHistPtEtaElectron; //! (mult,eta,pT) for Electrons; neg. x-axis for neg. particles, pos. x-axis for pos. particles
635c8b48 74 //
c77fc043 75 TH3F *fHistClassicKaon; //! (Pt,eta,delta dEdx) for Kaons for different eta; neg. x-axis for neg. particles, pos. x-axis for pos. particles
76 TH3F *fHistClassicProton; //! (Pt,eta,delta dEdx) for Protons for different eta; neg. x-axis for neg. particles, pos. x-axis for pos. particles
77 TH3F *fHistClassicPion; //! (Pt,eta,delta dEdx) for Pions for different eta; neg. x-axis for neg. particles, pos. x-axis for pos. particles
78 TH3F *fHistClassicElectron; //! (Pt,eta,delta dEdx) for Electrons for different eta; neg. x-axis for neg. particles, pos. x-axis for pos. particles
635c8b48 79
80 // histograms of general interest
c77fc043 81 TH2F *fDeDx; //! dEdx spectrum
82 TH1F *fHistTrackPerEvent; //! tracks per event for multiplicity studies
83 TH2F *fHistTrackPerEventMC; //! (code, TrackPerEvent) MC tracks per event, codes represent different event types (non-diffractive,..)
84 TH2F *fSecProtons; //! control histogram for secondary interactions
85 TH1F *fVertexZ; //! control histogram for the z-position of the vertex
635c8b48 86 //
c77fc043 87 TH2F *fHistEtaNcls; //! 2d histogram (eta, nTPCclusters) which will define our acceptance
88 TH2F *fHistEtaPhi; //! 2d histogram (eta, phi) which will show dead regions
635c8b48 89
90 // histograms for efficiency studies
c77fc043 91 TH3F *fHistEffProton; //! (code,eta,pT) special hist. for eff. studies; code 0: true primary p, 1: true sec. p, 2: misidentified, 3: weak decay sec.
92 TH3F *fHistEffProtonDCA; //! (code,dca,pT) special hist. for eff. studies; code 0: true primary p, 1: true sec. p, 2: misidentified, 3: weak decay sec.
93 TH3F *fHistEffPion; //! (code,eta,pT) special hist. for eff. studies; code 0: true primary pi, 1: true sec. pi, 2: misidentified, 3: weak decay sec., 4: muons
94 TH3F *fHistEffKaon; //! (code,eta,pT) special hist. for eff. studies; code 0: true primary K, 1: true sec. K, 2: misidentified, 3: weak decay sec.
635c8b48 95
96 // two more histograms for the electron background in the dN/dpT paper
c77fc043 97 TH1F *fHighPtElectrons; //! histogram for the electrons at high pT for background estimation in Jacek's paper
98 TH1F *fHighPtHadrons; //! histogram for the hardrons at high pT for background estimation in Jacek's paper
635c8b48 99
100
101 AliAnalysisTaskChargedHadronSpectra(const AliAnalysisTaskChargedHadronSpectra&);
102 AliAnalysisTaskChargedHadronSpectra& operator=(const AliAnalysisTaskChargedHadronSpectra&);
103
10d100d4 104 ClassDef(AliAnalysisTaskChargedHadronSpectra, 2);
635c8b48 105};
106
107#endif