]>
Commit | Line | Data |
---|---|---|
77e570bf | 1 | #ifndef ALIANALYSISTASKSEIMPPARRES_H |
2 | #define ALIANALYSISTASKSEIMPPARRES_H | |
3 | ||
4 | /* Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | //************************************************************************* | |
8 | // Class AliAnalysisTaskSEImpParRes | |
9 | // AliAnalysisTaskSE for the study of the track impact parameter resolution | |
10 | // | |
11 | // Authors: xianbao.yuan@pd.infn.it, andrea.dainese@pd.infn.it | |
12 | // | |
13 | //************************************************************************* | |
14 | ||
15 | class TList; | |
16 | class TH1F; | |
31a96e36 | 17 | class AliTriggerConfiguration; |
ee4da4d8 | 18 | class AliVTrack; |
19 | class AliVVertex; | |
20 | class AliESDtrackCuts; | |
21 | ||
77e570bf | 22 | |
23 | #include "AliAnalysisTaskSE.h" | |
24 | ||
25 | class AliAnalysisTaskSEImpParRes : public AliAnalysisTaskSE { | |
26 | ||
27 | public: | |
28 | ||
29 | AliAnalysisTaskSEImpParRes(); | |
30 | AliAnalysisTaskSEImpParRes(const char *name); | |
31 | virtual ~AliAnalysisTaskSEImpParRes(); | |
32 | ||
33 | ||
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; } | |
ee4da4d8 | 39 | void SetIsAOD(Bool_t isAOD) { fIsAOD=isAOD; return; } |
77e570bf | 40 | void SetSelectedPdg(Int_t pdg) { fSelectedPdg=pdg; return; } |
cbddc2a0 | 41 | void SetUseDiamond(Bool_t use=kFALSE) { fUseDiamond=use; return; } |
47f68c78 | 42 | void SetSkipTrack(Bool_t skip=kFALSE) { fSkipTrack=skip; return; } |
66cefb1c | 43 | void SetMultiplicityRange(Int_t min,Int_t max) { fMinMult=min; fMaxMult=max; } |
31a96e36 | 44 | void SetCheckSDDIsIn(Int_t check=0) { fCheckSDDIsIn=check; } |
45 | void SetTriggerClass(TString tclass="") { fTriggerClass=tclass; } | |
46 | void SetOCDBPath(TString path="") { fOCDBPath=path; } | |
ee4da4d8 | 47 | void SetESDtrackCuts(AliESDtrackCuts *esdCuts) {fESDtrackCuts=esdCuts;} |
77e570bf | 48 | |
49 | private: | |
50 | ||
51 | AliAnalysisTaskSEImpParRes(const AliAnalysisTaskSEImpParRes &source); | |
52 | AliAnalysisTaskSEImpParRes& operator=(const AliAnalysisTaskSEImpParRes& source); | |
53 | ||
54 | Int_t PtBin(Double_t pt) const; | |
b2d79ac3 | 55 | Int_t SinThetaBin(Double_t sintheta) const; |
56 | Double_t Getd0HistRange(Int_t i) const; | |
cbddc2a0 | 57 | Int_t PhiBin(Double_t phi) const; |
58 | Int_t ClusterTypeOnITSLayer(AliESDtrack *t,Int_t layer) const; | |
ee4da4d8 | 59 | Bool_t IsTrackSelected(AliVTrack *t,AliVVertex *v, AliESDtrackCuts *cuts) const; |
60 | Bool_t fIsAOD; // flag to read AOD or ESD (default is ESD) | |
77e570bf | 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) | |
a979993d | 63 | Bool_t fUseDiamond; // use diamond constraint in primary vertex |
47f68c78 | 64 | Bool_t fSkipTrack; // redo primary vertex for each track |
66cefb1c | 65 | Int_t fMinMult; // minimum multiplicity |
66 | Int_t fMaxMult; // maximum multiplicity | |
31a96e36 | 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 | |
ee4da4d8 | 71 | AliESDtrackCuts *fESDtrackCuts; // track cuts |
77e570bf | 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 | |
b2d79ac3 | 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 | |
cbddc2a0 | 90 | TList *fOutputallPointTrue; //! |
91 | TList *fOutputpostvTracTrue; //! | |
92 | TList *fOutputnegtvTracTrue; //! | |
93 | TList *fOutputpullAllpointTrue; //! | |
94 | TList *fOutputphiAllpointSkip; //! | |
95 | TList *fOutputphiPostvtracSkip; //! | |
96 | TList *fOutputphiNegtvtracSkip; //! | |
319532c0 | 97 | TList *fOutputparticlePID; //! |
ee4da4d8 | 98 | TList *fOutputWithTrackCuts; //! |
77e570bf | 99 | TList *fOutputPt; //! |
100 | TH1F *fNentries; //! histogram of number of events | |
101 | TH1F *fEstimVtx; //! vertex resolution | |
102 | ||
66cefb1c | 103 | Bool_t IsSelectedCentrality(AliESDEvent *esd) const; |
104 | ||
ee4da4d8 | 105 | ClassDef(AliAnalysisTaskSEImpParRes,8); // AliAnalysisTaskSE for the study of the impact parameter resolution |
77e570bf | 106 | }; |
107 | ||
108 | #endif |