ANALYSIS and ANALYSIScalib
[u/mrichter/AliRoot.git] / ANALYSIS / AliAnalysisTaskPIDResponse.h
1 #ifndef ALIANALYSISTASKPIDRESPONSE_H
2 #define ALIANALYSISTASKPIDRESPONSE_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id: AliAnalysisTaskPIDResponse.h 43642 2010-09-17 15:50:04Z wiechula $ */
8 // Author: Jens Wiechula, 24/02/2011
9
10 //==============================================================================
11 //
12 //
13 //
14 //
15 //==============================================================================
16
17 #include <TVectorDfwd.h>
18 #include <TString.h>
19
20 #ifndef ALIANALYSISTASKSE_H
21 #include "AliAnalysisTaskSE.h"
22 #endif
23
24 class AliPIDResponse;
25 class AliVEvent;
26
27 class AliAnalysisTaskPIDResponse : public AliAnalysisTaskSE {
28   
29   
30 public:
31   AliAnalysisTaskPIDResponse();
32   AliAnalysisTaskPIDResponse(const char *name);
33   virtual ~AliAnalysisTaskPIDResponse();
34
35   void SetIsMC(Bool_t isMC=kTRUE)   { fIsMC=isMC; }
36   void SetCachePID(Bool_t cachePID) { fCachePID=cachePID; }
37   Bool_t GetCachePID() const { return fCachePID; }
38   
39   virtual void UserCreateOutputObjects();
40   
41   virtual void UserExec(Option_t */*option*/);
42
43   void SetOADBPath(const char* path) {fOADBPath=path;}
44   const char* GetOADBPath() const { return fOADBPath.Data(); }
45   void SetTuneOnData(Bool_t flag,Int_t recopass){fIsTunedOnData=flag;fRecoPassTuned=recopass;};
46   Bool_t GetTunedOnData() const { return fIsTunedOnData; };
47   void SetTuneOnDataMask(Int_t mask){fTunedOnDataMask=mask;};
48   
49   void SetUseTPCEtaCorrection(Bool_t useTPCEtaCorrection) { fUseTPCEtaCorrection = useTPCEtaCorrection; };
50   Bool_t UseTPCEtaCorrection() const { return fUseTPCEtaCorrection; };
51   
52   void SetUseTPCMultiplicityCorrection(Bool_t useMultiplicityCorrection = kTRUE) { fUseTPCMultiplicityCorrection = useMultiplicityCorrection; };
53   Bool_t UseTPCMultiplicityCorrection() const { return fUseTPCMultiplicityCorrection; };
54
55   void SetSpecialDetectorResponse(const char* det) { fSpecialDetResponse=det; }
56   void SetUserDataRecoPass(Int_t pass){fUserDataRecoPass=pass;};
57
58
59 private:
60   Bool_t fIsMC;                        // If we run on MC data
61   Bool_t fCachePID;                    // Cache PID values in transient object
62   TString fOADBPath;                   // OADB path to use
63   TString fSpecialDetResponse;         // Special detector response files for debugging
64   
65   AliPIDResponse *fPIDResponse;        //! PID response Handler
66   Int_t   fRun;                        //! current run number
67   Int_t   fOldRun;                     //! current run number
68   Int_t   fRecoPass;                   //! reconstruction pass
69
70   Bool_t  fIsTunedOnData;              // flag to tune MC on data (dE/dx)
71   Int_t   fTunedOnDataMask;            // mask to activate tuning on data on specific detectors
72   Int_t   fRecoPassTuned;              // Reco pass tuned on data for MC
73   
74   Bool_t fUseTPCEtaCorrection;          // Use TPC eta correction
75   Bool_t fUseTPCMultiplicityCorrection; // Use TPC multiplicity correction
76   Int_t  fUserDataRecoPass;            // forced DATA reco pass
77   
78   //
79   void SetRecoInfo();
80     
81   AliAnalysisTaskPIDResponse(const AliAnalysisTaskPIDResponse &other);
82   AliAnalysisTaskPIDResponse& operator=(const AliAnalysisTaskPIDResponse &other);
83   
84   ClassDef(AliAnalysisTaskPIDResponse,7)  // Task to properly set the PID response functions of all detectors
85 };
86 #endif