-/*
-// _______________________________________________________________________________________________________
-AliFlatESDEvent::AliFlatESDEvent(AliESDEvent *esd) :
- fSize(0),
- fMagneticField(0),
- fPeriodNumber(0),
- fRunNumber(0),
- fOrbitNumber(0),
- fTimeStamp(0),
- fBunchCrossNumber(0),
- fPrimaryVertexMask(0),
- fTriggerMask(0),
- fNTriggerClasses(0),
- fNPrimaryVertices(0),
- fNTracks(0),
- fNV0s(0),
- fTriggerPointer(0),
- fPrimaryVertexPointer(0),
- fTracksPointer(0),
- fV0Pointer(0)
-{
- fContent[0]=0;
- Fill(esd);
+#pragma GCC diagnostic ignored "-Weffc++"
+AliFlatESDEvent::AliFlatESDEvent( AliVConstructorReinitialisationFlag /*f*/ )
+ :
+ fFriendEvent(NULL)
+{
+ // Constructor for reinitialisation of vtable
+
+ // Reinitialise trigger information
+ {
+ AliFlatESDTrigger * trigger = reinterpret_cast< AliFlatESDTrigger*>( fContent + fTriggerPointer );
+ for( UInt_t i=0; i<fNTriggerClasses; i++ ){
+ trigger->Reinitialize();
+ trigger = trigger->GetNextTriggerNonConst();
+ }
+ }
+
+ // Reinitialise primary vertices
+
+ if( fPrimaryVertexMask & 0x1 ){
+ AliFlatESDVertex *vtxSPD = reinterpret_cast<AliFlatESDVertex*>(fContent + fPrimaryVertexSPDPointer);
+ vtxSPD->Reinitialize();
+ }
+ if( fPrimaryVertexMask & 0x2 ){
+ AliFlatESDVertex *vtxTracks = reinterpret_cast<AliFlatESDVertex*>(fContent + fPrimaryVertexTracksPointer);
+ vtxTracks->Reinitialize();
+ }
+
+ // Reinitialise tracks
+ {
+ AliFlatESDTrack *track = reinterpret_cast<AliFlatESDTrack*>( fContent + fTracksPointer );
+ for( UInt_t i=0; i<fNTracks; i++ ){
+ track->Reinitialize();
+ track = track->GetNextTrackNonConst();
+ }
+ }
+
+ // Reinitialise V0s
+ {
+ AliFlatESDV0 *v0 = reinterpret_cast<AliFlatESDV0*>( fContent + fV0Pointer );
+ for( UInt_t i=0; i < fNV0s; i++){
+ v0->Reinitialize();
+ v0 = v0->GetNextV0NonConst();
+ }
+ }