]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/AliAnalysisTaskIPInfo.h
Adding the estimator for the interaction spot size (R. Shahoyan)
[u/mrichter/AliRoot.git] / PWG1 / AliAnalysisTaskIPInfo.h
1 #ifndef ALIANALYSISTASKIPINFO_H
2 #define ALIANALYSISTASKIPINFO_H
3
4 /* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 class AliESDEvent;
8 class AliESDVertex;
9 class AliIntSpotEstimator;
10
11 #include "AliAnalysisTask.h"
12
13 class AliAnalysisTaskIPInfo : public AliAnalysisTask 
14 {
15  public:
16   enum {kTPC,kITS,kNEst};
17   //
18   AliAnalysisTaskIPInfo(const char *name = "IPInfo");
19                         
20   virtual ~AliAnalysisTaskIPInfo(); 
21   //
22   AliIntSpotEstimator* GetEstTPC()                          const {return fIPEst[kTPC];}
23   AliIntSpotEstimator* GetEstITS()                          const {return fIPEst[kITS];}
24
25   void SetOptions(Int_t estID, Bool_t recoVtx=kFALSE,
26                   Double_t outcut=1e-4, Int_t nPhiBins=12,Int_t nestb=1000,
27                   Double_t estmin=-4e-2,Double_t estmax=6e-2,
28                   Int_t ntrBins=10,Int_t ntMn=2,Int_t ntMx=32,
29                   Int_t nPBins=14,Double_t pmn=0.2,Double_t pmx=3.);
30   //
31   virtual void   ConnectInputData(Option_t *);
32   virtual void   CreateOutputObjects();
33   virtual void   Exec(Option_t *option);
34   virtual void   Terminate(Option_t *);
35   //  
36  protected:
37   //
38   // options for estimators creation
39   Bool_t    fRecoVtx[kNEst];               //! request to refit the vertex for given estimator
40   Int_t     fNPhiBins[kNEst];              //! n bins in phi for IP
41   Int_t     fNEstb[kNEst];                 //! n of estimator bins
42   Int_t     fNTrBins[kNEst];               //! n of vtx.mult. bins
43   Int_t     fNPBins[kNEst];                //! n of track P bins
44   Int_t     fNTrMin[kNEst];                //! min vtx multuplicity
45   Int_t     fNTrMax[kNEst];                //! max vtx multuplicity
46   Double_t  fOutCut[kNEst];                //! outliers cut level
47   Double_t  fEstMin[kNEst];                //! lower estimator boundary
48   Double_t  fEstMax[kNEst];                //! upper estimator boundary
49   Double_t  fPMin[kNEst];                  //! lower P cut
50   Double_t  fPMax[kNEst];                  //! upper P cut
51   //
52   AliIntSpotEstimator* fIPEst[kNEst];     //! estimators
53   AliESDEvent *fESD;                      //! ESD object
54   TList       *fOutput;                   //! list send on output slot 0
55   TObjArray fTracks;                      //! temporary storage for extracted tracks
56   //
57  private:    
58   //
59   AliAnalysisTaskIPInfo(const AliAnalysisTaskIPInfo&); // not implemented
60   AliAnalysisTaskIPInfo& operator=(const AliAnalysisTaskIPInfo&); // not implemented
61   AliESDVertex* ReconstructPrimaryVertexTPC() const;
62   AliESDVertex* ReconstructPrimaryVertexITSTPC() const;
63   
64   ClassDef(AliAnalysisTaskIPInfo,1); // IP, vertexing and DCA resolutions analysis
65 };
66
67 #endif