]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/AliMpDDLStore.h
Compilation on Windows/Cygwin. Corrected dependences
[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 "AliMpExMap.h"
21 #include "AliMpIntPair.h"
22 #include "AliMpGlobalCrate.h"
23 #include "AliMpRegionalTrigger.h"
24 #include <TObject.h>
25 #include <TObjArray.h>
26 #include <TArrayI.h>
27
28
29 class AliMpDDL;
30 class AliMpDetElement;
31 class AliMpBusPatch;
32 class AliMpLocalBoard;
33 class AliMpTriggerCrate;
34
35 class TArrayI;
36
37 class AliMpDDLStore : public  TObject {
38
39   public:
40     AliMpDDLStore(TRootIOCtor* /*ioCtor*/);
41     virtual ~AliMpDDLStore();
42     
43     // static access method
44     static AliMpDDLStore* Instance(Bool_t warn = true); 
45     static AliMpDDLStore* ReadData(Bool_t warn = true);
46     
47     // methods
48     AliMpDDL*          GetDDL(Int_t ddlId, Bool_t warn = true) const;
49     AliMpDetElement*   GetDetElement(Int_t detElemId, Bool_t warn = true) const;
50     AliMpBusPatch*     GetBusPatch(Int_t busPatchId, Bool_t warn = true) const;
51     AliMpLocalBoard*   GetLocalBoard(Int_t localBoardId, Bool_t warn = true) const;
52     AliMpTriggerCrate* GetTriggerCrate(TString crateName, Bool_t warn = true) const;
53     AliMpTriggerCrate* GetTriggerCrate(Int_t ddlId, Int_t index, Bool_t warn = true) const;
54
55     /// Return regional trigger object
56     const AliMpRegionalTrigger*  GetRegionalTrigger() const { return &fRegionalTrigger; }
57     /// Return global crate object
58     const AliMpGlobalCrate*  GetGlobalCrate() const { return &fGlobalCrate; }
59     
60     Int_t  GetDEfromBus(Int_t busPatchId) const;
61     Int_t  GetDEfromLocalBoard(Int_t localBoardId, Int_t chamberId) const;
62     Int_t  GetNextDEfromLocalBoard(Int_t localBoardId, Int_t chamberId) const;
63     Int_t  GetPreviousDEfromLocalBoard(Int_t localBoardId, Int_t chamberId) const;
64     
65     Int_t  GetDDLfromBus(Int_t busPatchId) const;
66     Int_t  GetBusPatchId(Int_t detElemId, Int_t manuId) const;
67     
68     /// Return trigger crates iterator
69     TExMapIter GetTriggerCrateItr() const { return fRegionalTrigger.GetTriggerCrateItr(); }
70
71     /// Return trigger local board iterator
72     TExMapIter GetLocalBoardItr() const { return fRegionalTrigger.GetLocalBoardItr(); }
73
74     /// Get an iterator to loop over bus patches
75     TExMapIter GetBusPatchesIterator() const { return fBusPatches.GetIterator(); }
76     
77     /// Get detection elt and Manu number from serial number
78     AliMpIntPair  GetDetElemIdManu(Int_t manuSerial) const;
79
80     /// print info of all manus
81     void PrintAllManu() const;
82     
83     // Set methods
84     void SetRegionalTrigger(const AliMpRegionalTrigger& regionalTrigger);
85
86     
87   private:
88     AliMpDDLStore();
89     /// Not implemented
90     AliMpDDLStore(const AliMpDDLStore& rhs);
91     /// Not implemented
92     AliMpDDLStore& operator=(const AliMpDDLStore& rhs);
93
94     // methods
95     Int_t  GetManuListIndex(Int_t detElemId) const;
96     Int_t  GetBusPatchIndex(Int_t detElemId, Int_t manuId) const;
97     Bool_t ReadDDLs();
98     Bool_t ReadTrigger();
99     Bool_t SetTriggerDDLs();
100     Bool_t SetManus();
101     Bool_t ReadBusPatchSpecial();
102     Bool_t SetPatchModules();
103     Bool_t SetBusPatchLength();
104     Int_t  GetLocalBoardId(TString name) const;
105
106     // static data members      
107     static AliMpDDLStore* fgInstance; ///< Singleton instance
108     static const Int_t    fgkNofDDLs; ///< Total number of DDLs
109     static const Int_t    fgkNofTriggerDDLs; ///< Total number of trigger DDLs
110     static const TString  fgkRevertKeyword; ///< A keyword for ReadBusPatchSpecial()
111     static const TString  fgkExplicitKeyword; ///< A keyword for ReadBusPatchSpecial()
112
113     // data members     
114     TObjArray     fDDLs;           ///< Array of DDL objects
115     AliMpExMap    fBusPatches;     ///< The map of bus patches per their IDs
116     TArrayI       fManuList12[16]; ///< Arrays of 1st manu in bus
117     TArrayI       fManuBridge2[16]; ///< Arrays of manu number before the bridge in buspatch
118     AliMpGlobalCrate     fGlobalCrate;     ///< Global Crate Object 
119     AliMpRegionalTrigger fRegionalTrigger; ///< Regional trigger
120         
121   ClassDef(AliMpDDLStore,4)  // The manager class for definition of detection element types
122 };
123
124 #endif //ALI_MP_DDL_STORE_H
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139