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

/*
EMCal trigger board super class
run the sliding window algorithm
Author: R. GUERNANE LPSC Grenoble CNRS/IN2P3
*/

#include "TVector2.h"

class TClonesArray;

class AliEMCALTriggerBoard : public TObject 
{	
	
public:
	         AliEMCALTriggerBoard();
	         AliEMCALTriggerBoard(const TVector2& RegionSize);
	virtual ~AliEMCALTriggerBoard();
	
	virtual void SlidingWindow(Int_t Threshold);

	virtual void ZeroRegion();
	
	virtual void Scan();
	virtual void Reset();
	
	virtual void          PatchSize(TVector2& Size) const {Size =     *fPatchSize;}
	virtual TVector2*     PatchSize(              ) const {     return fPatchSize;}
	virtual void         RegionSize(TVector2& Size) const {Size =    *fRegionSize;}
	virtual TVector2*    RegionSize(              ) const {    return fRegionSize;}
	virtual void      SubRegionSize(TVector2& Size) const {Size = *fSubRegionSize;}
	virtual TVector2* SubRegionSize(              ) const { return fSubRegionSize;}
	
	virtual const TClonesArray& Patches() const {return *fPatches;}
	
	virtual void    SetRegionSize(const TVector2& Size) {    *fRegionSize = Size;}
	virtual void     SetPatchSize(const TVector2& Size) {     *fPatchSize = Size;}
	virtual void SetSubRegionSize(const TVector2& Size) { *fSubRegionSize = Size;}

	virtual void SetRegion(Int_t arr[][64]) {for (Int_t i = 0; i < fRegionSize->X(); i++) for (Int_t j = 0; j < fRegionSize->Y(); j++) fRegion[i][j] = arr[i][j];}
	
	virtual Int_t** Region() {return fRegion;}
	virtual Int_t**    Map() {return    fMap;}
	virtual void       Map(Int_t arr[][64], const TVector2& Size) {for (Int_t i = 0; i < Size.X(); i++) for (Int_t j = 0; j < Size.Y(); j++) arr[i][j] = fMap[i][j];}

protected:
	
	Int_t**       fRegion;        //! 
	Int_t**       fMap;           //! Map the position to digit index (which eq. to ADC channel)
	TVector2*     fRegionSize;    //! in FastOR unit
	TVector2*     fSubRegionSize; //! in FastOR unit
	TVector2*     fPatchSize;     //! in subregion unit
	TClonesArray* fPatches;       //!
	
private:
	
    AliEMCALTriggerBoard(const AliEMCALTriggerBoard& rhs);            // NOT implemented
	AliEMCALTriggerBoard& operator=(const AliEMCALTriggerBoard& rhs); // NOT implemented
	
	ClassDef(AliEMCALTriggerBoard,1)
};
 
#endif
 AliEMCALTriggerBoard.h:1
 AliEMCALTriggerBoard.h:2
 AliEMCALTriggerBoard.h:3
 AliEMCALTriggerBoard.h:4
 AliEMCALTriggerBoard.h:5
 AliEMCALTriggerBoard.h:6
 AliEMCALTriggerBoard.h:7
 AliEMCALTriggerBoard.h:8
 AliEMCALTriggerBoard.h:9
 AliEMCALTriggerBoard.h:10
 AliEMCALTriggerBoard.h:11
 AliEMCALTriggerBoard.h:12
 AliEMCALTriggerBoard.h:13
 AliEMCALTriggerBoard.h:14
 AliEMCALTriggerBoard.h:15
 AliEMCALTriggerBoard.h:16
 AliEMCALTriggerBoard.h:17
 AliEMCALTriggerBoard.h:18
 AliEMCALTriggerBoard.h:19
 AliEMCALTriggerBoard.h:20
 AliEMCALTriggerBoard.h:21
 AliEMCALTriggerBoard.h:22
 AliEMCALTriggerBoard.h:23
 AliEMCALTriggerBoard.h:24
 AliEMCALTriggerBoard.h:25
 AliEMCALTriggerBoard.h:26
 AliEMCALTriggerBoard.h:27
 AliEMCALTriggerBoard.h:28
 AliEMCALTriggerBoard.h:29
 AliEMCALTriggerBoard.h:30
 AliEMCALTriggerBoard.h:31
 AliEMCALTriggerBoard.h:32
 AliEMCALTriggerBoard.h:33
 AliEMCALTriggerBoard.h:34
 AliEMCALTriggerBoard.h:35
 AliEMCALTriggerBoard.h:36
 AliEMCALTriggerBoard.h:37
 AliEMCALTriggerBoard.h:38
 AliEMCALTriggerBoard.h:39
 AliEMCALTriggerBoard.h:40
 AliEMCALTriggerBoard.h:41
 AliEMCALTriggerBoard.h:42
 AliEMCALTriggerBoard.h:43
 AliEMCALTriggerBoard.h:44
 AliEMCALTriggerBoard.h:45
 AliEMCALTriggerBoard.h:46
 AliEMCALTriggerBoard.h:47
 AliEMCALTriggerBoard.h:48
 AliEMCALTriggerBoard.h:49
 AliEMCALTriggerBoard.h:50
 AliEMCALTriggerBoard.h:51
 AliEMCALTriggerBoard.h:52
 AliEMCALTriggerBoard.h:53
 AliEMCALTriggerBoard.h:54
 AliEMCALTriggerBoard.h:55
 AliEMCALTriggerBoard.h:56
 AliEMCALTriggerBoard.h:57
 AliEMCALTriggerBoard.h:58
 AliEMCALTriggerBoard.h:59
 AliEMCALTriggerBoard.h:60
 AliEMCALTriggerBoard.h:61
 AliEMCALTriggerBoard.h:62
 AliEMCALTriggerBoard.h:63
 AliEMCALTriggerBoard.h:64
 AliEMCALTriggerBoard.h:65
 AliEMCALTriggerBoard.h:66
 AliEMCALTriggerBoard.h:67