]>
Commit | Line | Data |
---|---|---|
1 | #ifndef ALIMUONTRIGGERTRACK_H | |
2 | #define ALIMUONTRIGGERTRACK_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 | // Revision of includes 07/05/2004 | |
8 | ||
9 | /// \ingroup rec | |
10 | /// \class AliMUONTriggerTrack | |
11 | /// \brief Reconstructed trigger track in ALICE dimuon spectrometer | |
12 | /// \author Philippe Crochet | |
13 | ||
14 | #include <TObject.h> | |
15 | #include <TMatrixD.h> | |
16 | #include <TMath.h> | |
17 | ||
18 | class AliMUONTrackReconstructor; | |
19 | ||
20 | class AliMUONTriggerTrack : public TObject | |
21 | { | |
22 | public: | |
23 | AliMUONTriggerTrack(); // Constructor | |
24 | virtual ~AliMUONTriggerTrack(); // Destructor | |
25 | AliMUONTriggerTrack (const AliMUONTriggerTrack& AliMUONTriggerTrack); // copy constructor | |
26 | AliMUONTriggerTrack& operator=(const AliMUONTriggerTrack& AliMUONTriggerTrack); // assignment operator | |
27 | AliMUONTriggerTrack(Float_t x11, Float_t y11, Float_t z11, Float_t z21, | |
28 | Float_t slopeX, Float_t slopeY, | |
29 | Int_t iloTrg, Long_t theGTPattern, Int_t ptCutLevel=1); | |
30 | ||
31 | virtual void Clear(Option_t* opt = ""); | |
32 | ||
33 | // getters | |
34 | ||
35 | /// Return x position of fired Y strip in MC11 | |
36 | Float_t GetX11() const {return fx11;} | |
37 | /// Return y position of fired X strip in MC11 | |
38 | Float_t GetY11() const {return fy11;} | |
39 | /// Return z position of fired X strip in MC11 | |
40 | Float_t GetZ11() const {return fz11;} | |
41 | /// Return z position of fired X strip in MC21 | |
42 | Float_t GetZ21() const {return fz21;} | |
43 | /// Return track theta angle in X | |
44 | Float_t GetThetax() const {return TMath::ATan(fSlopeX);} | |
45 | /// Return track theta angle in Y | |
46 | Float_t GetThetay() const {return TMath::ATan(fSlopeY);} | |
47 | /// Return track slope in X | |
48 | Float_t GetSlopeX() const {return fSlopeX;} | |
49 | /// Return track slope in Y | |
50 | Float_t GetSlopeY() const {return fSlopeY;} | |
51 | /// Return local trigger number | |
52 | Int_t GetLoTrgNum() const {return floTrgNum;} | |
53 | ||
54 | // setters | |
55 | ||
56 | /// Set x position of fired Y strip in MC11 | |
57 | void SetX11(Float_t x) {fx11 = x;} | |
58 | /// Set y position of fired X strip in MC11 | |
59 | void SetY11(Float_t y) {fy11 = y;} | |
60 | /// Set z position of fired X strip in MC11 | |
61 | void SetZ11(Float_t z) {fz11 = z;} | |
62 | /// Set z position of fired X strip in MC21 | |
63 | void SetZ21(Float_t z) {fz21 = z;} | |
64 | /// Set track slope in X | |
65 | void SetSlopeX(Float_t slopeX) {fSlopeX = slopeX;} | |
66 | /// Set track slope in Y | |
67 | void SetSlopeY(Float_t slopeY) {fSlopeY = slopeY;} | |
68 | /// Set local trigger number | |
69 | void SetLoTrgNum(Int_t loTrgNum) {floTrgNum = loTrgNum;} | |
70 | ||
71 | /// Set Global trigger pattern (do not work with static statement) | |
72 | void SetGTPattern(UChar_t pat) {fGTPattern = pat;} | |
73 | /// Return Global trigger pattern (do not work with static statement) | |
74 | UChar_t GetGTPattern() const {return fGTPattern;} | |
75 | ||
76 | /// Set word telling which trigger chambers where hit by track | |
77 | void SetHitsPatternInTrigCh(UShort_t hitsPatternInTrigCh) {fHitsPatternInTrigCh = hitsPatternInTrigCh;} | |
78 | /// Get word telling which trigger chambers where hit by track | |
79 | UShort_t GetHitsPatternInTrigCh() const {return fHitsPatternInTrigCh;} | |
80 | ||
81 | /// Set pt cut level | |
82 | void SetPtCutLevel(Int_t ptCutLevel) { fPtCutLevel = ptCutLevel;} | |
83 | /// Get pt cut level | |
84 | Int_t GetPtCutLevel() const {return fPtCutLevel;} | |
85 | ||
86 | ||
87 | virtual void Print(Option_t* opt="FULL") const; | |
88 | ||
89 | const TMatrixD& GetCovariances() const; | |
90 | void SetCovariances(const TMatrixD& covariances); | |
91 | void SetCovariances(const Double_t matrix[3][3]); | |
92 | ||
93 | Bool_t Match(AliMUONTriggerTrack &track, Double_t sigmaCut) const; | |
94 | ||
95 | protected: | |
96 | private: | |
97 | Float_t fx11; ///< x position of fired Y strip in MC11 | |
98 | Float_t fy11; ///< y position of fired X strip in MC11 | |
99 | Float_t fz11; ///< z position of fired X strip in MC11 | |
100 | Float_t fz21; ///< z position of fired X strip in MC21 | |
101 | Float_t fSlopeX; ///< track slope in X | |
102 | Float_t fSlopeY; ///< track slope in Y | |
103 | Int_t floTrgNum; ///< local trigger number | |
104 | UChar_t fGTPattern; ///< Global trigger pattern (do not work with static statement) | |
105 | Int_t fPtCutLevel; ///< Trigger pt cut level as in ESDs (1->Apt; 2->Lpt; 3->Hpt) | |
106 | UShort_t fHitsPatternInTrigCh; ///< Word containing info on the hits left in trigger chambers | |
107 | mutable TMatrixD *fCovariances; ///< Covariance matrix of track parameters | |
108 | ||
109 | ClassDef(AliMUONTriggerTrack, 7) // Reconstructed trigger track in ALICE dimuon spectrometer | |
110 | }; | |
111 | ||
112 | #endif | |
113 |