Bug fixed (Christian)
[u/mrichter/AliRoot.git] / RAW / AliAltroMapping.h
1 #ifndef AliALTROMAPPING_H
2 #define AliALTROMAPPING_H
3 /* Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 //////////////////////////////////////////////////////////
7 // Class used to setup the mapping of hardware adresses //
8 // in ALTRO to pad-rows and pad indeces.                //
9 // The mapping is defined in an external mapping files  //
10 // separately for TPC,PHOS and FMD.                     //
11 //////////////////////////////////////////////////////////
12
13 #include <TObject.h>
14
15 class AliAltroMapping: public TObject {
16  public:
17   AliAltroMapping();
18   AliAltroMapping(const char *mappingFile);
19   virtual ~AliAltroMapping();
20
21   AliAltroMapping(const AliAltroMapping& mapping);
22   AliAltroMapping& operator = (const AliAltroMapping& mapping);
23
24   virtual Int_t GetHWAddress(Int_t padrow, Int_t pad, Int_t sector) const = 0;
25   virtual Int_t GetPadRow(Int_t hwAddress) const = 0;
26   virtual Int_t GetPad(Int_t hwAddress) const = 0;
27   virtual Int_t GetSector(Int_t hwAddress) const = 0;
28
29  protected:
30   Bool_t OpenMappingFile(const char *mappingFile);
31   Bool_t CloseMappingFile();
32   virtual Bool_t ReadMapping() = 0;
33   virtual void   DeleteMappingArrays() = 0;
34
35   ifstream *fIn;               // External mapping file
36   Int_t     fNumberOfChannels; // Number of ALTRO channels
37   Int_t     fMaxHWAddress;     // Maximum HW adress
38
39   ClassDef(AliAltroMapping,1)  // Altro mapping handler class
40 };
41
42 #endif