handle bash args properly using arrays
[u/mrichter/AliRoot.git] / PWGPP / 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 AliESDfriend;
8 class AliESDEvent;
9 class AliESDVertex;
10 class AliIntSpotEstimator;
11
12 #include "AliAnalysisTask.h"
13
14 class AliAnalysisTaskIPInfo : public AliAnalysisTask 
15 {
16  public:
17   enum {kITSTPC,kTPC,kSPD,kNEst};
18   //
19   AliAnalysisTaskIPInfo(const char *name = "IPInfo");
20                         
21   virtual ~AliAnalysisTaskIPInfo(); 
22   //
23   AliIntSpotEstimator* GetEstimator(Int_t i)                const {return i>=0&&i<kNEst ? fIPEst[i] : 0;}
24   //
25   void SetOptions(Int_t estID, Bool_t recoVtx=kFALSE, 
26                   Double_t outcut=1e-4, Int_t ntrIP=2,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.,Bool_t fillNt=kFALSE);
30   void SetIPCenIni(Int_t esdID, Double_t x=0,Double_t y=0,Double_t z=0);
31   Int_t CreateSPDTracklets(TClonesArray& tracks);
32   //
33   virtual void   ConnectInputData(Option_t *);
34   virtual void   CreateOutputObjects();
35   virtual void   Exec(Option_t *option);
36   virtual void   Terminate(Option_t *);
37   //  
38  protected:
39   //
40   // options for estimators creation
41   Bool_t    fRecoVtx[kNEst];               //! request to refit the vertex for given estimator
42   Int_t     fNTrMinIP[kNEst];              //! min tracks for IP estimator
43   Int_t     fNPhiBins[kNEst];              //! n bins in phi for IP
44   Int_t     fNEstb[kNEst];                 //! n of estimator bins
45   Int_t     fNTrBins[kNEst];               //! n of vtx.mult. bins
46   Int_t     fNPBins[kNEst];                //! n of track P bins
47   Int_t     fNTrMin[kNEst];                //! min vtx multuplicity
48   Int_t     fNTrMax[kNEst];                //! max vtx multuplicity
49   Double_t  fOutCut[kNEst];                //! outliers cut level
50   Double_t  fEstMin[kNEst];                //! lower estimator boundary
51   Double_t  fEstMax[kNEst];                //! upper estimator boundary
52   Double_t  fPMin[kNEst];                  //! lower P cut
53   Double_t  fPMax[kNEst];                  //! upper P cut
54   Double_t  fIPCenIni[kNEst][3];           //! initial estimate of IP Center
55   Bool_t    fFillNt[kNEst];                //! request to fill ntuple
56   //
57   AliIntSpotEstimator* fIPEst[kNEst];     //! estimators
58   AliESDEvent  *fESD;                     //! ESD object
59   AliESDfriend *fESDfriend;               //! ESD friend object
60   TList       *fOutput;                   //! list send on output slot 0
61   TObjArray fTracks;                      //! temporary storage for extracted tracks
62   static const Char_t* fEstNames[kNEst];  //  estimator names
63   //
64  private:    
65   //
66   AliAnalysisTaskIPInfo(const AliAnalysisTaskIPInfo&); // not implemented
67   AliAnalysisTaskIPInfo& operator=(const AliAnalysisTaskIPInfo&); // not implemented
68   AliESDVertex* ReconstructPrimaryVertexTPC() const;
69   AliESDVertex* ReconstructPrimaryVertexITSTPC() const;
70   
71   ClassDef(AliAnalysisTaskIPInfo,1); // IP, vertexing and DCA resolutions analysis
72 };
73
74 #endif