]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - RALICE/AliTrack.cxx
Avoid linking with pythia.
[u/mrichter/AliRoot.git] / RALICE / AliTrack.cxx
index 7ba7a349a345d220ebf457bc5be4e2fbe59506a1..acbdc058e28747dfb63d0a0bcaa7c2314257f7df 100644 (file)
@@ -117,6 +117,7 @@ void AliTrack::Init()
  fClosest=0;
  fParent=0;
  fFit=0;
+ fTstamp=0;
 }
 ///////////////////////////////////////////////////////////////////////////
 AliTrack::~AliTrack()
@@ -124,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++)
  {
@@ -188,6 +188,11 @@ AliTrack::~AliTrack()
   delete fFit;
   fFit=0;
  }
+ if (fTstamp)
+ {
+  delete fTstamp;
+  fTstamp=0;
+ }
 }
 ///////////////////////////////////////////////////////////////////////////
 AliTrack::AliTrack(const AliTrack& t) : TNamed(t),Ali4Vector(t)
@@ -205,6 +210,7 @@ AliTrack::AliTrack(const AliTrack& t) : TNamed(t),Ali4Vector(t)
  if (t.fImpactYZ) fImpactYZ=new AliPositionObj(*(t.fImpactYZ));
  if (t.fClosest) fClosest=new AliPositionObj(*(t.fClosest));
  if (t.fFit) fFit=t.fFit->Clone();
+ if (t.fTstamp) fTstamp=new AliTimestamp(*(t.fTstamp));
  fUserId=t.fUserId;
  fChi2=t.fChi2;
  fNdf=t.fNdf;
@@ -315,6 +321,11 @@ void AliTrack::Reset()
   delete fFit;
   fFit=0;
  }
+ if (fTstamp)
+ {
+  delete fTstamp;
+  fTstamp=0;
+ }
 }
 ///////////////////////////////////////////////////////////////////////////
 void AliTrack::Set3Momentum(Ali3Vector& p)
@@ -363,6 +374,7 @@ void AliTrack::Data(TString f)
  if (strlen(name))  cout << " Name : " << name;
  if (strlen(title)) cout << " Title : " << title;
  cout << endl;
+ if (fTstamp) fTstamp->Date(1);
  cout << " Id : " << fUserId << " Code : " << fCode
       << " m : " << m << " dm : " << dm << " Charge : " << fQ
       << " p : " << GetMomentum() << endl;
@@ -857,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()
@@ -876,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()
@@ -899,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()
@@ -1047,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
@@ -1130,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()
@@ -1262,6 +1232,29 @@ TObject* AliTrack::GetFitDetails()
  return fFit;
 }
 ///////////////////////////////////////////////////////////////////////////
+void AliTrack::SetTimestamp(AliTimestamp& t)
+{
+// Store the timestamp for this track.
+ if (fTstamp) delete fTstamp;
+ fTstamp=new AliTimestamp(t);
+}
+///////////////////////////////////////////////////////////////////////////
+AliTimestamp* AliTrack::GetTimestamp()
+{
+// Provide the timestamp of this track.
+ return fTstamp;
+}
+///////////////////////////////////////////////////////////////////////////
+void AliTrack::RemoveTimestamp()
+{
+// Remove the timestamp from this track.
+ if (fTstamp)
+ {
+  delete fTstamp;
+  fTstamp=0;
+ }
+}
+///////////////////////////////////////////////////////////////////////////
 TObject* AliTrack::Clone(const char* name) const
 {
 // Make a deep copy of the current object and provide the pointer to the copy.