]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVE/EveDet/AliEveMUONTrack.h
Move contents of EVE/Alieve to EVE/EveDet as most code will remain there.
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveMUONTrack.h
diff --git a/EVE/EveDet/AliEveMUONTrack.h b/EVE/EveDet/AliEveMUONTrack.h
new file mode 100644 (file)
index 0000000..4d09a86
--- /dev/null
@@ -0,0 +1,82 @@
+// $Id$
+// Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
+
+/**************************************************************************
+ * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
+ * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
+ * full copyright notice.                                                 *
+ **************************************************************************/
+#ifndef ALIEVE_MUONTrack_H
+#define ALIEVE_MUONTrack_H
+
+#include <TEveTrack.h>
+
+class AliMUONTrack;
+class AliMUONTriggerTrack;
+class AliMagF;
+class AliESDMuonTrack;
+class AliTrackReference;
+
+class TParticle;
+
+class TEveTrackPropagator;
+class TEveRecTrack;
+
+
+class AliEveMUONTrack: public TEveTrack
+{
+
+  AliEveMUONTrack(const AliEveMUONTrack&);            // Not implemented
+  AliEveMUONTrack& operator=(const AliEveMUONTrack&); // Not implemented
+
+ public:
+
+  AliEveMUONTrack(TEveRecTrack* t, TEveTrackPropagator* rs);
+  virtual ~AliEveMUONTrack();
+
+  virtual void MakeTrack(Bool_t /*recurse*/=kFALSE) {}
+
+  void  MakeMUONTrack(AliMUONTrack *mtrack);
+  void  MakeMUONTriggerTrack(AliMUONTriggerTrack *mtrack);
+  void  MakeESDTrack(AliESDMuonTrack *mtrack);
+  void  MakeMCTrack(TParticle *part);
+  void  MakeRefTrack(AliMUONTrack *mtrack);
+  void  GetField(Double_t *position, Double_t *field);
+  void  Propagate(Float_t *xr, Float_t *yr, Float_t *zr, Int_t i1, Int_t i2);
+  void  OneStepRungekutta(Double_t charge, Double_t step,
+                         Double_t* vect, Double_t* vout);
+  Int_t ColorIndex(Float_t val);
+
+  Bool_t IsMUONTrack()        { return fIsMUONTrack;  };
+  Bool_t IsMUONTriggerTrack() { return fIsMUONTrack;  };
+  Bool_t IsESDTrack()         { return fIsESDTrack;   };
+  Bool_t IsMCTrack()          { return fIsMCTrack;    };
+  Bool_t IsRefTrack()         { return fIsRefTrack;   };
+
+  void PrintMCTrackInfo();
+  void PrintMUONTrackInfo();
+  void PrintMUONTriggerTrackInfo();
+  void PrintESDTrackInfo();
+
+  void  MUONTrackInfo();          // *MENU*
+  void  MUONTriggerInfo();        // *MENU*
+
+ private:
+
+  AliMUONTrack *fTrack;              // pointer to the MUON track
+  TParticle    *fPart;               // pointer to the MC particle
+  Int_t         fCount;              // track points counter
+  Bool_t        fIsMUONTrack;        // track from MUON.Tracks.root
+  Bool_t        fIsMUONTriggerTrack; // trigger track from MUON.Tracks.root
+  Bool_t        fIsESDTrack;         // track from AliESDs.root
+  Bool_t        fIsMCTrack;          // track from Kinematics.root
+  Bool_t        fIsRefTrack;         // track from TrackRefs.root
+
+  static AliMagF      *fFieldMap;    // pointer to the magnetic field map
+
+  ClassDef(AliEveMUONTrack, 1);    // Produce TEveUtil:TEveTrack from AliMUONTrack
+
+};
+
+#endif
+