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 ){ if(cl) GetClustersNonConst()[fNTPCClusters++].SetTPCCluster( cl, p ); }
61 // --------------------------------------------------------------------------------
64 static size_t EstimateSize(){
65 return sizeof(AliFlatTPCseed) + 160*sizeof(AliFlatTPCCluster);
68 size_t GetSize() const { return fContent - reinterpret_cast<const Byte_t*>(this) + fContentSize; }
72 AliFlatTPCseed(const AliFlatTPCseed &);
73 AliFlatTPCseed& operator=(const AliFlatTPCseed& );
75 // --------------------------------------------------------------------------------
77 ULong64_t fContentSize; // Size of this object
79 // --------------------------------------------------------------------------------
81 AliFlatExternalTrackParam fParam;
84 Byte_t fContent[1]; // Variale size object, which contains all data
88 inline AliFlatTPCseed::AliFlatTPCseed()
99 #pragma GCC diagnostic ignored "-Weffc++"
100 inline AliFlatTPCseed::AliFlatTPCseed( AliVConstructorReinitialisationFlag )
102 // reinitialise vtable
103 fParam.Reinitialize();
104 AliFlatTPCCluster *clusters = reinterpret_cast< AliFlatTPCCluster* >( fContent );
105 for( Int_t ic=0; ic<fNTPCClusters; ic++ ){
106 clusters[ic].Reinitialize();
109 #pragma GCC diagnostic warning "-Weffc++"
112 inline void AliFlatTPCseed::Reset()