]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/global/AliFlatTPCseed.h
AliHLTJET module
[u/mrichter/AliRoot.git] / HLT / global / AliFlatTPCseed.h
index e44e711cfb4e1ba489f14b7863cf68185883e303..d5e2db8f5343397707def0cce3a077b0e94728be 100644 (file)
 #include "AliVfriendTrack.h"
 #include "AliVMisc.h"
 #include "AliFlatExternalTrackParam.h"
-#include "AliFlatTPCseed.h"
+#include "AliTPCseed.h"
 
 class AliESDtrack;
 class AliESDfriendTrack;
 class AliExternalTrackParam;
-class AliTrackPointArray;
-class AliTPCseed;
 
 class AliFlatTPCseed  
 {
@@ -37,19 +35,39 @@ class AliFlatTPCseed
   AliFlatTPCseed( AliVConstructorReinitialisationFlag );
   void Reinitialize() { new (this) AliFlatTPCseed( AliVReinitialize ); }
 
+  // -- Getters 
+
+  void GetTPCseed( AliTPCseed *p ) const;
+
+  Int_t GetLabel() const { return fLabel; }
+  Int_t GetNClusters() const { return fNTPCClusters; }
+
+  const AliFlatTPCCluster *GetClusters() const { return reinterpret_cast< const AliFlatTPCCluster* >( fContent ); }
+  AliFlatTPCCluster *GetClustersNonConst(){ return reinterpret_cast< AliFlatTPCCluster* >( fContent ); }
+
   // -- Set methods
  
   void Reset();
 
   void SetFromTPCseed( const AliTPCseed *p );
-  void GetTPCseed( AliTPCseed *p ) const;
 
-  
+  void SetExternalTrackParam( const AliExternalTrackParam* p ){ fParam.SetExternalTrackParam(  p ); }
+
+  void SetLabel( Int_t lab ){ fLabel=lab; }
+
+  void AddCluster( const AliTPCclusterMI *cl, const AliTPCTrackerPoint *p ){
+               if(cl){
+                       GetClustersNonConst()[fNTPCClusters++].SetTPCCluster( cl, p );
+                       fContentSize+=sizeof(AliFlatTPCCluster);
+               }
+       }
+
+
   // --------------------------------------------------------------------------------
   // -- Size methods
 
   static size_t EstimateSize(){
-    return sizeof(AliFlatTPCseed) + 6*sizeof(AliFlatExternalTrackParam);
+    return sizeof(AliFlatTPCseed) + 160*sizeof(AliFlatTPCCluster);
   }
 
   size_t GetSize() const { return fContent -  reinterpret_cast<const Byte_t*>(this) + fContentSize; }
@@ -62,12 +80,46 @@ class AliFlatTPCseed
   // --------------------------------------------------------------------------------
 
   ULong64_t fContentSize;                      // Size of this object
-
+  
   // --------------------------------------------------------------------------------
   
+  AliFlatExternalTrackParam fParam;
+  Int_t fLabel;
+  Int_t fNTPCClusters;
   Byte_t fContent[1];                  // Variale size object, which contains all data
 
 };
 
+inline AliFlatTPCseed::AliFlatTPCseed()
+  :
+  fContentSize(0),
+  fParam(),
+  fLabel(-1),
+  fNTPCClusters(0)
+{
+  // constructor
+  fContent[0]=0;
+}
+
+#pragma GCC diagnostic ignored "-Weffc++" 
+inline AliFlatTPCseed::AliFlatTPCseed( AliVConstructorReinitialisationFlag  )
+{
+  // reinitialise vtable
+  fParam.Reinitialize();
+  AliFlatTPCCluster *clusters = reinterpret_cast< AliFlatTPCCluster* >( fContent );  
+  for( Int_t ic=0; ic<fNTPCClusters; ic++ ){
+    clusters[ic].Reinitialize();
+  }
+}
+#pragma GCC diagnostic warning "-Weffc++" 
+
+
+inline void AliFlatTPCseed::Reset()
+{
+  // Reset
+  fContentSize = 0;
+  fNTPCClusters = 0;
+  fLabel=-1;
+}
 
 #endif