]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDtrackGTU.cxx
update of GTU simulation
[u/mrichter/AliRoot.git] / TRD / AliTRDtrackGTU.cxx
index 9ade791e6340bbeeb935f25a0d884f712642062c..4eaa2b9fb63d3d3da2b1b1a4b48545eb322e37da 100644 (file)
@@ -85,7 +85,7 @@ void AliTRDtrackGTU::AddTracklet(const AliTRDtrackletGTU * const tracklet, Int_t
   fTrackletMask |= (1 << layer);
 }
 
-AliTRDtrackletGTU* AliTRDtrackGTU::GetTracklet(Int_t layer)
+AliTRDtrackletGTU* AliTRDtrackGTU::GetTracklet(Int_t layer) const
 {
 // get a pointer to the tracklet in the layer specified
 
@@ -149,14 +149,28 @@ Int_t AliTRDtrackGTU::GetYapprox()
 
 AliESDTrdTrack* AliTRDtrackGTU::CreateTrdTrack() const
 {
-// creates an AliESDTrdTrack to be added to the ESD
-
-    AliESDTrdTrack *trk = new AliESDTrdTrack();
-    trk->SetPID(fPID);
-    if (fLabel >= 0)
-       trk->SetLabel(fLabel);
+  // creates an AliESDTrdTrack to be added to the ESD
+
+  AliESDTrdTrack *trk = new AliESDTrdTrack();
+  trk->SetA((Int_t) fA);
+  trk->SetLayerMask(fTrackletMask);
+  trk->SetPID(fPID);
+  trk->SetB((Int_t) fB);
+  trk->SetStack(fStack);
+  trk->SetSector(fSector);
+  if (fLabel >= 0)
+    trk->SetLabel(fLabel);
+
+  for (Int_t iLayer = 0; iLayer < AliTRDgtuParam::GetNLayers(); iLayer++) {
+    AliTRDtrackletGTU *trklGTU = GetTracklet(iLayer);
+    if (trklGTU) {
+      AliESDTrdTracklet *trkl = trklGTU->GetTrackletESD();
+      if (trkl)
+       trk->AddTrackletReference(trkl, iLayer);
+    }
+  }
 
-    return trk;
+  return trk;
 }
 
 Bool_t AliTRDtrackGTU::CookLabel()