fPoints(0),
fCalibContainer(0),
fITStrack(0),
-fTRDtrack(0)
+fTRDtrack(0),
+fTPCOut(0),
+fITSOut(0),
+fTRDIn(0)
{
//
// Default constructor
fPoints(0),
fCalibContainer(0),
fITStrack(0),
-fTRDtrack(0)
+fTRDtrack(0),
+fTPCOut(0),
+fITSOut(0),
+fTRDIn(0)
{
//
// Copy constructor
fCalibContainer->AddLast(o->Clone());
}
}
+
+ if (t.fTPCOut) fTPCOut = new AliExternalTrackParam(*(t.fTPCOut));
+ if (t.fITSOut) fITSOut = new AliExternalTrackParam(*(t.fITSOut));
+ if (t.fTRDIn) fTRDIn = new AliExternalTrackParam(*(t.fTRDIn));
}
AliESDfriendTrack::~AliESDfriendTrack() {
delete fCalibContainer;
delete fITStrack;
delete fTRDtrack;
+ delete fTPCOut;
+ delete fITSOut;
+ delete fTRDIn;
}
if (index>=fCalibContainer->GetEntriesFast()) return 0;
return fCalibContainer->At(index);
}
+
+
+void AliESDfriendTrack::SetTPCOut(const AliExternalTrackParam ¶m) {
+ //
+ // backup TPC out track
+ //
+ delete fTPCOut;
+ fTPCOut=new AliExternalTrackParam(param);
+}
+void AliESDfriendTrack::SetITSOut(const AliExternalTrackParam ¶m) {
+ //
+ // backup ITS out track
+ //
+ delete fITSOut;
+ fITSOut=new AliExternalTrackParam(param);
+}
+void AliESDfriendTrack::SetTRDIn(const AliExternalTrackParam ¶m) {
+ //
+ // backup TRD in track
+ //
+ delete fTRDIn;
+ fTRDIn=new AliExternalTrackParam(param);
+}
+
//-------------------------------------------------------------------------
#include <TObject.h>
+#include <AliExternalTrackParam.h>
class AliTrackPointArray;
class AliKalmanTrack;
AliKalmanTrack *GetITStrack() {return fITStrack;}
void AddCalibObject(TObject * calibObject);
TObject * GetCalibObject(Int_t index);
+ //
+ // parameters backup
+ void SetTPCOut(const AliExternalTrackParam ¶m);
+ void SetITSOut(const AliExternalTrackParam ¶m);
+ void SetTRDIn(const AliExternalTrackParam ¶m);
+ //
+ const AliExternalTrackParam * GetTPCOut(){return fTPCOut;}
+ const AliExternalTrackParam * GetITSOut() { return fITSOut;}
+ const AliExternalTrackParam * GetTRDIn() { return fTRDIn;}
protected:
Float_t f1P; // 1/P (1/(GeV/c))
TObjArray *fCalibContainer; //Array of objects for calibration
AliKalmanTrack *fITStrack; //! pointer to the ITS track (debug purposes)
AliKalmanTrack *fTRDtrack; //! pointer to the TRD track (debug purposes)
-
+ //
+ //
+ AliExternalTrackParam * fTPCOut; // tpc outer parameters
+ AliExternalTrackParam * fITSOut; // its outer parameters
+ AliExternalTrackParam * fTRDIn; // trd inner parameters
+
private:
AliESDfriendTrack &operator=(const AliESDfriendTrack & /* t */) {return *this;}
- ClassDef(AliESDfriendTrack,2) //ESD friend track
+ ClassDef(AliESDfriendTrack,3) //ESD friend track
};
#endif
}
Set(t->GetX(),t->GetAlpha(),t->GetParameter(),t->GetCovariance());
+ if (flags==kITSout) fFriendTrack->SetITSOut(*t);
+ if (flags==kTPCout) fFriendTrack->SetTPCOut(*t);
+ if (flags==kTRDin || flags==kTRDrefit) fFriendTrack->SetTRDIn(*t);
switch (flags) {
if (!fOp) fOp=new AliExternalTrackParam(*t);
else
fOp->Set(t->GetX(),t->GetAlpha(),t->GetParameter(),t->GetCovariance());
- }
+ }
break;
case kTPCin: case kTPCrefit: