#ifndef ALIANALYSISTASKTOFQAID_h
#define ALIANALYSISTASKTOFQAID_h
class TString;
class TList;
class AliAnalysisFilter;
class AliCDBManager;
class AliTOFcalib;
class AliTOFT0maker;
class AliTOFT0v1;
class AliTOFHeader;
#include "AliAnalysisTaskSE.h"
class AliAnalysisTaskTOFqaID : public AliAnalysisTaskSE {
public:
enum ETrackCutSetTOFqa_t { kRun1Cuts = 0,
kStd2010,
kStd2010crossedRows,
kStd2011,
kStd2011crossedRows,
kNCutSetTOFqa };
AliAnalysisTaskTOFqaID();
AliAnalysisTaskTOFqaID(const char *name);
AliAnalysisTaskTOFqaID(const AliAnalysisTaskTOFqaID& copy);
AliAnalysisTaskTOFqaID& operator= (const AliAnalysisTaskTOFqaID& copy);
virtual ~AliAnalysisTaskTOFqaID();
virtual void UserCreateOutputObjects();
virtual void UserExec(Option_t *option);
virtual void Terminate(Option_t *);
Int_t GetStripIndex(const Int_t * in);
void SetTrackFilter(AliAnalysisFilter *filter) { fTrackFilter = filter; return; };
void SetMinPtCut(Float_t minpt) { fMatchingMomCut = minpt; return; }
void SetMaxEtaCut(Float_t maxeta) { fMatchingEtaCut = maxeta; return; }
void EnableAdvancedCheck(Bool_t enable) { fEnableAdvancedCheck = enable; return; };
void EnableChargeSplit(Bool_t enable) { fEnableChargeSplit = enable; return; };
void SetExpTimeHistoRange(Float_t min, Float_t max) { fExpTimeRangeMin = min; fExpTimeRangeMax = max; return;};
void SetExpTimeHistoSmallRange(Float_t min, Float_t max) { fExpTimeSmallRangeMin = min; fExpTimeSmallRangeMax = max; return;};
void SetExpTimeBinWidth(Float_t width) { fExpTimeBinWidth = width; return;};
Bool_t SetSelectMCspecies(Bool_t enableMC, Int_t absPdgCode) {fIsMC = enableMC; fSelectedPdg = absPdgCode; return kTRUE;};
TString GetSpeciesName(Int_t absPdgCode);
void HistogramMakeUp(TH1* hist, Color_t color, Int_t markerStyle, TString drawOpt, TString newName, TString newTitle, TString xTitle, TString yTitle);
Double_t GetPhiAtTPCouterRadius(AliESDtrack * track);
protected:
void AddTofBaseHisto(TList *list, Int_t charge, TString suffix);
void AddMatchingEffHisto(TList *list, Int_t charge, TString suffix);
void AddPidHisto(TList *list, Int_t charge, TString suffix);
void AddStartTimeHisto(TList *list, TString suffix);
void AddTrdHisto();
void AddTofTrgHisto(TString suffix);
void FillTofBaseHisto(AliESDtrack * track, Int_t charge, TString suffix);
void FillMatchedTrkHisto(Int_t charge, TString suffix);
void FillPrimaryTrkHisto(Int_t charge, TString suffix);
void FillPidHisto(AliESDtrack * track,Int_t charge, TString suffix);
void FillStartTimeHisto(TString suffix);
void FillTrdHisto(AliESDtrack * track, Int_t charge);
void FillStartTimeMaskHisto(TString suffix);
void FillTofTrgHisto(TString suffix);
Bool_t ComputeTimeZeroByTOF1GeV();
Bool_t SelectMCspecies(AliMCEvent * ev, AliESDtrack * track);
Bool_t ComputeMatchingEfficiency(TList* list, TString variable);
Bool_t IsTPCTOFMatched(AliESDtrack * track);
Bool_t IsInTRD(AliESDtrack * track);
Bool_t IsEventSelected(AliESDEvent * event);
private:
Int_t fRunNumber;
AliESDEvent * fESD;
AliMCEvent * fMCevent;
AliAnalysisFilter * fTrackFilter;
AliESDVertex * fVertex;
AliESDpid * fESDpid;
AliTOFHeader * fTOFHeader;
Int_t fNTOFtracks[3];
Float_t fT0[3];
Float_t fSigmaSpecie[5];
Double_t fTrkExpTimes[5];
Double_t fThExpTimes[5];
Bool_t fEnableAdvancedCheck;
Bool_t fEnableChargeSplit;
Float_t fExpTimeBinWidth;
Float_t fExpTimeRangeMin, fExpTimeRangeMax;
Float_t fExpTimeSmallRangeMin, fExpTimeSmallRangeMax;
Int_t fnExpTimeBins;
Int_t fnExpTimeSmallBins;
Double_t fMyTimeZeroTOF, fMyTimeZeroTOFsigma;
Int_t fMyTimeZeroTOFtracks;
Bool_t fIsMC;
Int_t fSelectedPdg;
Double_t fP;
Double_t fPt;
Double_t fEta;
Double_t fPhi;
Double_t fTPCOuterPhi;
Double_t fL;
Double_t fMatchingMomCut;
Double_t fMatchingEtaCut;
Double_t fTof;
TList * fHlist;
TList * fHlistTimeZero;
TList * fHlistPID;
TList * fHlistTRD;
TList * fHlistTrigger;
ClassDef(AliAnalysisTaskTOFqaID, 2);
};
#endif
AliAnalysisTaskTOFqaID.h:1 AliAnalysisTaskTOFqaID.h:2 AliAnalysisTaskTOFqaID.h:3 AliAnalysisTaskTOFqaID.h:4 AliAnalysisTaskTOFqaID.h:5 AliAnalysisTaskTOFqaID.h:6 AliAnalysisTaskTOFqaID.h:7 AliAnalysisTaskTOFqaID.h:8 AliAnalysisTaskTOFqaID.h:9 AliAnalysisTaskTOFqaID.h:10 AliAnalysisTaskTOFqaID.h:11 AliAnalysisTaskTOFqaID.h:12 AliAnalysisTaskTOFqaID.h:13 AliAnalysisTaskTOFqaID.h:14 AliAnalysisTaskTOFqaID.h:15 AliAnalysisTaskTOFqaID.h:16 AliAnalysisTaskTOFqaID.h:17 AliAnalysisTaskTOFqaID.h:18 AliAnalysisTaskTOFqaID.h:19 AliAnalysisTaskTOFqaID.h:20 AliAnalysisTaskTOFqaID.h:21 AliAnalysisTaskTOFqaID.h:22 AliAnalysisTaskTOFqaID.h:23 AliAnalysisTaskTOFqaID.h:24 AliAnalysisTaskTOFqaID.h:25 AliAnalysisTaskTOFqaID.h:26 AliAnalysisTaskTOFqaID.h:27 AliAnalysisTaskTOFqaID.h:28 AliAnalysisTaskTOFqaID.h:29 AliAnalysisTaskTOFqaID.h:30 AliAnalysisTaskTOFqaID.h:31 AliAnalysisTaskTOFqaID.h:32 AliAnalysisTaskTOFqaID.h:33 AliAnalysisTaskTOFqaID.h:34 AliAnalysisTaskTOFqaID.h:35 AliAnalysisTaskTOFqaID.h:36 AliAnalysisTaskTOFqaID.h:37 AliAnalysisTaskTOFqaID.h:38 AliAnalysisTaskTOFqaID.h:39 AliAnalysisTaskTOFqaID.h:40 AliAnalysisTaskTOFqaID.h:41 AliAnalysisTaskTOFqaID.h:42 AliAnalysisTaskTOFqaID.h:43 AliAnalysisTaskTOFqaID.h:44 AliAnalysisTaskTOFqaID.h:45 AliAnalysisTaskTOFqaID.h:46 AliAnalysisTaskTOFqaID.h:47 AliAnalysisTaskTOFqaID.h:48 AliAnalysisTaskTOFqaID.h:49 AliAnalysisTaskTOFqaID.h:50 AliAnalysisTaskTOFqaID.h:51 AliAnalysisTaskTOFqaID.h:52 AliAnalysisTaskTOFqaID.h:53 AliAnalysisTaskTOFqaID.h:54 AliAnalysisTaskTOFqaID.h:55 AliAnalysisTaskTOFqaID.h:56 AliAnalysisTaskTOFqaID.h:57 AliAnalysisTaskTOFqaID.h:58 AliAnalysisTaskTOFqaID.h:59 AliAnalysisTaskTOFqaID.h:60 AliAnalysisTaskTOFqaID.h:61 AliAnalysisTaskTOFqaID.h:62 AliAnalysisTaskTOFqaID.h:63 AliAnalysisTaskTOFqaID.h:64 AliAnalysisTaskTOFqaID.h:65 AliAnalysisTaskTOFqaID.h:66 AliAnalysisTaskTOFqaID.h:67 AliAnalysisTaskTOFqaID.h:68 AliAnalysisTaskTOFqaID.h:69 AliAnalysisTaskTOFqaID.h:70 AliAnalysisTaskTOFqaID.h:71 AliAnalysisTaskTOFqaID.h:72 AliAnalysisTaskTOFqaID.h:73 AliAnalysisTaskTOFqaID.h:74 AliAnalysisTaskTOFqaID.h:75 AliAnalysisTaskTOFqaID.h:76 AliAnalysisTaskTOFqaID.h:77 AliAnalysisTaskTOFqaID.h:78 AliAnalysisTaskTOFqaID.h:79 AliAnalysisTaskTOFqaID.h:80 AliAnalysisTaskTOFqaID.h:81 AliAnalysisTaskTOFqaID.h:82 AliAnalysisTaskTOFqaID.h:83 AliAnalysisTaskTOFqaID.h:84 AliAnalysisTaskTOFqaID.h:85 AliAnalysisTaskTOFqaID.h:86 AliAnalysisTaskTOFqaID.h:87 AliAnalysisTaskTOFqaID.h:88 AliAnalysisTaskTOFqaID.h:89 AliAnalysisTaskTOFqaID.h:90 AliAnalysisTaskTOFqaID.h:91 AliAnalysisTaskTOFqaID.h:92 AliAnalysisTaskTOFqaID.h:93 AliAnalysisTaskTOFqaID.h:94 AliAnalysisTaskTOFqaID.h:95 AliAnalysisTaskTOFqaID.h:96 AliAnalysisTaskTOFqaID.h:97 AliAnalysisTaskTOFqaID.h:98 AliAnalysisTaskTOFqaID.h:99 AliAnalysisTaskTOFqaID.h:100 AliAnalysisTaskTOFqaID.h:101 AliAnalysisTaskTOFqaID.h:102 AliAnalysisTaskTOFqaID.h:103 AliAnalysisTaskTOFqaID.h:104 AliAnalysisTaskTOFqaID.h:105 AliAnalysisTaskTOFqaID.h:106 AliAnalysisTaskTOFqaID.h:107 AliAnalysisTaskTOFqaID.h:108 AliAnalysisTaskTOFqaID.h:109 AliAnalysisTaskTOFqaID.h:110 AliAnalysisTaskTOFqaID.h:111 AliAnalysisTaskTOFqaID.h:112 AliAnalysisTaskTOFqaID.h:113 AliAnalysisTaskTOFqaID.h:114 AliAnalysisTaskTOFqaID.h:115 AliAnalysisTaskTOFqaID.h:116 AliAnalysisTaskTOFqaID.h:117 AliAnalysisTaskTOFqaID.h:118 AliAnalysisTaskTOFqaID.h:119 AliAnalysisTaskTOFqaID.h:120 AliAnalysisTaskTOFqaID.h:121 AliAnalysisTaskTOFqaID.h:122 AliAnalysisTaskTOFqaID.h:123