02-jun-2005 NvE Bug fix in copy ctor of AliPosition and beginpoint etc... setting...
authornick <nick@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 2 Jun 2005 10:15:22 +0000 (10:15 +0000)
committernick <nick@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 2 Jun 2005 10:15:22 +0000 (10:15 +0000)
                In AliTrack all points are now set after first deleting the existing AliPositionObj
                object instead of using the Ali3Vector::Load() memberfunction.
                The bug arose because of the extension of AliPosition with the possibility to
                store an AliTimestamp. This made AliPosition differ from Ali3Vector w.r.t. datamembers.
                Also "cout << endl;" introduced after the Pylist() call in AliCollider in order to
                separate the Pythia event listing from subsequent output due to the mis-interpretation
                of Fortran carriage-control characters on some systems.

RALICE/AliCollider.cxx
RALICE/AliJet.cxx
RALICE/AliPosition.cxx
RALICE/AliTrack.cxx
RALICE/history.txt

index 7f549c1..a494d06 100644 (file)
@@ -740,7 +740,11 @@ void AliCollider::MakeEvent(Int_t npt,Int_t mlist,Int_t medit)
 
    if (medit >= 0) Pyedit(medit); // Define which particles are to be kept
 
-   if (mlist>=0 && select) Pylist(mlist);
+   if (mlist>=0 && select)
+   {
+    Pylist(mlist);
+    cout << endl;
+   }
 
    npart=GetN();
    for (Int_t jpart=1; jpart<=npart; jpart++)
index 78b3ad1..955f29b 100644 (file)
@@ -214,6 +214,7 @@ void AliJet::SetNtinit(Int_t n)
 // Set the initial maximum number of tracks for this jet
  fNtinit=n;
  fNtmax=n;
+
  if (fTracks)
  {
   delete fTracks;
index d992b45..a7f2f13 100644 (file)
@@ -88,6 +88,7 @@ AliPosition::AliPosition(const AliPosition& p) : Ali3Vector(p)
 {
 // Copy constructor
  fScale=p.fScale;
+ fTstamp=0;
  if (p.fTstamp) fTstamp=new AliTimestamp(*(p.fTstamp));
 }
 ///////////////////////////////////////////////////////////////////////////
index 8efa659..acbdc05 100644 (file)
@@ -125,7 +125,6 @@ AliTrack::~AliTrack()
 // Destructor to delete memory allocated for decay tracks array.
 // This destructor automatically cleares the pointer of this AliTrack
 // from all the link slots of the related AliSignal objects.
-
  Int_t nsig=GetNsignals();
  for (Int_t i=1; i<=nsig; i++)
  {
@@ -870,14 +869,8 @@ AliTrack* AliTrack::GetTrackHypothesis(Int_t j) const
 void AliTrack::SetBeginPoint(AliPosition& p)
 {
 // Store the position of the track begin-point.
- if (!fBegin)
- {
-  fBegin=new AliPositionObj(p);
- }
- else
- {
-  fBegin->Load(p);
- }
+ if (fBegin) delete fBegin;
+ fBegin=new AliPositionObj(p);
 }
 ///////////////////////////////////////////////////////////////////////////
 AliPosition* AliTrack::GetBeginPoint()
@@ -889,14 +882,8 @@ AliPosition* AliTrack::GetBeginPoint()
 void AliTrack::SetEndPoint(AliPosition& p)
 {
 // Store the position of the track end-point.
- if (!fEnd)
- {
-  fEnd=new AliPositionObj(p);
- }
- else
- {
-  fEnd->Load(p);
- }
+ if (fEnd) delete fEnd;
+ fEnd=new AliPositionObj(p);
 }
 ///////////////////////////////////////////////////////////////////////////
 AliPosition* AliTrack::GetEndPoint()
@@ -912,14 +899,8 @@ void AliTrack::SetReferencePoint(AliPosition& p)
 // 3-momentum vector components have been defined.
 // This reference point is the preferable point to start track extrapolations
 // etc... which are sensitive to the components of the 3-momentum vector.
- if (!fRef)
- {
-  fRef=new AliPositionObj(p);
- }
- else
- {
-  fRef->Load(p);
- }
+ if (fRef) delete fRef;
+ fRef=new AliPositionObj(p);
 }
 ///////////////////////////////////////////////////////////////////////////
 AliPosition* AliTrack::GetReferencePoint()
@@ -1060,36 +1041,18 @@ void AliTrack::SetImpactPoint(AliPosition& p,TString q)
  switch (axis)
  {
   case 1: // Impact-point in the plane X=0
-   if (!fImpactYZ)
-   {
-    fImpactYZ=new AliPositionObj(p);
-   }
-   else
-   {
-    fImpactYZ->Load(p);
-   }
+   if (fImpactYZ) delete fImpactYZ;
+   fImpactYZ=new AliPositionObj(p);
    break;
 
   case 2: // Impact-point in the plane Y=0
-   if (!fImpactXZ)
-   {
-    fImpactXZ=new AliPositionObj(p);
-   }
-   else
-   {
-    fImpactXZ->Load(p);
-   }
+   if (fImpactXZ) delete fImpactXZ;
+   fImpactXZ=new AliPositionObj(p);
    break;
 
   case 3: // Impact-point in the plane Z=0
-   if (!fImpactXY)
-   {
-    fImpactXY=new AliPositionObj(p);
-   }
-   else
-   {
-    fImpactXY->Load(p);
-   }
+   if (fImpactXY) delete fImpactXY;
+   fImpactXY=new AliPositionObj(p);
    break;
 
   default: // Unsupported axis
@@ -1143,14 +1106,8 @@ Int_t AliTrack::GetId() const
 void AliTrack::SetClosestPoint(AliPosition& p)
 {
 // Set position p as the point of closest approach w.r.t. some reference
- if (!fClosest)
- {
-  fClosest=new AliPositionObj(p);
- }
- else
- {
-  fClosest->Load(p);
- }
+ if (fClosest) delete fClosest;
+ fClosest=new AliPositionObj(p);
 }
 ///////////////////////////////////////////////////////////////////////////
 AliPosition* AliTrack::GetClosestPoint()
index bf777ae..0d5d7fd 100644 (file)
 25-may-2005 NvE Declaration of unused variable pi removed in AliMath::StudentDist and explicit double
                 specification of integer first argument to pow() in AliMath::FratioPvalue in order
                 to prevent messages from the gcc compiler (thanks Dipo, Philippe and Peter).
+02-jun-2005 NvE Bug fix in copy ctor of AliPosition and beginpoint etc... setting of AliTrack.
+                In AliTrack all points are now set after first deleting the existing AliPositionObj
+                object instead of using the Ali3Vector::Load() memberfunction. 
+                The bug arose because of the extension of AliPosition with the possibility to
+                store an AliTimestamp. This made AliPosition differ from Ali3Vector w.r.t. datamembers.
+                Also "cout << endl;" introduced after the Pylist() call in AliCollider in order to
+                separate the Pythia event listing from subsequent output due to the mis-interpretation
+                of Fortran carriage-control characters on some systems.
                 
  
\ No newline at end of file