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