]>
Commit | Line | Data |
---|---|---|
cc87ebcd | 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 | |
585d648a | 10 | /// \brief Detection element object containing information for combined |
03ee5d34 | 11 | /// cluster / track finder in the MUON arm |
585d648a | 12 | /// |
13 | /// \author Alexander Zinchenko, JINR Dubna | |
cc87ebcd | 14 | |
15 | #include <TObject.h> | |
16 | class TObjArray; | |
17 | class TClonesArray; | |
18 | class AliMUONDigit; | |
19 | class AliMUONHitMapA1; | |
6a518391 | 20 | class AliMUONSegmentation; |
cc87ebcd | 21 | class AliMUONGeometrySegmentation; |
22 | class AliMUONData; | |
23 | class AliMUONRawCluster; | |
24 | class AliMUONClusterFinderAZ; | |
25 | ||
26 | class AliMUONDetElement : public TObject | |
27 | { | |
28 | public: | |
29 | ||
30 | AliMUONDetElement(); | |
6a518391 | 31 | AliMUONDetElement(Int_t idDE, AliMUONDigit *dig, |
32 | AliMUONClusterFinderAZ *recModel, AliMUONSegmentation* segmentation); // constructor | |
cc87ebcd | 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 | |
03ee5d34 | 42 | TObjArray *HitsForRec() const { return fHitsForRec; } // hits for rec. |
cc87ebcd | 43 | Int_t NHitsForRec() const { return fNHitsForRec; } // No. of hits for rec. |
03ee5d34 | 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 | |
cc87ebcd | 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 | |
03ee5d34 | 54 | void ClusterReco(Double_t x, Double_t y, Double_t dx, Double_t dy); // run cluster reco around (x,y) |
cc87ebcd | 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 | ||
cc87ebcd | 60 | private: |
829425a5 | 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 | |
03ee5d34 | 71 | TObjArray *fHitsForRec; ///< HitForRec's |
829425a5 | 72 | AliMUONClusterFinderAZ *fRecModel; ///< cluster finder |
cc87ebcd | 73 | |
74 | // Functions | |
54d7ba50 | 75 | AliMUONDetElement(const AliMUONDetElement & rhs); // copy constructor |
76 | AliMUONDetElement& operator = (const AliMUONDetElement& rhs); // assignment operator | |
cc87ebcd | 77 | |
78 | ClassDef(AliMUONDetElement,0) // detection element object | |
79 | }; | |
80 | #endif |