1 #ifndef ALIANALYSISTASKCHARGEDHADRONSPECTRA_H
2 #define ALIANALYSISTASKCHARGEDHADRONSPECTRA_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;
24 #include "AliAnalysisTaskSE.h"
25 #include "THnSparse.h"
27 class AliAnalysisCombinedHadronSpectra : public AliAnalysisTaskSE {
29 AliAnalysisCombinedHadronSpectra(const char *name);
30 AliAnalysisCombinedHadronSpectra();
31 virtual ~AliAnalysisCombinedHadronSpectra() {}
33 virtual void UserCreateOutputObjects();
34 virtual void UserExec(Option_t *option);
35 virtual void Terminate(Option_t *);
37 Bool_t SelectOnImpPar(AliESDtrack* t);
39 void SetESDtrackCuts(AliESDtrackCuts * trackCuts){fESDtrackCuts = trackCuts;};
40 void SetAlephParameters(const Double_t * parameters){for(Int_t j=0;j<5;j++) fAlephParameters[j] = parameters[j]; Initialize();};
41 void SetIsMCtrue(Bool_t isMCdata = kTRUE){fMCtrue = isMCdata;};
42 void SetUseHBTmultiplicity(Bool_t useHBTmultiplicity = kTRUE){fUseHBTmultiplicity = useHBTmultiplicity;};
43 void SetUseTPConlyTracks(Bool_t useTPConlyTracks = kTRUE){fUseTPConlyTracks = useTPConlyTracks;};
44 void SetSaveMotherPDG(Bool_t saveMotherPDG =kTRUE){fSaveMotherPDG = saveMotherPDG;};
50 void BinLogAxis(const TH1 *h);
51 Int_t GetPythiaEventProcessType(const AliHeader* aHeader, const Bool_t adebug = kFALSE) const;
53 AliESDEvent *fESD; //! ESD object
54 TList *fListHist; //! list for histograms
56 AliESDtrackCuts * fESDtrackCuts; // basic cut variables
57 AliESDtrackCuts * fESDTrackCutsMult; // cuts for the MULTIPLICITY DETERMINATION
58 AliESDpid * fESDpid; // basic TPC object for n-sigma cuts
59 Bool_t fMCtrue; // flag if real data or MC is processed
60 Bool_t fOnlyQA; // flag if only QA histograms should be filled
61 Bool_t fUseHBTmultiplicity; // flag if multiplicity determination should be done as in the HBT paper
62 Bool_t fUseTPConlyTracks; // flag if TPConly-track should be used
63 Bool_t fSaveMotherPDG; // flag if PDG of mother should be saved (weak decays)
64 Double_t fAlephParameters[5]; // Aleph Parameters for Bethe-Bloch
68 THnSparseF * fHistRealTracks; //! histogram with all necessary information for real tracks
69 THnSparseF * fHistMCparticles; //! histogram with all necessary information for MC particles
71 TH3D * fHistPidQA; //! histogram for the QA of the PID
72 TH2D * fHistMult; //! control histogram for multiplicity
73 TH1D * fHistCentrality; //! control histogram for centrality
75 AliAnalysisCombinedHadronSpectra(const AliAnalysisCombinedHadronSpectra&);
76 AliAnalysisCombinedHadronSpectra& operator=(const AliAnalysisCombinedHadronSpectra&);
78 ClassDef(AliAnalysisCombinedHadronSpectra, 1);