]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/TOF/AliAnalysisTaskTOFqaID.h
Merge branch 'master' into TPCdev
[u/mrichter/AliRoot.git] / PWGPP / TOF / AliAnalysisTaskTOFqaID.h
1 #ifndef ALIANALYSISTASKTOFQAID_h
2 #define ALIANALYSISTASKTOFQAID_h
3
4 class TString;
5 class TList;
6 class AliAnalysisFilter;
7 class AliCDBManager;
8 class AliTOFcalib;
9 class AliTOFT0maker;
10 class AliTOFT0v1;
11 class AliTOFHeader;
12
13 #include "AliAnalysisTaskSE.h"
14
15 class AliAnalysisTaskTOFqaID : public AliAnalysisTaskSE {
16  public:
17   
18   enum ETrackCutSetTOFqa_t { kRun1Cuts = 0,
19                            kStd2010,
20                            kStd2010crossedRows,
21                            kStd2011,
22                            kStd2011crossedRows,
23                            kNCutSetTOFqa };
24
25   AliAnalysisTaskTOFqaID();
26   AliAnalysisTaskTOFqaID(const char *name);
27   AliAnalysisTaskTOFqaID(const AliAnalysisTaskTOFqaID& copy);
28   AliAnalysisTaskTOFqaID& operator= (const AliAnalysisTaskTOFqaID& copy);
29   virtual ~AliAnalysisTaskTOFqaID();
30   
31   virtual void   UserCreateOutputObjects();
32   virtual void   UserExec(Option_t *option);
33   virtual void   Terminate(Option_t *);
34     
35   Int_t   GetStripIndex(const Int_t * in);
36   void    SetTrackFilter(AliAnalysisFilter *filter) { fTrackFilter = filter; return; };
37   void    SetMinPtCut(Float_t minpt) { fMatchingMomCut = minpt; return; }
38   void    SetMaxEtaCut(Float_t maxeta) { fMatchingEtaCut = maxeta; return; }
39   void    EnableAdvancedCheck(Bool_t enable) { fEnableAdvancedCheck = enable; return; };
40   void    EnableChargeSplit(Bool_t enable) { fEnableChargeSplit = enable; return; };
41   void    SetExpTimeHistoRange(Float_t min, Float_t max) { fExpTimeRangeMin = min; fExpTimeRangeMax = max; return;};
42   void    SetExpTimeHistoSmallRange(Float_t min, Float_t max) { fExpTimeSmallRangeMin = min; fExpTimeSmallRangeMax = max; return;};
43   void    SetExpTimeBinWidth(Float_t width) { fExpTimeBinWidth = width; return;};
44   Bool_t  SetSelectMCspecies(Bool_t enableMC, Int_t absPdgCode) {fIsMC = enableMC; fSelectedPdg = absPdgCode; return kTRUE;};
45   TString GetSpeciesName(Int_t absPdgCode);
46   void    HistogramMakeUp(TH1* hist, Color_t color, Int_t markerStyle,  TString drawOpt, TString newName, TString newTitle, TString xTitle, TString yTitle);
47   Double_t GetPhiAtTPCouterRadius(AliESDtrack * track);
48   
49  protected:
50   void    AddTofBaseHisto(TList *list, Int_t charge, TString suffix);
51   void    AddMatchingEffHisto(TList *list, Int_t charge, TString suffix);
52   void    AddPidHisto(TList *list, Int_t charge, TString suffix);
53   void    AddStartTimeHisto(TList *list, TString suffix);
54   void    AddTrdHisto();
55   void    AddTofTrgHisto(TString suffix);
56
57   void    FillTofBaseHisto(AliESDtrack * track, Int_t charge, TString suffix);
58   void    FillMatchedTrkHisto(Int_t charge, TString suffix);
59   void    FillPrimaryTrkHisto(Int_t charge, TString suffix);
60   void    FillPidHisto(AliESDtrack * track,Int_t charge, TString suffix);
61   void    FillStartTimeHisto(TString suffix);
62   void    FillTrdHisto(AliESDtrack * track, Int_t charge);
63   void    FillStartTimeMaskHisto(TString suffix);
64   void    FillTofTrgHisto(TString suffix);
65
66   Bool_t  ComputeTimeZeroByTOF1GeV();
67   Bool_t  SelectMCspecies(AliMCEvent * ev, AliESDtrack * track);
68   Bool_t  ComputeMatchingEfficiency(TList* list, TString variable);
69   Bool_t  IsTPCTOFMatched(AliESDtrack * track);
70   Bool_t  IsInTRD(AliESDtrack * track);
71   Bool_t  IsEventSelected(AliESDEvent * event);
72
73  private: 
74   Int_t               fRunNumber; //run number
75   AliESDEvent *       fESD;    //ESD object
76   AliMCEvent *        fMCevent;    //MC event
77   AliAnalysisFilter * fTrackFilter; //track filter object
78   AliESDVertex *      fVertex; //pointer to the vertex object
79   AliESDpid *         fESDpid; //pointer to the PID object
80   //AliTOFT0v1 *        fTOFT0v1; // TOF-T0 v1
81   AliTOFHeader *      fTOFHeader; // TOF header needed for trigger info
82   Int_t               fNTOFtracks[3]; //number of tracks matching with TOF
83   //Int_t fNPrimaryTracks; //number of primary tracks
84   Float_t             fT0[3]; //event time
85   Float_t             fSigmaSpecie[5]; //number of TOF PID sigmas, ie.fSigmaPion, fSigmaKaon, fSigmaProton;
86   Double_t            fTrkExpTimes[5]; //expected times from tracking for 5 mass hypothesis
87   Double_t            fThExpTimes[5]; //theoretical expected times for 5 mass hypothesis
88   Bool_t              fEnableAdvancedCheck; //flag to enable advanced checks
89   Bool_t              fEnableChargeSplit; //flag to enable split for sign of charge
90
91   Float_t             fExpTimeBinWidth;//bin width for t-texp histos
92   Float_t             fExpTimeRangeMin, fExpTimeRangeMax; //range of t-texp histogram
93   Float_t             fExpTimeSmallRangeMin, fExpTimeSmallRangeMax; //reduced range of t-texp histogram
94   Int_t               fnExpTimeBins;
95   Int_t               fnExpTimeSmallBins;
96   
97   Double_t            fMyTimeZeroTOF, fMyTimeZeroTOFsigma; //timeZero by TOF recomputed
98   Int_t               fMyTimeZeroTOFtracks; // number of tracks used to recompute TOF_T0
99   Bool_t              fIsMC; //flag for MC 
100   Int_t               fSelectedPdg; //pdg code of the selected specie (for MC only)
101   Double_t            fP; //momentum
102   Double_t            fPt; //transverse momentum
103   Double_t            fEta; //psedorapidity
104   Double_t            fPhi; //phi at vertex
105   Double_t            fTPCOuterPhi; //phi at outer tpc radius
106   Double_t            fL; //integrated track lenght
107   Double_t            fMatchingMomCut;//minimum pT cut for matching eff vs eta, phi 
108   Double_t            fMatchingEtaCut;//simmetric eta cut for matching eff vs pt, eta, phi
109   Double_t            fTof;
110   //output objects
111   TList *             fHlist;  //list of general histos
112   TList *             fHlistTimeZero; //list of timeZero related histos
113   TList *             fHlistPID; //list of PID-related histos
114   TList *             fHlistTRD;  //list of general histos for positive tracks
115   TList *             fHlistTrigger;  //list of general histos for TOF trg infos
116
117   ClassDef(AliAnalysisTaskTOFqaID, 2); // example of analysis
118 };
119
120 #endif
121
122
123