New classes for description of DDL, DE, BusPatch
[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
23 #include "AliMpExMap.h"
24 #include "AliMpIntPair.h"
25
26 class AliMpDDL;
27 class AliMpDetElement;
28 class AliMpBusPatch;
29 class AliMpDEStore;
30
31 class AliMpDDLStore : public  TObject {
32
33   public:
34     AliMpDDLStore(TRootIOCtor* /*ioCtor*/);
35     virtual ~AliMpDDLStore();
36     
37     // static access method
38     static AliMpDDLStore* Instance(); 
39     
40     // methods
41     AliMpDDL*         GetDDL(Int_t ddlId, Bool_t warn = true) const;
42     AliMpDetElement*  GetDetElement(Int_t detElemId, Bool_t warn = true) const;
43     AliMpBusPatch*    GetBusPatch(Int_t busPatchId, Bool_t warn = true) const;
44
45     Int_t  GetDEfromBus(Int_t busPatchId) const;
46     Int_t  GetDDLfromBus(Int_t busPatchId) const;
47     //void   GetDspInfo(Int_t iDDL, Int_t& iDspMax, Int_t* iBusPerDSP) const;
48     
49     AliMpIntPair  GetDetElemIdManu(Int_t manuSerial) const;
50
51   private:
52     AliMpDDLStore();
53     AliMpDDLStore(const AliMpDDLStore& rhs);
54     AliMpDDLStore& operator=(const AliMpDDLStore& rhs);
55
56     // methods
57     Bool_t ReadDDLs();
58
59     // static data members      
60     static AliMpDDLStore* fgInstance; ///< Singleton instance
61     static const Int_t    fgkNofDDLs; ///< Total number of DDLs
62
63     // data members     
64     TObjArray     fDDLs;        ///< Array of DDL objects
65     AliMpDEStore* fDetElements; ///< Detection element store
66     AliMpExMap    fBusPatches;  ///< The map of bus patches per their IDs
67       
68   ClassDef(AliMpDDLStore,1)  // The manager class for definition of detection element types
69 };
70
71 #endif //ALI_MP_DDL_STORE_H
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86