]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONTriggerSegmentationV2.h
Coding convention (Ivana)
[u/mrichter/AliRoot.git] / MUON / AliMUONTriggerSegmentationV2.h
CommitLineData
9ff9fab7 1#ifndef ALIMUONTRIGGERSEGMENTATIONV2_H
2#define ALIMUONTRIGGERSEGMENTATIONV2_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
7
8/// \ingroup base
9/// \class AliMUONTriggerSegmentationV2
10/// \brief Segmentation for trigger modules
11///
12/// New implementation of AliMUONVGeometryDESegmentation, based on
13/// mapping package.
14
15#ifndef ALIMUONVGEOMETRYDESEGMENTATION_H
16#include "AliMUONVGeometryDESegmentation.h"
17#endif
18
19#ifndef ALI_MP_PLANE_TYPE_H
20#include "AliMpPlaneType.h"
21#endif
22
23#ifndef ALI_MP_PAD_H
24#include "AliMpPad.h"
25#endif
26
27class AliMpTrigger;
28class AliMpTriggerSegmentation;
29
30class AliMUONTriggerSegmentationV2 : public AliMUONVGeometryDESegmentation
31{
32 public:
33
34 AliMUONTriggerSegmentationV2();
8fbf5237 35 AliMUONTriggerSegmentationV2(AliMpVSegmentation* segmentation,
36 Int_t detElemId, AliMpPlaneType bendingOrNonBending);
9ff9fab7 37 virtual ~AliMUONTriggerSegmentationV2();
38
39 /// Distance between 1 pad and a position
40 virtual Float_t Distance2AndOffset(Int_t /*iX*/, Int_t /*iY*/,
41 Float_t /*X*/, Float_t /*Y*/,
42 Int_t * /*dummy*/);
43
44 virtual Float_t Dpx() const;
45 virtual Float_t Dpy() const;
46 virtual Float_t Dpx(Int_t sectorCode) const;
47 virtual Float_t Dpy(Int_t sectorCode) const;
48
49 virtual void Draw(const char */*opt*/ = "");
50
51 void FirstPad(Float_t xhit, Float_t yhit, Float_t zhit,
52 Float_t dx, Float_t dy);
53
54 virtual Bool_t HasPad(Float_t /*x*/, Float_t /*y*/, Float_t /*z*/);
55 virtual Bool_t HasPad(Int_t ix, Int_t iy);
56
57 virtual AliMUONGeometryDirection GetDirection();
b7ef3c96 58 virtual const AliMpVSegmentation* GetMpSegmentation() const;
9ff9fab7 59
60 virtual Float_t GetAnod(Float_t /*xhit*/) const;
61
62 virtual void GetPadI(Float_t x ,Float_t y ,Int_t &ix,Int_t &iy);
63 virtual void GetPadI(Float_t x, Float_t y , Float_t z, Int_t &ix, Int_t &iy);
64 virtual void GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y);
65 virtual void GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y, Float_t &z);
66
1a5d41ae 67 virtual void Init(Int_t) {}
9ff9fab7 68
69 virtual void IntegrationLimits(Float_t& x1, Float_t& x2, Float_t& y1, Float_t& y2);
70
71 virtual Int_t ISector();
72 virtual Int_t Ix();
73 virtual Int_t Iy();
74
75 Int_t LineNumber() const;
76
77 virtual Int_t MorePads();
78
79 virtual void Neighbours(Int_t iX, Int_t iY, Int_t* Nlist,
80 Int_t Xlist[10], Int_t Ylist[10]);
81 virtual void NextPad();
82
83 virtual Int_t Npx() const;
84 virtual Int_t Npy() const;
85
86 void Print(Option_t* opt="") const;
87
88 virtual void SetDAnod(Float_t /*D*/);
89
90 virtual Int_t Sector(Int_t ix, Int_t iy);
91 virtual void SetHit(Float_t xhit, Float_t yhit);
92 virtual void SetHit(Float_t xhit, Float_t yhit, Float_t zhit);
93
94 virtual void SetPad(Int_t ix, Int_t iy);
95 virtual void SetPadSize(Float_t, Float_t);
96
97 virtual void GetNParallelAndOffset(Int_t /*iX*/, Int_t /*iY*/,
98 Int_t */*Nparallel*/, Int_t */*Offset*/);
99 virtual Int_t SigGenCond(Float_t /*x*/, Float_t /*y*/, Float_t /*z*/);
100 virtual void SigGenInit(Float_t /*x*/, Float_t /*y*/, Float_t /*z*/);
101 virtual void GiveTestPoints(Int_t &/*n*/, Float_t * /*x*/, Float_t */*y*/) const;
102 virtual void SetCorrFunc(Int_t /*dum*/, TF1* /*func*/);
103 virtual TF1* CorrFunc(Int_t) const;
104 virtual Int_t Sector(Float_t /*x*/, Float_t /*y*/);
105
9ff9fab7 106public:
bdb9f2a3 107
9ff9fab7 108 void GetPadLoc2Glo(Int_t ixLoc, Int_t iyLoc, Int_t& ixGlo, Int_t& iyGlo) const;
109 void GetPadGlo2Loc(Int_t ixLoc, Int_t iyLoc, Int_t& ixGlo, Int_t& iyGlo) const;
110
6c92c893 111 void PC2LA(Int_t ixPC, Int_t iyPC, Int_t& ixLA, Int_t& iyLA) const;
112 void LA2PC(Int_t ixLA, Int_t iyLA, Int_t& ixPC, Int_t& iyPC) const;
9ff9fab7 113
6c92c893 114 void IGlo2ILoc(Int_t ixGlo, Int_t iyGlo, Int_t& ixLA, Int_t& iyLA) const;
115 void ILoc2IGlo(Int_t ixLA, Int_t iyLA, Int_t& ixGlo, Int_t& iyGlo) const;
9ff9fab7 116
117 Int_t ModuleColNum(Int_t ixGlo) const;
118
bdb9f2a3 119protected:
120
121 AliMUONTriggerSegmentationV2(const AliMUONTriggerSegmentationV2& rhs);
122 AliMUONTriggerSegmentationV2& operator=(const AliMUONTriggerSegmentationV2& rhs);
123
9ff9fab7 124private:
bdb9f2a3 125 Int_t fDetElemId; // det elem Id
126 AliMpPlaneType fPlaneType; // plane type
127 const AliMpTrigger* fSlat; // slat
128 AliMpTriggerSegmentation* fSlatSegmentation; // mapping segmentation
9ff9fab7 129// AliMpVPadIterator* fPadIterator; //!
130 AliMpPad fCurrentPad; //!FIXME: should not be needed, if we externalise the SetPad, SetHit, IntegrationLimits methods which have nothing to do here anyway, together with the iteration methods FirstPad, NextPad, MorePads, which have nothing to do here either.
bdb9f2a3 131 Float_t fXhit; //! x-position of hit
132 Float_t fYhit; //! y-position of hit
133 Int_t fLineNumber; // Line number of that detection element (from 1 to 9)
9ff9fab7 134
135 ClassDef(AliMUONTriggerSegmentationV2,1)
136};
137#endif
138
139
140
141
142
143