fClosest=0;
fParent=0;
fFit=0;
+ fTstamp=0;
}
///////////////////////////////////////////////////////////////////////////
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++)
{
delete fFit;
fFit=0;
}
+ if (fTstamp)
+ {
+ delete fTstamp;
+ fTstamp=0;
+ }
}
///////////////////////////////////////////////////////////////////////////
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;
delete fFit;
fFit=0;
}
+ if (fTstamp)
+ {
+ delete fTstamp;
+ fTstamp=0;
+ }
}
///////////////////////////////////////////////////////////////////////////
void AliTrack::Set3Momentum(Ali3Vector& p)
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;
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()
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()
// 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()
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
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()
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.