Line data Source code
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: AliMpDetElement.h,v 1.6 2006/05/24 13:58:16 ivana Exp $
6 :
7 : /// \ingroup management
8 : /// \class AliMpDetElement
9 : /// \brief The class defines the electronics properties of detection element
10 : ///
11 : /// \author Ivana Hrivnacova, IPN Orsay;
12 : /// Laurent Aphecetche, Ch. Finck, Subatech Nantes
13 :
14 : #ifndef ALI_MP_DET_ELEMENT_H
15 : #define ALI_MP_DET_ELEMENT_H
16 :
17 : #include <TObject.h>
18 : #include <TArrayI.h>
19 : #include <TExMap.h>
20 :
21 : #include "AliMpArrayI.h"
22 : #include "AliMpPlaneType.h"
23 : #include "AliMpCathodType.h"
24 : #include "AliMpStationType.h"
25 : #include "AliMpStation12Type.h"
26 :
27 : #ifndef ALI_MP_EX_MAP_H
28 : # include "AliMpExMap.h"
29 : #endif
30 :
31 : class AliMpVSegmentation;
32 : class AliMpArrayI;
33 :
34 : class AliMpDetElement : public TObject {
35 :
36 : public:
37 : AliMpDetElement(Int_t id, const TString& name,
38 : const TString& segType, AliMp::PlaneType planeType);
39 : AliMpDetElement(TRootIOCtor* ioCtor);
40 : virtual ~AliMpDetElement();
41 :
42 : // static methods
43 : static char GetNameSeparator();
44 :
45 : // methods
46 : Bool_t AddBusPatch(Int_t busPatchId);
47 : void AddManu(Int_t manuId);
48 : void SetDdlId(Int_t ddlId);
49 :
50 : // get methods
51 : Int_t GetId() const;
52 : Int_t GetDdlId() const;
53 : TString GetDEName() const;
54 : TString GetSegType() const;
55 : TString GetSegName(AliMp::CathodType cath) const;
56 :
57 : AliMp::PlaneType GetPlaneType(AliMp::CathodType cath) const;
58 : AliMp::CathodType GetCathodType(AliMp::PlaneType planeType) const;
59 : AliMp::CathodType GetCathodTypeFromManuId(Int_t manuId) const;
60 : AliMp::StationType GetStationType() const;
61 : AliMq::Station12Type GetStation12Type() const;
62 :
63 : Int_t GetNofBusPatches() const;
64 : Int_t GetBusPatchId(Int_t index) const;
65 : Bool_t HasBusPatchId(Int_t busPatchId) const;
66 :
67 : Int_t NofManus() const;
68 : Int_t NofChannelsInManu(Int_t manuId) const;
69 : Bool_t IsExistingChannel(Int_t manuId, Int_t manuChannel) const;
70 : Bool_t IsConnectedChannel(Int_t manuId, Int_t manuChannel) const;
71 :
72 : const AliMpArrayI* ManusForHV(Int_t hvIndex) const;
73 :
74 : /// Return the number of channels in this detection element
75 0 : Int_t NofChannels() const { return fNofChannels; }
76 :
77 : private:
78 : /// Not implemented
79 : AliMpDetElement();
80 : /// Not implemented
81 : AliMpDetElement(const AliMpDetElement& rhs);
82 : /// Not implemented
83 : AliMpDetElement& operator=(const AliMpDetElement& rhs);
84 :
85 : // static data members
86 : static const char fgkNameSeparator; ///< Separator character used in DE names
87 :
88 : // data members
89 : Int_t fId; ///< Identifier (unique)
90 : Int_t fDdlId; ///< DDL Id to which this DE is connected
91 : TString fName; ///< Name unique
92 : TString fSegType; ///< Segmentation type name
93 : AliMp::PlaneType fPlaneType; ///< Plane type on cathod0
94 : //AliMpExMap fBusPatches; ///< Bus patches connected to this detection element
95 : AliMpArrayI fBusPatchIds; ///< Bus patches connected to this detection element
96 :
97 : mutable TExMap fManuList; ///< map of manus
98 : mutable TExMap fTrackerChannels; ///< list of connected pads (tracker only)
99 :
100 : AliMpExMap fHVmanus; ///< map of HV->manu
101 :
102 : Int_t fNofChannels; ///< number of channels in this detection element
103 :
104 403890 : ClassDef(AliMpDetElement,4) // The manager class for definition of detection element types
105 : };
106 :
107 : // inline function
108 :
109 : /// Return the name separator
110 : inline char AliMpDetElement::GetNameSeparator()
111 1800 : { return fgkNameSeparator; }
112 :
113 : /// Set DDL Id
114 : inline void AliMpDetElement::SetDdlId(Int_t ddlId)
115 1368 : { fDdlId = ddlId; }
116 :
117 : /// Return Id
118 : inline Int_t AliMpDetElement::GetId() const
119 129056 : { return fId; }
120 :
121 : /// Return DDL Id
122 : inline Int_t AliMpDetElement::GetDdlId() const
123 140240 : { return fDdlId; }
124 :
125 : /// Return name
126 : inline TString AliMpDetElement::GetDEName() const
127 912 : { return fName; }
128 :
129 : /// Return segmentation type name
130 : inline TString AliMpDetElement::GetSegType() const
131 1116 : { return fSegType; }
132 :
133 : #endif //ALI_MP_MANAGER_H
134 :
135 :
136 :
137 :
138 :
139 :
140 :
141 :
142 :
143 :
144 :
145 :
146 :
147 :
148 :
|