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

//-------------------------------------------------------------------------
//
//     Virtual class to access calorimeter cell data
//     Author: Gustavo Conesa Balbastre INFN-LNF
//
//-------------------------------------------------------------------------


#include <TNamed.h>
#include <TMath.h>

class AliVCaloCells : public TNamed
{
 public:

  enum VCells_t {kUndef = -1, 
                 kPHOSCell, 
                 kEMCALCell};

  AliVCaloCells() : TNamed()  {;}
  AliVCaloCells(const char* name, const char* title) : TNamed(name, title) {;}
  AliVCaloCells(const AliVCaloCells& cells) : TNamed(cells.GetName(), cells.GetTitle()) {;}
  AliVCaloCells & operator=(const AliVCaloCells& cells ) ;
  virtual ~AliVCaloCells()    {;}
  void Clear(const Option_t*) {;}
  
  virtual Bool_t   IsEMCAL() const         = 0;
  virtual Bool_t   IsPHOS()  const         = 0;
  virtual Char_t   GetType() const         = 0;
  virtual void     SetType(Char_t ttype)   = 0;

  virtual void     CreateContainer(Short_t nCells) = 0;
  virtual void     DeleteContainer()               = 0;
  virtual void     Sort()                          = 0;
  
  virtual Bool_t   GetCell(Short_t pos, Short_t &cellNumber, Double_t &amplitude, Double_t &time, Int_t &mclabel,    Double_t  &efrac) const = 0;
  virtual Bool_t   SetCell(Short_t pos, Short_t  cellNumber, Double_t  amplitude, Double_t  time, Int_t  mclabel=-1, Double_t   efrac=0, Bool_t isHG=kTRUE)     = 0;
  
  virtual Short_t  GetNumberOfCells() const              = 0;
  virtual void     SetNumberOfCells(Int_t n)             = 0;
  
  virtual Double_t GetCellAmplitude(Short_t cellNumber)  = 0;
  virtual Bool_t   GetCellHighGain(Short_t cellNumber)   = 0;
  virtual Double_t GetCellTime(Short_t cellNumber)       = 0;
  virtual Short_t  GetCellPosition(Short_t cellNumber)   = 0;
    
  virtual Double_t GetAmplitude(Short_t pos)  const      = 0;
  virtual Bool_t   GetHighGain(Short_t pos)   const      = 0;
  virtual Double_t GetTime(Short_t pos)       const      = 0;
  virtual Short_t  GetCellNumber(Short_t pos) const      = 0;

  virtual void           Copy(TObject &obj)        const = 0;
  virtual AliVCaloCells* CopyCaloCells(Bool_t all) const = 0;

  // MC & embedding
  virtual Int_t  GetCellMCLabel(Short_t cellNumber)    = 0;
  virtual Int_t  GetMCLabel(Short_t pos) const         = 0;

  virtual Double_t GetCellEFraction(Short_t cellNumber)  = 0;
  virtual Double_t GetEFraction(Short_t pos) const       = 0;

  virtual void     SetCellEFraction(Short_t cellNumber, Double_t efrac) = 0;
  virtual void     SetEFraction    (Short_t pos,        Double_t efrac) = 0;
  
  ClassDef(AliVCaloCells, 0);
};

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