Go from pointer to ifstream to ifstream.
[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     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