]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/mapping/AliMpDetElement.h
Copy of event header for delta-AOD on demand.
[u/mrichter/AliRoot.git] / MUON / mapping / 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"
22#include "AliMpStationType.h"
23#include "AliMpPlaneType.h"
24#include "AliMpCathodType.h"
25
61845859 26#ifndef ALI_MP_EX_MAP_H
27# include "AliMpExMap.h"
28#endif
29
f0c62051 30class AliMpVSegmentation;
61845859 31class AliMpArrayI;
f0c62051 32
33class AliMpDetElement : public TObject {
34
61845859 35 public:
f0c62051 36 AliMpDetElement(Int_t id, const TString& name,
37 const TString& segType, AliMp::PlaneType planeType);
38 AliMpDetElement(TRootIOCtor* /*ioCtor*/);
39 virtual ~AliMpDetElement();
40
41 // static methods
42 static char GetNameSeparator();
43
44 // methods
45 Bool_t AddBusPatch(Int_t busPatchId);
46 void AddManuSerial(Int_t manuId, Int_t serialNb);
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
57 AliMp::PlaneType GetPlaneType(AliMp::CathodType cath) const;
58 AliMp::CathodType GetCathodType(AliMp::PlaneType planeType) const;
969fa94b 59 AliMp::CathodType GetCathodTypeFromManuId(Int_t manuId) const;
f0c62051 60 AliMp::StationType GetStationType() const;
61
62 Int_t GetNofBusPatches() const;
63 Int_t GetBusPatchId(Int_t index) const;
64 Bool_t HasBusPatchId(Int_t busPatchId) const;
65
61845859 66 Int_t NofManusWithSerialNumber() const;
f0c62051 67 Int_t GetManuSerialFromId(Int_t manuId) const;
68 Int_t GetManuIdFromSerial(Int_t serialNb) const;
69
61845859 70 Int_t NofManus() const;
71 Int_t NofChannelsInManu(Int_t manuId) const;
72 Bool_t IsExistingChannel(Int_t manuId, Int_t manuChannel) const;
73 Bool_t IsConnectedChannel(Int_t manuId, Int_t manuChannel) const;
74
75 const AliMpArrayI* ManusForHV(Int_t hvIndex) const;
969fa94b 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
71a2d3aa 96 mutable TExMap fManuToSerialNbs; ///< Map from manuId to serial #
97 mutable TExMap fSerialNbToManus; ///< Map manu serial # to manuId
61845859 98
99 mutable TExMap fManuList; ///< map of manus
100 mutable TExMap fTrackerChannels; ///< list of connected pads (tracker only)
101
102 AliMpExMap fHVmanus; ///< map of HV->manu
103
104 ClassDef(AliMpDetElement,2) // 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