}
}
+//_______________________________________________________________
+AliTRDtrackV1 &AliTRDtrackV1::operator=(const AliTRDtrackV1 &t)
+{
+ //
+ // Assignment operator
+ //
+
+ if (this != &t) {
+ ((AliTRDtrackV1 &) t).Copy(*this);
+ }
+
+ return *this;
+
+}
+
+//_____________________________________________________________________________
+void AliTRDtrackV1::Copy(TObject &t) const
+{
+ //
+ // Copy function
+ //
+
+ ((AliTRDtrackV1 &) t).fStatus = fStatus;
+ ((AliTRDtrackV1 &) t).fESDid = fESDid;
+ ((AliTRDtrackV1 &) t).fDE = fDE;
+ ((AliTRDtrackV1 &) t).fkReconstructor = fkReconstructor;
+ ((AliTRDtrackV1 &) t).fBackupTrack = 0x0;
+ ((AliTRDtrackV1 &) t).fTrackLow = 0x0;
+ ((AliTRDtrackV1 &) t).fTrackHigh = 0x0;
+
+ for(Int_t ip = 0; ip < kNplane; ip++) {
+ ((AliTRDtrackV1 &) t).fTrackletIndex[ip] = fTrackletIndex[ip];
+ ((AliTRDtrackV1 &) t).fTracklet[ip] = fTracklet[ip];
+ }
+ if (fTrackLow) {
+ ((AliTRDtrackV1 &) t).fTrackLow = new AliExternalTrackParam(*fTrackLow);
+ }
+ if (fTrackHigh){
+ ((AliTRDtrackV1 &) t).fTrackHigh = new AliExternalTrackParam(*fTrackHigh);
+ }
+
+ for (Int_t i = 0; i < 3; i++) {
+ ((AliTRDtrackV1 &) t).fBudget[i] = fBudget[i];
+ }
+ for (Int_t is = 0; is < AliPID::kSPECIES; is++) {
+ ((AliTRDtrackV1 &) t).fPID[is] = fPID[is];
+ }
+
+}
+
//_______________________________________________________________
Bool_t AliTRDtrackV1::CookLabel(Float_t wrong)
{
}
//_____________________________________________________________________________
-Int_t AliTRDtrackV1::GetProlongation(Double_t xk, Double_t &y, Double_t &z)
+Int_t AliTRDtrackV1::GetProlongation(Double_t xk, Double_t &y, Double_t &z) const
{
//
// Find a prolongation at given x
}
//_______________________________________________________________
-void AliTRDtrackV1::SetTrackLow()
+void AliTRDtrackV1::SetTrackIn()
{
+// Save location of birth for the TRD track
+// If the pointer is not valid allocate memory
+//
const AliExternalTrackParam *op = dynamic_cast<const AliExternalTrackParam*>(this);
- fTrackLow = fTrackLow ? new(fTrackLow) AliExternalTrackParam(*op) : new AliExternalTrackParam(*op);
+
+ if(fTrackLow){
+ fTrackLow->~AliExternalTrackParam();
+ new(fTrackLow) AliExternalTrackParam(*op);
+ } else fTrackLow = new AliExternalTrackParam(*op);
}
//_______________________________________________________________
-void AliTRDtrackV1::SetTrackHigh(const AliExternalTrackParam *op)
+void AliTRDtrackV1::SetTrackOut(const AliExternalTrackParam *op)
{
+// Save location of death for the TRD track
+// If the pointer is not valid allocate memory
+//
if(!op) op = dynamic_cast<const AliExternalTrackParam*>(this);
- fTrackHigh = fTrackHigh ? new(fTrackHigh) AliExternalTrackParam(*op) : new AliExternalTrackParam(*op);
+ if(fTrackHigh){
+ fTrackHigh->~AliExternalTrackParam();
+ new(fTrackHigh) AliExternalTrackParam(*op);
+ } else fTrackHigh = new AliExternalTrackParam(*op);
}
//_______________________________________________________________
//_______________________________________________________________
-Bool_t AliTRDtrackV1::Update(Double_t *p, Double_t *cov, Double_t chi2, Bool_t use)
+void AliTRDtrackV1::UpdateChi2(Float_t chi2)
{
- //
- // Update track
- //
- AliDebug(2, Form("Point:\n p=[%6.2f %6.2f]\n V=[%6.2f %6.2f]\n [%6.2f %6.2f]", p[0], p[1], cov[0], cov[1], cov[1], cov[2]));
- if(use && !AliExternalTrackParam::Update(p, cov)) return kFALSE;
-
- // Register info to track
- SetNumberOfClusters();
+// Update chi2/track with one tracklet contribution
SetChi2(GetChi2() + chi2);
- return kTRUE;
}
//_______________________________________________________________