]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - EVE/EveDet/AliEveMUONTrack.h
Net Particle updates (Jochen Thaeder <jochen@thaeder.de>)
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveMUONTrack.h
... / ...
CommitLineData
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
14class AliMUONTrack;
15class AliMUONTriggerTrack;
16class AliMagF;
17class AliESDMuonTrack;
18class AliTrackReference;
19
20class TParticle;
21
22class TEveTrackPropagator;
23
24
25class 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
75class AliEveMUONTrackList : public TEveTrackList
76{
77public:
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