]>
Commit | Line | Data |
---|---|---|
1 | #ifndef ALIMUONDETELEMENT_H | |
2 | #define ALIMUONDETELEMENT_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 | ||
8 | /// \ingroup rec | |
9 | /// \class AliMUONDetElement | |
10 | /// \brief Detection element object containing information for combined | |
11 | /// cluster / track finder in the MUON arm | |
12 | /// | |
13 | /// \author Alexander Zinchenko, JINR Dubna | |
14 | ||
15 | #include <TObject.h> | |
16 | class TObjArray; | |
17 | class TClonesArray; | |
18 | class AliMUONDigit; | |
19 | class AliMUONHitMapA1; | |
20 | class AliMUONSegmentation; | |
21 | class AliMUONGeometrySegmentation; | |
22 | class AliMUONData; | |
23 | class AliMUONRawCluster; | |
24 | class AliMUONClusterFinderAZ; | |
25 | ||
26 | class AliMUONDetElement : public TObject | |
27 | { | |
28 | public: | |
29 | ||
30 | AliMUONDetElement(); | |
31 | AliMUONDetElement(Int_t idDE, AliMUONDigit *dig, | |
32 | AliMUONClusterFinderAZ *recModel, AliMUONSegmentation* segmentation); // constructor | |
33 | virtual ~AliMUONDetElement(); // Destructor | |
34 | ||
35 | Int_t IdDE(void) const { return fidDE; } ///< det. elem. ID | |
36 | Int_t Chamber(void) const { return fChamber; } ///< chamber No | |
37 | Double_t Z(void) const { return fZ; } ///< Z-coordinate | |
38 | Int_t Left(Int_t cath) const { return fLeft[cath]; } ///< number of unused digits | |
39 | //Int_t GetMapElem(AliMUONDigit *digit) const; ///< get map element | |
40 | TObjArray *Digits(Int_t cath) const { return fDigits[cath]; } ///< array of digits | |
41 | TObjArray *RawClusters() const { return fRawClus; } ///< array of raw clusters | |
42 | TObjArray *HitsForRec() const { return fHitsForRec; } ///< hits for rec. | |
43 | Int_t NHitsForRec() const { return fNHitsForRec; } ///< No. of hits for rec. | |
44 | //Bool_t Inside(Double_t x, Double_t y, Double_t z) const; // check if point inside DE | |
45 | Bool_t Inside(Double_t x, Double_t y, Double_t z, Double_t dx, Double_t dy) const; // check if point inside DE | |
46 | ||
47 | void SetID(Int_t idDE) { fidDE = idDE; } ///< set det. elem. ID | |
48 | void SetIndex(Int_t index) { fIndex = index; } ///< set position index | |
49 | void SetZ(Double_t z) { fZ = z; } ///< set Z-coord. | |
50 | void SetLeft(Int_t cath, Int_t left) { fLeft[cath] = left; } ///< set No. of digits | |
51 | //void SetMapElem(const AliMUONDigit *digit, Int_t flag); ///< set map element | |
52 | void AddDigit(AliMUONDigit *dig); ///< add digit | |
53 | void Fill(AliMUONData *data); ///< fill hit maps | |
54 | void ClusterReco(Double_t x, Double_t y, Double_t dx, Double_t dy); ///< run cluster reco around (x,y) | |
55 | void AddHitForRec(AliMUONRawCluster *clus); ///< make HitForRec | |
56 | /// What is necessary for sorting TObjArray's | |
57 | Bool_t IsSortable() const { return kTRUE; } | |
58 | Int_t Compare(const TObject* detElem) const; ///< "Compare" function for sorting | |
59 | ||
60 | private: | |
61 | Int_t fidDE; ///< det. elem. ID | |
62 | Int_t fIndex; ///< det. elem. position index in container | |
63 | Int_t fChamber; ///< chamber No | |
64 | Double_t fZ; ///< det. elem. Z-coordinate | |
65 | Int_t fLeft[2]; ///< numbers of digits not used for clustering | |
66 | Int_t fNHitsForRec; ///< number of hits for rec. | |
67 | AliMUONGeometrySegmentation* fSeg[2]; ///< segmentation | |
68 | AliMUONHitMapA1 *fHitMap[2]; ///< map of digits | |
69 | TObjArray *fDigits[2]; ///< container of digits from this det. elem. | |
70 | TObjArray *fRawClus; ///< raw clusters | |
71 | TObjArray *fHitsForRec; ///< HitForRec's | |
72 | AliMUONClusterFinderAZ *fRecModel; ///< cluster finder | |
73 | ||
74 | // Functions | |
75 | /// Not implemented | |
76 | AliMUONDetElement(const AliMUONDetElement & rhs); // copy constructor | |
77 | /// Not implemented | |
78 | AliMUONDetElement& operator = (const AliMUONDetElement& rhs); // assignment operator | |
79 | ||
80 | ClassDef(AliMUONDetElement,0) // detection element object | |
81 | }; | |
82 | #endif |