Copy/paste error fixed (Yu.Belikov)
[u/mrichter/AliRoot.git] / ITS / AliITSMultReconstructor.h
CommitLineData
ac903f1b 1#ifndef ALIITSMULTRECONSTRUCTOR_H
2#define ALIITSMULTRECONSTRUCTOR_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
7
8/////////////////////////////////////////////////////////////////////////
9//
10// AliITSMultReconstructor - find clusters in the pixels (theta and
11// phi) and tracklets.
12//
13// These can be used to extract charged particles multiplcicity from the ITS.
14//
15// A tracklet consist of two ITS clusters, one in the first pixel
16// layer and one in the second. The clusters are associates if the
17// differencies in Phi (azimuth) and Zeta (longitudinal) are inside
18// a fiducial volume. In case of multiple candidates it is selected the
19// candidate with minimum distance in Phi.
20// The boolean fOnlyOneTrackletPerC2 allows to control if two clusters
21// in layer 2 can be associated to the same cluster in layer 1 or not.
22//
23/////////////////////////////////////////////////////////////////////////
24
25#include "TObject.h"
26
27class TTree;
28class TH1F;
29class TH2F;
30class AliITSgeom;
31
32class AliITSMultReconstructor : public TObject
33{
34public:
35 AliITSMultReconstructor();
36
37 void SetGeometry(AliITSgeom* geo) {fGeometry = geo;}
38
39 void Reconstruct(TTree* tree, Float_t* vtx, Float_t* vtxRes);
40
41 void SetPhiWindow(Float_t w=0.08) {fPhiWindow=w;}
42 void SetZetaWindow(Float_t w=0.1) {fZetaWindow=w;}
43 void SetOnlyOneTrackletPerC2(Float_t b = kFALSE) {fOnlyOneTrackletPerC2 = b;}
44
45 Int_t GetNClustersLayer1() const {return fNClustersLay1;}
46 Int_t GetNClustersLayer2() const {return fNClustersLay2;}
47 Int_t GetNTracklets() const {return fNTracklets;}
48
49 Float_t* GetClusterLayer1(Int_t n) {return fClustersLay1[n];}
50 Float_t* GetClusterLayer2(Int_t n) {return fClustersLay2[n];}
51 Float_t* GetTracklet(Int_t n) {return fTracklets[n];}
52
53 void SetHistOn(Bool_t b=kFALSE) {fHistOn=b;}
54 void SaveHists();
55protected:
56
57 AliITSgeom* fGeometry; // ITS geometry
58
59 Float_t** fClustersLay1; // clusters in the 1st layer of ITS
60 Float_t** fClustersLay2; // clusters in the 2nd layer of ITS
61 Float_t** fTracklets; // tracklets
62 Bool_t* fAssociationFlag; // flag for the associations
63
64 Int_t fNClustersLay1; // Number of clusters (Layer1)
65 Int_t fNClustersLay2; // Number of clusters (Layer2)
66 Int_t fNTracklets; // Number of tracklets
67
68 Float_t fPhiWindow; // Search window in phi
69 Float_t fZetaWindow; // SEarch window in eta
70
71 Bool_t fOnlyOneTrackletPerC2; // only one tracklet per cluster in layer 2?
72
73 Bool_t fHistOn;
74
75 TH1F* fhClustersDPhi;
76 TH1F* fhClustersDTheta;
77 TH1F* fhClustersDZeta;
78
79 TH2F* fhDPhiVsDThetaAll;
80 TH2F* fhDPhiVsDThetaAcc;
81
82 void LoadClusterArrays(TTree* tree);
83
84 ClassDef(AliITSMultReconstructor,0)
85};
86
87#endif