+ // main methods
+
+ virtual void DeleteDigits();
+ virtual void DeleteRecPoints();
+
+ virtual void Digits2Clusters(Option_t *option) = 0;
+
+ virtual void Calibrate(Float_t & amp, Float_t & time, const Int_t cellId);
+ virtual void Init();
+ virtual void InitParameters();
+ virtual void InitParameters(const AliEMCALRecParam* recParam);
+
+ virtual void Print (Option_t *option) const ;
+ virtual void PrintRecPoints(Option_t *option);
+ virtual void PrintRecoInfo();
+
+ virtual const char *Version() const { Warning("Version", "Not Defined");
+ return 0 ; }
+
+ //Getters-Setters
+
+ virtual void SetInput (TTree *digitsTree );
+ virtual void SetOutput(TTree *clustersTree);
+
+ virtual void GetCalibrationParameters(void);
+ virtual void GetCaloCalibPedestal(void);
+ virtual void SetCalibrationParameters(AliEMCALCalibData *calib) { fCalibData = calib; }
+ virtual void SetCaloCalibPedestal(AliCaloCalibPedestal *caped) { fCaloPed = caped; }
+
+ virtual Float_t GetTimeMin() const { return fTimeMin; }
+ virtual Float_t GetTimeMax() const { return fTimeMax; }
+ virtual Float_t GetTimeCut() const { return fTimeCut; }
+ virtual Float_t GetECAClusteringThreshold() const { return fECAClusteringThreshold; }
+ virtual Float_t GetECALocalMaxCut() const { return fECALocMaxCut; }
+ virtual Float_t GetECALogWeight() const { return fECAW0; }
+ virtual Float_t GetMinECut() const { return fMinECut; }
+
+ virtual void SetTimeMin(Float_t t) { fTimeMin = t; }
+ virtual void SetTimeMax(Float_t t) { fTimeMax = t; }
+ virtual void SetTimeCut(Float_t t) { fTimeCut = t; }
+ virtual void SetECAClusteringThreshold(Float_t th) { fECAClusteringThreshold = th; }
+ virtual void SetMinECut(Float_t mine) { fMinECut = mine; }
+ virtual void SetECALocalMaxCut(Float_t cut) { fECALocMaxCut = cut; }
+ virtual void SetECALogWeight(Float_t w) { fECAW0 = w; }
+
+ //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);
+ fClusterUnfolding->SetThreshold(fMinECut); }
+
+ //NxN (only used in NxN clusterizer)
+
+ virtual void SetNRowDiff(Int_t ) { ; }
+ virtual void SetNColDiff(Int_t ) { ; }
+ virtual void SetEnergyGrad(Bool_t ) { ; }
+
+ virtual Int_t GetNRowDiff() const { return -1 ; }
+ virtual Int_t GetNColDiff() const { return -1 ; }
+ virtual Bool_t GetEnergyGrad() const { return -1 ; }
+
+ // add for clusterizing task
+
+ virtual void SetDigitsArr(TClonesArray *arr) { fDigitsArr = arr ; }
+ virtual TClonesArray *GetDigits() { if (!fDigitsArr)
+ fDigitsArr = new TClonesArray("AliEMCALDigit",12000);
+ return fDigitsArr ; }
+ virtual const TObjArray *GetRecPoints() const { return fRecPoints ; }
+ void SetInputCalibrated(Bool_t val);
+ void SetJustClusters (Bool_t val);