]>
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$ */ | |
7 | ||
8 | //////////////////////////////////////////////// | |
9 | // MUON Cluster Finder Class // | |
10 | //////////////////////////////////////////////// | |
30aaba74 | 11 | #include <TObject.h> |
12 | #include "AliMUONHitMapA1.h" | |
13 | #include "AliMUONClusterInput.h" | |
9825400f | 14 | |
30aaba74 | 15 | class AliMUONResponse; |
a30a000f | 16 | class AliSegmentation; |
30aaba74 | 17 | class TClonesArray; |
18 | class AliMUONRawCluster; | |
19 | class AliMUONDigit; | |
20 | ||
21 | ||
22 | class AliMUONClusterFinderVS : public TObject | |
a9e2aefa | 23 | { |
24 | public: | |
a9e2aefa | 25 | AliMUONClusterFinderVS(); |
26 | AliMUONClusterFinderVS(const AliMUONClusterFinderVS& clusterFinder); | |
27 | virtual ~AliMUONClusterFinderVS(){;} | |
30aaba74 | 28 | // Decluster ? |
29 | virtual void SetDeclusterFlag(Int_t flag=1) {fDeclusterFlag =flag;} | |
30 | // Set max. cluster size ; bigger clusters will deconvoluted | |
31 | virtual void SetClusterSize(Int_t clsize=5) {fClusterSize = clsize;} | |
32 | // Set max. number of pads per local cluster | |
33 | virtual void SetNperMax(Int_t npermax=5) {fNperMax = npermax;} | |
a9e2aefa | 34 | // Search for raw clusters |
30aaba74 | 35 | virtual void FindRawClusters(); |
a9e2aefa | 36 | // Find cluster |
37 | virtual void FindCluster(Int_t i, Int_t j, Int_t cath, AliMUONRawCluster &c); | |
38 | // Decluster | |
39 | virtual void Decluster(AliMUONRawCluster *cluster); | |
40 | // Perform split by local maxima | |
41 | virtual void SplitByLocalMaxima(AliMUONRawCluster *cluster); | |
42 | virtual void FindLocalMaxima(AliMUONRawCluster *cluster); | |
43 | virtual void Split(AliMUONRawCluster * cluster); | |
a9e2aefa | 44 | // Perform Double Mathieson Fit |
30aaba74 | 45 | Bool_t DoubleMathiesonFit(AliMUONRawCluster *c, Int_t cath); |
a9e2aefa | 46 | Float_t CombiDoubleMathiesonFit(AliMUONRawCluster *c); |
47 | Float_t SingleMathiesonFit(AliMUONRawCluster *c, Int_t cath); | |
48 | Float_t CombiSingleMathiesonFit(AliMUONRawCluster *c); | |
49 | // Build up full cluster information | |
50 | virtual void FillCluster(AliMUONRawCluster *cluster, Int_t flag, Int_t cath); | |
51 | virtual void FillCluster(AliMUONRawCluster *cluster, Int_t cath); | |
30aaba74 | 52 | virtual void FillCluster(AliMUONRawCluster *cluster) {FillCluster(cluster,1,0);} |
53 | // Add a new raw cluster | |
a9e2aefa | 54 | virtual void AddRawCluster(const AliMUONRawCluster cluster); |
30aaba74 | 55 | // Set tracks for debugging |
56 | virtual void SetTracks(Int_t t1, Int_t t2) {fTrack[0]=t1; fTrack[1]=t2;} | |
57 | virtual Bool_t TestTrack(Int_t t); | |
58 | // Assignment operator | |
a9e2aefa | 59 | AliMUONClusterFinderVS & operator = (const AliMUONClusterFinderVS& rhs); |
30aaba74 | 60 | |
61 | protected: | |
62 | AliMUONClusterInput* fInput; // AliMUONClusterInput instance | |
63 | AliMUONHitMapA1* fHitMap[2]; // Hit Map cathode 1 | |
64 | // Configuration | |
65 | Int_t fDeclusterFlag; // flag for declusterin | |
66 | Int_t fClusterSize; // cluster size | |
67 | Int_t fNperMax; // Maximum number of pads per peak | |
68 | // Current decluster result | |
69 | Int_t fMul[2]; // current multiplicity | |
70 | Int_t fNPeaks; // number of local maxima | |
71 | Int_t fNRawClusters; // Number of Raw Clusters | |
72 | // Local data store | |
a9e2aefa | 73 | AliMUONDigit* fDig[100][2]; // current list of digits |
74 | Int_t fIx[100][2]; // current list of x-pad-coord. | |
75 | Int_t fIy[100][2]; // current list of y-pad-coord. | |
76 | Float_t fX[100][2]; // current list of x-coord. | |
77 | Float_t fY[100][2]; // current list of y-coord. | |
78 | Int_t fIndLocal[100][2]; // indices of local maxima | |
79 | Int_t fNLocal[2]; // Number of local maxima | |
80 | Int_t fQ[100][2]; // current list of charges | |
a9e2aefa | 81 | // Current Fit |
82 | Double_t fXFit[2]; // x-coordinate | |
83 | Double_t fYFit[2]; // y-coordinate | |
84 | Double_t fQrFit[2]; // charge ratio | |
85 | Float_t fChi2[2]; // chi2 of fit | |
86 | Float_t fXInit[2]; // start values | |
87 | Float_t fYInit[2]; // start values | |
88 | Float_t fQrInit[2]; // start values | |
89 | Int_t fFitStat; // status of fit | |
90 | ||
91 | // Selected track for debugging | |
92 | Int_t fTrack[2]; // Only digits with main contributions from these tracks are | |
93 | // considered | |
94 | // Return pointer to raw clusters | |
95 | ClassDef(AliMUONClusterFinderVS,1) //Class for clustering and reconstruction of space points | |
96 | }; | |
97 | #endif | |
98 | ||
99 | ||
100 | ||
101 | ||
102 | ||
103 | ||
104 | ||
105 | ||
106 | ||
107 | ||
30aaba74 | 108 | |
109 | ||
110 | ||
111 | ||
112 |