1 #ifndef ALIANALYSISTASKCHARGEDHADRONSPECTRA2MC_H
2 #define ALIANALYSISTASKCHARGEDHADRONSPECTRA2MC_H
4 //////////////////////////////////////////////////////////////////////////////
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. //
9 //////////////////////////////////////////////////////////////////////////////
19 class AliESDtrackCuts;
22 #include "AliTOFT0v1.h"
23 #include "AliTOFT0maker.h"
24 #include "AliTOFcalib.h"
25 #include "AliCDBManager.h"
28 class AliAnalysisFilter;
32 #include "AliAnalysisTask.h"
33 #include "AliESDVertex.h"
34 #include "AliPhysicsSelectionTask.h"
35 #include "AliPhysicsSelection.h"
36 #include "AliBackgroundSelection.h"
37 #include "AliTOFT0v1.h"
38 #include "AliTOFT0maker.h"
39 #include "AliTOFcalib.h"
40 #include "AliCDBManager.h"
44 #include "AliAnalysisTaskSE.h"
45 #include "THnSparse.h"
47 class AliAnalysisCombinedHadronSpectra2MC : public AliAnalysisTaskSE {
49 AliAnalysisCombinedHadronSpectra2MC(const char *name);
50 AliAnalysisCombinedHadronSpectra2MC();
51 virtual ~AliAnalysisCombinedHadronSpectra2MC() {}
53 virtual void UserCreateOutputObjects();
54 virtual void UserExec(Option_t *option);
55 virtual void Terminate(Option_t *);
58 void SetESDtrackCuts(AliESDtrackCuts * trackCuts){fESDtrackCuts = trackCuts;};
59 //void SetAlephParameters(const Double_t * parameters){for(Int_t j=0;j<5;j++) fAlephParameters[j] = parameters[j]; Initialize();};
67 //void BinLogAxis(const THnSparse *h, Int_t axisNumber);
70 AliESDEvent *fESD; //! ESD object
71 TList *fListHist; //! list for histograms
73 AliESDtrackCuts * fESDtrackCuts; // basic cut variables
74 AliESDpid * fESDpid; // basic TPC object for n-sigma cuts
75 Bool_t fMCtrue; // flag if real data or MC is processed
76 Double_t fAlephParameters[5]; // Aleph Parameters for Bethe-Bloch
84 Double_t timeResolution;
91 AliTOFcalib *tofCalib;
92 AliTOFT0maker *t0maker;
93 Int_t fMCtracks; // n MC trk
94 Int_t fMCPrimaries; // MC primaries
95 Double_t fT0TOF0; // best t0
96 Double_t fT0TOF1; // sigma best t0 in ps
97 Double_t fT0TOF2; // t0 fill
98 Double_t fT0TOF3; // n TOF tracks
99 Double_t fT0TOF4; // TOF t0
100 Double_t fT0TOF5; // TOF t0 sigma
101 Double_t fT0TOF6; // sigma t0 fill
102 Double_t fT0TOF7; // n TOF tracks used for T0
103 Double_t XPrimVertex;
104 Double_t YPrimVertex;
105 Double_t ZPrimVertex;
106 Int_t NContrPrimVertex;
131 Double_t ftofz; // local z of track's impact on the TOF pad
132 Double_t ftofx;// local x of track's impact on the TOF pad
143 Int_t fTimeZeroType; // flag to select timeZero type
152 Double_t treeMCPtBis;
153 Double_t treeMCEtaBis;
154 Double_t treeMCPhiBis;
156 Float_t t0trackSigma;
164 TH1D* resx; TH1D * resz; TH1D * tofres; TH1D * tofresTOF; TH1D * tofresgood;
166 TH1F* hNumMatchPos; TH1F* hNumMatchNeg; TH1F* hDenMatch;
168 TH1F*hNumMatchPip; TH1F*hNumMatchPim; TH1F*hNumMatchKap; TH1F*hNumMatchKam; TH1F*hNumMatchPrp; TH1F*hNumMatchPrm; TH1F*hDenMatchPip; TH1F*hDenMatchPim; TH1F*hDenMatchKap; TH1F*hDenMatchKam; TH1F*hDenMatchPrp; TH1F*hDenMatchPrm;
171 TH1F* hDenMatchPos; TH1F* hDenMatchNeg; TH1F* hNumMatchEta; TH1F* hNumMatchPosEta; TH1F* hNumMatchNegEta; TH1F* hDenMatchEta; TH1F* hDenMatchPosEta; TH1F* hDenMatchNegEta; TH1F* hNumMatchphiOut; TH1F* hNumMatchPosphiOut; TH1F* hNumMatchNegphiOut; TH1F* hDenMatchphiOut; TH1F* hDenMatchPosphiOut; TH1F* hDenMatchNegphiOut; TH1F* hNumMatchEtaPtMa; TH1F* hNumMatchPosEtaPtMa; TH1F* hNumMatchNegEtaPtMa; TH1F* hDenMatchEtaPtMa; TH1F* hDenMatchPosEtaPtMa; TH1F* hDenMatchNegEtaPtMa; TH1F* hNumMatchphiOutPtMa; TH1F* hNumMatchPosphiOutPtMa; TH1F* hNumMatchNegphiOutPtMa; TH1F* hDenMatchphiOutPtMa; TH1F* hDenMatchPosphiOutPtMa; TH1F* hDenMatchNegphiOutPtMa; TH1F* hNumMatchTRDOut; TH1F* hNumMatchPosTRDOut; TH1F* hNumMatchNegTRDOut; TH1F* hDenMatchTRDOut; TH1F* hDenMatchPosTRDOut; TH1F* hDenMatchNegTRDOut; TH1F* hNumMatchNoTRDOut; TH1F* hNumMatchPosNoTRDOut; TH1F* hNumMatchNegNoTRDOut; TH1F* hDenMatchNoTRDOut; TH1F* hDenMatchPosNoTRDOut; TH1F* hDenMatchNegNoTRDOut; TH1F* hNumMatchTPCpip; TH1F* hNumMatchTPCkap; TH1F* hNumMatchTPCprp; TH1F* hDenMatchTPCpip; TH1F* hDenMatchTPCkap; TH1F* hDenMatchTPCprp; TH1F* hNumMatchTPCpim; TH1F* hNumMatchTPCkam; TH1F* hNumMatchTPCprm; TH1F* hDenMatchTPCpim; TH1F* hDenMatchTPCkam; TH1F* hDenMatchTPCprm;
174 TH1F* hNumMatchMultTrkTRDOut[7][6];
175 TH1F* hDenMatchMultTrkTRDOut[7][6];
176 TH1F* hDenTrkMultTrkTRDOut[7][6];
177 TH1F* hNumMatchMultTrkNoTRDOut[7][6];
178 TH1F* hDenMatchMultTrkNoTRDOut[7][6];
179 TH1F* hDenTrkMultTrkNoTRDOut[7][6];
181 TH1F *hNumMatchMultTrk[7][6];
182 TH1F *hDenMatchMultTrk[7][6];
183 TH1F *hDenTrkMultTrk[7][6];
184 TH1F *hNumMatchMultSPD[7][6];
185 TH1F *hDenMatchMultSPD[7][6];
186 TH1F *hDenTrkMultSPD[7][6];
188 TH1F *hNumMatchMultTrkInc[7][2];
189 TH1F *hDenMatchMultTrkInc[7][2];
190 TH1F *hNumMatchMultSPDInc[7][2];
191 TH1F *hDenMatchMultSPDInc[7][2];
192 TH1F* hDenTrkVertMultTrk[6];
194 TH1F* hDenTrkTriggerMultTrk[6];
197 AliAnalysisCombinedHadronSpectra2MC(const AliAnalysisCombinedHadronSpectra2MC&);
198 AliAnalysisCombinedHadronSpectra2MC & operator=(const AliAnalysisCombinedHadronSpectra2MC&);
200 ClassDef(AliAnalysisCombinedHadronSpectra2MC, 1);