fb712003c7274a271caef53ecfd053849478db8e
[u/mrichter/AliRoot.git] / MUON / AliMUONTrackParam.h
1 #ifndef ALIMUONTRACKPARAM_H
2 #define ALIMUONTRACKPARAM_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 AliMUONTrackParam
11 /// \brief Track parameters in ALICE dimuon spectrometer
12 ///
13 ////////////////////////////////////////////////////
14 /// Track parameters in ALICE dimuon spectrometer
15 ////////////////////////////////////////////////////
16
17 #include <TObject.h>
18 #include "AliMUONHitForRec.h"
19
20 class AliESDMuonTrack;
21
22 class AliMUONTrackParam : public TObject 
23 {
24  public:
25   AliMUONTrackParam(); // Constructor
26   virtual ~AliMUONTrackParam(); // Destructor
27   
28   AliMUONTrackParam(const AliMUONTrackParam& theMUONTrackParam);
29   AliMUONTrackParam& operator=(const  AliMUONTrackParam& theMUONTrackParam);
30
31   void GetParamFrom(const AliESDMuonTrack& esdMuonTrack);
32   void SetParamFor(AliESDMuonTrack& esdMuonTrack);
33
34   // Get and Set methods for data
35         /// return inverse bending momentum (GeV/c ** -1) times the charge (assumed forward motion)
36   Double_t GetInverseBendingMomentum(void) const {return fInverseBendingMomentum;}
37         /// set inverse bending momentum (GeV/c ** -1) times the charge (assumed forward motion)
38   void     SetInverseBendingMomentum(Double_t InverseBendingMomentum) {fInverseBendingMomentum = InverseBendingMomentum;}
39         /// return bending slope (cm ** -1)
40   Double_t GetBendingSlope(void) const {return fBendingSlope;}
41         /// set bending slope (cm ** -1)
42   void     SetBendingSlope(Double_t BendingSlope) {fBendingSlope = BendingSlope;}
43         /// return non bending slope (cm ** -1)
44   Double_t GetNonBendingSlope(void) const {return fNonBendingSlope;}
45         /// set non bending slope (cm ** -1)
46   void     SetNonBendingSlope(Double_t NonBendingSlope) {fNonBendingSlope = NonBendingSlope;}
47         /// return Z coordinate (cm)
48   Double_t GetZ(void) const {return fZ;}
49         /// set Z coordinate (cm)
50   void     SetZ(Double_t Z) {fZ = Z;}
51         /// return bending coordinate (cm)
52   Double_t GetBendingCoor(void) const {return fBendingCoor;}
53         /// set bending coordinate (cm)
54   void     SetBendingCoor(Double_t BendingCoor) {fBendingCoor = BendingCoor;}
55         /// return non bending coordinate (cm)
56   Double_t GetNonBendingCoor(void) const {return fNonBendingCoor;}
57         /// set non bending coordinate (cm)
58   void     SetNonBendingCoor(Double_t NonBendingCoor) {fNonBendingCoor = NonBendingCoor;}
59   void              SetTrackParam(AliMUONTrackParam& TrackParam);
60   AliMUONHitForRec* GetHitForRecPtr(void) const;
61         /// set pointeur to associated HitForRec if any
62   void              SetHitForRecPtr(AliMUONHitForRec* HitForRec) {fHitForRecPtr = HitForRec;}
63   
64   Double_t Px() const;  // return px
65   Double_t Py() const;  // return py
66   Double_t Pz() const;  // return pz
67   Double_t P()  const;  // return total momentum
68
69         /// necessary for sorting TClonesArray of TrackHit's
70   Bool_t IsSortable () const {return kTRUE;}
71         /// "Compare" function for sorting
72   Int_t Compare(const TObject* TrackParam) const;
73
74   virtual void Print(Option_t* opt="") const;
75  
76
77  private:
78   Double_t fInverseBendingMomentum; ///< Inverse bending momentum (GeV/c ** -1) times the charge (assumed forward motion)
79   Double_t fBendingSlope; ///< Bending slope (cm ** -1)
80   Double_t fNonBendingSlope; ///< Non bending slope (cm ** -1)
81   Double_t fZ; ///< Z coordinate (cm)
82   Double_t fBendingCoor; ///< bending coordinate (cm)
83   Double_t fNonBendingCoor; ///< non bending coordinate (cm)
84
85   AliMUONHitForRec *fHitForRecPtr; //!< Pointer to associated HitForRec if any
86   
87   ClassDef(AliMUONTrackParam, 2) // Track parameters in ALICE dimuon spectrometer
88 };
89         
90 #endif