]> git.uio.no Git - u/mrichter/AliRoot.git/blame - RICH/AliRICHClusterFinder.h
Rotation Angle is +60 deg.
[u/mrichter/AliRoot.git] / RICH / AliRICHClusterFinder.h
CommitLineData
237c933d 1#ifndef ALIRICHCLUSTERFINDER_H
2#define ALIRICHCLUSTERFINDER_H
8265fa96 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////////////////////////////////////////////////
237c933d 13class AliRICHHitMapA1;
14
8265fa96 15#include "TF1.h"
237c933d 16#include "TObject.h"
17class TClonesArray;
a2f7eaf6 18class AliSegmentation;
237c933d 19class AliRICHRawCluster;
20class AliRICHResponse;
21class TClonesArray;
22
23
f5f1abe8 24class AliRICHClusterFinder : public TObject
8265fa96 25{
8265fa96 26 public:
27 AliRICHClusterFinder
a2f7eaf6 28 (AliSegmentation *segmentation,
8265fa96 29 AliRICHResponse *response, TClonesArray *digits, Int_t chamber);
30 AliRICHClusterFinder();
237c933d 31 AliRICHClusterFinder(const AliRICHClusterFinder & ClusterFinder);
32 virtual ~AliRICHClusterFinder();
8265fa96 33 virtual void SetSegmentation(
a2f7eaf6 34 AliSegmentation *segmentation){
8265fa96 35 fSegmentation=segmentation;
36 }
37 virtual void SetResponse(AliRICHResponse *response) {
38 fResponse=response;
39 }
40
237c933d 41 virtual void SetDigits(TClonesArray *RICHdigits);
8265fa96 42
43 virtual void SetChamber(Int_t ich){
44 fChamber=ich;
45 }
46
237c933d 47 virtual void AddRawCluster(const AliRICHRawCluster c);
8265fa96 48 // Search for raw clusters
49 virtual void FindRawClusters();
50 virtual void FindCluster(Int_t i, Int_t j, AliRICHRawCluster &c);
51 // Decluster
52 virtual void Decluster(AliRICHRawCluster *cluster);
53 // Set max. Number of pads per local cluster
54 virtual void SetNperMax(Int_t npermax=5) {fNperMax = npermax;}
55 // Decluster ?
56 virtual void SetDeclusterFlag(Int_t flag=1) {fDeclusterFlag =flag;}
57 // Set max. cluster size ; bigger clusters will be rejected
58 virtual void SetClusterSize(Int_t clsize=5) {fClusterSize = clsize;}
59 // Self Calibration of COG
60 virtual void CalibrateCOG();
61 virtual void SinoidalFit(Float_t x, Float_t y, TF1 &func);
62 //
63 virtual void CorrectCOG(){;}
64
65 //
66 virtual Bool_t Centered(AliRICHRawCluster *cluster);
67 virtual void SplitByLocalMaxima(AliRICHRawCluster *cluster);
237c933d 68 virtual void FillCluster(AliRICHRawCluster *cluster, Int_t flag);
8265fa96 69 virtual void FillCluster(AliRICHRawCluster *cluster) {
70 FillCluster(cluster,1);}
f5f1abe8 71
8265fa96 72 TClonesArray* RawClusters(){return fRawClusters;}
237c933d 73 AliRICHClusterFinder& operator=(const AliRICHClusterFinder& rhs);
8265fa96 74 ClassDef(AliRICHClusterFinder,1) //Class for clustering and reconstruction of space points
f5f1abe8 75
237c933d 76protected:
a2f7eaf6 77 AliSegmentation* fSegmentation; //Segmentation model
237c933d 78 AliRICHResponse* fResponse; //Response model
79 TClonesArray* fRawClusters; //Raw clusters list
237c933d 80 AliRICHHitMapA1* fHitMap; //Hit Map with digit positions
81 TF1* fCogCorr; //Correction for center of gravity
f5f1abe8 82 TClonesArray* fDigits; //List of digits
83 Int_t fNdigits; //Number of digits
84 Int_t fChamber; //Chamber number
85 Int_t fNRawClusters; //Number of raw clusters
237c933d 86 Int_t fNperMax; //Number of pad hits per local maximum
87 Int_t fDeclusterFlag; //Split clusters flag
88 Int_t fClusterSize; //Size of cluster
89 Int_t fNPeaks; //Number of maxima in the cluster
8265fa96 90};
91#endif
92
93
94
95
96
97
98