bug in loop, wrong varialble in increment
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALClusterizerv1.h
CommitLineData
483b0559 1#ifndef ALIEMCALCLUSTERIZERV1_H
2#define ALIEMCALCLUSTERIZERV1_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// Implementation version 1 of the clusterization algorithm
10// Performs clusterization (collects neighbouring active cells) and
11// unfolding of the clusters with several local maxima.
ee08edde 12// results are stored in TreeR
483b0559 13//
14//*-- Author: Yves Schutz (SUBATECH)
ee08edde 15//-- Gustavo Conesa (LPSC-Grenoble), move common clusterizer functionalities to mother class
16
483b0559 17
18// --- ROOT system ---
19
20// --- Standard library ---
21
22// --- AliRoot header files ---
483b0559 23#include "AliEMCALClusterizer.h"
70a93198 24class AliEMCALRecPoint ;
483b0559 25class AliEMCALDigit ;
483b0559 26
27class AliEMCALClusterizerv1 : public AliEMCALClusterizer {
28
29public:
30
31 AliEMCALClusterizerv1() ;
5544799a 32 AliEMCALClusterizerv1(AliEMCALGeometry* geometry);
40164976 33 AliEMCALClusterizerv1(AliEMCALGeometry* geometry, AliEMCALCalibData * calib, AliCaloCalibPedestal * pedestal);
0c5b726e 34
483b0559 35 virtual ~AliEMCALClusterizerv1() ;
18a21c7c 36
25bb3dcb 37 virtual Int_t AreNeighbours(AliEMCALDigit * d1, AliEMCALDigit * d2, Bool_t & shared)const ;
ee08edde 38 // Checks if digits are in neighbour cells
c47157cd 39 virtual void Digits2Clusters(Option_t *option); // Does the job
483b0559 40
225cd96d 41 static Double_t ShowerShape(Double_t x, Double_t y) ; // Shape of EM shower used in unfolding;
483b0559 42 //class member function (not object member function)
43 static void UnfoldingChiSquare(Int_t & nPar, Double_t * Grad, Double_t & fret, Double_t * x, Int_t iflag) ;
44 // Chi^2 of the fit. Should be static to be passes to MINUIT
45 virtual const char * Version() const { return "clu-v1" ; }
7ea6391b 46
483b0559 47protected:
48
0e7c6655 49 virtual void MakeClusters();
7ea6391b 50
483b0559 51private:
c47157cd 52 AliEMCALClusterizerv1(const AliEMCALClusterizerv1 &); //copy ctor
53 AliEMCALClusterizerv1 & operator = (const AliEMCALClusterizerv1 &);
483b0559 54
40164976 55
d804d556 56 Bool_t FindFit(AliEMCALRecPoint * emcRP, AliEMCALDigit ** MaxAt, const Float_t * maxAtEnergy,
483b0559 57 Int_t NPar, Float_t * FitParametres) const; //Used in UnfoldClusters, calls TMinuit
483b0559 58
225cd96d 59 virtual void MakeUnfolding();
60 void UnfoldCluster(AliEMCALRecPoint * iniEmc, Int_t Nmax,
ee08edde 61 AliEMCALDigit ** maxAt,
62 Float_t * maxAtEnergy ); //Unfolds cluster using TMinuit package
a5c60732 63
483b0559 64private:
40164976 65
c8be63ae 66
ee08edde 67 ClassDef(AliEMCALClusterizerv1,10) // Clusterizer implementation version 1
483b0559 68
69};
70
71#endif // AliEMCALCLUSTERIZERV1_H