new functionality and new class added
[u/mrichter/AliRoot.git] / MUON / AliMUONTriggerTrack.h
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, UShort_t hitsPatternInTrigCh=0); 
30     
31     // getters
32     
33     /// Return x position of fired Y strip in MC11
34     Float_t GetX11()    const {return fx11;}
35     /// Return y position of fired X strip in MC11
36     Float_t GetY11()    const {return fy11;}
37     /// Return z position of fired X strip in MC11
38     Float_t GetZ11()    const {return fz11;}
39     /// Return z position of fired X strip in MC21
40     Float_t GetZ21()    const {return fz21;}
41     /// Return track theta angle in X 
42     Float_t GetThetax() const {return TMath::ATan(fSlopeX);}
43     /// Return track theta angle in Y
44     Float_t GetThetay() const {return TMath::ATan(fSlopeY);}
45     /// Return track slope in X 
46     Float_t GetSlopeX() const {return fSlopeX;}
47     /// Return track slope in Y
48     Float_t GetSlopeY() const {return fSlopeY;}
49     /// Return local trigger number
50     Int_t   GetLoTrgNum() const {return floTrgNum;}    
51
52     // setters
53     
54     /// Set x position of fired Y strip in MC11
55     void SetX11(Float_t x)     {fx11 = x;}
56     /// Set y position of fired X strip in MC11
57     void SetY11(Float_t y)     {fy11 = y;}
58     /// Set z position of fired X strip in MC11
59     void SetZ11(Float_t z)     {fz11 = z;}
60     /// Set z position of fired X strip in MC21
61     void SetZ21(Float_t z)     {fz21 = z;}
62     /// Set track slope in X 
63     void SetSlopeX(Float_t slopeX) {fSlopeX = slopeX;}
64     /// Set track slope in Y
65     void SetSlopeY(Float_t slopeY) {fSlopeY = slopeY;}
66     /// Set local trigger number
67     void SetLoTrgNum(Int_t loTrgNum) {floTrgNum = loTrgNum;}    
68
69     /// Set Global trigger pattern  (do not work with static statement) 
70     void SetGTPattern(UChar_t pat) {fGTPattern = pat;}    
71     /// Return Global trigger pattern  (do not work with static statement) 
72     UChar_t GetGTPattern() const {return fGTPattern;}
73
74     /// set word telling which trigger chambers where hit by track
75     UShort_t GetHitsPatternInTrigCh() const {return fHitsPatternInTrigCh;}
76     /// set word telling which trigger chambers where hit by track
77     void     SetHitsPatternInTrigCh(UShort_t hitsPatternInTrigCh) {fHitsPatternInTrigCh = hitsPatternInTrigCh;}
78     
79     virtual void Print(Option_t* opt="FULL") const;
80
81     const TMatrixD& GetCovariances() const;
82     void  SetCovariances(const TMatrixD& covariances);
83     void  SetCovariances(const Double_t matrix[3][3]);
84     
85 protected:
86   private:
87   Float_t fx11;    ///< x position of fired Y strip in MC11
88   Float_t fy11;    ///< y position of fired X strip in MC11
89   Float_t fz11;    ///< z position of fired X strip in MC11
90   Float_t fz21;    ///< z position of fired X strip in MC21
91   Float_t fSlopeX; ///< track slope in X   
92   Float_t fSlopeY; ///< track slope in Y
93   Int_t   floTrgNum; ///< local trigger number
94   UChar_t fGTPattern; ///< Global trigger pattern  (do not work with static statement)
95   UShort_t fHitsPatternInTrigCh; ///< Word containing info on the hits left in trigger chambers
96   mutable TMatrixD *fCovariances; ///< Covariance matrix of track parameters 
97
98   ClassDef(AliMUONTriggerTrack, 6) // Reconstructed trigger track in ALICE dimuon spectrometer
99     };
100         
101 #endif
102