]>
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 | |
25 | virtual AliESDVertex* GetAllVertices(Int_t& nVert) const { nVert=fNoVertices; return (AliESDVertex*)&fVertices[0]; }; | |
26 | virtual AliESDVertex* FindVertexForCurrentEvent(TTree *); | |
27 | void FindVerticesForCurrentEvent(); | |
28 | virtual void PrintStatus() const; | |
29 | void Reset(); | |
30 | ||
31 | // Getters | |
32 | UInt_t GetNoLines() const { return fNoLines; } | |
33 | UShort_t GetNumOfVertices() const { return fNoVertices; } | |
34 | ||
35 | ||
36 | // Setters | |
37 | void SetClusters(TClonesArray *clr, const UShort_t i); | |
38 | void SetPhiCut(const Double_t phicut) { fPhiCut=phicut; } | |
39 | void SetZCut(const Double_t zcut) { fZCut=zcut; } | |
40 | ||
41 | #ifdef MC_CHECK | |
42 | // Debug + MC truth | |
43 | UInt_t* GetParticleId(UInt_t &num) const { num=fGoodLines; return fParticleId; } | |
44 | UInt_t GetGoodLines() const { return fGoodLines; } | |
45 | UInt_t GetGoodLinesPhi() const { return fGoodLinesPhi; } | |
46 | UInt_t GetLinesPhi() const { return fLinesPhi; } | |
47 | #endif | |
b824a5f5 | 48 | |
49 | protected: | |
30da2335 | 50 | // Methods |
51 | AliITSUVertexer(AliITSUVertexer&); | |
52 | AliITSUVertexer& operator=(const AliITSUVertexer& other); | |
53 | void AddToCluster(UInt_t line,Bool_t weight=kFALSE,Int_t cl=-1); | |
54 | void CleanAndOrderClusters(); | |
55 | void Clusterize(UInt_t l1, UInt_t l2, Bool_t weight=kFALSE); | |
56 | void ComputeClusterCentroid(UInt_t cl); | |
57 | void FindTracklets(); | |
58 | Int_t MatchPoints(UShort_t layer, Double_t anchor, Double_t *p0=0x0, Double_t *p1=0x0); | |
59 | void MoveLabels(Short_t start, Short_t end); | |
60 | ||
61 | // Data members | |
62 | Int_t fClusterContribCut; | |
63 | Double_t fClusterCut; | |
64 | Int_t *fClusterIndex[3]; // AliITSUClusterPix index | |
65 | Double_t *fClusterPhi[3]; // Phi of clusters | |
66 | TClonesArray *fClusters[3]; //! array of pointers to TClonesArray of AliITSUClusterPix not owned by this class | |
67 | TClonesArray fLines; //! array of tracklets | |
68 | TClonesArray fLinesClusters; // array of vertex candidates | |
69 | UInt_t fLinesPhi; // number of tracklets built by using the first two layers | |
70 | UInt_t fNoClusters; // number of clusters | |
71 | UInt_t fNoLines; // number of tracklets | |
72 | UShort_t fNoVertices; // number of vertices | |
73 | Double_t fPairCut; // cut on pair | |
74 | Double_t fPhiCut; // cut on deltaphi for cluster matching among first two layers | |
75 | Double_t fZCut; // cut on deltatheta for cluster matching among first two layers and the third one | |
76 | Bool_t *fUsedClusters[3]; // flag for used clusters in tracklet formation | |
77 | Short_t *fUsedLines; // flag for used lines | |
78 | vector<AliESDVertex> fVertices; // array of vertices | |
79 | ||
80 | #ifdef MC_CHECK | |
81 | // MC truth methods | |
82 | Bool_t CheckMC(UInt_t,UInt_t,UInt_t); | |
b824a5f5 | 83 | |
30da2335 | 84 | // MC truth data members |
85 | UInt_t fGoodLines; | |
86 | UInt_t fGoodLinesPhi; | |
87 | UInt_t *fParticleId; | |
88 | #endif | |
b824a5f5 | 89 | |
30da2335 | 90 | ClassDef(AliITSUVertexer,1) |
b824a5f5 | 91 | }; |
92 | ||
93 | #endif |