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