1 #ifndef ALIANALYSISTASKPIDCORR_H
2 #define ALIANALYSISTASKPIDCORR_H
13 class AliEventPoolManager;
14 class AliPIDCorrParticle;
17 #include <TObject.h> //PIDCorrParticle is a derived class from"TObject"
19 #ifndef ALIANALYSISTASKSE_H
20 #include "AliAnalysisTaskSE.h"
23 class AliAnalysisTaskPIDCORR : public AliAnalysisTaskSE {
25 AliAnalysisTaskPIDCORR();
26 AliAnalysisTaskPIDCORR(const char *name);
27 virtual ~AliAnalysisTaskPIDCORR();
29 virtual void UserCreateOutputObjects();
30 virtual void UserExec(Option_t *option);
31 virtual void Terminate(Option_t *);
35 Bool_t SelectEvent(AliAODVertex *vertex);
36 Int_t ClassifyTrack(AliAODTrack* track);
38 void FillGlobalTracksArray();
39 AliAODTrack* GetGlobalTrack(Int_t trackIndx);
40 Double_t PhiRange(Double_t DPhi);
41 Bool_t GetTrackStatus(AliAODTrack *track);
42 Int_t GetTriggerPtBin(AliAODTrack *track);
43 Bool_t TwoTrackEfficiency(AliAODTrack *Trig,AliAODTrack *Asso,Float_t TwoTrackEfficiencyCut,Float_t BSign);
44 Bool_t TwoTrackEfficiencyBg(AliAODTrack *Trig,AliPIDCorrParticle *Asso,Float_t TwoTrackEfficiencyCut,Float_t BSign);
45 Float_t GetDPhiStar(Float_t phi1, Float_t pt1, Float_t charge1, Float_t phi2, Float_t pt2, Float_t charge2, Float_t radius, Float_t BSign);
50 AliAODVertex *fAODVertex;
51 AliPIDResponse *fPIDResponse;
55 TH1F *fHistNSigmaTPCPion[10];
56 TH2F *fDihadronCorrelation[10];
57 TH2F *fDihadronCorrelationPion[10];
58 TH2F *fDihadronCorrelationProtonKaon[10];
60 TH2F *fMixedEvent[10];
62 TH2F *fMixedProtonKaon[10];
65 TH1F *fTriggerPhiPion;
66 TH1F *fTriggerPhiKaonProton;
69 TH1F *fTriggerEtaPion;
70 TH1F *fTriggerEtaKaonProton;
77 TObjArray *fGlobalTracks;
78 TClonesArray *fArrayMC;
82 TH1F *fHistNSProton[3];
86 TH1F *fHistASProton[3];
90 TH1F *fHistBgProton[3];
92 TH1F *fHistBulkAll[3];
93 TH1F *fHistBulkPion[3];
94 TH1F *fHistBulkProton[3];
97 void DefineEventPool();
98 TObjArray *AcceptTracksforMixing(AliAODEvent *event);
99 AliEventPoolManager *fPoolMgr;
101 //Introduce Correction Factor
102 Float_t GetEtaCorrectionFactorAsso(Double_t Eta);
103 Float_t GetEtaCorrectionFactorTrigAll(Double_t Eta);
104 Float_t GetEtaCorrectionFactorTrigPion(Double_t Eta);
105 Float_t GetEtaCorrectionFactorTrigProton(Double_t Eta);
106 Float_t EffEtaTrigPr;
107 Float_t EffEtaTrigPi;
108 Float_t EffEtaTrigAll;
110 //Identifying Associated
111 void IdentifyAssociated(Double_t ETA_trig,Double_t PHI_trig,Bool_t kPION,Bool_t kPROTON,AliAODTrack *track);
112 Int_t GetTOFPID(AliAODTrack *track);
113 Int_t GetTPCTOFPID(AliAODTrack *track);
114 Bool_t CheckTOF(AliVTrack *track);
119 // NEW HISTO to be declared here
121 AliAnalysisTaskPIDCORR(const AliAnalysisTaskPIDCORR&); // not implemented
122 AliAnalysisTaskPIDCORR& operator=(const AliAnalysisTaskPIDCORR&); // not implemented
124 ClassDef(AliAnalysisTaskPIDCORR, 1); // example of analysis
129 class AliPIDCorrParticle : public TObject
132 AliPIDCorrParticle(Float_t eta, Float_t phi, Float_t pt, Short_t charge)
133 : fEta(eta), fPhi(phi), fpT(pt), fCharge(charge)
137 virtual Double_t Pt() const { return fpT; }
139 virtual Double_t Phi() const { return fPhi; }
142 virtual Double_t Eta() const { return fEta; }
145 virtual Short_t Charge() const { return fCharge; }
148 ~AliPIDCorrParticle() {}
150 AliPIDCorrParticle(const AliPIDCorrParticle&); // not implemented
151 AliPIDCorrParticle& operator=(const AliPIDCorrParticle&); // not implemented
155 Short_t fCharge; // charge
157 ClassDef( AliPIDCorrParticle, 1); // class which contains only quantities requires for this analysis to reduce memory consumption for event mixing