Line data Source code
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 88 : Float_t GetX11() const {return fx11;}
37 : /// Return y position of fired X strip in MC11
38 88 : Float_t GetY11() const {return fy11;}
39 : /// Return z position of fired X strip in MC11
40 88 : Float_t GetZ11() const {return fz11;}
41 : /// Return z position of fired X strip in MC21
42 0 : Float_t GetZ21() const {return fz21;}
43 : /// Return track theta angle in X
44 4 : Float_t GetThetax() const {return TMath::ATan(fSlopeX);}
45 : /// Return track theta angle in Y
46 4 : Float_t GetThetay() const {return TMath::ATan(fSlopeY);}
47 : /// Return track slope in X
48 28 : Float_t GetSlopeX() const {return fSlopeX;}
49 : /// Return track slope in Y
50 84 : Float_t GetSlopeY() const {return fSlopeY;}
51 : /// Return local trigger number
52 52 : Int_t GetLoTrgNum() const {return floTrgNum;}
53 :
54 : // setters
55 :
56 : /// Set x position of fired Y strip in MC11
57 28 : void SetX11(Float_t x) {fx11 = x;}
58 : /// Set y position of fired X strip in MC11
59 28 : void SetY11(Float_t y) {fy11 = y;}
60 : /// Set z position of fired X strip in MC11
61 28 : void SetZ11(Float_t z) {fz11 = z;}
62 : /// Set z position of fired X strip in MC21
63 28 : void SetZ21(Float_t z) {fz21 = z;}
64 : /// Set track slope in X
65 28 : void SetSlopeX(Float_t slopeX) {fSlopeX = slopeX;}
66 : /// Set track slope in Y
67 28 : void SetSlopeY(Float_t slopeY) {fSlopeY = slopeY;}
68 : /// Set local trigger number
69 28 : void SetLoTrgNum(Int_t loTrgNum) {floTrgNum = loTrgNum;}
70 :
71 : /// Set Global trigger pattern (do not work with static statement)
72 28 : void SetGTPattern(UChar_t pat) {fGTPattern = pat;}
73 : /// Return Global trigger pattern (do not work with static statement)
74 0 : UChar_t GetGTPattern() const {return fGTPattern;}
75 :
76 : /// Set word telling which trigger chambers where hit by track
77 28 : void SetHitsPatternInTrigCh(UShort_t hitsPatternInTrigCh) {fHitsPatternInTrigCh = hitsPatternInTrigCh;}
78 : /// Get word telling which trigger chambers where hit by track
79 28 : UShort_t GetHitsPatternInTrigCh() const {return fHitsPatternInTrigCh;}
80 :
81 : /// Set pt cut level
82 0 : void SetPtCutLevel(Int_t ptCutLevel) { fPtCutLevel = ptCutLevel;}
83 : /// Get pt cut level
84 0 : 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 90 : ClassDef(AliMUONTriggerTrack, 7) // Reconstructed trigger track in ALICE dimuon spectrometer
110 : };
111 :
112 : #endif
113 :
|