]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONTriggerTrack.h
Main changes:
[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, Int_t ptCutLevel=1); 
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     void     SetHitsPatternInTrigCh(UShort_t hitsPatternInTrigCh) {fHitsPatternInTrigCh = hitsPatternInTrigCh;}
76     /// Get word telling which trigger chambers where hit by track
77     UShort_t GetHitsPatternInTrigCh() const {return fHitsPatternInTrigCh;}
78   
79     /// Set pt cut level
80     void  SetPtCutLevel(Int_t ptCutLevel) { fPtCutLevel = ptCutLevel;}
81     /// Get pt cut level
82     Int_t GetPtCutLevel() const {return fPtCutLevel;}
83
84     
85     virtual void Print(Option_t* opt="FULL") const;
86
87     const TMatrixD& GetCovariances() const;
88     void  SetCovariances(const TMatrixD& covariances);
89     void  SetCovariances(const Double_t matrix[3][3]);
90   
91     Bool_t Match(AliMUONTriggerTrack &track, Double_t sigmaCut) const;
92     
93 protected:
94   private:
95   Float_t fx11;    ///< x position of fired Y strip in MC11
96   Float_t fy11;    ///< y position of fired X strip in MC11
97   Float_t fz11;    ///< z position of fired X strip in MC11
98   Float_t fz21;    ///< z position of fired X strip in MC21
99   Float_t fSlopeX; ///< track slope in X   
100   Float_t fSlopeY; ///< track slope in Y
101   Int_t   floTrgNum; ///< local trigger number
102   UChar_t fGTPattern; ///< Global trigger pattern  (do not work with static statement)
103   Int_t   fPtCutLevel;  ///< Trigger pt cut level as in ESDs (1->Apt; 2->Lpt; 3->Hpt)
104   UShort_t fHitsPatternInTrigCh; ///< Word containing info on the hits left in trigger chambers
105   mutable TMatrixD *fCovariances; ///< Covariance matrix of track parameters 
106
107   ClassDef(AliMUONTriggerTrack, 7) // Reconstructed trigger track in ALICE dimuon spectrometer
108     };
109         
110 #endif
111