1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
5 // $MpId: AliMpDetElement.h,v 1.6 2006/05/24 13:58:16 ivana Exp $
7 /// \ingroup management
8 /// \class AliMpDetElement
9 /// \brief The class defines the electronics properties of detection element
11 /// \author Ivana Hrivnacova, IPN Orsay;
12 /// Laurent Aphecetche, Ch. Finck, Subatech Nantes
14 #ifndef ALI_MP_DET_ELEMENT_H
15 #define ALI_MP_DET_ELEMENT_H
21 #include "AliMpArrayI.h"
22 #include "AliMpPlaneType.h"
23 #include "AliMpCathodType.h"
24 #include "AliMpStationType.h"
25 #include "AliMpStation12Type.h"
27 #ifndef ALI_MP_EX_MAP_H
28 # include "AliMpExMap.h"
31 class AliMpVSegmentation;
34 class AliMpDetElement : public TObject {
37 AliMpDetElement(Int_t id, const TString& name,
38 const TString& segType, AliMp::PlaneType planeType);
39 AliMpDetElement(TRootIOCtor* ioCtor);
40 virtual ~AliMpDetElement();
43 static char GetNameSeparator();
46 Bool_t AddBusPatch(Int_t busPatchId);
47 void AddManu(Int_t manuId);
48 void SetDdlId(Int_t ddlId);
52 Int_t GetDdlId() const;
53 TString GetDEName() const;
54 TString GetSegType() const;
55 TString GetSegName(AliMp::CathodType cath) const;
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;
63 Int_t GetNofBusPatches() const;
64 Int_t GetBusPatchId(Int_t index) const;
65 Bool_t HasBusPatchId(Int_t busPatchId) const;
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;
72 const AliMpArrayI* ManusForHV(Int_t hvIndex) const;
74 /// Return the number of channels in this detection element
75 Int_t NofChannels() const { return fNofChannels; }
81 AliMpDetElement(const AliMpDetElement& rhs);
83 AliMpDetElement& operator=(const AliMpDetElement& rhs);
85 // static data members
86 static const char fgkNameSeparator; ///< Separator character used in DE names
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
97 mutable TExMap fManuList; ///< map of manus
98 mutable TExMap fTrackerChannels; ///< list of connected pads (tracker only)
100 AliMpExMap fHVmanus; ///< map of HV->manu
102 Int_t fNofChannels; ///< number of channels in this detection element
104 ClassDef(AliMpDetElement,4) // The manager class for definition of detection element types
109 /// Return the name separator
110 inline char AliMpDetElement::GetNameSeparator()
111 { return fgkNameSeparator; }
114 inline void AliMpDetElement::SetDdlId(Int_t ddlId)
118 inline Int_t AliMpDetElement::GetId() const
122 inline Int_t AliMpDetElement::GetDdlId() const
126 inline TString AliMpDetElement::GetDEName() const
129 /// Return segmentation type name
130 inline TString AliMpDetElement::GetSegType() const
133 #endif //ALI_MP_MANAGER_H