Avoid all warnings on SunOS. Again!
[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 //
c90dd3e2 89 char *fName; //! Version Identifier
ddae0931 90};
91
92class AliRICHresponseV0 : //Mathieson response
93public AliRICHresponse {
94 public:
95 AliRICHresponseV0(){}
96 virtual ~AliRICHresponseV0(){}
97
98
99
100 //
101 // Configuration methods
102 //
103 virtual void SetRSIGM(Float_t p1) {fNsigma=p1;}
104 virtual void SetMUCHSP(Float_t p1) {fChslope=p1;}
105 virtual void SetMUSIGM(Float_t p1, Float_t p2) {fChwX=p1; fChwY=p2;}
106 virtual void SetMAXADC(Float_t p1) {fadc_satm=p1;}
107 // Mathieson parameters
108 virtual void SetSqrtKx3(Float_t p1) {fSqrtKx3=p1;};
109 virtual void SetKx2(Float_t p1) {fKx2=p1;};
110 virtual void SetKx4(Float_t p1) {fKx4=p1;};
111 virtual void SetSqrtKy3(Float_t p1) {fSqrtKy3=p1;};
112 virtual void SetKy2(Float_t p1) {fKy2=p1;};
113 virtual void SetKy4(Float_t p1) {fKy4=p1;};
114 virtual void SetPitch(Float_t p1) {fPitch=p1;};
115
116 //
117 // Get member data
118 virtual Float_t Chslope() {return fChslope;}
119 virtual Float_t ChwX() {return fChwX;}
120 virtual Float_t ChwY() {return fChwY;}
121 virtual Float_t Nsigma() {return fNsigma;}
122 virtual Float_t adc_satm() {return fadc_satm;}
123 //
124 // Chamber response methods
125 // Pulse height from scored quantity (eloss)
f91473f6 126 virtual Float_t IntPH(Float_t eloss=0);
ddae0931 127 virtual Int_t FeedBackPhotons(Float_t *source, Float_t qtot);
128
129 // Charge disintegration
130 virtual Float_t IntXY(AliRICHsegmentation * segmentation);
131 // Identification
132 //
133 virtual char* YourName() {return fName;}
134
135 ClassDef(AliRICHresponseV0,1)
136 protected:
137 Float_t fChslope; // Slope of the charge distribution
138 Float_t fChwX; // Width of the charge distribution in x
139 Float_t fChwY; // Width of the charge distribution in y
140 Float_t fNsigma; // Number of sigma's used for charge distribution
141 Float_t fadc_satm; // Maximum ADC channel
142 Float_t fSqrtKx3; // Mathieson parameters for x
143 Float_t fKx2;
144 Float_t fKx4;
145 Float_t fSqrtKy3; // Mathieson parameters for y
146 Float_t fKy2;
147 Float_t fKy4;
148 Float_t fPitch; //anode-cathode pitch
c90dd3e2 149 char *fName; //! Version Identifier
ddae0931 150};
151
152#endif