]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONClusterFinderVS.h
Cleaning of the code :
[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$ */
7
8////////////////////////////////////////////////
9// MUON Cluster Finder Class //
10////////////////////////////////////////////////
30aaba74 11#include <TObject.h>
12#include "AliMUONHitMapA1.h"
13#include "AliMUONClusterInput.h"
9825400f 14
30aaba74 15class AliMUONResponse;
a30a000f 16class AliSegmentation;
30aaba74 17class TClonesArray;
18class AliMUONRawCluster;
19class AliMUONDigit;
20
21
22class 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