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