class AliEMCALGeometry ;
class AliEMCALCalibData ;
class AliCaloCalibPedestal ;
+#include "AliEMCALUnfolding.h"
class AliEMCALClusterizer : public TObject {
virtual Float_t GetTimeMin() const { return fTimeMin ; }
virtual Float_t GetTimeMax() const { return fTimeMax ; }
virtual Float_t GetTimeCut() const { return fTimeCut ; }
- virtual void GetNumberOfClustersFound(int numb )const { numb = fNumberOfECAClusters ;}
+ //virtual void GetNumberOfClustersFound(int numb )const { numb = fNumberOfECAClusters ;}
virtual Float_t GetECAClusteringThreshold() const { return fECAClusteringThreshold;}
virtual Float_t GetECALocalMaxCut() const { return fECALocMaxCut;}
virtual Float_t GetECALogWeight() const { return fECAW0;}
virtual void SetMinECut(Float_t mine) { fMinECut = mine; }
virtual void SetECALocalMaxCut(Float_t cut) { fECALocMaxCut = cut ; }
virtual void SetECALogWeight(Float_t w) { fECAW0 = w ; }
- virtual void SetUnfolding(Bool_t toUnfold = kTRUE ) {fToUnfold = toUnfold ;}
-
+
+ //Unfolding
+ virtual void SetUnfolding(Bool_t toUnfold = kTRUE ) { fToUnfold = toUnfold ;}
+ virtual void SetSSPars (Int_t ipar, Double_t par) { fSSPars[ipar] = par ;}
+ virtual void SetPar5 (Int_t ipar, Double_t par) { fPar5 [ipar] = par ;}
+ virtual void SetPar6 (Int_t ipar, Double_t par) { fPar6 [ipar] = par ;}
+ virtual void InitClusterUnfolding() {
+ fClusterUnfolding=new AliEMCALUnfolding(fGeom,fECALocMaxCut,fSSPars,fPar5,fPar6);
+ }
+
virtual void SetInput(TTree *digitsTree);
virtual void SetOutput(TTree *clustersTree);
virtual void Print(Option_t * option)const ;
virtual void PrintRecPoints(Option_t * option);
virtual void PrintRecoInfo(); //*MENU*
+
+ static void SetInputCalibrated(Bool_t val);
virtual const char * Version() const {Warning("Version", "Not Defined") ; return 0 ; }
protected:
virtual void MakeClusters() = 0;
-
+
+ static Bool_t fgkIsInputCalibrated; // to enable reclusterization from ESD cells
+
TClonesArray *fDigitsArr; // Array with EMCAL digits
TTree *fTreeR; // Tree with output clusters
TObjArray *fRecPoints; // Array with EMCAL clusters
Float_t fECAW0 ; // logarithmic weight for the cluster center of gravity calculation
Float_t fMinECut; // Minimum energy for a digit to be a member of a cluster
+ AliEMCALUnfolding * fClusterUnfolding ; //! pointer to unfolding object
+ Double_t fSSPars[8];// Shower shape parameters
+ Double_t fPar5[3]; // Shower shape parameter 5
+ Double_t fPar6[3]; // Shower shape parameter 6
+
private:
AliEMCALClusterizer(const AliEMCALClusterizer &); //copy ctor
AliEMCALClusterizer & operator = (const AliEMCALClusterizer &);
- ClassDef(AliEMCALClusterizer,2) // Clusterization algorithm class
+ ClassDef(AliEMCALClusterizer,4) // Clusterization algorithm class
} ;
#endif // AliEMCALCLUSTERIZER_H