Line data Source code
1 : #ifndef ALIITSDDLMODULEMAPSDD_H
2 : #define ALIITSDDLMODULEMAPSDD_H
3 : /* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
4 : * See cxx source for full Copyright notice */
5 :
6 : /* $Id: $ */
7 :
8 : ///////////////////////////////////////////////////////////////////
9 : // //
10 : // Class to store SDD DDL mapping in the OCDB //
11 : // Origin: F.Prino, Torino, prino@to.infn.it //
12 : // //
13 : ///////////////////////////////////////////////////////////////////
14 :
15 : #include<TObject.h>
16 : #include<AliITSgeomTGeo.h>
17 :
18 :
19 0 : class AliITSDDLModuleMapSDD : public TObject {
20 :
21 : public:
22 :
23 : AliITSDDLModuleMapSDD();
24 : AliITSDDLModuleMapSDD(Char_t *ddlmapfile);
25 120 : virtual ~AliITSDDLModuleMapSDD(){};
26 :
27 : void SetDefaultMap();
28 : void SetDec07part1Map();
29 : void SetDec07part2Map();
30 : void SetFeb08Map();
31 : void SetJun08Map();
32 : void SetJun09Map();
33 0 : void SetDDLMapElement(Int_t iDDL, Int_t iChan, Int_t iMod){fDDLModuleMap[iDDL][iChan]=iMod;}
34 : void SetDDLMap(AliITSDDLModuleMapSDD* ddlmap);
35 : void ReadDDLModuleMap(Char_t *ddlmapfile);
36 :
37 88628 : Int_t GetModuleNumber(UInt_t iDDL, UInt_t iChan) const {return fDDLModuleMap[iDDL][iChan];}
38 : void FindInDDLMap(Int_t modIndex, Int_t &iDDL, Int_t &iCarlos) const;
39 : void FindInDDLMap(Int_t lay, Int_t lad, Int_t det, Int_t &iDDL, Int_t &iCarlos) const {
40 0 : FindInDDLMap(AliITSgeomTGeo::GetModuleIndex(lay,lad,det),iDDL,iCarlos);
41 0 : }
42 300 : static Int_t GetNDDLs(){return kDDLsNumber;}
43 3744 : static Int_t GetNModPerDDL(){return kModulesPerDDL;}
44 :
45 :
46 : void PrintDDLMap() const ;
47 :
48 : protected:
49 :
50 : enum {kDDLsNumber = 24}; // number of DDLs in SDD
51 : enum {kModulesPerDDL = 12}; // number of modules in each DDL
52 :
53 : Int_t fDDLModuleMap[kDDLsNumber][kModulesPerDDL]; // mapping DDL/module -> module number
54 :
55 142 : ClassDef(AliITSDDLModuleMapSDD,1);
56 : };
57 : #endif
|