Installing GRP/CTP
[u/mrichter/AliRoot.git] / PWGPP / AliAnalysisTaskIPInfo.h
CommitLineData
5b09c01f 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
d631e5e7 7class AliESDfriend;
5b09c01f 8class AliESDEvent;
9class AliESDVertex;
10class AliIntSpotEstimator;
11
12#include "AliAnalysisTask.h"
13
14class AliAnalysisTaskIPInfo : public AliAnalysisTask
15{
16 public:
d631e5e7 17 enum {kITSTPC,kTPC,kSPD,kNEst};
5b09c01f 18 //
19 AliAnalysisTaskIPInfo(const char *name = "IPInfo");
20
21 virtual ~AliAnalysisTaskIPInfo();
22 //
d631e5e7 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,
5b09c01f 27 Double_t estmin=-4e-2,Double_t estmax=6e-2,
28 Int_t ntrBins=10,Int_t ntMn=2,Int_t ntMx=32,
d631e5e7 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);
5b09c01f 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
d631e5e7 42 Int_t fNTrMinIP[kNEst]; //! min tracks for IP estimator
5b09c01f 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
d631e5e7 54 Double_t fIPCenIni[kNEst][3]; //! initial estimate of IP Center
55 Bool_t fFillNt[kNEst]; //! request to fill ntuple
5b09c01f 56 //
57 AliIntSpotEstimator* fIPEst[kNEst]; //! estimators
d631e5e7 58 AliESDEvent *fESD; //! ESD object
59 AliESDfriend *fESDfriend; //! ESD friend object
5b09c01f 60 TList *fOutput; //! list send on output slot 0
61 TObjArray fTracks; //! temporary storage for extracted tracks
d631e5e7 62 static const Char_t* fEstNames[kNEst]; // estimator names
5b09c01f 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