]>
Commit | Line | Data |
---|---|---|
30da2335 | 1 | #ifndef ALIITSUVERTEXER_H |
2 | #define ALIITSUVERTEXER_H | |
3 | //#define MC_CHECK // comment out to enable MC checks for debugging | |
b824a5f5 | 4 | |
30da2335 | 5 | #include "AliVertexer.h" |
b824a5f5 | 6 | |
30da2335 | 7 | /* Copyright(c) 2009-2014, ALICE Experiment at CERN, All rights reserved. * |
8 | * See cxx source for full Copyright notice */ | |
9 | ||
10 | ///////////////////////////////////////////////////////////////////////////// | |
11 | // Class for the reconstruction of the primary vertices using ITSU // | |
12 | ///////////////////////////////////////////////////////////////////////////// | |
b824a5f5 | 13 | |
30da2335 | 14 | class TClonesArray; |
b824a5f5 | 15 | class AliESDVertex; |
16 | ||
17 | class AliITSUVertexer : public AliVertexer { | |
b824a5f5 | 18 | public: |
30da2335 | 19 | |
20 | // Constructors and destructors | |
21 | AliITSUVertexer(Double_t phicut=0.02,Double_t zcut=0.005,Double_t paircut=0.1, Double_t clustercut=0.5, Int_t clcontrib=3); | |
b824a5f5 | 22 | virtual ~AliITSUVertexer(); |
30da2335 | 23 | |
24 | // Public methods | |
b82baa0e | 25 | virtual AliESDVertex* GetAllVertices(Int_t& nVert) const { nVert=fNoVertices; return fVertices; }; |
30da2335 | 26 | virtual AliESDVertex* FindVertexForCurrentEvent(TTree *); |
30da2335 | 27 | virtual void PrintStatus() const; |
30da2335 | 28 | |
29 | // Getters | |
aea3f062 | 30 | UInt_t GetNoLines() const { return fNoLines; } |
30da2335 | 31 | UShort_t GetNumOfVertices() const { return fNoVertices; } |
30da2335 | 32 | |
33 | // Setters | |
5a516e0a | 34 | void SetPhiCut(Double_t phicut) { fPhiCut=phicut; } |
35 | void SetZCut(Double_t zcut) { fZCut=zcut; } | |
30da2335 | 36 | |
37 | #ifdef MC_CHECK | |
38 | // Debug + MC truth | |
39 | UInt_t* GetParticleId(UInt_t &num) const { num=fGoodLines; return fParticleId; } | |
40 | UInt_t GetGoodLines() const { return fGoodLines; } | |
41 | UInt_t GetGoodLinesPhi() const { return fGoodLinesPhi; } | |
42 | UInt_t GetLinesPhi() const { return fLinesPhi; } | |
43 | #endif | |
b824a5f5 | 44 | |
45 | protected: | |
30da2335 | 46 | // Methods |
47 | AliITSUVertexer(AliITSUVertexer&); | |
48 | AliITSUVertexer& operator=(const AliITSUVertexer& other); | |
49 | void AddToCluster(UInt_t line,Bool_t weight=kFALSE,Int_t cl=-1); | |
50 | void CleanAndOrderClusters(); | |
51 | void Clusterize(UInt_t l1, UInt_t l2, Bool_t weight=kFALSE); | |
52 | void ComputeClusterCentroid(UInt_t cl); | |
53 | void FindTracklets(); | |
aea3f062 | 54 | void FindVerticesForCurrentEvent(); |
30da2335 | 55 | Int_t MatchPoints(UShort_t layer, Double_t anchor, Double_t *p0=0x0, Double_t *p1=0x0); |
56 | void MoveLabels(Short_t start, Short_t end); | |
aea3f062 | 57 | void Reset(); |
58 | void SortClusters(); | |
30da2335 | 59 | |
60 | // Data members | |
61 | Int_t fClusterContribCut; | |
62 | Double_t fClusterCut; | |
63 | Int_t *fClusterIndex[3]; // AliITSUClusterPix index | |
64 | Double_t *fClusterPhi[3]; // Phi of clusters | |
65 | TClonesArray *fClusters[3]; //! array of pointers to TClonesArray of AliITSUClusterPix not owned by this class | |
66 | TClonesArray fLines; //! array of tracklets | |
67 | TClonesArray fLinesClusters; // array of vertex candidates | |
68 | UInt_t fLinesPhi; // number of tracklets built by using the first two layers | |
69 | UInt_t fNoClusters; // number of clusters | |
70 | UInt_t fNoLines; // number of tracklets | |
71 | UShort_t fNoVertices; // number of vertices | |
72 | Double_t fPairCut; // cut on pair | |
73 | Double_t fPhiCut; // cut on deltaphi for cluster matching among first two layers | |
74 | Double_t fZCut; // cut on deltatheta for cluster matching among first two layers and the third one | |
75 | Bool_t *fUsedClusters[3]; // flag for used clusters in tracklet formation | |
76 | Short_t *fUsedLines; // flag for used lines | |
b82baa0e | 77 | AliESDVertex *fVertices; // array of vertices |
30da2335 | 78 | |
79 | #ifdef MC_CHECK | |
80 | // MC truth methods | |
81 | Bool_t CheckMC(UInt_t,UInt_t,UInt_t); | |
b824a5f5 | 82 | |
30da2335 | 83 | // MC truth data members |
84 | UInt_t fGoodLines; | |
85 | UInt_t fGoodLinesPhi; | |
86 | UInt_t *fParticleId; | |
87 | #endif | |
b824a5f5 | 88 | |
30da2335 | 89 | ClassDef(AliITSUVertexer,1) |
b824a5f5 | 90 | }; |
91 | ||
92 | #endif |