#include "AliESDtrack.h"
#include "AliTPCseed.h"
#include "AliITStrackMI.h"
-#include "AliTRDtrack.h"
+#include "AliTRDtrackV1.h"
#include "AliMCInfo.h"
#include "AliESDRecInfo.h"
fTrackF(0), // friend track
fTPCtrack(0), // tpc track
fITStrack(0), // its track
- fTRDtrack(0), // trd track
- fTPCtrackAtVertex(0) // tpc track propagated to the vertex
+ fTRDtrack(0) // trd track
{
//
// default constructor
AliESDRecInfo::AliESDRecInfo(const AliESDRecInfo& recinfo):
- TObject()
+ TObject(),
+ fITSOn(0), // ITS refitted inward
+ fTRDOn(0), // ITS refitted inward
+ fDeltaP(0), //delta of momenta
+ fSign(0), // sign
+ fReconstructed(0), //flag if track was reconstructed
+ fFake(0), // fake track
+ fMultiple(0), // number of reconstructions
+ fTPCOn(0), // TPC refitted inward
+ fBestTOFmatch(0), //best matching between times
+ fESDtrack(0), // esd track
+ fTrackF(0), // friend track
+ fTPCtrack(0), // tpc track
+ fITStrack(0), // its track
+ fTRDtrack(0) // trd track
{
//
//
}
+AliESDRecInfo& AliESDRecInfo::operator=(const AliESDRecInfo& info) {
+ //
+ // Assignment operator
+ //
+ this->~AliESDRecInfo();
+ new (this) AliESDRecInfo(info);
+ return *this;
+}
+
+
+
AliESDRecInfo::~AliESDRecInfo()
{
//
if (fESDtrack) delete fESDtrack;
fESDtrack = (AliESDtrack*)track->Clone();
- if (0 &&track->GetFriendTrack()){
+ if (track->GetFriendTrack()){
if (fTrackF) delete fTrackF;
fTrackF = (AliESDfriendTrack*)track->GetFriendTrack()->Clone();
- if (fTrackF->GetCalibObject(0)){
- if (fTPCtrack) delete fTPCtrack;
- fTPCtrack = (AliTPCseed*)fTrackF->GetCalibObject(0)->Clone();
+ Int_t icalib=0;
+ TObject *cobject=0;
+ //
+ while (fTrackF->GetCalibObject(icalib)){
+ cobject=fTrackF->GetCalibObject(icalib);
+ if (dynamic_cast<AliTPCseed*>(cobject)){
+ if (fTPCtrack) delete fTPCtrack;
+ fTPCtrack = (AliTPCseed*)(dynamic_cast<AliTPCseed*>(cobject))->Clone();
+ } else if (dynamic_cast<AliTRDtrackV1*>(cobject)){
+ if (fTRDtrack) delete fTRDtrack;
+ fTRDtrack = (AliTRDtrackV1*)(dynamic_cast<AliTRDtrackV1*>(cobject))->Clone();
+ }
+ icalib++;
}
}
fSign =sign;
fTPCPools[4] = sign*(1./fTPCinP0[3]-1./fTPCinP1[3])/TMath::Sqrt(TMath::Abs(cov[14]));
}
- //
- if (fESDtrack && fESDtrack->GetTPCInnerParam()){
- AliExternalTrackParam *track = new AliExternalTrackParam(*fESDtrack->GetTPCInnerParam());
- const Double_t kRadius = 3; // beam pipe radius
- const Double_t kMaxStep = 5; // max step
- const Double_t kMaxD = 123456; // max distance to prim vertex
- Double_t fieldZ = AliTracker::GetBz(); //
- AliTracker::PropagateTrackTo(track,kRadius,info->GetMass(),kMaxStep,kTRUE);
- AliTracker::PropagateTrackTo(track,0,info->GetMass(),0.5,kTRUE);
- //track->RelateToVertex(fEvent->GetVertex(),fieldZ, kMaxD);
- fTPCtrackAtVertex = track;
- }else{
- delete fTPCtrackAtVertex;
- fTPCtrackAtVertex=0;
- }
}