]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/MUONmapping/AliMpDetElement.h
Fixes for object target dependencies
[u/mrichter/AliRoot.git] / MUON / MUONmapping / AliMpDetElement.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: 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"
f0c62051 22#include "AliMpPlaneType.h"
23#include "AliMpCathodType.h"
4e51cfd2 24#include "AliMpStationType.h"
25#include "AliMpStation12Type.h"
f0c62051 26
61845859 27#ifndef ALI_MP_EX_MAP_H
28# include "AliMpExMap.h"
29#endif
30
f0c62051 31class AliMpVSegmentation;
61845859 32class AliMpArrayI;
f0c62051 33
34class AliMpDetElement : public TObject {
35
61845859 36 public:
f0c62051 37 AliMpDetElement(Int_t id, const TString& name,
38 const TString& segType, AliMp::PlaneType planeType);
7d5d0cc5 39 AliMpDetElement(TRootIOCtor* ioCtor);
f0c62051 40 virtual ~AliMpDetElement();
41
42 // static methods
43 static char GetNameSeparator();
44
45 // methods
46 Bool_t AddBusPatch(Int_t busPatchId);
61845859 47 void AddManu(Int_t manuId);
f0c62051 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
4e51cfd2 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;
f0c62051 62
63 Int_t GetNofBusPatches() const;
64 Int_t GetBusPatchId(Int_t index) const;
65 Bool_t HasBusPatchId(Int_t busPatchId) const;
f0c62051 66
61845859 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;
969fa94b 73
630711ed 74 /// Return the number of channels in this detection element
75 Int_t NofChannels() const { return fNofChannels; }
76
f0c62051 77 private:
71a2d3aa 78 /// Not implemented
f0c62051 79 AliMpDetElement();
71a2d3aa 80 /// Not implemented
f0c62051 81 AliMpDetElement(const AliMpDetElement& rhs);
71a2d3aa 82 /// Not implemented
f0c62051 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
61845859 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
630711ed 102 Int_t fNofChannels; ///< number of channels in this detection element
103
ab167304 104 ClassDef(AliMpDetElement,4) // The manager class for definition of detection element types
f0c62051 105};
106
107// inline function
108
109/// Return the name separator
110inline char AliMpDetElement::GetNameSeparator()
111{ return fgkNameSeparator; }
112
113/// Set DDL Id
114inline void AliMpDetElement::SetDdlId(Int_t ddlId)
115{ fDdlId = ddlId; }
116
117/// Return Id
118inline Int_t AliMpDetElement::GetId() const
119{ return fId; }
120
121/// Return DDL Id
122inline Int_t AliMpDetElement::GetDdlId() const
123{ return fDdlId; }
124
125/// Return name
126inline TString AliMpDetElement::GetDEName() const
127{ return fName; }
128
129/// Return segmentation type name
130inline TString AliMpDetElement::GetSegType() const
131{ return fSegType; }
132
133#endif //ALI_MP_MANAGER_H
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148