]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONv0.h
This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / MUON / AliMUONv0.h
CommitLineData
fe4da5cc 1#ifndef MUONv0_H
2#define MUONv0_H
3/////////////////////////////////////////////////////////
4// Manager and hits classes for set:MUON version 0 //
5/////////////////////////////////////////////////////////
6
7#include "AliMUON.h"
8
9class AliMUONv0 : public AliMUON {
10
11public:
12 AliMUONv0();
13 AliMUONv0(const char *name, const char *title);
14 virtual ~AliMUONv0() {}
15 virtual void CreateGeometry();
16 virtual void CreateMaterials();
17 virtual void Init();
18 virtual Int_t IsVersion() const {return 0;}
19 virtual void StepManager();
20 virtual void Trigger(Float_t (*)[4], Float_t (*)[4], Int_t& iflag);
21private:
22 ClassDef(AliMUONv0,1) //Hits manager for set:MUON version 0
23
24};
25class AliMUONsegmentationV0 :
26public AliMUONsegmentation {
27 public:
28 AliMUONsegmentationV0(){}
29 virtual ~AliMUONsegmentationV0(){}
30 //
31 // Set Chamber Segmentation Parameters
32 virtual void SetPADSIZ(Float_t p1, Float_t p2);
33 virtual void SetDAnod(Float_t D) {fWireD = D;};
34 //
35 // Transform from pad (wire) to real coordinates and vice versa
36 virtual Float_t GetAnod(Float_t xhit);
37 virtual void GetPadIxy(Float_t x ,Float_t y ,Int_t &ix,Int_t &iy);
38 virtual void GetPadCxy(Int_t ix,Int_t iy,Float_t &x ,Float_t &y );
39 //
40 // Initialisation
41 virtual void Init(AliMUONchamber*);
42 //
43 // Get member data
44 virtual Float_t Dpx(){return fDpx;}
45 virtual Float_t Dpy(){return fDpy;}
46 virtual Int_t Npx(){return fNpx;}
47 virtual Int_t Npy(){return fNpy;}
48 //
49 // Iterate over pads
50 virtual void FirstPad(Float_t xhit, Float_t yhit, Float_t dx, Float_t dy);
51 virtual void NextPad();
52 virtual Int_t MorePads();
53 // Get next neighbours
54 virtual void Neighbours
55 (Int_t iX, Int_t iY, Int_t* Nlist, Int_t Xlist[10], Int_t Ylist[10]);
56 // Provisory RecCluster coordinates reconstructor
57 virtual void FitXY(AliMUONRecCluster* Cluster,TClonesArray* MUONdigits);
58 //
59 // Current Pad during Integration
60 virtual Int_t Ix(){return fix;}
61 virtual Int_t Iy(){return fiy;}
62 virtual Int_t ISector(){return 1;}
63 //
64 // Signal Generation Condition during Stepping
65 virtual Int_t SigGenCond(Float_t x, Float_t y, Float_t z);
66 virtual void SigGenInit(Float_t x, Float_t y, Float_t z);
67 virtual void IntegrationLimits
68 (Float_t& x1, Float_t& x2, Float_t& y1, Float_t& y2);
69 //
70 // Identification
71 virtual char* YourName(){return fName;}
72 ClassDef(AliMUONsegmentationV0,1)
73 protected:
74 //
75 // Implementation of the segmentation data
76 // Version 0 models rectangular pads with the same dimensions all
77 // over the cathode plane
78 //
79 // geometry
80 //
81 Float_t fDpx; // x pad width per sector
82 Float_t fDpy; // y pad base width
83 Int_t fNpx;
84 Int_t fNpy; // Number of pads in y
85 Float_t fWireD; // wire pitch
86
87 // Chamber region consideres during disintegration (lower left and upper right corner)
88 //
89 Int_t fixmin;
90 Int_t fixmax;
91 Int_t fiymin;
92 Int_t fiymax;
93 //
94 // Current pad during integration (cursor for disintegration)
95 Int_t fix;
96 Int_t fiy;
97 Float_t fx;
98 Float_t fy;
99 //
100 // Current pad and wire during tracking (cursor at hit centre)
101 Int_t fixt;
102 Int_t fiyt;
103 Int_t fiwt;
104 Float_t fxt;
105 Float_t fyt;
106 //
107 // Version Identifier
108 char *fName;
109};
110
111class AliMUONresponseV0 : //Mathieson response
112public AliMUONresponse {
113 public:
114 AliMUONresponseV0(){}
115 virtual ~AliMUONresponseV0(){}
116 //
117 // Configuration methods
118 //
119 virtual void SetRSIGM(Float_t p1) {fNsigma=p1;}
120 virtual void SetMUCHSP(Float_t p1) {fChslope=p1;}
121 virtual void SetMUSIGM(Float_t p1, Float_t p2) {fChwX=p1; fChwY=p2;}
122 virtual void SetMAXADC(Float_t p1) {fadc_satm=p1;}
123 // Mathieson parameters
124 virtual void SetSqrtKx3(Float_t p1) {fSqrtKx3=p1;};
125 virtual void SetKx2(Float_t p1) {fKx2=p1;};
126 virtual void SetKx4(Float_t p1) {fKx4=p1;};
127 virtual void SetSqrtKy3(Float_t p1) {fSqrtKy3=p1;};
128 virtual void SetKy2(Float_t p1) {fKy2=p1;};
129 virtual void SetKy4(Float_t p1) {fKy4=p1;};
130 virtual void SetPitch(Float_t p1) {fPitch=p1;};
131 //
132 // Get member data
133 virtual Float_t Chslope() {return fChslope;}
134 virtual Float_t ChwX() {return fChwX;}
135 virtual Float_t ChwY() {return fChwY;}
136 virtual Float_t Nsigma() {return fNsigma;}
137 virtual Float_t adc_satm() {return fadc_satm;}
138 //
139 // Chamber response methods
140 // Pulse height from scored quantity (eloss)
141 virtual Float_t IntPH(Float_t eloss);
142 // Charge disintegration
143 virtual Float_t IntXY(AliMUONsegmentation * segmentation);
144 // Identification
145 //
146 virtual char* YourName() {return fName;}
147
148 ClassDef(AliMUONresponseV0,1)
149 protected:
150 Float_t fChslope; // Slope of the charge distribution
151 Float_t fChwX; // Width of the charge distribution in x
152 Float_t fChwY; // Width of the charge distribution in y
153 Float_t fNsigma; // Number of sigma's used for charge distribution
154 Float_t fadc_satm; // Maximum ADC channel
155 Float_t fSqrtKx3; // Mathieson parameters for x
156 Float_t fKx2;
157 Float_t fKx4;
158 Float_t fSqrtKy3; // Mathieson parameters for y
159 Float_t fKy2;
160 Float_t fKy4;
161 Float_t fPitch; //anode-cathode pitch
162 char *fName; // Version Identifier
163};
164
165#endif
166
167
168
169
170
171
172