]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - MUON/AliMUONClusterFinderVS.h
Move to AOD/ESD schema - ITS readers not needed any more
[u/mrichter/AliRoot.git] / MUON / AliMUONClusterFinderVS.h
... / ...
CommitLineData
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// Revision of includes 07/05/2004
8
9////////////////////////////////////////////////
10// MUON Cluster Finder Class //
11////////////////////////////////////////////////
12
13#include <TObject.h>
14
15class TClonesArray;
16
17class AliMUONClusterInput;
18class AliMUONHitMapA1;
19class AliMUONResponse;
20class AliSegmentation;
21class AliMUONRawCluster;
22class AliMUONDigit;
23
24
25class AliMUONClusterFinderVS : public TObject
26{
27 public:
28 AliMUONClusterFinderVS();
29 virtual ~AliMUONClusterFinderVS();
30// Decluster ?
31 virtual void SetDeclusterFlag(Int_t flag=1) {fDeclusterFlag =flag;}
32// Set max. cluster size ; bigger clusters will deconvoluted
33 virtual void SetClusterSize(Int_t clsize=5) {fClusterSize = clsize;}
34// Set max. number of pads per local cluster
35 virtual void SetNperMax(Int_t npermax=5) {fNperMax = npermax;}
36// Search for raw clusters
37 virtual void FindRawClusters();
38// Find cluster
39 virtual void FindCluster(Int_t i, Int_t j, Int_t cath, AliMUONRawCluster &c);
40// Decluster
41 virtual void Decluster(AliMUONRawCluster *cluster);
42// Perform split by local maxima
43 virtual void SplitByLocalMaxima(AliMUONRawCluster *cluster);
44 virtual void FindLocalMaxima(AliMUONRawCluster *cluster);
45 virtual void Split(AliMUONRawCluster * cluster);
46// Perform Double Mathieson Fit
47 Bool_t DoubleMathiesonFit(AliMUONRawCluster *c, Int_t cath);
48 Float_t CombiDoubleMathiesonFit(AliMUONRawCluster *c);
49 Float_t SingleMathiesonFit(AliMUONRawCluster *c, Int_t cath);
50 Float_t CombiSingleMathiesonFit(AliMUONRawCluster *c);
51// Build up full cluster information
52 virtual void FillCluster(AliMUONRawCluster *cluster, Int_t flag, Int_t cath);
53 virtual void FillCluster(AliMUONRawCluster *cluster, Int_t cath);
54 virtual void FillCluster(AliMUONRawCluster *cluster) {FillCluster(cluster,1,0);}
55// Add a new raw cluster
56 virtual void AddRawCluster(const AliMUONRawCluster& cluster);
57// Set tracks for debugging
58 virtual void SetTracks(Int_t t1, Int_t t2) {fTrack[0]=t1; fTrack[1]=t2;}
59 virtual Bool_t TestTrack(Int_t t) const;
60// debug level
61 void SetDebugLevel(Int_t level) {fDebugLevel = level;}
62 void SetGhostChi2Cut(Float_t cut) {fGhostChi2Cut = cut;}
63// get raw cluster pointer
64 TClonesArray* GetRawClusters() {return fRawClusters;}
65// reset raw clusters
66 void ResetRawClusters();
67
68 protected:
69 AliMUONClusterFinderVS(const AliMUONClusterFinderVS& clusterFinder);
70// Assignment operator
71 AliMUONClusterFinderVS & operator = (const AliMUONClusterFinderVS& rhs);
72
73 AliMUONClusterInput* fInput; // ! AliMUONClusterInput instance
74 AliMUONHitMapA1* fHitMap[2]; // Hit Maps for cathode 1 and 2
75 AliSegmentation* fSeg[2]; // Segmentations for cathode 1 and 2
76
77// Configuration
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; // Cut in charge matching chi2
82 // (2 degrees of freedom)
83 // Used by ghost removal
84// Current decluster result
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.
89
90// Local data store
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
99 Int_t fQ[100][2]; // current list of charges
100 Float_t fZPlane; // currenz z-plane position
101 Int_t fSector; // current sector
102
103// Current Fit
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
112
113// Selected track for debugging
114 Int_t fTrack[2]; // Only digits with main contributions from these tracks are
115 // considered
116 Int_t fDebugLevel; // prinout control
117
118// Return pointer to raw clusters
119 ClassDef(AliMUONClusterFinderVS,2) //Class for clustering and reconstruction of space points
120};
121#endif
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136