]> git.uio.no Git - u/mrichter/AliRoot.git/blame - RICH/AliRICHClusterFinder.h
Bari's pattern recognition algorithm
[u/mrichter/AliRoot.git] / RICH / AliRICHClusterFinder.h
CommitLineData
8265fa96 1#ifndef AliRICHClusterFinder_H
2#define AliRICHClusterFinder_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7/* $Id$ */
8
9
10////////////////////////////////////////////////
11// RICH Cluster Finder Class //
12////////////////////////////////////////////////
13#include "AliRICHHitMap.h"
14#include "TF1.h"
15class AliRICHClusterFinder :
16 public TObject
17{
18public:
19 TClonesArray* fDigits;
20 Int_t fNdigits;
21protected:
22 AliRICHSegmentation* fSegmentation;
23 AliRICHResponse* fResponse;
24 TClonesArray* fRawClusters;
25 Int_t fChamber;
26 Int_t fNRawClusters;
27 AliRICHHitMapA1* fHitMap;
28 TF1* fCogCorr;
29 Int_t fNperMax;
30 Int_t fDeclusterFlag;
31 Int_t fClusterSize;
32 Int_t fNPeaks;
33 public:
34 AliRICHClusterFinder
35 (AliRICHSegmentation *segmentation,
36 AliRICHResponse *response, TClonesArray *digits, Int_t chamber);
37 AliRICHClusterFinder();
38 ~AliRICHClusterFinder(){delete fRawClusters;}
39 virtual void SetSegmentation(
40 AliRICHSegmentation *segmentation){
41 fSegmentation=segmentation;
42 }
43 virtual void SetResponse(AliRICHResponse *response) {
44 fResponse=response;
45 }
46
47 virtual void SetDigits(TClonesArray *RICHdigits) {
48 fDigits=RICHdigits;
49 fNdigits = fDigits->GetEntriesFast();
50 }
51
52 virtual void SetChamber(Int_t ich){
53 fChamber=ich;
54 }
55
56 virtual void AddRawCluster(const AliRICHRawCluster);
57 // Search for raw clusters
58 virtual void FindRawClusters();
59 virtual void FindCluster(Int_t i, Int_t j, AliRICHRawCluster &c);
60 // Decluster
61 virtual void Decluster(AliRICHRawCluster *cluster);
62 // Set max. Number of pads per local cluster
63 virtual void SetNperMax(Int_t npermax=5) {fNperMax = npermax;}
64 // Decluster ?
65 virtual void SetDeclusterFlag(Int_t flag=1) {fDeclusterFlag =flag;}
66 // Set max. cluster size ; bigger clusters will be rejected
67 virtual void SetClusterSize(Int_t clsize=5) {fClusterSize = clsize;}
68 // Self Calibration of COG
69 virtual void CalibrateCOG();
70 virtual void SinoidalFit(Float_t x, Float_t y, TF1 &func);
71 //
72 virtual void CorrectCOG(){;}
73
74 //
75 virtual Bool_t Centered(AliRICHRawCluster *cluster);
76 virtual void SplitByLocalMaxima(AliRICHRawCluster *cluster);
77 virtual void FillCluster(AliRICHRawCluster *cluster, Int_t);
78 virtual void FillCluster(AliRICHRawCluster *cluster) {
79 FillCluster(cluster,1);}
80 TClonesArray* RawClusters(){return fRawClusters;}
81 ClassDef(AliRICHClusterFinder,1) //Class for clustering and reconstruction of space points
82};
83#endif
84
85
86
87
88
89
90