ROOT logo
#ifndef ALIANALYSISTASKPIDCORR_H
#define ALIANALYSISTASKPIDCORR_H

class TH1F;
class TH2F;
class TList;
class TObjArray;
class AliAODEvent;
class AliAODVertex;
class AliAODTrack;
class AliPIDResponse;
class AliPID;
class AliEventPoolManager;
class AliPIDCorrParticle;


#include <TObject.h> //PIDCorrParticle is a derived class from"TObject"

#ifndef ALIANALYSISTASKSE_H
#include "AliAnalysisTaskSE.h"
#endif

class AliAnalysisTaskPIDCORR : public AliAnalysisTaskSE {
 public:
    AliAnalysisTaskPIDCORR();
    AliAnalysisTaskPIDCORR(const char *name);
    virtual ~AliAnalysisTaskPIDCORR();
    
    virtual void     UserCreateOutputObjects();
    virtual void     UserExec(Option_t *option);
    virtual void     Terminate(Option_t *);
    
 private:

 Bool_t SelectEvent(AliAODVertex *vertex);
 Int_t ClassifyTrack(AliAODTrack* track);

 void FillGlobalTracksArray();
 AliAODTrack* GetGlobalTrack(Int_t trackIndx);
 Double_t PhiRange(Double_t DPhi);
 Bool_t GetTrackStatus(AliAODTrack *track);
 Int_t GetTriggerPtBin(AliAODTrack *track);
 Bool_t TwoTrackEfficiency(AliAODTrack *Trig,AliAODTrack *Asso,Float_t TwoTrackEfficiencyCut,Float_t BSign);
 Bool_t TwoTrackEfficiencyBg(AliAODTrack *Trig,AliPIDCorrParticle *Asso,Float_t TwoTrackEfficiencyCut,Float_t BSign);
 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);

 
    
AliAODEvent    *fAOD;
AliAODVertex   *fAODVertex;
AliPIDResponse *fPIDResponse;
TList          *fOutputList;
TH1F           *fHistPt;
TH2F           *fHistdEdx;
TH1F           *fHistNSigmaTPCPion[10];
TH2F           *fDihadronCorrelation[10];
TH2F           *fDihadronCorrelationPion[10];
TH2F           *fDihadronCorrelationProtonKaon[10];

TH2F           *fMixedEvent[10];
TH2F           *fMixedPion[10];
TH2F           *fMixedProtonKaon[10];

TH1F           *fTriggerPhiAll;
TH1F           *fTriggerPhiPion;
TH1F           *fTriggerPhiKaonProton;

TH1F           *fTriggerEtaAll;
TH1F           *fTriggerEtaPion;
TH1F           *fTriggerEtaKaonProton;

TH1F           *fAssoPhi;
TH1F           *fAssoEta;



TObjArray	 *fGlobalTracks;
TClonesArray     *fArrayMC;

TH1F             *fHistNSAll[3];
TH1F             *fHistNSPion[3];
TH1F		 *fHistNSProton[3];

TH1F             *fHistASAll[3];
TH1F             *fHistASPion[3];
TH1F		 *fHistASProton[3];

TH1F             *fHistBgAll[3];
TH1F             *fHistBgPion[3];
TH1F             *fHistBgProton[3];

TH1F             *fHistBulkAll[3];
TH1F             *fHistBulkPion[3];
TH1F		 *fHistBulkProton[3];
  
//Mixing functions
void DefineEventPool();
TObjArray *AcceptTracksforMixing(AliAODEvent *event);
AliEventPoolManager    *fPoolMgr; 

//Introduce Correction Factor
 Float_t GetEtaCorrectionFactorAsso(Double_t Eta);
 Float_t GetEtaCorrectionFactorTrigAll(Double_t Eta);
 Float_t GetEtaCorrectionFactorTrigPion(Double_t Eta);
 Float_t GetEtaCorrectionFactorTrigProton(Double_t Eta);
 Float_t EffEtaTrigPr;
 Float_t EffEtaTrigPi;
 Float_t EffEtaTrigAll;

//Identifying Associated
void IdentifyAssociated(Double_t ETA_trig,Double_t PHI_trig,Bool_t kPION,Bool_t kPROTON,AliAODTrack *track);
Int_t GetTOFPID(AliAODTrack *track);
Int_t GetTPCTOFPID(AliAODTrack *track);
Bool_t CheckTOF(AliVTrack *track);


    

	   // NEW HISTO to be declared here
    
    AliAnalysisTaskPIDCORR(const AliAnalysisTaskPIDCORR&); // not implemented
    AliAnalysisTaskPIDCORR& operator=(const AliAnalysisTaskPIDCORR&); // not implemented
    
    ClassDef(AliAnalysisTaskPIDCORR, 1); // example of analysis
};



class AliPIDCorrParticle : public TObject
{
  public:
    AliPIDCorrParticle(Float_t eta, Float_t phi, Float_t pt, Short_t charge)
      : fEta(eta), fPhi(phi), fpT(pt), fCharge(charge)
    {
}
 
    virtual Double_t Pt() const { return fpT; }
    
    virtual Double_t Phi()        const { return fPhi; }
    
    
    virtual Double_t Eta()        const { return fEta; }
    
    
    virtual Short_t Charge()      const { return fCharge; }
    
    
    ~AliPIDCorrParticle() {}
private:
     AliPIDCorrParticle(const AliPIDCorrParticle&);  // not implemented
    AliPIDCorrParticle& operator=(const AliPIDCorrParticle&);  // not implemented
    Float_t fEta;      // eta
    Float_t fPhi;      // phi
    Float_t fpT;       // pT
    Short_t fCharge;   // charge
    
    ClassDef( AliPIDCorrParticle, 1); // class which contains only quantities requires for this analysis to reduce memory consumption for event mixing
};



#endif

 AliAnalysisTaskPIDCORR.h:1
 AliAnalysisTaskPIDCORR.h:2
 AliAnalysisTaskPIDCORR.h:3
 AliAnalysisTaskPIDCORR.h:4
 AliAnalysisTaskPIDCORR.h:5
 AliAnalysisTaskPIDCORR.h:6
 AliAnalysisTaskPIDCORR.h:7
 AliAnalysisTaskPIDCORR.h:8
 AliAnalysisTaskPIDCORR.h:9
 AliAnalysisTaskPIDCORR.h:10
 AliAnalysisTaskPIDCORR.h:11
 AliAnalysisTaskPIDCORR.h:12
 AliAnalysisTaskPIDCORR.h:13
 AliAnalysisTaskPIDCORR.h:14
 AliAnalysisTaskPIDCORR.h:15
 AliAnalysisTaskPIDCORR.h:16
 AliAnalysisTaskPIDCORR.h:17
 AliAnalysisTaskPIDCORR.h:18
 AliAnalysisTaskPIDCORR.h:19
 AliAnalysisTaskPIDCORR.h:20
 AliAnalysisTaskPIDCORR.h:21
 AliAnalysisTaskPIDCORR.h:22
 AliAnalysisTaskPIDCORR.h:23
 AliAnalysisTaskPIDCORR.h:24
 AliAnalysisTaskPIDCORR.h:25
 AliAnalysisTaskPIDCORR.h:26
 AliAnalysisTaskPIDCORR.h:27
 AliAnalysisTaskPIDCORR.h:28
 AliAnalysisTaskPIDCORR.h:29
 AliAnalysisTaskPIDCORR.h:30
 AliAnalysisTaskPIDCORR.h:31
 AliAnalysisTaskPIDCORR.h:32
 AliAnalysisTaskPIDCORR.h:33
 AliAnalysisTaskPIDCORR.h:34
 AliAnalysisTaskPIDCORR.h:35
 AliAnalysisTaskPIDCORR.h:36
 AliAnalysisTaskPIDCORR.h:37
 AliAnalysisTaskPIDCORR.h:38
 AliAnalysisTaskPIDCORR.h:39
 AliAnalysisTaskPIDCORR.h:40
 AliAnalysisTaskPIDCORR.h:41
 AliAnalysisTaskPIDCORR.h:42
 AliAnalysisTaskPIDCORR.h:43
 AliAnalysisTaskPIDCORR.h:44
 AliAnalysisTaskPIDCORR.h:45
 AliAnalysisTaskPIDCORR.h:46
 AliAnalysisTaskPIDCORR.h:47
 AliAnalysisTaskPIDCORR.h:48
 AliAnalysisTaskPIDCORR.h:49
 AliAnalysisTaskPIDCORR.h:50
 AliAnalysisTaskPIDCORR.h:51
 AliAnalysisTaskPIDCORR.h:52
 AliAnalysisTaskPIDCORR.h:53
 AliAnalysisTaskPIDCORR.h:54
 AliAnalysisTaskPIDCORR.h:55
 AliAnalysisTaskPIDCORR.h:56
 AliAnalysisTaskPIDCORR.h:57
 AliAnalysisTaskPIDCORR.h:58
 AliAnalysisTaskPIDCORR.h:59
 AliAnalysisTaskPIDCORR.h:60
 AliAnalysisTaskPIDCORR.h:61
 AliAnalysisTaskPIDCORR.h:62
 AliAnalysisTaskPIDCORR.h:63
 AliAnalysisTaskPIDCORR.h:64
 AliAnalysisTaskPIDCORR.h:65
 AliAnalysisTaskPIDCORR.h:66
 AliAnalysisTaskPIDCORR.h:67
 AliAnalysisTaskPIDCORR.h:68
 AliAnalysisTaskPIDCORR.h:69
 AliAnalysisTaskPIDCORR.h:70
 AliAnalysisTaskPIDCORR.h:71
 AliAnalysisTaskPIDCORR.h:72
 AliAnalysisTaskPIDCORR.h:73
 AliAnalysisTaskPIDCORR.h:74
 AliAnalysisTaskPIDCORR.h:75
 AliAnalysisTaskPIDCORR.h:76
 AliAnalysisTaskPIDCORR.h:77
 AliAnalysisTaskPIDCORR.h:78
 AliAnalysisTaskPIDCORR.h:79
 AliAnalysisTaskPIDCORR.h:80
 AliAnalysisTaskPIDCORR.h:81
 AliAnalysisTaskPIDCORR.h:82
 AliAnalysisTaskPIDCORR.h:83
 AliAnalysisTaskPIDCORR.h:84
 AliAnalysisTaskPIDCORR.h:85
 AliAnalysisTaskPIDCORR.h:86
 AliAnalysisTaskPIDCORR.h:87
 AliAnalysisTaskPIDCORR.h:88
 AliAnalysisTaskPIDCORR.h:89
 AliAnalysisTaskPIDCORR.h:90
 AliAnalysisTaskPIDCORR.h:91
 AliAnalysisTaskPIDCORR.h:92
 AliAnalysisTaskPIDCORR.h:93
 AliAnalysisTaskPIDCORR.h:94
 AliAnalysisTaskPIDCORR.h:95
 AliAnalysisTaskPIDCORR.h:96
 AliAnalysisTaskPIDCORR.h:97
 AliAnalysisTaskPIDCORR.h:98
 AliAnalysisTaskPIDCORR.h:99
 AliAnalysisTaskPIDCORR.h:100
 AliAnalysisTaskPIDCORR.h:101
 AliAnalysisTaskPIDCORR.h:102
 AliAnalysisTaskPIDCORR.h:103
 AliAnalysisTaskPIDCORR.h:104
 AliAnalysisTaskPIDCORR.h:105
 AliAnalysisTaskPIDCORR.h:106
 AliAnalysisTaskPIDCORR.h:107
 AliAnalysisTaskPIDCORR.h:108
 AliAnalysisTaskPIDCORR.h:109
 AliAnalysisTaskPIDCORR.h:110
 AliAnalysisTaskPIDCORR.h:111
 AliAnalysisTaskPIDCORR.h:112
 AliAnalysisTaskPIDCORR.h:113
 AliAnalysisTaskPIDCORR.h:114
 AliAnalysisTaskPIDCORR.h:115
 AliAnalysisTaskPIDCORR.h:116
 AliAnalysisTaskPIDCORR.h:117
 AliAnalysisTaskPIDCORR.h:118
 AliAnalysisTaskPIDCORR.h:119
 AliAnalysisTaskPIDCORR.h:120
 AliAnalysisTaskPIDCORR.h:121
 AliAnalysisTaskPIDCORR.h:122
 AliAnalysisTaskPIDCORR.h:123
 AliAnalysisTaskPIDCORR.h:124
 AliAnalysisTaskPIDCORR.h:125
 AliAnalysisTaskPIDCORR.h:126
 AliAnalysisTaskPIDCORR.h:127
 AliAnalysisTaskPIDCORR.h:128
 AliAnalysisTaskPIDCORR.h:129
 AliAnalysisTaskPIDCORR.h:130
 AliAnalysisTaskPIDCORR.h:131
 AliAnalysisTaskPIDCORR.h:132
 AliAnalysisTaskPIDCORR.h:133
 AliAnalysisTaskPIDCORR.h:134
 AliAnalysisTaskPIDCORR.h:135
 AliAnalysisTaskPIDCORR.h:136
 AliAnalysisTaskPIDCORR.h:137
 AliAnalysisTaskPIDCORR.h:138
 AliAnalysisTaskPIDCORR.h:139
 AliAnalysisTaskPIDCORR.h:140
 AliAnalysisTaskPIDCORR.h:141
 AliAnalysisTaskPIDCORR.h:142
 AliAnalysisTaskPIDCORR.h:143
 AliAnalysisTaskPIDCORR.h:144
 AliAnalysisTaskPIDCORR.h:145
 AliAnalysisTaskPIDCORR.h:146
 AliAnalysisTaskPIDCORR.h:147
 AliAnalysisTaskPIDCORR.h:148
 AliAnalysisTaskPIDCORR.h:149
 AliAnalysisTaskPIDCORR.h:150
 AliAnalysisTaskPIDCORR.h:151
 AliAnalysisTaskPIDCORR.h:152
 AliAnalysisTaskPIDCORR.h:153
 AliAnalysisTaskPIDCORR.h:154
 AliAnalysisTaskPIDCORR.h:155
 AliAnalysisTaskPIDCORR.h:156
 AliAnalysisTaskPIDCORR.h:157
 AliAnalysisTaskPIDCORR.h:158
 AliAnalysisTaskPIDCORR.h:159
 AliAnalysisTaskPIDCORR.h:160
 AliAnalysisTaskPIDCORR.h:161
 AliAnalysisTaskPIDCORR.h:162
 AliAnalysisTaskPIDCORR.h:163