7 class AliRICHsegmentationV0 :
8 public AliRICHsegmentation {
10 AliRICHsegmentationV0(){}
11 virtual ~AliRICHsegmentationV0(){}
13 // Set Chamber Segmentation Parameters
14 virtual void SetPADSIZ(Float_t p1, Float_t p2);
15 virtual void SetDAnod(Float_t D) {fWireD = D;};
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 );
23 virtual void Init(AliRICHchamber*);
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;}
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);
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;}
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);
53 virtual char* YourName(){return fName;}
54 ClassDef(AliRICHsegmentationV0,1)
57 // Implementation of the segmentation data
58 // Version 0 models rectangular pads with the same dimensions all
59 // over the cathode plane
63 Float_t fDpx; // x pad width per sector
64 Float_t fDpy; // y pad base width
66 Int_t fNpy; // Number of pads in y
67 Float_t fWireD; // wire pitch
69 // Chamber region consideres during disintegration (lower left and upper right corner)
76 // Current pad during integration (cursor for disintegration)
82 // Current pad and wire during tracking (cursor at hit centre)
93 class AliRICHresponseV0 : //Mathieson response
94 public AliRICHresponse {
97 virtual ~AliRICHresponseV0(){}
102 // Configuration methods
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;};
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;}
125 // Chamber response methods
126 // Pulse height from scored quantity (eloss)
127 virtual Float_t IntPH(Float_t eloss=0);
128 virtual Int_t FeedBackPhotons(Float_t *source, Float_t qtot);
130 // Charge disintegration
131 virtual Float_t IntXY(AliRICHsegmentation * segmentation);
134 virtual char* YourName() {return fName;}
136 ClassDef(AliRICHresponseV0,1)
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
146 Float_t fSqrtKy3; // Mathieson parameters for y
149 Float_t fPitch; //anode-cathode pitch
150 char *fName; // Version Identifier