]>
Commit | Line | Data |
---|---|---|
0b3dd00a | 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$*/ | |
30178c30 | 7 | // Revision of includes 07/05/2004 |
0b3dd00a | 8 | |
692de412 | 9 | /// \ingroup rec |
13985652 | 10 | /// \class AliMUONTriggerTrack |
692de412 | 11 | /// \brief Reconstructed trigger track in ALICE dimuon spectrometer |
58e8f326 | 12 | /// \author Philippe Crochet |
0b3dd00a | 13 | |
30178c30 | 14 | #include <TObject.h> |
bdfb6eef | 15 | #include <TMatrixD.h> |
16 | #include <TMath.h> | |
0b3dd00a | 17 | |
29f1b13a | 18 | class AliMUONTrackReconstructor; |
0b3dd00a | 19 | |
30178c30 | 20 | class AliMUONTriggerTrack : public TObject |
21 | { | |
0b3dd00a | 22 | public: |
23 | AliMUONTriggerTrack(); // Constructor | |
24 | virtual ~AliMUONTriggerTrack(); // Destructor | |
25 | AliMUONTriggerTrack (const AliMUONTriggerTrack& AliMUONTriggerTrack); // copy constructor | |
26 | AliMUONTriggerTrack& operator=(const AliMUONTriggerTrack& AliMUONTriggerTrack); // assignment operator | |
bdfb6eef | 27 | AliMUONTriggerTrack(Float_t x11, Float_t y11, Float_t z11, Float_t z21, |
28 | Float_t slopeX, Float_t slopeY, | |
b7474abb | 29 | Int_t iloTrg, Long_t theGTPattern, Int_t ptCutLevel=1); |
c6ba19f7 | 30 | |
7bf353da | 31 | virtual void Clear(Option_t* opt = ""); |
32 | ||
71a2d3aa | 33 | // getters |
34 | ||
35 | /// Return x position of fired Y strip in MC11 | |
58ff0bd4 | 36 | Float_t GetX11() const {return fx11;} |
71a2d3aa | 37 | /// Return y position of fired X strip in MC11 |
58ff0bd4 | 38 | Float_t GetY11() const {return fy11;} |
bdfb6eef | 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;} | |
71a2d3aa | 43 | /// Return track theta angle in X |
bdfb6eef | 44 | Float_t GetThetax() const {return TMath::ATan(fSlopeX);} |
71a2d3aa | 45 | /// Return track theta angle in Y |
bdfb6eef | 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;} | |
71a2d3aa | 51 | /// Return local trigger number |
c6ba19f7 | 52 | Int_t GetLoTrgNum() const {return floTrgNum;} |
9131b4fe | 53 | |
71a2d3aa | 54 | // setters |
55 | ||
56 | /// Set x position of fired Y strip in MC11 | |
58ff0bd4 | 57 | void SetX11(Float_t x) {fx11 = x;} |
71a2d3aa | 58 | /// Set y position of fired X strip in MC11 |
58ff0bd4 | 59 | void SetY11(Float_t y) {fy11 = y;} |
bdfb6eef | 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;} | |
71a2d3aa | 68 | /// Set local trigger number |
c6ba19f7 | 69 | void SetLoTrgNum(Int_t loTrgNum) {floTrgNum = loTrgNum;} |
58ff0bd4 | 70 | |
71a2d3aa | 71 | /// Set Global trigger pattern (do not work with static statement) |
c6eddbb2 | 72 | void SetGTPattern(UChar_t pat) {fGTPattern = pat;} |
71a2d3aa | 73 | /// Return Global trigger pattern (do not work with static statement) |
67c201be | 74 | UChar_t GetGTPattern() const {return fGTPattern;} |
75 | ||
b7474abb | 76 | /// Set word telling which trigger chambers where hit by track |
67c201be | 77 | void SetHitsPatternInTrigCh(UShort_t hitsPatternInTrigCh) {fHitsPatternInTrigCh = hitsPatternInTrigCh;} |
b7474abb | 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 | ||
9131b4fe | 86 | |
bdfb6eef | 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]); | |
9f164762 | 92 | |
93 | Bool_t Match(AliMUONTriggerTrack &track, Double_t sigmaCut) const; | |
e5e7be4b | 94 | |
0b3dd00a | 95 | protected: |
96 | private: | |
829425a5 | 97 | Float_t fx11; ///< x position of fired Y strip in MC11 |
98 | Float_t fy11; ///< y position of fired X strip in MC11 | |
bdfb6eef | 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 | |
c6ba19f7 | 103 | Int_t floTrgNum; ///< local trigger number |
67c201be | 104 | UChar_t fGTPattern; ///< Global trigger pattern (do not work with static statement) |
b7474abb | 105 | Int_t fPtCutLevel; ///< Trigger pt cut level as in ESDs (1->Apt; 2->Lpt; 3->Hpt) |
67c201be | 106 | UShort_t fHitsPatternInTrigCh; ///< Word containing info on the hits left in trigger chambers |
bdfb6eef | 107 | mutable TMatrixD *fCovariances; ///< Covariance matrix of track parameters |
9131b4fe | 108 | |
b7474abb | 109 | ClassDef(AliMUONTriggerTrack, 7) // Reconstructed trigger track in ALICE dimuon spectrometer |
0b3dd00a | 110 | }; |
111 | ||
112 | #endif | |
9131b4fe | 113 |