changing to AMANDA protocol version 2
[u/mrichter/AliRoot.git] / EMCAL / 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$ */
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
14 //*-- Authors: Aleksei Pavlinov (WSU)
15 #include <TNamed.h>
16
17 // Aug 1, 2007; Corr. Sep 05
18 class cellInfo : public TObject { 
19   // See AliEMCALGeometry
20   // Indexes information
21  public:
22   virtual const char* GetName() const {return Form("Ind%5.5i",absId);}
23   cellInfo();
24   virtual ~cellInfo() {};
25
26   Int_t absId;   // abs id of cell as in Geant
27   // Geant numbering tree - see AliEMCALv2
28   Int_t nSupMod; // index of super module (SM)
29   Int_t nModule; // index of module in SM
30   Int_t nIphi;   // phi index of tower(cell) in module
31   Int_t nIeta;   // eta index of tower(cell) in module
32   // Inside SM - ised in cluster finder
33   Int_t iPhi;    // phi index of tower(cell) in SM 
34   Int_t iEta;    // eta index of tower(cell) in SM
35   Int_t iPhim;   // phi index of module in SM
36   Int_t iEtam;   // eta index of module in SM
37   // Coordinate information should be include too ??
38   ClassDef(cellInfo,1) // Cell indexes information
39 };
40
41 class AliEMCALGeometry;
42 class TObjArray;
43
44 class AliEMCALCellInfo : public TNamed {
45  public:
46   AliEMCALCellInfo(); // default constractor
47   AliEMCALCellInfo(const char* name, const Int_t nrow);
48   virtual ~AliEMCALCellInfo();
49
50   AliEMCALCellInfo & operator = (const AliEMCALCellInfo  & /*rvalue*/) {
51     // assignement operator requested by coding convention but not needed
52     Fatal("operator =", "not implemented");
53     return *this;
54   };
55   // 
56   void AddAt(cellInfo* r);
57   cellInfo* GetTable(Int_t i) const;
58
59   void PrintTable(int ind1=-1, int ind2=-1) const;  //*MENU*
60
61   static AliEMCALCellInfo *GetTableForGeometry(const char* geoName);
62   static AliEMCALCellInfo *GetTableForGeometry(AliEMCALGeometry *g);
63   //
64  protected:
65   TObjArray *fTable;
66   Int_t fCurrentInd;
67
68   ClassDef(AliEMCALCellInfo,2) // Table of emcal indexes  
69 };
70
71 #endif // ALIEMCALCELLINFO_H