ROOT logo
#ifndef ALIANALYSISTASKPIDRESPONSE_H
#define ALIANALYSISTASKPIDRESPONSE_H

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

/* $Id: AliAnalysisTaskPIDResponse.h 43642 2010-09-17 15:50:04Z wiechula $ */
// Author: Jens Wiechula, 24/02/2011

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

#include <TVectorDfwd.h>
#include <TString.h>

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

class AliPIDResponse;
class AliVEvent;

class AliAnalysisTaskPIDResponse : public AliAnalysisTaskSE {
  
  
public:
  AliAnalysisTaskPIDResponse();
  AliAnalysisTaskPIDResponse(const char *name);
  virtual ~AliAnalysisTaskPIDResponse();

  void SetIsMC(Bool_t isMC=kTRUE)   { fIsMC=isMC; }
  void SetCachePID(Bool_t cachePID) { fCachePID=cachePID; }
  Bool_t GetCachePID() const { return fCachePID; }
  
  virtual void UserCreateOutputObjects();
  
  virtual void UserExec(Option_t */*option*/);

  void SetOADBPath(const char* path) {fOADBPath=path;}
  const char* GetOADBPath() const { return fOADBPath.Data(); }
  void SetTuneOnData(Bool_t flag,Int_t recopass){fIsTunedOnData=flag;fRecoPassTuned=recopass;};
  Bool_t GetTunedOnData() const { return fIsTunedOnData; };
  void SetTuneOnDataMask(Int_t mask){fTunedOnDataMask=mask;};
  
  void SetUseTPCEtaCorrection(Bool_t useTPCEtaCorrection) { fUseTPCEtaCorrection = useTPCEtaCorrection; };
  Bool_t UseTPCEtaCorrection() const { return fUseTPCEtaCorrection; };
  
  void SetUseTPCMultiplicityCorrection(Bool_t useMultiplicityCorrection = kTRUE) { fUseTPCMultiplicityCorrection = useMultiplicityCorrection; };
  Bool_t UseTPCMultiplicityCorrection() const { return fUseTPCMultiplicityCorrection; };

  void SetSpecialDetectorResponse(const char* det) { fSpecialDetResponse=det; }
  void SetUserDataRecoPass(Int_t pass){fUserDataRecoPass=pass;};


private:
  Bool_t fIsMC;                        // If we run on MC data
  Bool_t fCachePID;                    // Cache PID values in transient object
  TString fOADBPath;                   // OADB path to use
  TString fSpecialDetResponse;         // Special detector response files for debugging
  
  AliPIDResponse *fPIDResponse;        //! PID response Handler
  Int_t   fRun;                        //! current run number
  Int_t   fOldRun;                     //! current run number
  Int_t   fRecoPass;                   //! reconstruction pass

  Bool_t  fIsTunedOnData;              // flag to tune MC on data (dE/dx)
  Int_t   fTunedOnDataMask;            // mask to activate tuning on data on specific detectors
  Int_t   fRecoPassTuned;              // Reco pass tuned on data for MC
  
  Bool_t fUseTPCEtaCorrection;          // Use TPC eta correction
  Bool_t fUseTPCMultiplicityCorrection; // Use TPC multiplicity correction
  Int_t  fUserDataRecoPass;            // forced DATA reco pass
  
  //
  void SetRecoInfo();
    
  AliAnalysisTaskPIDResponse(const AliAnalysisTaskPIDResponse &other);
  AliAnalysisTaskPIDResponse& operator=(const AliAnalysisTaskPIDResponse &other);
  
  ClassDef(AliAnalysisTaskPIDResponse,7)  // Task to properly set the PID response functions of all detectors
};
#endif
 AliAnalysisTaskPIDResponse.h:1
 AliAnalysisTaskPIDResponse.h:2
 AliAnalysisTaskPIDResponse.h:3
 AliAnalysisTaskPIDResponse.h:4
 AliAnalysisTaskPIDResponse.h:5
 AliAnalysisTaskPIDResponse.h:6
 AliAnalysisTaskPIDResponse.h:7
 AliAnalysisTaskPIDResponse.h:8
 AliAnalysisTaskPIDResponse.h:9
 AliAnalysisTaskPIDResponse.h:10
 AliAnalysisTaskPIDResponse.h:11
 AliAnalysisTaskPIDResponse.h:12
 AliAnalysisTaskPIDResponse.h:13
 AliAnalysisTaskPIDResponse.h:14
 AliAnalysisTaskPIDResponse.h:15
 AliAnalysisTaskPIDResponse.h:16
 AliAnalysisTaskPIDResponse.h:17
 AliAnalysisTaskPIDResponse.h:18
 AliAnalysisTaskPIDResponse.h:19
 AliAnalysisTaskPIDResponse.h:20
 AliAnalysisTaskPIDResponse.h:21
 AliAnalysisTaskPIDResponse.h:22
 AliAnalysisTaskPIDResponse.h:23
 AliAnalysisTaskPIDResponse.h:24
 AliAnalysisTaskPIDResponse.h:25
 AliAnalysisTaskPIDResponse.h:26
 AliAnalysisTaskPIDResponse.h:27
 AliAnalysisTaskPIDResponse.h:28
 AliAnalysisTaskPIDResponse.h:29
 AliAnalysisTaskPIDResponse.h:30
 AliAnalysisTaskPIDResponse.h:31
 AliAnalysisTaskPIDResponse.h:32
 AliAnalysisTaskPIDResponse.h:33
 AliAnalysisTaskPIDResponse.h:34
 AliAnalysisTaskPIDResponse.h:35
 AliAnalysisTaskPIDResponse.h:36
 AliAnalysisTaskPIDResponse.h:37
 AliAnalysisTaskPIDResponse.h:38
 AliAnalysisTaskPIDResponse.h:39
 AliAnalysisTaskPIDResponse.h:40
 AliAnalysisTaskPIDResponse.h:41
 AliAnalysisTaskPIDResponse.h:42
 AliAnalysisTaskPIDResponse.h:43
 AliAnalysisTaskPIDResponse.h:44
 AliAnalysisTaskPIDResponse.h:45
 AliAnalysisTaskPIDResponse.h:46
 AliAnalysisTaskPIDResponse.h:47
 AliAnalysisTaskPIDResponse.h:48
 AliAnalysisTaskPIDResponse.h:49
 AliAnalysisTaskPIDResponse.h:50
 AliAnalysisTaskPIDResponse.h:51
 AliAnalysisTaskPIDResponse.h:52
 AliAnalysisTaskPIDResponse.h:53
 AliAnalysisTaskPIDResponse.h:54
 AliAnalysisTaskPIDResponse.h:55
 AliAnalysisTaskPIDResponse.h:56
 AliAnalysisTaskPIDResponse.h:57
 AliAnalysisTaskPIDResponse.h:58
 AliAnalysisTaskPIDResponse.h:59
 AliAnalysisTaskPIDResponse.h:60
 AliAnalysisTaskPIDResponse.h:61
 AliAnalysisTaskPIDResponse.h:62
 AliAnalysisTaskPIDResponse.h:63
 AliAnalysisTaskPIDResponse.h:64
 AliAnalysisTaskPIDResponse.h:65
 AliAnalysisTaskPIDResponse.h:66
 AliAnalysisTaskPIDResponse.h:67
 AliAnalysisTaskPIDResponse.h:68
 AliAnalysisTaskPIDResponse.h:69
 AliAnalysisTaskPIDResponse.h:70
 AliAnalysisTaskPIDResponse.h:71
 AliAnalysisTaskPIDResponse.h:72
 AliAnalysisTaskPIDResponse.h:73
 AliAnalysisTaskPIDResponse.h:74
 AliAnalysisTaskPIDResponse.h:75
 AliAnalysisTaskPIDResponse.h:76
 AliAnalysisTaskPIDResponse.h:77
 AliAnalysisTaskPIDResponse.h:78
 AliAnalysisTaskPIDResponse.h:79
 AliAnalysisTaskPIDResponse.h:80
 AliAnalysisTaskPIDResponse.h:81
 AliAnalysisTaskPIDResponse.h:82
 AliAnalysisTaskPIDResponse.h:83
 AliAnalysisTaskPIDResponse.h:84
 AliAnalysisTaskPIDResponse.h:85
 AliAnalysisTaskPIDResponse.h:86