3 /////////////////////////////////////////////////////////
4 // Manager and hits classes for set:MUON version 0 //
5 /////////////////////////////////////////////////////////
9 class AliMUONv0 : public AliMUON {
13 AliMUONv0(const char *name, const char *title);
14 virtual ~AliMUONv0() {}
15 virtual void CreateGeometry();
16 virtual void CreateMaterials();
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);
22 ClassDef(AliMUONv0,1) //Hits manager for set:MUON version 0
25 class AliMUONsegmentationV0 :
26 public AliMUONsegmentation {
28 AliMUONsegmentationV0(){}
29 virtual ~AliMUONsegmentationV0(){}
31 // Set Chamber Segmentation Parameters
32 virtual void SetPADSIZ(Float_t p1, Float_t p2);
33 virtual void SetDAnod(Float_t D) {fWireD = D;};
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 );
41 virtual void Init(AliMUONchamber*);
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;}
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);
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;}
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);
71 ClassDef(AliMUONsegmentationV0,1)
74 // Implementation of the segmentation data
75 // Version 0 models rectangular pads with the same dimensions all
76 // over the cathode plane
80 Float_t fDpx; // x pad width per sector
81 Float_t fDpy; // y pad base width
83 Int_t fNpy; // Number of pads in y
84 Float_t fWireD; // wire pitch
86 // Chamber region consideres during disintegration (lower left and upper right corner)
93 // Current pad during integration (cursor for disintegration)
99 // Current pad and wire during tracking (cursor at hit centre)
107 class AliMUONresponseV0 : //Mathieson response
108 public AliMUONresponse {
110 AliMUONresponseV0(){}
111 virtual ~AliMUONresponseV0(){}
113 // Configuration methods
115 virtual void SetRSIGM(Float_t p1) {fNsigma=p1;}
116 virtual void SetMUCHSP(Float_t p1) {fChslope=p1;}
117 virtual void SetMUSIGM(Float_t p1, Float_t p2) {fChwX=p1; fChwY=p2;}
118 virtual void SetMAXADC(Float_t p1) {fadc_satm=p1;}
119 // Mathieson parameters
120 virtual void SetSqrtKx3(Float_t p1) {fSqrtKx3=p1;};
121 virtual void SetKx2(Float_t p1) {fKx2=p1;};
122 virtual void SetKx4(Float_t p1) {fKx4=p1;};
123 virtual void SetSqrtKy3(Float_t p1) {fSqrtKy3=p1;};
124 virtual void SetKy2(Float_t p1) {fKy2=p1;};
125 virtual void SetKy4(Float_t p1) {fKy4=p1;};
126 virtual void SetPitch(Float_t p1) {fPitch=p1;};
129 virtual Float_t Chslope() {return fChslope;}
130 virtual Float_t ChwX() {return fChwX;}
131 virtual Float_t ChwY() {return fChwY;}
132 virtual Float_t Nsigma() {return fNsigma;}
133 virtual Float_t adc_satm() {return fadc_satm;}
135 // Chamber response methods
136 // Pulse height from scored quantity (eloss)
137 virtual Float_t IntPH(Float_t eloss);
138 // Charge disintegration
139 virtual Float_t IntXY(AliMUONsegmentation * segmentation);
142 ClassDef(AliMUONresponseV0,1)
144 Float_t fChslope; // Slope of the charge distribution
145 Float_t fChwX; // Width of the charge distribution in x
146 Float_t fChwY; // Width of the charge distribution in y
147 Float_t fNsigma; // Number of sigma's used for charge distribution
148 Float_t fadc_satm; // Maximum ADC channel
149 Float_t fSqrtKx3; // Mathieson parameters for x
152 Float_t fSqrtKy3; // Mathieson parameters for y
155 Float_t fPitch; //anode-cathode pitch