1 #ifndef ALIMUONCLUSTERINPUT_H
2 #define ALIMUONCLUSTERINPUT_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
10 class AliMUONRawCluster;
11 class AliSegmentation;
12 class AliMUONResponse;
14 #include <TClonesArray.h> // needed for inline function Digit
17 class AliMUONClusterInput : public TObject {
19 static AliMUONClusterInput* Instance();
21 void SetDigits(Int_t chamber, TClonesArray* dig1, TClonesArray* dig2);
22 void SetDigits(Int_t chamber, TClonesArray* dig);
23 void SetCluster(AliMUONRawCluster* cluster);
25 Int_t Chamber() {return fChamber;}
26 AliMUONDigit* Digit(Int_t cath, Int_t i) {return (AliMUONDigit*) (fDigits[cath]->UncheckedAt(i));}
27 TClonesArray* Digits(Int_t cath) {return fDigits[cath];}
28 Int_t NDigits(Int_t cath) {return fNDigits[cath];}
29 AliSegmentation* Segmentation(Int_t cath) {return fSegmentation[cath];}
30 AliMUONResponse* Response() {return fResponse;}
32 TMinuit* Fitter() {return fgMinuit;}
33 // Current cluster information
34 Float_t TotalCharge(Int_t cath) {return fChargeTot[cath];}
35 Float_t Charge(Int_t dig, Int_t cath) {return fCharge[dig][cath];}
36 Int_t Ix(Int_t dig, Int_t cath) {return fix[dig][cath];}
37 Int_t Iy(Int_t dig, Int_t cath) {return fiy[dig][cath];}
38 Int_t Nmul(Int_t cath) {return fNmul[cath];}
40 Float_t DiscrChargeS1(Int_t i,Double_t *par);
41 Float_t DiscrChargeCombiS1(Int_t i,Double_t *par, Int_t cath);
42 Float_t DiscrChargeS2(Int_t i,Double_t *par);
43 Float_t DiscrChargeCombiS2(Int_t i,Double_t *par, Int_t cath);
46 AliMUONClusterInput(){;}
48 static AliMUONClusterInput* fgClusterInput; // singleton instance
50 TClonesArray* fDigits[2]; // ! Array of pointers to digits
51 Int_t fNDigits[2]; // ! Number of digits
52 AliSegmentation* fSegmentation[2]; // ! Segmentation per cathode
53 AliMUONResponse* fResponse; // ! Response
54 Int_t fNseg; // ! number of cathode planes
55 Int_t fChamber; // ! Current chamber number
58 AliMUONRawCluster* fCluster; // ! current cluster
59 Int_t fNmul[2]; // ! current cluster multiplicity
60 // Digits contribuing to current cluster
61 Int_t fix[500][2]; // ! List of x-positions for current cluster
62 Int_t fiy[500][2]; // ! List of y-positions for current cluster
63 Float_t fCharge[500][2]; // ! List of charges for current cluster
64 Int_t fChargeTot[2]; // ! Total charge
65 Float_t fQtot[2]; // ! Total charge
66 Float_t fZ; // ! Current z-position
68 static TMinuit* fgMinuit; // ! Fitter
69 ClassDef(AliMUONClusterInput, 0) // Global data service for hit reconstruction