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