]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/SPECTRA/AliAnalysisTaskDedx.h
Implementing better the kSigma2 approach - dEdx(measured)/dEdx(theory)
[u/mrichter/AliRoot.git] / PWG2 / SPECTRA / AliAnalysisTaskDedx.h
CommitLineData
18b9b487 1#ifndef AliAnalysisTaskDedx_cxx
2#define AliAnalysisTaskDedx_cxx
3
4/* See cxx source for full Copyright notice */
5
6//-----------------------------------------------------------------
7// AliAnalysisTaskDedx class
8// This task is for QAing the dE/dx from the ESD
9// Origin: B.H. Nov2007, hippolyt@in2p3.fr
10//-----------------------------------------------------------------
11
12class TList;
13class TH1F;
14class TH2F;
15
16#include "AliAnalysisTaskSE.h"
17
18class AliAnalysisTaskDedx : public AliAnalysisTaskSE {
19 public:
20 AliAnalysisTaskDedx();
21 AliAnalysisTaskDedx(const char *rName,
22 const Bool_t rAllConstrainedFlag,
23 const Bool_t rMidPseudoRapidityFlag,
24 const Bool_t rSelTrackRemoveKink,
25 const Bool_t rSelTrackWithOnTheFlyV0,
26 const Int_t rSelTrackMinClustersTPC,
27 const Int_t rSelTrackMinClustersITS,
28 const Float_t rSelTrackMaxChi2PerClusterTPC,
29 const Float_t rSelTrackMaxChi2PerClusterITS,
30 const Double_t rSelTrackMaxCov11,
31 const Double_t rSelTrackMaxCov22,
32 const Double_t rSelTrackMaxCov33,
33 const Double_t rSelTrackMaxCov44,
34 const Double_t rSelTrackMaxCov55,
35 const Double_t rSelV0MaxDcaDaughters,
36 const Double_t rSelV0MinDecayLength);
37
38 virtual ~AliAnalysisTaskDedx() {}
39
40 virtual void UserCreateOutputObjects();
41 virtual void UserExec(Option_t *option);
42 virtual void Terminate(Option_t *);
43
44 void SetCollidingSystems(Int_t collidingSystems = 0) {fCollidingSystems = collidingSystems;}
45 void SetAnalysisType(const char* analysisType) {fAnalysisType = analysisType;}
46
47 void SetAllConstrainedFlag(Bool_t allConstrainedFlag = 0) {fAllConstrainedFlag = allConstrainedFlag;}
48 void SetMidPseudoRapidityFlag(Bool_t midPseudoRapidityFlag = 0) {fMidPseudoRapidityFlag = midPseudoRapidityFlag;}
49
50 void SetSelTrackRemoveKink(Bool_t selTrackRemoveKink = 0) {fSelTrackRemoveKink = selTrackRemoveKink;}
51 void SetSelTrackWithOnTheFlyV0(Bool_t selTrackWithOnTheFlyV0 = 0) {fSelTrackWithOnTheFlyV0 = selTrackWithOnTheFlyV0;}
52 void SetSelTrackMinClustersTPC(Int_t selTrackMinClustersTPC = 0) {fSelTrackMinClustersTPC = selTrackMinClustersTPC;}
53 void SetSelTrackMinClustersITS(Int_t selTrackMinClustersITS = 0) {fSelTrackMinClustersITS = selTrackMinClustersITS;}
54 void SetSelTrackMaxChi2PerClusterTPC(Float_t selTrackMaxChi2PerClusterTPC = 0) {fSelTrackMaxChi2PerClusterTPC = selTrackMaxChi2PerClusterTPC;}
55 void SetSelTrackMaxChi2PerClusterITS(Float_t selTrackMaxChi2PerClusterITS = 0) {fSelTrackMaxChi2PerClusterITS = selTrackMaxChi2PerClusterITS;}
56 void SetSelTrackMaxCov11(Double_t selTrackMaxCov11 = 0) {fSelTrackMaxCov11 = selTrackMaxCov11;}
57 void SetSelTrackMaxCov22(Double_t selTrackMaxCov22 = 0) {fSelTrackMaxCov22 = selTrackMaxCov22;}
58 void SetSelTrackMaxCov33(Double_t selTrackMaxCov33 = 0) {fSelTrackMaxCov33 = selTrackMaxCov33;}
59 void SetSelTrackMaxCov44(Double_t selTrackMaxCov44 = 0) {fSelTrackMaxCov44 = selTrackMaxCov44;}
60 void SetSelTrackMaxCov55(Double_t selTrackMaxCov55 = 0) {fSelTrackMaxCov55 = selTrackMaxCov55;}
61 void SetSelV0MaxDcaDaughters(Double_t selV0MaxDcaDaughters = 0) {fSelV0MaxDcaDaughters = selV0MaxDcaDaughters;}
62 void SetSelV0MinDecayLength(Double_t selV0MinDecayLength = 0) {fSelV0MinDecayLength = selV0MinDecayLength;}
63
64 private:
65
66 Bool_t IsAccepted(AliESDtrack *track);
67 // Float_t GetSigmaToVertex(AliESDtrack* esdTrack);
68 TString fAnalysisType; // ESD or AOD
69 Int_t fCollidingSystems; // Colliding systems 0/1 for pp/PbPb
70 TList *fListHist; //! List of histograms
71 TH1F *fHistPtot; //! Ptot spectrum
72 TH1F *fHistMultiplicity; //! Multiplicity distribution
73 TH2F *fHistTPCDedxVsMomentum; //! TPC dE/dx vs momemtum
74 TH2F *fHistITSDedxVsMomentum; //! ITS dE/dx vs momemtum
75 TH1F *fHistMassK0; //! Invariant Mass of K0s
76 TH1F *fHistMassLambda; //! Invariant Mass of Lambda
77 TH1F *fHistMassAntiLambda; //! Invariant Mass of Anti-Lambda
78 TH2F *fHistTPCDedxVsMomPosK0; //! TPC dE/dx vs momemtum for K0 positive daughter
79 TH2F *fHistTPCDedxVsMomNegK0; //! TPC dE/dx vs momemtum for K0 negative daughter
80 TH2F *fHistTPCDedxVsMomPosLambda; //! TPC dE/dx vs momemtum for Lambda positive daughter
81 TH2F *fHistTPCDedxVsMomNegLambda; //! TPC dE/dx vs momemtum for Lambda negative daughter
82 TH2F *fHistTPCDedxVsMomPosAntiLambda; //! TPC dE/dx vs momemtum for Anti-Lambda positive daughter
83 TH2F *fHistTPCDedxVsMomNegAntiLambda; //! TPC dE/dx vs momemtum for Anti-Lambda negative daughter
84 TH1F *fHistDiffInOutMomentum; //! Difference between inner and outer TPC momenta
85 TH1F *fHistDiffPrimOutMomentum; //! Difference between primary and outer TPC momenta
86 TH1F *fHistDiffPrimMeanMomentum; //! Difference between primary and (inner+outer)/2 TPC momenta
87 TH1F *fHistPercPrimMeanMomentum; //! Percentage between primary and (inner+outer)/2 TPC momenta
88 TH1F *fHistPrimEta; //! Pseudorapidity distribution
89 TH2F *fHistPercPrimMeanMomentumVsEta; //! Same as fHistDiffPrimMeanMomentum but vs pseudorapidity
90 TH2F *fHistPercPrimMeanMomentumVsPrim; //! Same as fHistDiffPrimMeanMomentum but vs primary momentum
91
92 TH1F *fHistMultiplicityCuts; //! Same as above but once primary track cuts applied
93 TH2F *fHistTPCDedxVsMomentumCuts; //!
94 TH2F *fHistITSDedxVsMomentumCuts; //!
95 TH1F *fHistMassK0Cuts; //!
96 TH1F *fHistMassLambdaCuts; //!
97 TH1F *fHistMassAntiLambdaCuts; //!
98 TH2F *fHistTPCDedxVsMomPosK0Cuts; //!
99 TH2F *fHistTPCDedxVsMomNegK0Cuts; //!
100 TH2F *fHistTPCDedxVsMomPosLambdaCuts; //!
101 TH2F *fHistTPCDedxVsMomNegLambdaCuts; //!
102 TH2F *fHistTPCDedxVsMomPosAntiLambdaCuts; //!
103 TH2F *fHistTPCDedxVsMomNegAntiLambdaCuts; //!
104 TH1F *fHistDiffInOutMomentumCuts; //!
105 TH1F *fHistDiffPrimOutMomentumCuts; //!
106 TH1F *fHistDiffPrimMeanMomentumCuts; //!
107 TH1F *fHistPercPrimMeanMomentumCuts; //!
108 TH1F *fHistPrimEtaCuts; //!
109 TH2F *fHistPercPrimMeanMomentumVsEtaCuts; //!
110 TH2F *fHistPercPrimMeanMomentumVsPrimCuts; //!
111
112 Bool_t fAllConstrainedFlag; // Primary vertex constrain requirement
113 Bool_t fMidPseudoRapidityFlag; // Mid-eta requirement
114
115 // Track selections: streaming allowed and needed !
116 Bool_t fSelTrackRemoveKink; // Remove kink candidates
117 Bool_t fSelTrackWithOnTheFlyV0; // Select daughter tracks from on-the-fly V0s
118 Int_t fSelTrackMinClustersTPC; // Minimum number of cluster in the TPC
119 Int_t fSelTrackMinClustersITS; // Minimum number of cluster in the ITS
120 Float_t fSelTrackMaxChi2PerClusterTPC; // Maximum chisq per cluster in the TPC
121 Float_t fSelTrackMaxChi2PerClusterITS; // Maximum chisq per cluster in the ITS
122 Double_t fSelTrackMaxCov11; // Maximum value for cov.mat. diag. element
123 Double_t fSelTrackMaxCov22; // Maximum value for cov.mat. diag. element
124 Double_t fSelTrackMaxCov33; // Maximum value for cov.mat. diag. element
125 Double_t fSelTrackMaxCov44; // Maximum value for cov.mat. diag. element
126 Double_t fSelTrackMaxCov55; // Maximum value for cov.mat. diag. element
127 Double_t fSelV0MaxDcaDaughters; // Maximum value for DCA between V0 daughter tracks
128 Double_t fSelV0MinDecayLength; // Minimum value for V0 decay length
129
130 AliAnalysisTaskDedx(const AliAnalysisTaskDedx&); // not implemented
131 AliAnalysisTaskDedx& operator=(const AliAnalysisTaskDedx&); // not implemented
132
133 ClassDef(AliAnalysisTaskDedx, 1);
134};
135
136#endif