ROOT logo
#ifndef ALIEMCALCLUSTERIZERFIXEDWINDOW_H
#define ALIEMCALCLUSTERIZERFIXEDWINDOW_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id: AliEMCALClusterizerFixedWindow.h   */

//_________________________________________________________________________
// This class derives from AliEMCALClustrerizer

#include "AliEMCALClusterizer.h"

class AliEMCALRecPoint; 
class AliEMCALDigit;

class AliEMCALClusterizerFixedWindow : public AliEMCALClusterizer {
 public:
  AliEMCALClusterizerFixedWindow() ;         
  AliEMCALClusterizerFixedWindow(AliEMCALGeometry* geometry);
  AliEMCALClusterizerFixedWindow(AliEMCALGeometry* geometry, AliEMCALCalibData * calib, AliCaloCalibPedestal * pedestal);
  virtual ~AliEMCALClusterizerFixedWindow();
	
  virtual void            Digits2Clusters(Option_t *option);
  virtual const char     *Version() const { return "clu-FixedWindow"; }  

  Int_t                   GetNphi ()                                          const { return fNphi;             }
  Int_t                   GetNeta ()                                          const { return fNeta;             }
  Int_t                   GetShiftPhi ()                                      const { return fShiftPhi;         }
  Int_t                   GetShiftEta ()                                      const { return fShiftEta;         }
  Bool_t                  GetTRUshift()                                       const { return fTRUshift;         }
  void                    SetNphi (Int_t n);
  void                    SetNeta (Int_t n);
  void                    SetShiftPhi (Int_t s);
  void                    SetShiftEta (Int_t s);
  void                    SetTRUshift(Bool_t b);
  
protected:
  void MakeClusters(); 
  void ExecOnce(); 
  
  Int_t                   fNphi;                // Fixed window number of cells in phi direction
  Int_t                   fNeta;                // Fixed window number of cells in eta direction
  Int_t                   fShiftPhi;            // Shifting number of cells in phi direction
  Int_t                   fShiftEta;            // Shifting number of cells in eta direction
  Bool_t                  fTRUshift;            // Allows shifting inside a TRU (true) of through the whole calorimeter (false)
  Int_t                   fNEtaDigitsSupMod;    //!Number of digits per SM in eta 
  Int_t                   fNPhiDigitsSupMod;    //!Number of digits per SM in phi
  Int_t                   fNTRUPhi;             //!Number of TRUs in phi
  Int_t                   fNTRUEta;             //!Number of TRUs in eta
  Int_t                   fNEtaDigits;          //!Total number of digits in eta 
  Int_t                   fNPhiDigits;          //!Total number of digits in phi
  Int_t                   fMaxShiftPhi;         //!Max shift index in phi
  Int_t                   fMaxShiftEta;         //!Max shift index in eta
  Int_t                   fNDigitsCluster;      //!Digits per cluster
  Int_t                   fNClusEtaNoShift;     //!Max number of clusters in eta
  Int_t                   fNClusPhiNoShift;     //!Max number of clusters in phi
  Int_t                   fNClusters;           //!fNClusEtaNoShift x fNClusPhiNoShift
  Int_t                   fNTotalClus;          //!Maximum total number of clusters
  AliEMCALDigit        ***fClustersArray;       //!Temporary array that contains clusters
  Int_t                   fInitialized;         //!Initialized clusterizer
	
private:
  AliEMCALClusterizerFixedWindow(const AliEMCALClusterizerFixedWindow &);                 // not implemented
  AliEMCALClusterizerFixedWindow & operator = (const AliEMCALClusterizerFixedWindow &);   // not implemented

  ClassDef(AliEMCALClusterizerFixedWindow,4)   // Clusterizer implementation fixed windows
};
#endif // AliEMCALCLUSTERIZERFIXEDWINDOW_H
 AliEMCALClusterizerFixedWindow.h:1
 AliEMCALClusterizerFixedWindow.h:2
 AliEMCALClusterizerFixedWindow.h:3
 AliEMCALClusterizerFixedWindow.h:4
 AliEMCALClusterizerFixedWindow.h:5
 AliEMCALClusterizerFixedWindow.h:6
 AliEMCALClusterizerFixedWindow.h:7
 AliEMCALClusterizerFixedWindow.h:8
 AliEMCALClusterizerFixedWindow.h:9
 AliEMCALClusterizerFixedWindow.h:10
 AliEMCALClusterizerFixedWindow.h:11
 AliEMCALClusterizerFixedWindow.h:12
 AliEMCALClusterizerFixedWindow.h:13
 AliEMCALClusterizerFixedWindow.h:14
 AliEMCALClusterizerFixedWindow.h:15
 AliEMCALClusterizerFixedWindow.h:16
 AliEMCALClusterizerFixedWindow.h:17
 AliEMCALClusterizerFixedWindow.h:18
 AliEMCALClusterizerFixedWindow.h:19
 AliEMCALClusterizerFixedWindow.h:20
 AliEMCALClusterizerFixedWindow.h:21
 AliEMCALClusterizerFixedWindow.h:22
 AliEMCALClusterizerFixedWindow.h:23
 AliEMCALClusterizerFixedWindow.h:24
 AliEMCALClusterizerFixedWindow.h:25
 AliEMCALClusterizerFixedWindow.h:26
 AliEMCALClusterizerFixedWindow.h:27
 AliEMCALClusterizerFixedWindow.h:28
 AliEMCALClusterizerFixedWindow.h:29
 AliEMCALClusterizerFixedWindow.h:30
 AliEMCALClusterizerFixedWindow.h:31
 AliEMCALClusterizerFixedWindow.h:32
 AliEMCALClusterizerFixedWindow.h:33
 AliEMCALClusterizerFixedWindow.h:34
 AliEMCALClusterizerFixedWindow.h:35
 AliEMCALClusterizerFixedWindow.h:36
 AliEMCALClusterizerFixedWindow.h:37
 AliEMCALClusterizerFixedWindow.h:38
 AliEMCALClusterizerFixedWindow.h:39
 AliEMCALClusterizerFixedWindow.h:40
 AliEMCALClusterizerFixedWindow.h:41
 AliEMCALClusterizerFixedWindow.h:42
 AliEMCALClusterizerFixedWindow.h:43
 AliEMCALClusterizerFixedWindow.h:44
 AliEMCALClusterizerFixedWindow.h:45
 AliEMCALClusterizerFixedWindow.h:46
 AliEMCALClusterizerFixedWindow.h:47
 AliEMCALClusterizerFixedWindow.h:48
 AliEMCALClusterizerFixedWindow.h:49
 AliEMCALClusterizerFixedWindow.h:50
 AliEMCALClusterizerFixedWindow.h:51
 AliEMCALClusterizerFixedWindow.h:52
 AliEMCALClusterizerFixedWindow.h:53
 AliEMCALClusterizerFixedWindow.h:54
 AliEMCALClusterizerFixedWindow.h:55
 AliEMCALClusterizerFixedWindow.h:56
 AliEMCALClusterizerFixedWindow.h:57
 AliEMCALClusterizerFixedWindow.h:58
 AliEMCALClusterizerFixedWindow.h:59
 AliEMCALClusterizerFixedWindow.h:60
 AliEMCALClusterizerFixedWindow.h:61
 AliEMCALClusterizerFixedWindow.h:62
 AliEMCALClusterizerFixedWindow.h:63
 AliEMCALClusterizerFixedWindow.h:64
 AliEMCALClusterizerFixedWindow.h:65
 AliEMCALClusterizerFixedWindow.h:66
 AliEMCALClusterizerFixedWindow.h:67
 AliEMCALClusterizerFixedWindow.h:68
 AliEMCALClusterizerFixedWindow.h:69