]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/mapping/AliMpDDLStore.h
Adding AliMpCDB class
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpDDLStore.h
CommitLineData
f0c62051 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
61c370dd 20#include "AliMpExMap.h"
21#include "AliMpIntPair.h"
22
f0c62051 23#include <TObject.h>
24#include <TObjArray.h>
42d368d0 25#include <TArrayI.h>
f0c62051 26
f0c62051 27
28class AliMpDDL;
29class AliMpDetElement;
30class AliMpBusPatch;
61c370dd 31class AliMpLocalBoard;
32class AliMpTriggerCrate;
f0c62051 33class AliMpDEStore;
42d368d0 34class TArrayI;
f0c62051 35
36class AliMpDDLStore : public TObject {
37
38 public:
39 AliMpDDLStore(TRootIOCtor* /*ioCtor*/);
40 virtual ~AliMpDDLStore();
41
42 // static access method
43 static AliMpDDLStore* Instance();
44
45 // methods
61c370dd 46 AliMpDDL* GetDDL(Int_t ddlId, Bool_t warn = true) const;
47 AliMpDetElement* GetDetElement(Int_t detElemId, Bool_t warn = true) const;
48 AliMpBusPatch* GetBusPatch(Int_t busPatchId, Bool_t warn = true) const;
49 AliMpLocalBoard* GetLocalBoard(Int_t localBoardId, Bool_t warn = true) const;
50 AliMpTriggerCrate* GetTriggerCrate(TString crateName, Bool_t warn = true) const;
51 AliMpTriggerCrate* GetTriggerCrate(Int_t ddlId, Int_t index, Bool_t warn = true) const;
f0c62051 52
53 Int_t GetDEfromBus(Int_t busPatchId) const;
61c370dd 54 Int_t GetDEfromLocalBoard(Int_t localBoardId, Int_t chamberId) const;
55 Int_t GetNextDEfromLocalBoard(Int_t localBoardId, Int_t chamberId) const;
56 Int_t GetPreviousDEfromLocalBoard(Int_t localBoardId, Int_t chamberId) const;
57
f0c62051 58 Int_t GetDDLfromBus(Int_t busPatchId) const;
42d368d0 59 Int_t GetBusPatchId(Int_t detElemId, Int_t manuId) const;
f0c62051 60
b30d0d20 61 /// Return trigger crates iterator
c116ee34 62 TExMapIter GetTriggerCrateItr() const {return fTriggerCrates.GetIterator();}
61c370dd 63
f0c62051 64 AliMpIntPair GetDetElemIdManu(Int_t manuSerial) const;
65
92faf71f 66 void PrintAllManu() const;
67
f0c62051 68 private:
69 AliMpDDLStore();
71a2d3aa 70 /// Not implemented
f0c62051 71 AliMpDDLStore(const AliMpDDLStore& rhs);
71a2d3aa 72 /// Not implemented
f0c62051 73 AliMpDDLStore& operator=(const AliMpDDLStore& rhs);
74
75 // methods
42d368d0 76 Int_t GetManuListIndex(Int_t detElemId) const;
77 Int_t GetBusPatchIndex(Int_t detElemId, Int_t manuId) const;
f0c62051 78 Bool_t ReadDDLs();
61c370dd 79 Bool_t ReadTriggerDDLs();
42d368d0 80 Bool_t SetManus();
dbc1e34c 81 Bool_t SetPatchModules();
61c370dd 82 Int_t GetLocalBoardId(TString name) const;
f0c62051 83
84 // static data members
85 static AliMpDDLStore* fgInstance; ///< Singleton instance
86 static const Int_t fgkNofDDLs; ///< Total number of DDLs
61c370dd 87 static const Int_t fgkNofTriggerDDLs; ///< Total number of trigger DDLs
f0c62051 88
89 // data members
42d368d0 90 TObjArray fDDLs; ///< Array of DDL objects
91 AliMpDEStore* fDetElements; ///< Detection element store
92 AliMpExMap fBusPatches; ///< The map of bus patches per their IDs
61c370dd 93 AliMpExMap fTriggerCrates; ///< The map of trigger crate per their ID
94 AliMpExMap fLocalBoards; ///< The map of local board per their ID
42d368d0 95 TArrayI fManuList12[16]; ///< Arrays of 1st manu in bus
96
61c370dd 97 ClassDef(AliMpDDLStore,2) // The manager class for definition of detection element types
f0c62051 98};
99
100#endif //ALI_MP_DDL_STORE_H
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115