]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/AliMpDDLStore.h
Comments for Doxygen (mostly added comments for inline functions)
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpDDLStore.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice                               */
3
4 // $Id$
5 // $MpId: AliMpDDLStore.h,v 1.6 2006/05/24 13:58:16 ivana Exp $ 
6
7 /// \ingroup management
8 /// \class AliMpDDLStore
9 /// \brief The top container class for DDLs, det elements and bus patched
10 ///
11 /// It provides acces to DDL, det element and bus patches objects
12 /// via various characteristics.
13 ///
14 /// \author Ivana Hrivnacova, IPN Orsay;
15 ///         Christian Finck, SUBATECH Nantes
16
17 #ifndef ALI_MP_DDL_STORE_H
18 #define ALI_MP_DDL_STORE_H
19
20 #include <TObject.h>
21 #include <TObjArray.h>
22 #include <TArrayI.h>
23
24 #include "AliMpExMap.h"
25 #include "AliMpIntPair.h"
26
27 class AliMpDDL;
28 class AliMpDetElement;
29 class AliMpBusPatch;
30 class AliMpDEStore;
31 class TArrayI;
32
33 class AliMpDDLStore : public  TObject {
34
35   public:
36     AliMpDDLStore(TRootIOCtor* /*ioCtor*/);
37     virtual ~AliMpDDLStore();
38     
39     // static access method
40     static AliMpDDLStore* Instance(); 
41     
42     // methods
43     AliMpDDL*         GetDDL(Int_t ddlId, Bool_t warn = true) const;
44     AliMpDetElement*  GetDetElement(Int_t detElemId, Bool_t warn = true) const;
45     AliMpBusPatch*    GetBusPatch(Int_t busPatchId, Bool_t warn = true) const;
46
47     Int_t  GetDEfromBus(Int_t busPatchId) const;
48     Int_t  GetDDLfromBus(Int_t busPatchId) const;
49     Int_t  GetBusPatchId(Int_t detElemId, Int_t manuId) const;
50     
51     AliMpIntPair  GetDetElemIdManu(Int_t manuSerial) const;
52
53     void PrintAllManu() const;
54
55   private:
56     AliMpDDLStore();
57     /// Not implemented
58     AliMpDDLStore(const AliMpDDLStore& rhs);
59     /// Not implemented
60     AliMpDDLStore& operator=(const AliMpDDLStore& rhs);
61
62     // methods
63     Int_t  GetManuListIndex(Int_t detElemId) const;
64     Int_t  GetBusPatchIndex(Int_t detElemId, Int_t manuId) const;
65     Bool_t ReadDDLs();
66     Bool_t SetManus();
67
68     // static data members      
69     static AliMpDDLStore* fgInstance; ///< Singleton instance
70     static const Int_t    fgkNofDDLs; ///< Total number of DDLs
71
72     // data members     
73     TObjArray     fDDLs;           ///< Array of DDL objects
74     AliMpDEStore* fDetElements;    ///< Detection element store
75     AliMpExMap    fBusPatches;     ///< The map of bus patches per their IDs
76     TArrayI       fManuList12[16]; ///< Arrays of 1st manu in bus
77
78   ClassDef(AliMpDDLStore,1)  // The manager class for definition of detection element types
79 };
80
81 #endif //ALI_MP_DDL_STORE_H
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96