]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/global/AliFlatTPCseed.cxx
AliHLTJET module
[u/mrichter/AliRoot.git] / HLT / global / AliFlatTPCseed.cxx
index 82d97657b31c907a18ace6bf2242fb642839c863..9771e042a43f30c889c117eb2f2a477b24823110 100644 (file)
  **************************************************************************/
 
 #include "AliFlatTPCseed.h"
+#include "AliTPCseed.h"
+#include "AliHLTTPCTransform.h"
 #include "Riostream.h"
 
-AliFlatTPCseed::AliFlatTPCseed()
-  :
-  fContentSize(0)
-{
-  // constructor
-  fContent[0]=0;
-}
-
-void AliFlatTPCseed::Reset()
-{
-  // Reset
-}
 
 void AliFlatTPCseed::SetFromTPCseed( const AliTPCseed *p )
 {
   // initialise from AliTPCseed
 
+  Reset();
+  if( !p ) return;
+  fParam.SetExternalTrackParam(  p );
+  fLabel = p->GetLabel();  
+  for( Int_t irow=0; irow<160; irow++ ){
+    AddCluster( p->GetClusterPointer(irow), p->GetTrackPointConst(irow) );
+  }
 }
 
 void AliFlatTPCseed::GetTPCseed( AliTPCseed *p ) const
 {
-  // write to AliTPCseed
+   // write to AliTPCseed
+  if( !p ) return;
+  p->Reset();
+
+  AliTPCseed seed;
+
+  fParam.GetExternalTrackParam( seed );
+  seed.SetLabel(fLabel);  
+  seed.SetNumberOfClusters(fNTPCClusters);
+
+  AliTPCclusterMI * clusters = new AliTPCclusterMI[fNTPCClusters];
+
+  const AliFlatTPCCluster *flatClusters = reinterpret_cast< const AliFlatTPCCluster* >( fContent );
 
+  for( Int_t ic=0; ic<fNTPCClusters; ic++){
+    const AliFlatTPCCluster &flatCluster = flatClusters[ic];
+    int sec = flatCluster.GetSector();
+    int row = flatCluster.GetPadRow();
+    if(sec >= 36) row = row + AliHLTTPCTransform::GetNRowLow();
+    if( row<160 ){
+      flatCluster.GetTPCCluster( &(clusters[ic]), seed.GetTrackPoint(row) );
+      seed.SetClusterPointer( row , &(clusters[ic]) );
+    }
+  }
+  new (p) AliTPCseed( seed, kTRUE ); // true means that p creates its own cluster objects
+  delete [] clusters;
 }