Converting THerwig to native cmake
[u/mrichter/AliRoot.git] / MFT / MFTsim / AliMFTHit.h
1 #ifndef AliMFTHit_H
2 #define AliMFTHit_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 //====================================================================================================================================================
8 //
9 //      Hit description for the ALICE Muon Forward Tracker
10 //
11 //      Contact author: antonio.uras@cern.ch
12 //
13 //====================================================================================================================================================
14
15 #include "TLorentzVector.h"
16 #include "TParticle.h"
17 #include "AliHit.h"
18 #include "AliRun.h"
19 #include "AliMC.h"
20
21 //====================================================================================================================================================
22
23 class TParticle;
24
25 class AliMFTHit : public AliHit {
26
27 public:
28
29   AliMFTHit();
30 //   AliMFTHit(const AliMFTHit &h);
31 //   AliMFTHit& operator=(const AliMFTHit &h);
32   
33   virtual ~AliMFTHit() {}
34   
35   virtual void SetPlane(Int_t plane) { fPlane = plane; }
36   virtual void SetDetElemID(Int_t detElemID) { fDetElemID = detElemID; }
37   virtual void SetPosition(TLorentzVector &x) { fX =x.X(); fY =x.Y(); fZ =x.Z(); }
38   virtual void SetTOF(Double_t time) { fTOF = time; }
39   virtual void SetStatus(Int_t status) { fStatus  = status; }
40   virtual void SetEloss(Double_t energy) { fEloss = energy; }
41   virtual void SetMomentum(TLorentzVector &p) { fPx=p.Px(); fPy=p.Py(); fPz=p.Pz(); }
42   
43   virtual Int_t GetTrackStatus() const { return fStatus;  }
44   virtual Int_t GetPlane()       const { return fPlane; }
45   virtual Int_t GetDetElemID()   const { return fDetElemID; }
46   virtual Double_t GetEloss()    const { return fEloss; }
47   virtual Double_t GetTOF()      const { return fTOF; }
48   
49   virtual void GetPosition(Double_t &x,Double_t &y,Double_t &z) const { x=fX; y=fY; z=fZ; }
50   virtual Double_t GetX() const { return fX; }
51   virtual Double_t GetY() const { return fY; }
52   virtual Double_t GetZ() const { return fZ; }
53
54   virtual void GetMomentum(Double_t &px,Double_t &py,Double_t &pz) const { px=fPx; py=fPy; pz=fPz; }
55   virtual Double_t GetPx() const { return fPx; }
56   virtual Double_t GetPy() const { return fPy; }
57   virtual Double_t GetPz() const { return fPz; }
58
59   TParticle* GetParticle() const;
60
61   Bool_t IsInside()      const { return (fStatus & 0x1);    } 
62   Bool_t IsEntering()    const { return (fStatus & 0x1<<1); }
63   Bool_t IsExiting()     const { return (fStatus & 0x1<<2); }
64   Bool_t IsOut()         const { return (fStatus & 0x1<<3); }
65   Bool_t IsDisappeared() const { return (fStatus & 0x1<<4); }
66   Bool_t IsStopped()     const { return (fStatus & 0x1<<5); }
67   Bool_t IsAlive()       const { return (fStatus & 0x1<<6); }
68
69 protected:
70
71   Int_t   fStatus;   /* The track status flag. This flag indicates the track status
72                         at the time of creating this hit. 
73                         It is made up of the following 8 status bits from highest order to lowest order bits 0 :  
74                         IsTrackAlive(): IsTrackStop(): IsTrackDisappeared(): IsTrackOut(): IsTrackExiting(): IsTrackEntering(): IsTrackInside()     .
75                         See AliMC for a description of these functions. 
76                         If the function is true then the bit is set to one, otherwise it is zero. */
77   
78   Int_t    fPlane;      // Plane number
79   Int_t    fDetElemID;  // Detection Element unique ID 
80   Double_t fPx;         // PX of particle at the point of the hit
81   Double_t fPy;         // PY of particle at the point of the hit
82   Double_t fPz;         // PZ of particle at the point of the hit
83   Double_t fEloss;      // Energy deposited in the current step
84   Double_t fTOF;        // Time of flight at the point of the hit
85   
86   ClassDef(AliMFTHit,3)
87     
88 };
89
90 //====================================================================================================================================================
91
92 #endif