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