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 "AliMpStationType.h"
23 #include "AliMpPlaneType.h"
24 #include "AliMpCathodType.h"
26 #ifndef ALI_MP_EX_MAP_H
27 # include "AliMpExMap.h"
30 class AliMpVSegmentation;
33 class AliMpDetElement : public TObject {
36 AliMpDetElement(Int_t id, const TString& name,
37 const TString& segType, AliMp::PlaneType planeType);
38 AliMpDetElement(TRootIOCtor* /*ioCtor*/);
39 virtual ~AliMpDetElement();
42 static char GetNameSeparator();
45 Bool_t AddBusPatch(Int_t busPatchId);
46 void AddManu(Int_t manuId);
47 void SetDdlId(Int_t ddlId);
51 Int_t GetDdlId() const;
52 TString GetDEName() const;
53 TString GetSegType() const;
54 TString GetSegName(AliMp::CathodType cath) const;
56 AliMp::PlaneType GetPlaneType(AliMp::CathodType cath) const;
57 AliMp::CathodType GetCathodType(AliMp::PlaneType planeType) const;
58 AliMp::CathodType GetCathodTypeFromManuId(Int_t manuId) const;
59 AliMp::StationType GetStationType() const;
61 Int_t GetNofBusPatches() const;
62 Int_t GetBusPatchId(Int_t index) const;
63 Bool_t HasBusPatchId(Int_t busPatchId) const;
65 Int_t NofManus() const;
66 Int_t NofChannelsInManu(Int_t manuId) const;
67 Bool_t IsExistingChannel(Int_t manuId, Int_t manuChannel) const;
68 Bool_t IsConnectedChannel(Int_t manuId, Int_t manuChannel) const;
70 const AliMpArrayI* ManusForHV(Int_t hvIndex) const;
72 /// Return the number of channels in this detection element
73 Int_t NofChannels() const { return fNofChannels; }
79 AliMpDetElement(const AliMpDetElement& rhs);
81 AliMpDetElement& operator=(const AliMpDetElement& rhs);
83 // static data members
84 static const char fgkNameSeparator; ///< Separator character used in DE names
87 Int_t fId; ///< Identifier (unique)
88 Int_t fDdlId; ///< DDL Id to which this DE is connected
89 TString fName; ///< Name unique
90 TString fSegType; ///< Segmentation type name
91 AliMp::PlaneType fPlaneType; ///< Plane type on cathod0
92 //AliMpExMap fBusPatches; ///< Bus patches connected to this detection element
93 AliMpArrayI fBusPatchIds; ///< Bus patches connected to this detection element
95 mutable TExMap fManuList; ///< map of manus
96 mutable TExMap fTrackerChannels; ///< list of connected pads (tracker only)
98 AliMpExMap fHVmanus; ///< map of HV->manu
100 Int_t fNofChannels; ///< number of channels in this detection element
102 ClassDef(AliMpDetElement,4) // The manager class for definition of detection element types
107 /// Return the name separator
108 inline char AliMpDetElement::GetNameSeparator()
109 { return fgkNameSeparator; }
112 inline void AliMpDetElement::SetDdlId(Int_t ddlId)
116 inline Int_t AliMpDetElement::GetId() const
120 inline Int_t AliMpDetElement::GetDdlId() const
124 inline TString AliMpDetElement::GetDEName() const
127 /// Return segmentation type name
128 inline TString AliMpDetElement::GetSegType() const
131 #endif //ALI_MP_MANAGER_H