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