]>
Commit | Line | Data |
---|---|---|
a9e2aefa | 1 | #ifndef ALIMUONCLUSTERFINDERVS_H |
2 | #define ALIMUONCLUSTERFINDERVS_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
30178c30 | 7 | // Revision of includes 07/05/2004 |
a9e2aefa | 8 | |
692de412 | 9 | /// \ingroup rec |
10 | /// \class AliMUONClusterFinderVS | |
11 | /// \brief Class for clustering and reconstruction of space points | |
c4ee792d | 12 | /// |
13 | /// (Not used by default) | |
c1a185bf | 14 | |
30aaba74 | 15 | #include <TObject.h> |
9825400f | 16 | |
30178c30 | 17 | class TClonesArray; |
18 | ||
c1a185bf | 19 | class AliMUONClusterInput; |
5289cf2f | 20 | class AliMUONDigitMapA1; |
fed772f3 | 21 | class AliMUONGeometrySegmentation; |
30aaba74 | 22 | class AliMUONRawCluster; |
23 | class AliMUONDigit; | |
24 | ||
25 | ||
26 | class AliMUONClusterFinderVS : public TObject | |
a9e2aefa | 27 | { |
28 | public: | |
a9e2aefa | 29 | AliMUONClusterFinderVS(); |
4da78c65 | 30 | virtual ~AliMUONClusterFinderVS(); |
c4ee792d | 31 | /// Decluster ? |
30aaba74 | 32 | virtual void SetDeclusterFlag(Int_t flag=1) {fDeclusterFlag =flag;} |
c4ee792d | 33 | /// Set max. cluster size ; bigger clusters will deconvoluted |
30aaba74 | 34 | virtual void SetClusterSize(Int_t clsize=5) {fClusterSize = clsize;} |
c4ee792d | 35 | /// Set max. number of pads per local cluster |
30aaba74 | 36 | virtual void SetNperMax(Int_t npermax=5) {fNperMax = npermax;} |
a9e2aefa | 37 | // Search for raw clusters |
30aaba74 | 38 | virtual void FindRawClusters(); |
a9e2aefa | 39 | // Find cluster |
40 | virtual void FindCluster(Int_t i, Int_t j, Int_t cath, AliMUONRawCluster &c); | |
41 | // Decluster | |
42 | virtual void Decluster(AliMUONRawCluster *cluster); | |
43 | // Perform split by local maxima | |
44 | virtual void SplitByLocalMaxima(AliMUONRawCluster *cluster); | |
45 | virtual void FindLocalMaxima(AliMUONRawCluster *cluster); | |
46 | virtual void Split(AliMUONRawCluster * cluster); | |
a9e2aefa | 47 | // Perform Double Mathieson Fit |
30aaba74 | 48 | Bool_t DoubleMathiesonFit(AliMUONRawCluster *c, Int_t cath); |
a9e2aefa | 49 | Float_t CombiDoubleMathiesonFit(AliMUONRawCluster *c); |
50 | Float_t SingleMathiesonFit(AliMUONRawCluster *c, Int_t cath); | |
51 | Float_t CombiSingleMathiesonFit(AliMUONRawCluster *c); | |
52 | // Build up full cluster information | |
53 | virtual void FillCluster(AliMUONRawCluster *cluster, Int_t flag, Int_t cath); | |
54 | virtual void FillCluster(AliMUONRawCluster *cluster, Int_t cath); | |
c4ee792d | 55 | /// \todo add comment |
30aaba74 | 56 | virtual void FillCluster(AliMUONRawCluster *cluster) {FillCluster(cluster,1,0);} |
57 | // Add a new raw cluster | |
b137f8b9 | 58 | virtual void AddRawCluster(AliMUONRawCluster& cluster); |
c4ee792d | 59 | /// Set tracks for debugging |
30aaba74 | 60 | virtual void SetTracks(Int_t t1, Int_t t2) {fTrack[0]=t1; fTrack[1]=t2;} |
c4ee792d | 61 | /// Set cut in charge matching chi2 |
07cfabcf | 62 | void SetGhostChi2Cut(Float_t cut) {fGhostChi2Cut = cut;} |
c4ee792d | 63 | /// Get raw cluster pointer |
4da78c65 | 64 | TClonesArray* GetRawClusters() {return fRawClusters;} |
c4ee792d | 65 | /// Reset raw clusters |
4da78c65 | 66 | void ResetRawClusters(); |
71a2d3aa | 67 | /// Set evt number |
d2f8e464 | 68 | void SetEventNumber(Int_t evtNumber) {fEvtNumber = evtNumber;} |
30aaba74 | 69 | |
70 | protected: | |
30178c30 | 71 | |
829425a5 | 72 | AliMUONClusterInput* fInput; //!< AliMUONClusterInput instance |
73 | AliMUONDigitMapA1* fDigitMap[2]; ///< Hit Maps for cathode 1 and 2 | |
74 | AliMUONGeometrySegmentation* fSeg2[2]; ///< New Segmentations for cathode 1 and 2 | |
fed772f3 | 75 | |
f0d86bc4 | 76 | |
30aaba74 | 77 | // Configuration |
829425a5 | 78 | Int_t fDeclusterFlag; ///< flag for declusterin |
79 | Int_t fClusterSize; ///< cluster size | |
80 | Int_t fNperMax; ///< Maximum number of pads per peak | |
81 | Float_t fGhostChi2Cut; ///< \brief Cut in charge matching chi2 | |
82 | /// (2 degrees of freedom) | |
83 | /// Used by ghost removal | |
b137f8b9 | 84 | // Current decluster result |
829425a5 | 85 | Int_t fMul[2]; ///< current multiplicity |
86 | Int_t fNPeaks; ///< number of local maxima | |
87 | Int_t fNRawClusters; ///< Number of Raw Clusters | |
88 | TClonesArray* fRawClusters; ///< array of cluster per ch. | |
4da78c65 | 89 | |
b137f8b9 | 90 | // Local data store |
829425a5 | 91 | AliMUONDigit* fDig[100][2]; ///< current list of digits |
92 | Int_t fIx[100][2]; ///< current list of x-pad-coord. | |
93 | Int_t fIy[100][2]; ///< current list of y-pad-coord. | |
94 | Float_t fX[100][2]; ///< current list of x-coord. | |
95 | Float_t fY[100][2]; ///< current list of y-coord. | |
96 | Float_t fZ[100][2]; ///< current list of z-coord. | |
97 | Int_t fIndLocal[100][2]; ///< indices of local maxima | |
98 | Int_t fNLocal[2]; ///< Number of local maxima | |
9f066431 | 99 | Float_t fQ[100][2]; ///< current list of charges |
829425a5 | 100 | Float_t fZPlane; ///< currenz z-plane position |
101 | Int_t fSector; ///< current sector | |
f0d86bc4 | 102 | |
b137f8b9 | 103 | // Current Fit |
829425a5 | 104 | Double_t fXFit[2]; ///< x-coordinate |
105 | Double_t fYFit[2]; ///< y-coordinate | |
106 | Double_t fQrFit[2]; ///< charge ratio | |
107 | Float_t fChi2[2]; ///< chi2 of fit | |
108 | Float_t fXInit[2]; ///< start values | |
109 | Float_t fYInit[2]; ///< start values | |
110 | Float_t fQrInit[2]; ///< start values | |
111 | Int_t fFitStat; ///< status of fit | |
a9e2aefa | 112 | |
b137f8b9 | 113 | // Selected track for debugging |
829425a5 | 114 | Int_t fTrack[2]; ///< Only digits with main contributions from these tracks are |
b137f8b9 | 115 | // considered |
b137f8b9 | 116 | |
d2f8e464 | 117 | Int_t fEvtNumber; ///< evt number for AZ |
118 | ||
54d7ba50 | 119 | private: |
c4ee792d | 120 | /// Not implemented |
54d7ba50 | 121 | AliMUONClusterFinderVS(const AliMUONClusterFinderVS& clusterFinder); |
c4ee792d | 122 | /// Not implemented assignment operator |
54d7ba50 | 123 | AliMUONClusterFinderVS & operator = (const AliMUONClusterFinderVS& rhs); |
124 | ||
9f066431 | 125 | ClassDef(AliMUONClusterFinderVS,3) //Class for clustering and reconstruction of space points |
b137f8b9 | 126 | }; |
a9e2aefa | 127 | #endif |
128 | ||
129 | ||
130 | ||
131 | ||
132 | ||
133 | ||
134 | ||
135 | ||
136 | ||
137 | ||
30aaba74 | 138 | |
139 | ||
140 | ||
141 | ||
142 |