]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONClusterFinderVS.h
Updated list of MUON libraries
[u/mrichter/AliRoot.git] / MUON / AliMUONClusterFinderVS.h
CommitLineData
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 17class TClonesArray;
18
c1a185bf 19class AliMUONClusterInput;
5289cf2f 20class AliMUONDigitMapA1;
fed772f3 21class AliMUONGeometrySegmentation;
30aaba74 22class AliMUONRawCluster;
23class AliMUONDigit;
24
25
26class 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