]>
Commit | Line | Data |
---|---|---|
9825400f | 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 */ | |
5 | ||
6 | /*$Id $*/ | |
7 | ||
9825400f | 8 | class TMinuit; |
9 | class AliMUONDigit; | |
10 | class AliMUONRawCluster; | |
a30a000f | 11 | class AliSegmentation; |
9825400f | 12 | class AliMUONResponse; |
13 | ||
ecfa008b | 14 | #include <TClonesArray.h> // needed for inline function Digit |
9825400f | 15 | |
16 | ||
17 | class AliMUONClusterInput : public TObject { | |
18 | public: | |
19 | static AliMUONClusterInput* Instance(); | |
30aaba74 | 20 | // Configuration |
9825400f | 21 | void SetDigits(Int_t chamber, TClonesArray* dig1, TClonesArray* dig2); |
22 | void SetDigits(Int_t chamber, TClonesArray* dig); | |
23 | void SetCluster(AliMUONRawCluster* cluster); | |
24 | // Access functions | |
30aaba74 | 25 | Int_t Chamber() {return fChamber;} |
9825400f | 26 | AliMUONDigit* Digit(Int_t cath, Int_t i) {return (AliMUONDigit*) (fDigits[cath]->UncheckedAt(i));} |
30aaba74 | 27 | TClonesArray* Digits(Int_t cath) {return fDigits[cath];} |
28 | Int_t NDigits(Int_t cath) {return fNDigits[cath];} | |
a30a000f | 29 | AliSegmentation* Segmentation(Int_t cath) {return fSegmentation[cath];} |
30aaba74 | 30 | AliMUONResponse* Response() {return fResponse;} |
31 | // Fitting | |
9825400f | 32 | TMinuit* Fitter() {return fgMinuit;} |
30aaba74 | 33 | // Current cluster information |
9825400f | 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];} | |
39 | // Helpers for Fit | |
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); | |
44 | // | |
45 | protected: | |
46 | AliMUONClusterInput(){;} | |
47 | private: | |
30aaba74 | 48 | static AliMUONClusterInput* fgClusterInput; // singleton instance |
9825400f | 49 | // Digits |
50 | TClonesArray* fDigits[2]; // ! Array of pointers to digits | |
30aaba74 | 51 | Int_t fNDigits[2]; // ! Number of digits |
a30a000f | 52 | AliSegmentation* fSegmentation[2]; // ! Segmentation per cathode |
9825400f | 53 | AliMUONResponse* fResponse; // ! Response |
54 | Int_t fNseg; // ! number of cathode planes | |
30aaba74 | 55 | Int_t fChamber; // ! Current chamber number |
56 | ||
9825400f | 57 | // Current cluster |
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 | |
e357fc46 | 66 | Float_t fZ; // ! Current z-position |
9825400f | 67 | // Fitter |
68 | static TMinuit* fgMinuit; // ! Fitter | |
ecfa008b | 69 | ClassDef(AliMUONClusterInput, 0) // Global data service for hit reconstruction |
9825400f | 70 | }; |
71 | #endif | |
72 |