#ifndef ALIPHOSCLUSTERIZERV1_H
#define ALIPHOSCLUSTERIZERV1_H
class TClonesArray ;
class TVector3 ;
#include "AliPHOSClusterizer.h"
class AliPHOSEmcRecPoint ;
class AliPHOSDigit ;
class AliPHOSDigitizer ;
class AliPHOSGeometry ;
class AliPHOSClusterizerv1 : public AliPHOSClusterizer {
public:
AliPHOSClusterizerv1() ;
AliPHOSClusterizerv1(AliPHOSGeometry *geom);
virtual ~AliPHOSClusterizerv1() ;
void InitParameters() ;
virtual Int_t AreNeighbours(AliPHOSDigit * d1, AliPHOSDigit * d2)const ;
virtual void GetNumberOfClustersFound(int * numb )const{ numb[0] = fNumberOfEmcClusters ;
numb[1] = fNumberOfCpvClusters ; }
virtual Float_t GetEmcClusteringThreshold()const{ return fEmcClusteringThreshold;}
virtual Float_t GetEmcLocalMaxCut()const { return fEmcLocMaxCut;}
virtual Float_t GetEmcLogWeight()const { return fW0;}
virtual Float_t GetCpvClusteringThreshold()const{ return fCpvClusteringThreshold; }
virtual Float_t GetCpvLocalMaxCut()const { return fCpvLocMaxCut;}
virtual Float_t GetCpvLogWeight()const { return fW0CPV;}
virtual Float_t GetEcoreRadius()const { return fEcoreRadius;}
virtual void Digits2Clusters(Option_t *option);
void Print(const Option_t * = "")const ;
virtual void SetEmcClusteringThreshold(Float_t cluth) { fEmcClusteringThreshold = cluth ; }
virtual void SetEmcLocalMaxCut(Float_t cut) { fEmcLocMaxCut = cut ; }
virtual void SetEmcLogWeight(Float_t w) { fW0 = w ; }
virtual void SetCpvClusteringThreshold(Float_t cluth) { fCpvClusteringThreshold = cluth ; }
virtual void SetCpvLocalMaxCut(Float_t cut) { fCpvLocMaxCut = cut ; }
virtual void SetCpvLogWeight(Float_t w) { fW0CPV = w ; }
virtual void SetUnfolding(Bool_t toUnfold = kTRUE ) { fToUnfold = toUnfold ;}
virtual void SetCoreRadius(Float_t coreRadius) { fEcoreRadius = coreRadius ;}
void SetWriting(Bool_t toWrite = kFALSE){fWrite = toWrite;}
static Double_t ShowerShape(Double_t x, Double_t z) ;
static void UnfoldingChiSquare(Int_t & nPar, Double_t * Grad, Double_t & fret, Double_t * x, Int_t iflag) ;
virtual const char * Version() const { return "clu-v1"; }
protected:
void WriteRecPoints() ;
virtual void MakeClusters( ) ;
virtual Bool_t IsInEmc (AliPHOSDigit * digit)const ;
virtual Bool_t IsInCpv (AliPHOSDigit * digit)const ;
void CleanDigits(TClonesArray * digits) ;
void SetDistancesToBadChannels();
virtual Float_t Calibrate(Float_t amp, Int_t absId) const ;
virtual Float_t CalibrateT(Float_t amp, Int_t absId, Bool_t isLG) const ;
Bool_t CheckTimeGate(Float_t t1, Float_t amp1, Float_t t2, Float_t amp2)const ;
private:
AliPHOSClusterizerv1(const AliPHOSClusterizerv1 & clu) ;
AliPHOSClusterizerv1 & operator = (const AliPHOSClusterizerv1 & obj);
Bool_t FindFit(AliPHOSEmcRecPoint * emcRP, AliPHOSDigit ** MaxAt, Float_t * maxAtEnergy,
Int_t NPar, Float_t * FitParametres) const;
void Init() ;
virtual void MakeUnfolding() ;
void UnfoldCluster(AliPHOSEmcRecPoint * iniEmc,Int_t Nmax,
AliPHOSDigit ** maxAt,Float_t * maxAtEnergy ) ;
void PrintRecPoints(Option_t * option) ;
private:
Bool_t fDefaultInit;
Int_t fEmcCrystals ;
Bool_t fToUnfold ;
Bool_t fWrite ;
Bool_t fDigitsUsed[53760];
Int_t fNumberOfEmcClusters ;
Int_t fNumberOfCpvClusters ;
Float_t fEmcClusteringThreshold ;
Float_t fCpvClusteringThreshold ;
Float_t fEmcLocMaxCut ;
Float_t fW0 ;
Float_t fCpvLocMaxCut ;
Float_t fW0CPV ;
Float_t fTimeGateLowAmp ;
Float_t fTimeGateLow ;
Float_t fTimeGateHigh ;
Float_t fEcoreRadius ;
ClassDef(AliPHOSClusterizerv1,8)
};
#endif // AliPHOSCLUSTERIZERV1_H
AliPHOSClusterizerv1.h:10 AliPHOSClusterizerv1.h:11 AliPHOSClusterizerv1.h:12 AliPHOSClusterizerv1.h:13 AliPHOSClusterizerv1.h:14 AliPHOSClusterizerv1.h:15 AliPHOSClusterizerv1.h:16 AliPHOSClusterizerv1.h:17 AliPHOSClusterizerv1.h:18 AliPHOSClusterizerv1.h:19 AliPHOSClusterizerv1.h:20 AliPHOSClusterizerv1.h:21 AliPHOSClusterizerv1.h:22 AliPHOSClusterizerv1.h:23 AliPHOSClusterizerv1.h:24 AliPHOSClusterizerv1.h:25 AliPHOSClusterizerv1.h:26 AliPHOSClusterizerv1.h:27 AliPHOSClusterizerv1.h:28 AliPHOSClusterizerv1.h:29 AliPHOSClusterizerv1.h:30 AliPHOSClusterizerv1.h:31 AliPHOSClusterizerv1.h:32 AliPHOSClusterizerv1.h:33 AliPHOSClusterizerv1.h:34 AliPHOSClusterizerv1.h:35 AliPHOSClusterizerv1.h:36 AliPHOSClusterizerv1.h:37 AliPHOSClusterizerv1.h:38 AliPHOSClusterizerv1.h:39 AliPHOSClusterizerv1.h:40 AliPHOSClusterizerv1.h:41 AliPHOSClusterizerv1.h:42 AliPHOSClusterizerv1.h:43 AliPHOSClusterizerv1.h:44 AliPHOSClusterizerv1.h:45 AliPHOSClusterizerv1.h:46 AliPHOSClusterizerv1.h:47 AliPHOSClusterizerv1.h:48 AliPHOSClusterizerv1.h:49 AliPHOSClusterizerv1.h:50 AliPHOSClusterizerv1.h:51 AliPHOSClusterizerv1.h:52 AliPHOSClusterizerv1.h:53 AliPHOSClusterizerv1.h:54 AliPHOSClusterizerv1.h:55 AliPHOSClusterizerv1.h:56 AliPHOSClusterizerv1.h:57 AliPHOSClusterizerv1.h:58 AliPHOSClusterizerv1.h:59 AliPHOSClusterizerv1.h:60 AliPHOSClusterizerv1.h:61 AliPHOSClusterizerv1.h:62 AliPHOSClusterizerv1.h:63 AliPHOSClusterizerv1.h:64 AliPHOSClusterizerv1.h:65 AliPHOSClusterizerv1.h:66 AliPHOSClusterizerv1.h:67 AliPHOSClusterizerv1.h:68 AliPHOSClusterizerv1.h:69 AliPHOSClusterizerv1.h:70 AliPHOSClusterizerv1.h:71 AliPHOSClusterizerv1.h:72 AliPHOSClusterizerv1.h:73 AliPHOSClusterizerv1.h:74 AliPHOSClusterizerv1.h:75 AliPHOSClusterizerv1.h:76 AliPHOSClusterizerv1.h:77 AliPHOSClusterizerv1.h:78 AliPHOSClusterizerv1.h:79 AliPHOSClusterizerv1.h:80 AliPHOSClusterizerv1.h:81 AliPHOSClusterizerv1.h:82 AliPHOSClusterizerv1.h:83 AliPHOSClusterizerv1.h:84 AliPHOSClusterizerv1.h:85 AliPHOSClusterizerv1.h:86 AliPHOSClusterizerv1.h:87 AliPHOSClusterizerv1.h:88 AliPHOSClusterizerv1.h:89 AliPHOSClusterizerv1.h:90 AliPHOSClusterizerv1.h:91 AliPHOSClusterizerv1.h:92 AliPHOSClusterizerv1.h:93 AliPHOSClusterizerv1.h:94 AliPHOSClusterizerv1.h:95 AliPHOSClusterizerv1.h:96 AliPHOSClusterizerv1.h:97 AliPHOSClusterizerv1.h:98 AliPHOSClusterizerv1.h:99 AliPHOSClusterizerv1.h:100 AliPHOSClusterizerv1.h:101 AliPHOSClusterizerv1.h:102 AliPHOSClusterizerv1.h:103 AliPHOSClusterizerv1.h:104 AliPHOSClusterizerv1.h:105 AliPHOSClusterizerv1.h:106 AliPHOSClusterizerv1.h:107 AliPHOSClusterizerv1.h:108 AliPHOSClusterizerv1.h:109 AliPHOSClusterizerv1.h:110 AliPHOSClusterizerv1.h:111 AliPHOSClusterizerv1.h:112 AliPHOSClusterizerv1.h:113 AliPHOSClusterizerv1.h:114 AliPHOSClusterizerv1.h:115 AliPHOSClusterizerv1.h:116 AliPHOSClusterizerv1.h:117 AliPHOSClusterizerv1.h:118 AliPHOSClusterizerv1.h:119 AliPHOSClusterizerv1.h:120 AliPHOSClusterizerv1.h:121 AliPHOSClusterizerv1.h:122 AliPHOSClusterizerv1.h:123 AliPHOSClusterizerv1.h:124 AliPHOSClusterizerv1.h:125 AliPHOSClusterizerv1.h:126 AliPHOSClusterizerv1.h:127 AliPHOSClusterizerv1.h:128 AliPHOSClusterizerv1.h:129 AliPHOSClusterizerv1.h:130 AliPHOSClusterizerv1.h:131 AliPHOSClusterizerv1.h:132 AliPHOSClusterizerv1.h:133 AliPHOSClusterizerv1.h:134 AliPHOSClusterizerv1.h:135 AliPHOSClusterizerv1.h:136 AliPHOSClusterizerv1.h:137 AliPHOSClusterizerv1.h:138 AliPHOSClusterizerv1.h:139 AliPHOSClusterizerv1.h:140 AliPHOSClusterizerv1.h:141 AliPHOSClusterizerv1.h:142 AliPHOSClusterizerv1.h:143 AliPHOSClusterizerv1.h:144 AliPHOSClusterizerv1.h:145 AliPHOSClusterizerv1.h:146 AliPHOSClusterizerv1.h:147 AliPHOSClusterizerv1.h:148 AliPHOSClusterizerv1.h:149 AliPHOSClusterizerv1.h:150 AliPHOSClusterizerv1.h:151 AliPHOSClusterizerv1.h:152 AliPHOSClusterizerv1.h:153 AliPHOSClusterizerv1.h:154 AliPHOSClusterizerv1.h:155 AliPHOSClusterizerv1.h:156 AliPHOSClusterizerv1.h:157 AliPHOSClusterizerv1.h:158 AliPHOSClusterizerv1.h:159 AliPHOSClusterizerv1.h:160 AliPHOSClusterizerv1.h:161 AliPHOSClusterizerv1.h:162 AliPHOSClusterizerv1.h:163 AliPHOSClusterizerv1.h:164 AliPHOSClusterizerv1.h:165 AliPHOSClusterizerv1.h:166 AliPHOSClusterizerv1.h:167 AliPHOSClusterizerv1.h:168 AliPHOSClusterizerv1.h:169 AliPHOSClusterizerv1.h:170