AliRsnReader:
[u/mrichter/AliRoot.git] / EMCAL / Calib / AliEMCALCellInfo.h
1 #ifndef ALIEMCALCELLINFO_H
2 #define ALIEMCALCELLINFO_H
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice     */
5
6 /* $Id: AliEMCALCellInfo.h 24500 2008-03-13 23:39:38Z jklay $ */
7
8 //_________________________________________________________________________
9 // This is a table of emcal indexes.
10 // Simplify a work with cell indexes 
11 // Initial version was created with TTable staff
12 // 
13 //*-- Authors: Aleksei Pavlinov (WSU)
14 #include <TNamed.h>
15
16 // Aug 1, 2007; Corr. Sep 05
17 // cellInfo -> AliEMCALCellIndexes - Oct 15, 2007
18
19 class AliEMCALCellIndexes : public TObject { 
20   // See AliEMCALGeometry
21   // Indexes information
22   friend class AliEMCALCellInfo;
23   friend class AliEMCALPi0Calibration;
24  public:
25   virtual const char* GetName() const {return Form("Ind%5.5i",fAbsId);}
26   AliEMCALCellIndexes();
27   virtual ~AliEMCALCellIndexes() {};
28
29  protected:
30   Int_t fAbsId;   // abs id of cell as in Geant
31   // Geant numbering tree - see AliEMCALv2
32   Int_t fNSupMod; // index of super module (SM)
33   Int_t fNModule; // index of module in SM
34   Int_t fNIphi;   // phi index of tower(cell) in module
35   Int_t fNIeta;   // eta index of tower(cell) in module
36   // Inside SM - used in cluster finder
37   Int_t fIPhi;    // phi index of tower(cell) in SM 
38   Int_t fIEta;    // eta index of tower(cell) in SM
39   Int_t fIPhim;   // phi index of module in SM
40   Int_t fIEtam;   // eta index of module in SM
41   // Coordinate information should be include too ??
42   ClassDef(AliEMCALCellIndexes,2) // Cell indexes information
43 };
44
45 class AliEMCALGeometry;
46 class TObjArray;
47
48 class AliEMCALCellInfo : public TNamed {
49  public:
50   AliEMCALCellInfo(); // default constractor
51   AliEMCALCellInfo(const AliEMCALCellInfo& info); //copy constructor
52   AliEMCALCellInfo(const char* name, const Int_t nrow);
53   virtual ~AliEMCALCellInfo();
54
55   AliEMCALCellInfo & operator = (const AliEMCALCellInfo  & /*rvalue*/) {
56     // assignement operator requested by coding convention but not needed
57     Fatal("operator =", "not implemented");
58     return *this;
59   };
60   // 
61   void AddAt(AliEMCALCellIndexes* r);
62   AliEMCALCellIndexes* GetTable(Int_t i) const;
63
64   void PrintTable(int ind1=-1, int ind2=-1) const;  //*MENU*
65
66   static AliEMCALCellInfo *GetTableForGeometry(const char* geoName);
67   static AliEMCALCellInfo *GetTableForGeometry(AliEMCALGeometry *g);
68   //
69  protected:
70   TObjArray *fTable; // Array of  AliEMCALCellIndexes
71   Int_t fCurrentInd; // Current index
72
73   ClassDef(AliEMCALCellInfo,2) // Table of emcal indexes  
74 };
75
76 #endif // ALIEMCALCELLINFO_H