1 #ifndef ALIFLATTPCSEED_H
2 #define ALIFLATTPCSEED_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice *
6 * Primary Authors : Sergey Gorbunov, Jochen Thaeder, Chiara Zampolli */
9 * See implementation file for documentation
15 #include "AliFlatTPCCluster.h"
16 #include "AliVfriendTrack.h"
18 #include "AliFlatExternalTrackParam.h"
19 #include "AliTPCseed.h"
22 class AliESDfriendTrack;
23 class AliExternalTrackParam;
29 // --------------------------------------------------------------------------------
30 // -- Constructor / Destructors
34 // constructor and method for reinitialisation of virtual table
35 AliFlatTPCseed( AliVConstructorReinitialisationFlag );
36 void Reinitialize() { new (this) AliFlatTPCseed( AliVReinitialize ); }
40 void GetTPCseed( AliTPCseed *p ) const;
42 Int_t GetLabel() const { return fLabel; }
43 Int_t GetNClusters() const { return fNTPCClusters; }
45 const AliFlatTPCCluster *GetClusters() const { return reinterpret_cast< const AliFlatTPCCluster* >( fContent ); }
46 AliFlatTPCCluster *GetClustersNonConst(){ return reinterpret_cast< AliFlatTPCCluster* >( fContent ); }
52 void SetFromTPCseed( const AliTPCseed *p );
54 void SetExternalTrackParam( const AliExternalTrackParam* p ){ fParam.SetExternalTrackParam( p ); }
56 void SetLabel( Int_t lab ){ fLabel=lab; }
58 void AddCluster( const AliTPCclusterMI *cl, const AliTPCTrackerPoint *p ){
60 GetClustersNonConst()[fNTPCClusters++].SetTPCCluster( cl, p );
61 fContentSize+=sizeof(AliFlatTPCCluster);
66 // --------------------------------------------------------------------------------
69 static size_t EstimateSize(){
70 return sizeof(AliFlatTPCseed) + 160*sizeof(AliFlatTPCCluster);
73 size_t GetSize() const { return fContent - reinterpret_cast<const Byte_t*>(this) + fContentSize; }
77 AliFlatTPCseed(const AliFlatTPCseed &);
78 AliFlatTPCseed& operator=(const AliFlatTPCseed& );
80 // --------------------------------------------------------------------------------
82 ULong64_t fContentSize; // Size of this object
84 // --------------------------------------------------------------------------------
86 AliFlatExternalTrackParam fParam;
89 Byte_t fContent[1]; // Variale size object, which contains all data
93 inline AliFlatTPCseed::AliFlatTPCseed()
104 #pragma GCC diagnostic ignored "-Weffc++"
105 inline AliFlatTPCseed::AliFlatTPCseed( AliVConstructorReinitialisationFlag )
107 // reinitialise vtable
108 fParam.Reinitialize();
109 AliFlatTPCCluster *clusters = reinterpret_cast< AliFlatTPCCluster* >( fContent );
110 for( Int_t ic=0; ic<fNTPCClusters; ic++ ){
111 clusters[ic].Reinitialize();
114 #pragma GCC diagnostic warning "-Weffc++"
117 inline void AliFlatTPCseed::Reset()