]>
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 | ||
30178c30 | 6 | /* $Id $*/ |
7 | // Revision of includes 07/05/2004 | |
8 | ||
9 | #include <TObject.h> | |
10 | #include <TClonesArray.h> // needed for inline function Digit | |
a713db22 | 11 | #include "AliMUONGeometrySegmentation.h" |
9825400f | 12 | |
9825400f | 13 | class TMinuit; |
30178c30 | 14 | |
9825400f | 15 | class AliMUONDigit; |
16 | class AliMUONRawCluster; | |
a30a000f | 17 | class AliSegmentation; |
7e4a628d | 18 | class AliMUONMathieson; |
9825400f | 19 | |
30178c30 | 20 | class AliMUONClusterInput : public TObject |
21 | { | |
9825400f | 22 | public: |
d4fa40b7 | 23 | virtual ~AliMUONClusterInput(); |
9825400f | 24 | static AliMUONClusterInput* Instance(); |
30aaba74 | 25 | // Configuration |
a713db22 | 26 | void SetDigits(Int_t chamber, Int_t idDE, TClonesArray* dig1, TClonesArray* dig2); |
27 | void SetDigits(Int_t chamber, Int_t idDE, TClonesArray* dig); | |
9825400f | 28 | void SetCluster(AliMUONRawCluster* cluster); |
29 | // Access functions | |
30178c30 | 30 | Int_t Chamber() const {return fChamber;} |
31 | AliMUONDigit* Digit(Int_t cath, Int_t i) const {return (AliMUONDigit*) (fDigits[cath]->UncheckedAt(i));} | |
32 | TClonesArray* Digits(Int_t cath) const {return fDigits[cath];} | |
33 | Int_t NDigits(Int_t cath) const {return fNDigits[cath];} | |
fed772f3 | 34 | AliMUONGeometrySegmentation* Segmentation2(Int_t cath) const {return fSegmentation2[cath];} |
35 | ||
7e4a628d | 36 | AliMUONMathieson* Mathieson() const {return fgMathieson;} |
37 | Float_t ChargeCorrel() const {return fChargeCorrel;} | |
a713db22 | 38 | Int_t DetElemId() const {return fDetElemId;} |
fed772f3 | 39 | Int_t GetSegmentationType() const {return fSegmentationType;} |
7e4a628d | 40 | |
30aaba74 | 41 | // Fitting |
30178c30 | 42 | TMinuit* Fitter() const {return fgMinuit;} |
30aaba74 | 43 | // Current cluster information |
30178c30 | 44 | Float_t TotalCharge(Int_t cath) const {return fChargeTot[cath];} |
45 | Float_t Charge(Int_t dig, Int_t cath) const {return fCharge[dig][cath];} | |
46 | Int_t Ix(Int_t dig, Int_t cath) const {return fix[dig][cath];} | |
47 | Int_t Iy(Int_t dig, Int_t cath) const {return fiy[dig][cath];} | |
48 | Int_t Nmul(Int_t cath) const {return fNmul[cath];} | |
9825400f | 49 | // Helpers for Fit |
50 | Float_t DiscrChargeS1(Int_t i,Double_t *par); | |
51 | Float_t DiscrChargeCombiS1(Int_t i,Double_t *par, Int_t cath); | |
52 | Float_t DiscrChargeS2(Int_t i,Double_t *par); | |
53 | Float_t DiscrChargeCombiS2(Int_t i,Double_t *par, Int_t cath); | |
54 | // | |
55 | protected: | |
3f5cf0b3 | 56 | AliMUONClusterInput(); |
7b4177a6 | 57 | AliMUONClusterInput(const AliMUONClusterInput& clusterInput); |
93b6b3c5 | 58 | AliMUONClusterInput & operator = (const AliMUONClusterInput& rhs); |
9825400f | 59 | private: |
08a636a8 | 60 | static AliMUONClusterInput* fgClusterInput; // ! singleton instance |
7e4a628d | 61 | static AliMUONMathieson* fgMathieson; // ! Mathieson |
62 | ||
9825400f | 63 | // Digits |
64 | TClonesArray* fDigits[2]; // ! Array of pointers to digits | |
30aaba74 | 65 | Int_t fNDigits[2]; // ! Number of digits |
a713db22 | 66 | AliMUONGeometrySegmentation* fSegmentation2[2]; // ! Geometry Segmentation per cathode |
67 | ||
9825400f | 68 | Int_t fNseg; // ! number of cathode planes |
30aaba74 | 69 | Int_t fChamber; // ! Current chamber number |
70 | ||
9825400f | 71 | // Current cluster |
72 | AliMUONRawCluster* fCluster; // ! current cluster | |
73 | Int_t fNmul[2]; // ! current cluster multiplicity | |
74 | // Digits contribuing to current cluster | |
75 | Int_t fix[500][2]; // ! List of x-positions for current cluster | |
76 | Int_t fiy[500][2]; // ! List of y-positions for current cluster | |
77 | Float_t fCharge[500][2]; // ! List of charges for current cluster | |
78 | Int_t fChargeTot[2]; // ! Total charge | |
79 | Float_t fQtot[2]; // ! Total charge | |
08a636a8 | 80 | Float_t fZ; // ! Current z-position |
7e4a628d | 81 | Float_t fChargeCorrel; // ! charge correlation |
a713db22 | 82 | Int_t fSegmentationType;// ! Segmentation type old or new |
b137f8b9 | 83 | Int_t fDetElemId; // ! detection elt id |
7e4a628d | 84 | |
9825400f | 85 | // Fitter |
86 | static TMinuit* fgMinuit; // ! Fitter | |
ecfa008b | 87 | ClassDef(AliMUONClusterInput, 0) // Global data service for hit reconstruction |
9825400f | 88 | }; |
89 | #endif | |
90 |