Adding TRD online tracks and trackets to ESD:
[u/mrichter/AliRoot.git] / TRD / AliTRDtrackGTU.cxx
index b5ea940bf088844eda383db75be4727f139bcf6e..52e7d69ab31d81fe374dcadef93612416937bfa3 100644 (file)
@@ -28,6 +28,7 @@
 #include "TClass.h"
 #include "TH1F.h"
 
+#include "AliESDTrdTrack.h"
 #include "AliLog.h"
 #include "AliTRDgtuParam.h"
 #include "AliTRDtrackGTU.h"
@@ -70,7 +71,7 @@ AliTRDtrackGTU::~AliTRDtrackGTU()
   delete fTracklets;
 }
 
-void AliTRDtrackGTU::AddTracklet(AliTRDtrackletGTU *tracklet, Int_t layer) 
+void AliTRDtrackGTU::AddTracklet(const AliTRDtrackletGTU * const tracklet, Int_t layer) 
 {
 // add a tracklet to this track
 
@@ -88,7 +89,10 @@ AliTRDtrackletGTU* AliTRDtrackGTU::GetTracklet(Int_t layer)
 {
 // get a pointer to the tracklet in the layer specified
 
-  return ((AliTRDtrackletGTU*) (*fTracklets)[layer]);
+  if (IsTrackletInLayer(layer))
+    return ((AliTRDtrackletGTU*) (*fTracklets)[layer]);
+  else 
+    return 0x0;
 }
 
 Int_t AliTRDtrackGTU::GetNTracklets() const
@@ -148,12 +152,10 @@ AliESDTrdTrack* AliTRDtrackGTU::CreateTrdTrack() const
 // creates an AliESDTrdTrack to be added to the ESD
 
     AliESDTrdTrack *trk = new AliESDTrdTrack();
-    trk->SetPt(1./128. * fPt);
     trk->SetPID(fPID);
-    trk->SetDetector((Char_t) (fSector * 5 + fStack));
     if (fLabel >= 0)
        trk->SetLabel(fLabel);
-    AliInfo(Form("setting detector to: %i (sector: %i, stack: %i), readback: %i", fSector * 30 + fStack * 6, fSector, fStack, trk->GetDetector()));
+
     return trk;
 }
 
@@ -161,10 +163,12 @@ Bool_t AliTRDtrackGTU::CookLabel()
 {
     TH1F *h = new TH1F("trkref", "trkref", 100000, 0, 100000);
     for (Int_t iTracklet = 0; iTracklet < 6; iTracklet++) {
+      if (!IsTrackletInLayer(iTracklet))
+        continue;
        h->Fill( ((AliTRDtrackletGTU*) (*fTracklets)[iTracklet])->GetLabel());
     }
     if (h->GetEntries() > 0)
-       fLabel = h->GetMaximumBin();
+       fLabel = h->GetMaximumBin() - 1;
     else 
        fLabel = -1;
     delete h;