Coverity
[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 class TEveRecTrack;
24
25
26 class AliEveMUONTrack: public TEveTrack
27 {
28  public:
29
30   AliEveMUONTrack(TEveRecTrack* t, TEveTrackPropagator* rs);
31   virtual ~AliEveMUONTrack();
32
33   virtual void MakeTrack(Bool_t /*recurse*/=kFALSE) {}
34
35   void  MakeMUONTrack(AliMUONTrack *mtrack);
36   void  MakeMUONTriggerTrack(AliMUONTriggerTrack *mtrack);
37   void  MakeESDTrack(AliESDMuonTrack *mtrack);
38   void  MakeMCTrack(TParticle *part);
39   void  MakeRefTrack(AliMUONTrack *mtrack);
40   void  Propagate(Float_t *xr, Float_t *yr, Float_t *zr, Int_t i1, Int_t i2);
41   void  OneStepRungekutta(Double_t charge, Double_t step,
42                           Double_t* vect, Double_t* vout);
43   Int_t ColorIndex(Float_t val);
44
45   Bool_t IsMUONTrack()        const { return fIsMUONTrack; }
46   Bool_t IsMUONTriggerTrack() const { return fIsMUONTrack; }
47   Bool_t IsESDTrack()         const { return fIsESDTrack;  }
48   Bool_t IsMCTrack()          const { return fIsMCTrack;   }
49   Bool_t IsRefTrack()         const { return fIsRefTrack;  }
50
51   void PrintMCTrackInfo();
52   void PrintMUONTrackInfo();
53   void PrintMUONTriggerTrackInfo();
54   void PrintESDTrackInfo();
55
56   void  MUONTrackInfo();          // *MENU*
57   void  MUONTriggerInfo();        // *MENU*
58
59  private:
60
61   AliEveMUONTrack(const AliEveMUONTrack&);            // Not implemented
62   AliEveMUONTrack& operator=(const AliEveMUONTrack&); // Not implemented
63
64   AliMUONTrack *fTrack;              // pointer to the MUON track
65   TParticle    *fPart;               // pointer to the MC particle
66   Int_t         fCount;              // track points counter
67   Bool_t        fIsMUONTrack;        // track from MUON.Tracks.root
68   Bool_t        fIsMUONTriggerTrack; // trigger track from MUON.Tracks.root
69   Bool_t        fIsESDTrack;         // track from AliESDs.root
70   Bool_t        fIsMCTrack;          // track from Kinematics.root
71   Bool_t        fIsRefTrack;         // track from TrackRefs.root
72
73   ClassDef(AliEveMUONTrack, 0);    // Produce TEveUtil:TEveTrack from AliMUONTrack
74 };
75
76 class AliEveMUONTrackList : public TEveTrackList
77 {
78 public:
79   AliEveMUONTrackList(TEveTrackPropagator* rs=0) : TEveTrackList(rs) {}
80   AliEveMUONTrackList(const Text_t* name, TEveTrackPropagator* rs=0) : TEveTrackList(name, rs) {}
81   virtual ~AliEveMUONTrackList() {}
82
83   void HackMomentumLimits(Bool_t recurse=kTRUE);
84
85   ClassDef(AliEveMUONTrackList, 0);    // Temporary workaround for deficiency in TEveTrackList
86 };
87
88 #endif
89