Removing useless forward declaration
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveMUONTrack.h
1 // $Id$
2 // Main authors: Matevz Tadel & Alja Mrak-Tadel & Bogdan Vulpescu: 2006, 2007
3
4 /**************************************************************************
5  * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
6  * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
7  * full copyright notice.                                                 *
8  **************************************************************************/
9 #ifndef AliEveMUONTrack_H
10 #define AliEveMUONTrack_H
11
12 #include <TEveTrack.h>
13
14 class AliMUONTrack;
15 class AliMUONTriggerTrack;
16 class AliMagF;
17 class AliESDMuonTrack;
18 class AliTrackReference;
19
20 class TParticle;
21
22 class TEveTrackPropagator;
23
24
25 class AliEveMUONTrack: public TEveTrack
26 {
27  public:
28
29   AliEveMUONTrack(TEveRecTrack* t, TEveTrackPropagator* rs);
30   virtual ~AliEveMUONTrack();
31
32   virtual void MakeTrack(Bool_t /*recurse*/=kFALSE) {}
33
34   void  MakeMUONTrack(AliMUONTrack *mtrack);
35   void  MakeMUONTriggerTrack(AliMUONTriggerTrack *mtrack);
36   void  MakeESDTrack(AliESDMuonTrack *mtrack);
37   void  MakeMCTrack(TParticle *part);
38   void  MakeRefTrack(AliMUONTrack *mtrack);
39   void  Propagate(Float_t *xr, Float_t *yr, Float_t *zr, Int_t i1, Int_t i2);
40   void  OneStepRungekutta(Double_t charge, Double_t step,
41                           Double_t* vect, Double_t* vout);
42   Int_t ColorIndex(Float_t val);
43
44   Bool_t IsMUONTrack()        const { return fIsMUONTrack; }
45   Bool_t IsMUONTriggerTrack() const { return fIsMUONTrack; }
46   Bool_t IsESDTrack()         const { return fIsESDTrack;  }
47   Bool_t IsMCTrack()          const { return fIsMCTrack;   }
48   Bool_t IsRefTrack()         const { return fIsRefTrack;  }
49
50   void PrintMCTrackInfo();
51   void PrintMUONTrackInfo();
52   void PrintMUONTriggerTrackInfo();
53   void PrintESDTrackInfo();
54
55   void  MUONTrackInfo();          // *MENU*
56   void  MUONTriggerInfo();        // *MENU*
57
58  private:
59
60   AliEveMUONTrack(const AliEveMUONTrack&);            // Not implemented
61   AliEveMUONTrack& operator=(const AliEveMUONTrack&); // Not implemented
62
63   AliMUONTrack *fTrack;              // pointer to the MUON track
64   TParticle    *fPart;               // pointer to the MC particle
65   Int_t         fCount;              // track points counter
66   Bool_t        fIsMUONTrack;        // track from MUON.Tracks.root
67   Bool_t        fIsMUONTriggerTrack; // trigger track from MUON.Tracks.root
68   Bool_t        fIsESDTrack;         // track from AliESDs.root
69   Bool_t        fIsMCTrack;          // track from Kinematics.root
70   Bool_t        fIsRefTrack;         // track from TrackRefs.root
71
72   ClassDef(AliEveMUONTrack, 0);    // Produce TEveUtil:TEveTrack from AliMUONTrack
73 };
74
75 class AliEveMUONTrackList : public TEveTrackList
76 {
77 public:
78   AliEveMUONTrackList(TEveTrackPropagator* rs=0) : TEveTrackList(rs) {}
79   AliEveMUONTrackList(const Text_t* name, TEveTrackPropagator* rs=0) : TEveTrackList(name, rs) {}
80   virtual ~AliEveMUONTrackList() {}
81
82   void HackMomentumLimits(Bool_t recurse=kTRUE);
83
84   ClassDef(AliEveMUONTrackList, 0);    // Temporary workaround for deficiency in TEveTrackList
85 };
86
87 #endif
88