1 #ifndef ALIANALYSISTASKSEIMPPARRES_H
2 #define ALIANALYSISTASKSEIMPPARRES_H
4 /* Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 //*************************************************************************
8 // Class AliAnalysisTaskSEImpParRes
9 // AliAnalysisTaskSE for the study of the track impact parameter resolution
11 // Authors: xianbao.yuan@pd.infn.it, andrea.dainese@pd.infn.it
13 //*************************************************************************
18 #include "AliAnalysisTaskSE.h"
20 class AliAnalysisTaskSEImpParRes : public AliAnalysisTaskSE {
24 AliAnalysisTaskSEImpParRes();
25 AliAnalysisTaskSEImpParRes(const char *name);
26 virtual ~AliAnalysisTaskSEImpParRes();
29 // Implementation of interface methods
30 virtual void UserCreateOutputObjects();
31 virtual void UserExec(Option_t *option);
32 virtual void Terminate(Option_t *option);
33 void SetReadMC(Bool_t readMC) { fReadMC=readMC; return; }
34 void SetSelectedPdg(Int_t pdg) { fSelectedPdg=pdg; return; }
35 void SetUseDiamond(Bool_t use=kFALSE) { fUseDiamond=use; return; }
36 void SetSkipTrack(Bool_t skip=kFALSE) { fSkipTrack=skip; return; }
40 AliAnalysisTaskSEImpParRes(const AliAnalysisTaskSEImpParRes &source);
41 AliAnalysisTaskSEImpParRes& operator=(const AliAnalysisTaskSEImpParRes& source);
43 Int_t PtBin(Double_t pt) const;
44 Int_t SinThetaBin(Double_t sintheta) const;
45 Double_t Getd0HistRange(Int_t i) const;
46 Int_t PhiBin(Double_t phi) const;
47 Int_t ClusterTypeOnITSLayer(AliESDtrack *t,Int_t layer) const;
48 Bool_t fReadMC; // flag used to switch on/off MC reading
49 Int_t fSelectedPdg; // only for a given particle species (-1 takes all tracks)
50 Bool_t fUseDiamond; // use diamond constraint in primary vertex
51 Bool_t fSkipTrack; // redo primary vertex for each track
52 TList *fOutputitspureSARec; //! ITS StandAlone: with track in vtx
53 TList *fOutputitspureSASkip; //! ITS StandAlone: w/o track in vtx
54 TList *fOutputallPointRec; //! ITS+TPC: 6 ITScls, with track in vtx
55 TList *fOutputallPointSkip; //! ITS+TPC: 6 ITScls, w/o track in vtx
56 TList *fOutputpartPointRec; //! ITS+TPC: >=1 SPD, with track in vtx
57 TList *fOutputpartPointSkip; //! ITS+TPC: >=1 SPD, w/o track in vtx
58 TList *fOutputonepointSPDRec; //! At least one point on SPD, with track in vtx
59 TList *fOutputonepointSPDSkip;//! At least one point on SPD w/o track in vtx
60 TList *fOutputpostvTracRec; //! ITS+TPC: >=1 SPD, positives, with track in vtx
61 TList *fOutputpostvTracSkip; //! ITS+TPC: >=1 SPD, positives, w/o track in vtx
62 TList *fOutputnegtvTracRec; //! ITS+TPC: >=1 SPD, negatives, with track in vtx
63 TList *fOutputnegtvTracSkip; //! ITS+TPC: >=1 SPD, negatives, w/o track in vtx
64 TList *fOutputpullAllpointRec; //! pull ITS+TPC: 6 ITScls, with track in vtx
65 TList *fOutputpullAllpointSkip;//! pull ITS+TPC: 6 ITScls, w/o track in vtx
66 TList *fOutputOnlyRefitRec; //! ITS+TPC: any ITScls, with track in vtx
67 TList *fOutputOnlyRefitSkip; //! ITS+TPC: any ITScls, w/o track in vtx
68 TList *fOutputSinThetaRec; //! ITS+TPC: TH2F(pt,sintheta), with track in vtx
69 TList *fOutputSinThetaSkip; //! ITS+TPC: TH2F(pt,sintheta), w/o track in vtx
70 TList *fOutputallPointTrue; //!
71 TList *fOutputpostvTracTrue; //!
72 TList *fOutputnegtvTracTrue; //!
73 TList *fOutputpullAllpointTrue; //!
74 TList *fOutputphiAllpointSkip; //!
75 TList *fOutputphiPostvtracSkip; //!
76 TList *fOutputphiNegtvtracSkip; //!
77 TList *fOutputclusterTypeSPD01Skip; //!
78 TList *fOutputclusterTypeSPD02Skip; //!
79 TList *fOutputclusterTypeSPD03Skip; //!
80 TList *fOutputclusterTypeSPD11Skip; //!
81 TList *fOutputclusterTypeSPD12Skip; //!
82 TList *fOutputclusterTypeSPD13Skip; //!
83 TList *fOutputparticlePID; //!
85 TH1F *fNentries; //! histogram of number of events
86 TH1F *fEstimVtx; //! vertex resolution
88 ClassDef(AliAnalysisTaskSEImpParRes,4); // AliAnalysisTaskSE for the study of the impact parameter resolution