ROOT logo
#ifndef ALIANALYSISTASKPIDconfig_H
#define ALIANALYSISTASKPIDconfig_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id: AliAnalysisTaskPIDconfig.h */
// Author: Naghmeh Mohammadi, 10/07/2014

//==============================================================================
//
//
//
//
//==============================================================================

#include <TVectorDfwd.h>

#include "AliAnalysisTaskSE.h"
#include "AliPID.h"
#include "AliPIDResponse.h"
#include "AliCentrality.h"
#include "TCutG.h"



class AliESDEvent;
class AliAODEvent;
class AliESDTrack;
class AliAODTrack;
class AliPIDResponse;
class TList;
class AliVEvent;
class TH1F;
class TH2F;
class TH3F;
class TH3F;



class AliAnalysisTaskPIDconfig : public AliAnalysisTaskSE {
    
    
public:
    AliAnalysisTaskPIDconfig();
    AliAnalysisTaskPIDconfig(const char *name);
    virtual ~AliAnalysisTaskPIDconfig();
    
    virtual void UserCreateOutputObjects();
    virtual void UserExec(Option_t * /*option*/);
    
    void SetFilterBit(Double_t b){fFilterBit = b;}
    void SetCentralityPercentileMin(Int_t b){fCentralityPercentileMin = b;}
    void SetCentralityPercentileMax(Int_t b){fCentralityPercentileMax = b;}
    void SetCentralityEstimator(TString b){fCentralityEstimator = b;}
    void SetUseCentrality(Bool_t b=kTRUE){fUseCentrality = b;}
    void SetCentralityTrigger(Int_t b=AliVEvent::kMB){ fTriggerSelection = b;}
    void SetDCAxyCut(Int_t b){fDCAxyCut = b;}
    void SetDCAzCut(Int_t b){fDCAzCut = b;}
    void SetCutTPCmultiplicityOutliersAOD(Bool_t b){fCutTPCmultiplicityOutliersAOD = b;}
    void SetData2011(Bool_t b){fData2011 = b;}
    void CheckCentrality(AliVEvent *event,Bool_t &centralitypass); //to use only events with the correct centrality....
    void SetCuts(Bool_t b){fPIDcuts = b;}
    //void MultiplicityOutlierCut(AliVEvent *event,Bool_t &centralitypass,Int_t ntracks);
    void SetPIDcontoursList(TDirectory* b){fCutContourList = b;}
    //TGraph* GetPIDcontours(TString specie, Double_t Plow, Double_t Phigh,Int_t centMin, Int_t centMax){}
    void GetPIDContours();
    
protected:
    
    
    
private:
    AliVEvent             *fVevent;             //! event
    AliESDEvent           *fESD;                //! esd
    AliAODEvent           *fAOD;                //! aod
    AliPIDResponse        *fPIDResponse;        //! PID response Handler
    Int_t                  fTriggerSelection;   // trigger selection
    Int_t                  fCentralityPercentileMin;    // min centrality
    Int_t                  fCentralityPercentileMax;    // max cen
    Double_t               fFilterBit;                  // filterbit
    Double_t               fDCAxyCut;           // dca cut
    Double_t               fDCAzCut;            // dcz z
    Bool_t                 fData2011;           // 2011 data
    Bool_t                 fTriggerMB;          // minB trigger
    Bool_t                 fTriggerCentral;     // cen trigger
    Bool_t                 fUseCentrality;      // use centrality
    Bool_t                 fCutTPCmultiplicityOutliersAOD;      // do outlier cut
    Bool_t                 fPIDcuts;            // pid cuts
    TString                fCentralityEstimator;// cen estimator "V0M","TRK","TKL","ZDC","FMD"
    TFile                 *fContoursFile;       //! contours file
    TDirectory            *fCutContourList;     //! contour list
    TList                 *fListQA;             //! List of all lists
    TList                 *fListQAtpctof;       //! List with combined PID from TPC + TOF
    TList                 *fListQAInfo;         //! list q ainfo
    TH1F                  *fhistCentralityPass; //! cen histo   
    TH1F                  *fNoEvents;           //! event no    
    TH1F                  *fpVtxZ;              //! v vertex no
    TH2F                  *fhistDCABefore;      //! dca after hist
    TH2F                  *fhistDCAAfter;       //! another hist
    TH1F                  *fhistPhiDistBefore;  //! another hist
    TH1F                  *fhistPhiDistAfter;   //! another hist
    TH1F                  *fhistEtaDistBefore;  //! another hist
    TH1F                  *fhistEtaDistAfter;   //! another hist
    TH2F                  *fTPCvsGlobalMultBeforeOutliers;      //! another hist
    TH2F                  *fTPCvsGlobalMultAfterOutliers;       //! another hist
    TH2F                  *fTPCvsGlobalMultAfter;       //! another hist
    TH2F                  *fHistBetavsPTOFbeforePID;    //! another hist
    TH2F                  *fHistdEdxvsPTPCbeforePID;    //! another hist
    TH3F                  *fhistNsigmaP;        //! another hist
    TH2F                  *fhistTPCnSigmavsP;   //! another hist
    TH2F                  *fHistBetavsPTOFafterPID;     //! another hist
    TH2F                  *fHistdEdxvsPTPCafterPID;     //! another hist
    TH2F                  *fHistBetavsPTOFafterPIDTPCTOF; //! another hist
    TH2F                  *fHistdEdxvsPTPCafterPIDTPCTOF; //! another hist
    TH2F                  *fHistBetavsPTOFafterPIDTPConly; //! another hist
    TH2F                  *fHistdEdxvsPTPCafterPIDTPConly; //! another hist
    TH2F                  *fHistPion_BetavsPTOFafterPIDTPCTOF; //! another hist
    TH2F                  *fHistPion_dEdxvsPTPCafterPIDTPCTOF; //!another hist
    TH2F                  *fHistKaon_BetavsPTOFafterPIDTPCTOF; //! another hist
    TH2F                  *fHistKaon_dEdxvsPTPCafterPIDTPCTOF; //!another hist
    TH2F                  *fHistProton_BetavsPTOFafterPIDTPCTOF; //! another hist
    TH2F                  *fHistProton_dEdxvsPTPCafterPIDTPCTOF; //!another hist
    TH1F                  *fhistPionEtaDistAfter; //!another hist
    TH1F                  *fhistKaonEtaDistAfter; //!another hist
    TH1F                  *fhistProtonEtaDistAfter; //!another hist
    TCutG                 *fCutContour[150];    //! TCutG contours
    TGraph                *fCutGraph[150];      //! graphs
    
    
    //qa object initialisation
    void SetupTPCTOFqa();
    void SetupEventInfo();
    //
    
    AliAnalysisTaskPIDconfig(const AliAnalysisTaskPIDconfig &other);
    AliAnalysisTaskPIDconfig& operator=(const AliAnalysisTaskPIDconfig &other);
    
    ClassDef(AliAnalysisTaskPIDconfig,3)  // Task to properly set the PID response functions of all detectors
};

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