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 //*************************************************************************
17 class AliTriggerConfiguration;
20 class AliESDtrackCuts;
23 #include "AliAnalysisTaskSE.h"
25 class AliAnalysisTaskSEImpParRes : public AliAnalysisTaskSE {
29 AliAnalysisTaskSEImpParRes();
30 AliAnalysisTaskSEImpParRes(const char *name);
31 virtual ~AliAnalysisTaskSEImpParRes();
34 // Implementation of interface methods
35 virtual void UserCreateOutputObjects();
36 virtual void UserExec(Option_t *option);
37 virtual void Terminate(Option_t *option);
38 void SetReadMC(Bool_t readMC) { fReadMC=readMC; return; }
39 void SetIsAOD(Bool_t isAOD) { fIsAOD=isAOD; return; }
40 void SetSelectedPdg(Int_t pdg) { fSelectedPdg=pdg; return; }
41 void SetUseDiamond(Bool_t use=kFALSE) { fUseDiamond=use; return; }
42 void SetSkipTrack(Bool_t skip=kFALSE) { fSkipTrack=skip; return; }
43 void SetMultiplicityRange(Int_t min,Int_t max) { fMinMult=min; fMaxMult=max; }
44 void SetCheckSDDIsIn(Int_t check=0) { fCheckSDDIsIn=check; }
45 void SetTriggerClass(TString tclass="") { fTriggerClass=tclass; }
46 void SetOCDBPath(TString path="") { fOCDBPath=path; }
47 void SetESDtrackCuts(AliESDtrackCuts *esdCuts) {fESDtrackCuts=esdCuts;}
51 AliAnalysisTaskSEImpParRes(const AliAnalysisTaskSEImpParRes &source);
52 AliAnalysisTaskSEImpParRes& operator=(const AliAnalysisTaskSEImpParRes& source);
54 Int_t PtBin(Double_t pt) const;
55 Int_t SinThetaBin(Double_t sintheta) const;
56 Double_t Getd0HistRange(Int_t i) const;
57 Int_t PhiBin(Double_t phi) const;
58 Int_t ClusterTypeOnITSLayer(AliESDtrack *t,Int_t layer) const;
59 Bool_t IsTrackSelected(AliVTrack *t,AliVVertex *v, AliESDtrackCuts *cuts) const;
60 Bool_t fIsAOD; // flag to read AOD or ESD (default is ESD)
61 Bool_t fReadMC; // flag used to switch on/off MC reading
62 Int_t fSelectedPdg; // only for a given particle species (-1 takes all tracks)
63 Bool_t fUseDiamond; // use diamond constraint in primary vertex
64 Bool_t fSkipTrack; // redo primary vertex for each track
65 Int_t fMinMult; // minimum multiplicity
66 Int_t fMaxMult; // maximum multiplicity
67 Int_t fCheckSDDIsIn; // check for ITSSDD in the trigger cluster: 0 no check; !=0 check from OCDB
68 TString fTriggerClass; // trigger class to be inspected
69 AliTriggerConfiguration *fTrigConfig; // trigger configuration (read from OCDB)
70 TString fOCDBPath; // to the OCDB
71 AliESDtrackCuts *fESDtrackCuts; // track cuts
72 TList *fOutputitspureSARec; //! ITS StandAlone: with track in vtx
73 TList *fOutputitspureSASkip; //! ITS StandAlone: w/o track in vtx
74 TList *fOutputallPointRec; //! ITS+TPC: 6 ITScls, with track in vtx
75 TList *fOutputallPointSkip; //! ITS+TPC: 6 ITScls, w/o track in vtx
76 TList *fOutputpartPointRec; //! ITS+TPC: >=1 SPD, with track in vtx
77 TList *fOutputpartPointSkip; //! ITS+TPC: >=1 SPD, w/o track in vtx
78 TList *fOutputonepointSPDRec; //! At least one point on SPD, with track in vtx
79 TList *fOutputonepointSPDSkip;//! At least one point on SPD w/o track in vtx
80 TList *fOutputpostvTracRec; //! ITS+TPC: >=1 SPD, positives, with track in vtx
81 TList *fOutputpostvTracSkip; //! ITS+TPC: >=1 SPD, positives, w/o track in vtx
82 TList *fOutputnegtvTracRec; //! ITS+TPC: >=1 SPD, negatives, with track in vtx
83 TList *fOutputnegtvTracSkip; //! ITS+TPC: >=1 SPD, negatives, w/o track in vtx
84 TList *fOutputpullAllpointRec; //! pull ITS+TPC: 6 ITScls, with track in vtx
85 TList *fOutputpullAllpointSkip;//! pull ITS+TPC: 6 ITScls, w/o track in vtx
86 TList *fOutputOnlyRefitRec; //! ITS+TPC: any ITScls, with track in vtx
87 TList *fOutputOnlyRefitSkip; //! ITS+TPC: any ITScls, w/o track in vtx
88 TList *fOutputSinThetaRec; //! ITS+TPC: TH2F(pt,sintheta), with track in vtx
89 TList *fOutputSinThetaSkip; //! ITS+TPC: TH2F(pt,sintheta), w/o track in vtx
90 TList *fOutputallPointTrue; //!
91 TList *fOutputpostvTracTrue; //!
92 TList *fOutputnegtvTracTrue; //!
93 TList *fOutputpullAllpointTrue; //!
94 TList *fOutputphiAllpointSkip; //!
95 TList *fOutputphiPostvtracSkip; //!
96 TList *fOutputphiNegtvtracSkip; //!
97 TList *fOutputparticlePID; //!
98 TList *fOutputWithTrackCuts; //!
100 TH1F *fNentries; //! histogram of number of events
101 TH1F *fEstimVtx; //! vertex resolution
103 Bool_t IsSelectedCentrality(AliESDEvent *esd) const;
105 ClassDef(AliAnalysisTaskSEImpParRes,8); // AliAnalysisTaskSE for the study of the impact parameter resolution