BuildGeometry of AliMUON for trigger chambers delegated to AliMUONSegmentationTrigger...
[u/mrichter/AliRoot.git] / MUON / AliMUONSegmentationTriggerX.h
CommitLineData
a9e2aefa 1#ifndef ALIMUONSEGMENTATIONTRIGGERX_H
2#define ALIMUONSEGMENTATIONTRIGGERX_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7/* $Id$ */
8
9#include "AliMUONSegmentationTrigger.h"
10
11class AliMUONChamber;
12//----------------------------------------------
13//
14// Chamber segmentation virtual base class
15//
16class AliMUONSegmentationTriggerX :
17public AliMUONSegmentationTrigger {
18 public:
19 AliMUONSegmentationTriggerX(){}
20 virtual ~AliMUONSegmentationTriggerX(){}
21 // Transform from pad to real coordinates
a30a000f 22 virtual void GetPadI(Float_t x, Float_t y, Int_t &ix, Int_t &iy);
c3eff6ad 23 virtual void GetPadI(Float_t x, Float_t y, Float_t z, Int_t &ix, Int_t &iy)
a30a000f 24 {GetPadI(x, y, ix, iy);}
a9e2aefa 25 // Transform from real to pad coordinates
a30a000f 26 virtual void GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y);
c3eff6ad 27 virtual void GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y, Float_t &z)
a30a000f 28 {z=0; GetPadC(ix, iy, x , y);}
5fd73042 29 // Draw the segmentation zones
30 virtual void Draw(const char *opt = "") const;
ef42d733 31
a9e2aefa 32 // Pad size Dx*Dy
33 virtual void SetPadSize(Float_t dp1, Float_t dp2);
34 // Strip size
c3eff6ad 35 virtual Float_t Dpx(Int_t imodule) const;
36 virtual Float_t Dpy(Int_t imodule) const;
a9e2aefa 37 // Set pad position
38 virtual void SetPad(Int_t ix, Int_t iy);
39 // Set hit position
40 virtual void SetHit(Float_t xhit, Float_t yhit);
24b005db 41 virtual void SetHit(Float_t xhit, Float_t yhit, Float_t zhit)
42 {SetHit(xhit, yhit);}
a9e2aefa 43 // Current integration parameters
44 virtual void IntegrationLimits(Float_t& x1, Float_t& x2, Float_t& x3, Float_t& width);
45 // Current Pad during Integration
46 // x-coordinate
47 virtual Int_t Ix();
48 // y-coordinate
49 virtual Int_t Iy();
50 // Sector
51 virtual Int_t ISector();
52 // calculate sector from pad coordinates
53 virtual Int_t Sector(Int_t ix, Int_t iy);
54 // Get next neighbours
55 virtual void Neighbours
56 (Int_t iX, Int_t iY, Int_t* Nlist, Int_t Xlist[2], Int_t Ylist[2]);
57
58 //
59 // Initialisation
d81db581 60 virtual void Init(Int_t chamber);
a9e2aefa 61
62 ClassDef(AliMUONSegmentationTriggerX,1) //Segmentation class for trigger X
63
64 protected:
65 void IntegrationParam(Float_t& x1, Float_t& x2, Float_t& y1);
66// Geometry Parameters
67 float fXofxsmin[126][64]; // x-min
68 float fXofxsmax[126][64]; // x-max
69 float fYofxsmin[126][64]; // y-min
70 float fYofxsmax[126][64]; // y-max
71
72// Current pad during integration (cursor for disintegration)
ecfa008b 73 Int_t fIx; // pad coord. x
74 Int_t fIy; // pad coord. y
75 Float_t fX; // real coord. x
76 Float_t fY; // real ccord. y
a9e2aefa 77
78};
79#endif
80
81
82