Increasing histo clu. lay.1 upper lim.
[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   virtual Int_t GetHWAddress(Int_t padrow, Int_t pad, Int_t sector) = 0;
22   virtual Int_t GetPadRow(Int_t hwAddress) const = 0;
23   virtual Int_t GetPad(Int_t hwAddress) const = 0;
24   virtual Int_t GetSector(Int_t hwAddress) const = 0;
25
26  protected:
27   void           CloseMappingFile();
28   virtual Bool_t ReadMapping() = 0;
29   virtual Bool_t CreateInvMapping() = 0;
30
31   ifstream *fIn;               //! External mapping file
32   Int_t     fNumberOfChannels; // Number of ALTRO channels
33   Int_t     fMaxHWAddress;     // Maximum HW adress
34   Int_t     fMappingSize;      // Size of the mapping array, used by the streamer of derived classes
35   Short_t  *fMapping;          //[fMappingSize] Array which connects hardware adresses to detector element indices
36
37  private:
38   Bool_t    OpenMappingFile(const char *mappingFile);
39
40   AliAltroMapping(const AliAltroMapping& mapping);
41   AliAltroMapping& operator = (const AliAltroMapping& mapping);
42
43   ClassDef(AliAltroMapping,4)  // Altro mapping handler class
44 };
45
46 #endif