.
authorsgorbuno <Sergey.Gorbunov@cern.ch>
Mon, 14 Jul 2014 15:13:53 +0000 (17:13 +0200)
committersgorbuno <Sergey.Gorbunov@cern.ch>
Mon, 14 Jul 2014 15:13:53 +0000 (17:13 +0200)
HLT/global/AliFlatESDFriendTrack.cxx
HLT/global/AliFlatESDFriendTrack.h
STEER/STEERBase/AliExternalTrackParam.h
STEER/STEERBase/AliVParticle.h
STEER/STEERBase/AliVTrack.h
STEER/STEERBase/AliVVfriendTrack.h

index a2524ac..3344039 100644 (file)
@@ -42,20 +42,8 @@ AliFlatESDFriendTrack::AliFlatESDFriendTrack() :
   // Default constructor
 }
 
-
-// _______________________________________________________________________________________________________
-AliFlatESDFriendTrack::AliFlatESDFriendTrack(AliFlatESDSpecialConstructorFlag f) :
-  AliVVfriendTrack()
+AliFlatESDFriendTrack::AliFlatESDFriendTrack( AliVVConstructorReinitialisationFlag f ) :
+AliVVfriendTrack( f )
 {
-  //special constructor, used to restore the vtable pointer
-  //uses the special dummy constructors of contained objects
-
-  // the vtable pointer for this AliFlatESDFriend object is already reset when this constructor is called
-  // we should only initialise vtable pointers for all contained objects
-
-  if(f == AliFlatESDReinitialize){   
-  }
-  else{
-    AliFlatESDFriendTrack();
-  }
+  // constructor for reinitialisation of vtable
 }
index 7d12eb8..0d508c4 100644 (file)
@@ -20,7 +20,7 @@ Op - Track parameters estimated at the point of maximal radial coordinate reache
 
 #include "AliFlatTPCCluster.h"
 #include "AliVVfriendTrack.h"
-#include "AliFlatESDMisc.h"
+#include "AliVVMisc.h"
 
 class AliESDtrack;
 class AliESDfriendTrack;
@@ -31,6 +31,8 @@ class AliFlatESDFriendTrack :public AliVVfriendTrack
  public:
   AliFlatESDFriendTrack();
   ~AliFlatESDFriendTrack() {}
+  // constructor for reinitialisation of vtable
+  AliFlatESDFriendTrack( AliVVConstructorReinitialisationFlag );
 
   //implementation of AliVVfriendTrack methods 
 
@@ -43,19 +45,12 @@ class AliFlatESDFriendTrack :public AliVVfriendTrack
 
   // own methods
 
-  void Reinitialize()
-  {
-    new (this) AliFlatESDFriendTrack(AliFlatESDReinitialize);
-  }
+  void Reinitialize() { new (this) AliFlatESDFriendTrack( AliVVReinitialize ); }
+  
+ private: 
 
-private: 
   AliFlatESDFriendTrack(const AliFlatESDFriendTrack &);
-  AliFlatESDFriendTrack& operator=(const AliFlatESDFriendTrack& );   
-
-  // special constructor, to be called by placement new,
-  // when accessing information after reinterpret_cast
-  // so that vtable is generated, but values are not overwritten
-  AliFlatESDFriendTrack(AliFlatESDSpecialConstructorFlag);
+  AliFlatESDFriendTrack& operator=(const AliFlatESDFriendTrack& ); 
 
 };
 
index 208b931..3b2be8b 100644 (file)
@@ -21,7 +21,7 @@
 #include "TMath.h"
 
 #include "AliVTrack.h"
-
+#include "AliVVMisc.h"
 const Double_t kVeryBig=1./kAlmost0;
 const Double_t kMostProbablePt=0.35;
 
@@ -43,6 +43,10 @@ class AliExternalTrackParam: public AliVTrack {
                        const Double_t param[5], const Double_t covar[15]);
   AliExternalTrackParam(Double_t xyz[3],Double_t pxpypz[3],
                        Double_t cv[21],Short_t sign);
+  // constructor for reinitialisation of vtable
+  AliExternalTrackParam( AliVVConstructorReinitialisationFlag f) :AliVTrack(f), fX(), fAlpha(){}
+  void Reinitialize() { new (this) AliExternalTrackParam( AliVVReinitialize ); }
+
   virtual ~AliExternalTrackParam(){}
   void CopyFromVTrack(const AliVTrack *vTrack);
   
index 0c630c2..31645f3 100644 (file)
@@ -12,6 +12,7 @@
 
 #include <Rtypes.h>
 #include <TObject.h>
+#include "AliVVMisc.h"
 #include "AliVVtrack.h"
 
 #include <float.h>
@@ -30,6 +31,9 @@ public:
   AliVParticle(const AliVParticle& vPart); 
   AliVParticle& operator=(const AliVParticle& vPart);
 
+  // constructor for reinitialisation of vtable
+  AliVParticle( AliVVConstructorReinitialisationFlag ) :TObject(*this){}
+
   // kinematics
   virtual Double_t Px() const = 0;
   virtual Double_t Py() const = 0;
index a1ac10a..a71e104 100644 (file)
@@ -70,6 +70,8 @@ public:
   virtual ~AliVTrack() { }
   AliVTrack(const AliVTrack& vTrack); 
   AliVTrack& operator=(const AliVTrack& vTrack);
+  // constructor for reinitialisation of vtable
+  AliVTrack( AliVVConstructorReinitialisationFlag f) :AliVParticle(f){}
 
   virtual const AliVEvent* GetEvent() const {return 0;}
   virtual Int_t    GetID() const = 0;
index f2e7dec..df64168 100644 (file)
@@ -2,6 +2,7 @@
 #define ALIVVFRIENDTRACK_H
 
 //_____________________________________________________________________________
+#include "AliVVMisc.h"
 
 class AliVVTPCseed;
 class AliVVTRDseed;
@@ -11,6 +12,11 @@ class AliExternalTrackParam;
 class AliVVfriendTrack {
 public:
   AliVVfriendTrack(){}
+  AliVVfriendTrack(const AliVVfriendTrack &){}
+  AliVVfriendTrack& operator=(const AliVVfriendTrack& ){}
+  // constructor for reinitialisation of vtable
+  AliVVfriendTrack( AliVVConstructorReinitialisationFlag ){}
+
   virtual ~AliVVfriendTrack(){}
 
   //used in calibration
@@ -22,8 +28,6 @@ public:
   virtual const AliExternalTrackParam * GetTRDIn()  const {return NULL;} 
 
 private: 
-  AliVVfriendTrack(const AliVVfriendTrack &){}
-  AliVVfriendTrack& operator=(const AliVVfriendTrack& ){}
 };
 
 #endif