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

/* $Id: AliTRDarraySignal.h 23387 2008-01-17 17:25:16Z cblume $ */

/////////////////////////////////////////////
//                                         //
// Container Class for Signals             //
//                                         //
/////////////////////////////////////////////

#include <TObject.h>

class AliTRDarraySignal: public TObject
{

 public:

  AliTRDarraySignal();
  AliTRDarraySignal(Int_t nrow, Int_t ncol,Int_t ntime);
  AliTRDarraySignal(const AliTRDarraySignal &d); 
  ~AliTRDarraySignal();
  AliTRDarraySignal &operator=(const AliTRDarraySignal &d); 

  void    Allocate(Int_t nrow, Int_t ncol, Int_t ntime);
  void    SetNdet(Int_t ndet) {fNdet=ndet;};  
  Int_t   GetNdet()  const {return fNdet;};
  Int_t   GetNrow()  const {return fNrow;};
  Int_t   GetNcol()  const {return fNcol;};
  Int_t   GetNtime() const {return fNtime;};
  Float_t GetDataByAdcCol(Int_t row, Int_t col, Int_t time) const
               {return fSignal[(row*fNumberOfChannels+col)*fNtime+time];};
  void    SetDataByAdcCol(Int_t row, Int_t col, Int_t time, Float_t value)
              {fSignal[(row*fNumberOfChannels+col)*fNtime+time]=value;};
  Bool_t  HasData() const {return fNtime ? 1 : 0;};
  Int_t   GetDim() const {return fNdim;};
  Int_t   GetOverThreshold(Float_t threshold) const;
  void    Compress(Float_t minval);
  void    Expand();
  void    Reset();
  Float_t GetData(Int_t nrow, Int_t ncol, Int_t ntime) const;
  void    SetData(Int_t nrow, Int_t ncol, Int_t ntime, Float_t value);
  static  void    CreateLut(); 

 protected:

  Int_t    fNdet;      //ID number of the chamber
  Int_t    fNrow;      //Number of rows of the chamber
  Int_t    fNcol;      //Number of columns of the chamber
  Int_t    fNumberOfChannels;  //  Number of MCM channels per row
  Int_t    fNtime;     //Number of time bins
  Int_t    fNdim;      //Dimension of the array
  Float_t *fSignal;    //[fNdim]  //Pointer to signals
  static Short_t *fgLutPadNumbering;   //  [fNcol] Look Up Table        

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