1 #ifndef ALIANALYSISTASKPWG4PidDetEx_H
2 #define ALIANALYSISTASKPWG4PidDetEx_H
9 #include "AliAnalysisTaskSE.h"
10 #include "AliAODEvent.h"
11 #include "AliESDEvent.h"
12 #include "AliAnalysisFilter.h"
14 class AliAnalysisTaskPWG4PidDetEx : public AliAnalysisTaskSE {
16 enum TriggerMode {kMB1, kMB2, kSPDFASTOR};
18 AliAnalysisTaskPWG4PidDetEx();
19 AliAnalysisTaskPWG4PidDetEx(const char *name);
20 virtual ~AliAnalysisTaskPWG4PidDetEx();
22 virtual void UserCreateOutputObjects();
23 virtual void UserExec(Option_t *option);
24 virtual void Terminate(Option_t *);
26 virtual void SetTrackFilter(AliAnalysisFilter* trackF) {fTrackFilter = trackF;}
27 void SetAnalysisType(const char* analysisType) {fAnalysisType = analysisType;}
28 void SetTriggerMode(TriggerMode triggermode) {fTriggerMode = triggermode;}
29 void SetMC(Bool_t analysisMC){fAnalysisMC = analysisMC;}
30 void SetPtCut(Double_t ptCut){fPtCut = ptCut;}
31 void SetEtaCut(Double_t etaCut){fEtaCut = etaCut;}
33 Bool_t IsEventTriggered(AliVEvent* ev, TriggerMode trigger);
35 void AnalyzeESD(AliESDEvent* esd);
36 void AnalyzeAOD(AliAODEvent* aod);
39 AliAnalysisTaskPWG4PidDetEx(const AliAnalysisTaskPWG4PidDetEx&);
40 AliAnalysisTaskPWG4PidDetEx& operator=(const AliAnalysisTaskPWG4PidDetEx&);
42 Double_t IntegratedLength(AliVTrack* track) const;
43 Double_t MassSquared (AliVTrack* track) const;
44 Double_t KaonDecay (AliVTrack* track) const;
46 static const Double_t fgkCtau; // distance for kaon decay
47 static const Double_t fgkPionMass; // pion mass
48 static const Double_t fgkKaonMass; // kaon mass
49 static const Double_t fgkProtonMass; // proton mass
52 AliESDEvent* fESD; //! ESD object
53 AliAODEvent* fAOD; //! AOD object
54 TList* fListOfHists; //! Output list of histograms
55 Double_t fEtaCut; // Eta cut used to select particles
56 Double_t fPtCut; // pT cut used to select particles
57 Int_t fXbins; // #bins for Pt histos range
58 Double_t fXmin; // min X value for histo range
59 Double_t fTOFCutP; // max X value for histo range; also the p cut used in TOF for PID
61 AliAnalysisFilter* fTrackFilter; // Track Filter
62 Bool_t fAnalysisMC; // Flag for MC analysis
63 TString fAnalysisType; // "ESD" or "AOD"
64 TriggerMode fTriggerMode; // Trigger mode
68 TH1I* fEvents; //! #analyzed events
69 TH1F* fEffTot; //! pT for all charged particles
70 TH1F* fEffPID; //! pT for charged particles with TOF signal
71 TH1F* fAccP; //! pT for charged particles with p < fTOFCutP
72 TH1F* fAccPt; //! pT for charged particles with pT < fTOFCutP
73 TProfile* fKaonDecayCorr; //! decay correction for Kaons
74 TH1F* fdNdPt; //! pT dist (Rec)
75 TH2F* fMassAll; //! mass calculated from TOF vs p
76 TH1F* fdNdPtPion; //! pT for pions identified with TOF
77 TH2F* fMassPion; //! mass for pions identified with TOF
78 TH2F* fdEdxTPCPion; //! dE/dx vs p (TPC) for pions identified with TOF
79 TH2F* fbgTPCPion; //! dE/dx vs betagamma (TPC) for pions identified with TOF
80 TH1F* fdNdPtKaon; //! pT for kaons identified with TOF
81 TH2F* fMassKaon; //! mass for kaons identified with TOF
82 TH2F* fdEdxTPCKaon; //! dE/dx vs p (TPC) for kaons identified with TOF
83 TH2F* fbgTPCKaon; //! dE/dx vs betagamma (TPC) for kaons identified with TOF
84 TH1F* fdNdPtProton; //! pT for protons identified with TOF
85 TH2F* fMassProton; //! mass for protons identified with TOF
86 TH2F* fdEdxTPCProton; //! dE/dx vs p (TPC) for protons identified with TOF
87 TH2F* fbgTPCProton; //! dE/dx vs betagamma (TPC) for protons identified with TOF
88 TH1F* fdNdPtMC; //! pT dist (MC)
89 TH1F* fdNdPtMCPion; //! pT dist for pions (MC)
90 TH1F* fdNdPtMCKaon; //! pT dist for kaons (MC)
91 TH1F* fdNdPtMCProton; //! pT dist for protons (MC)
93 ClassDef(AliAnalysisTaskPWG4PidDetEx, 1); //Analysis task for PWG4 PID using detector signals