Coverity
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveMUONTrack.h
CommitLineData
d810d0de 1// $Id$
fafff680 2// Main authors: Matevz Tadel & Alja Mrak-Tadel & Bogdan Vulpescu: 2006, 2007
d810d0de 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 *
51346b82 7 * full copyright notice. *
d810d0de 8 **************************************************************************/
a15e6d7d 9#ifndef AliEveMUONTrack_H
10#define AliEveMUONTrack_H
e19f3684 11
84aff7a4 12#include <TEveTrack.h>
e19f3684 13
14class AliMUONTrack;
eadce74d 15class AliMUONTriggerTrack;
e19f3684 16class AliMagF;
eadce74d 17class AliESDMuonTrack;
18class AliTrackReference;
19
20class TParticle;
e19f3684 21
84aff7a4 22class TEveTrackPropagator;
23class TEveRecTrack;
e19f3684 24
e19f3684 25
d810d0de 26class AliEveMUONTrack: public TEveTrack
e19f3684 27{
e19f3684 28 public:
29
d810d0de 30 AliEveMUONTrack(TEveRecTrack* t, TEveTrackPropagator* rs);
31 virtual ~AliEveMUONTrack();
e19f3684 32
eadce74d 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);
e19f3684 40 void Propagate(Float_t *xr, Float_t *yr, Float_t *zr, Int_t i1, Int_t i2);
51346b82 41 void OneStepRungekutta(Double_t charge, Double_t step,
e19f3684 42 Double_t* vect, Double_t* vout);
43 Int_t ColorIndex(Float_t val);
44
a15e6d7d 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; }
eadce74d 50
51 void PrintMCTrackInfo();
52 void PrintMUONTrackInfo();
53 void PrintMUONTriggerTrackInfo();
54 void PrintESDTrackInfo();
55
e19f3684 56 void MUONTrackInfo(); // *MENU*
57 void MUONTriggerInfo(); // *MENU*
58
59 private:
60
4b456ebb 61 AliEveMUONTrack(const AliEveMUONTrack&); // Not implemented
62 AliEveMUONTrack& operator=(const AliEveMUONTrack&); // Not implemented
63
e19f3684 64 AliMUONTrack *fTrack; // pointer to the MUON track
eadce74d 65 TParticle *fPart; // pointer to the MC particle
e19f3684 66 Int_t fCount; // track points counter
eadce74d 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
4b456ebb 73 ClassDef(AliEveMUONTrack, 0); // Produce TEveUtil:TEveTrack from AliMUONTrack
e19f3684 74};
75
98d99a29 76class AliEveMUONTrackList : public TEveTrackList
77{
78public:
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
e19f3684 88#endif
89