]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVE/EveDet/AliEveTRDData.cxx
AliTPCkalmanFit.h AliTPCkalmanFit.cxx -
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveTRDData.cxx
index 59d4529486bc3bc0751f521818514251c9ccb829..9f58f749494d4b32d1c8cc6b828948be5b1bd986 100644 (file)
@@ -28,6 +28,8 @@
 #include "AliTRDhit.h"
 #include "AliTRDcluster.h"
 #include "AliTRDseedV1.h"
+#include "AliTRDtrackletMCM.h"
+#include "AliTRDmcmSim.h"
 #include "AliTRDtrackV1.h"
 #include "AliTRDtrackerV1.h"
 #include "AliTRDpadPlane.h"
@@ -399,6 +401,57 @@ AliEveTRDTracklet::AliEveTRDTracklet(AliTRDseedV1 *trklt):TEveLine()
   //SetPoint(1, x0, y0, z0);
 }
 
+AliEveTRDTracklet::AliEveTRDTracklet(AliTRDtrackletMCM *tracklet) : 
+  TEveLine(),
+  fClusters(0x0)
+{
+  SetName("TRD tracklet");
+  AliTRDtrackletMCM *trkl = new AliTRDtrackletMCM(*tracklet);
+  SetUserData(trkl);
+
+  SetTitle(Form("Det: %i, ROB: %i, MCM: %i, Label: %i\n0x%08x", 
+                trkl->GetDetector(), trkl->GetROB(), trkl->GetMCM(), trkl->GetLabel(),
+                trkl->GetTrackletWord()));
+  SetLineColor(kRed);
+
+  AliTRDgeometry *geo = new AliTRDgeometry();
+
+  Float_t length = 10;
+  Double_t x[3];
+  Double_t p[3];
+  x[0] = trkl->GetX();
+  x[1] = trkl->GetY();
+  x[2] = trkl->GetZ();
+  
+  geo->RotateBack(trkl->GetDetector(), x, p);
+  SetPoint(0, p[0], p[1], p[2]);
+
+  x[0] -= length;
+  x[1] += length * trkl->GetdYdX();
+  x[2] *= x[0] / (x[0] + length);
+  geo->RotateBack(trkl->GetDetector(), x, p);
+  SetPoint(1, p[0], p[1], p[2]);
+}
+
+AliEveTRDTracklet::~AliEveTRDTracklet() 
+{
+  AliTRDtrackletMCM *trkl = dynamic_cast<AliTRDtrackletMCM*> ((AliTRDtrackletBase*) GetUserData());
+  delete trkl;
+}
+
+void AliEveTRDTracklet::ShowMCM(Option_t *opt) const
+{
+  AliTRDtrackletMCM *trkl = dynamic_cast<AliTRDtrackletMCM*> ((AliTRDtrackletBase*) GetUserData());
+  if (!trkl)
+    return;
+  printf("Det: %3i, ROB: %i, MCM: %2i\n", trkl->GetDetector(), trkl->GetROB(), trkl->GetMCM());
+  AliTRDmcmSim *mcm = new AliTRDmcmSim();
+  AliRunLoader *rl = AliEveEventManager::AssertRunLoader();
+  mcm->LoadMCM(rl, trkl->GetDetector(), trkl->GetROB(), trkl->GetMCM());
+  mcm->Tracklet();
+  mcm->Draw(opt);
+}
+
 //______________________________________________________________________________
 void AliEveTRDTracklet::Print(Option_t *o) const
 {