]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/ITS/AliAnalysisTaskSEImpParRes.h
ATO-17 - one more change - ULong_t not properly handled by the TTree::BuildIndex...
[u/mrichter/AliRoot.git] / PWGPP / ITS / AliAnalysisTaskSEImpParRes.h
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;
17 class AliTriggerConfiguration;
18 class AliVTrack;
19 class AliVVertex;
20 class AliESDtrackCuts;
21
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; }
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;}
48
49  private:
50   
51   AliAnalysisTaskSEImpParRes(const AliAnalysisTaskSEImpParRes &source);
52   AliAnalysisTaskSEImpParRes& operator=(const AliAnalysisTaskSEImpParRes& source);  
53   
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; //!
99   TList *fOutputPt;     //!           
100   TH1F  *fNentries;   //! histogram of number of events
101   TH1F  *fEstimVtx;   //! vertex resolution
102
103   Bool_t IsSelectedCentrality(AliESDEvent *esd) const;
104
105   ClassDef(AliAnalysisTaskSEImpParRes,8); // AliAnalysisTaskSE for the study of the impact parameter resolution
106 };
107
108 #endif