+ // Creates empty object
+
+ for(Int_t i=0; i<16; i++) ResetBit(BIT(i));
+}
+
+AliTrackReference::AliTrackReference(const AliTrackReference &tr) :
+ TObject(),
+ fTrack(tr.fTrack),
+ fX(tr.fX),
+ fY(tr.fY),
+ fZ(tr.fZ),
+ fPx(tr.fPx),
+ fPy(tr.fPy),
+ fPz(tr.fPz),
+ fLength(tr.fLength),
+ fTime(tr.fTime),
+ fUserId(tr.fUserId),
+ fDetectorId(tr.fDetectorId)
+{
+ // Copy Constructor
+}
+
+//_______________________________________________________________________
+AliTrackReference::AliTrackReference(Int_t label, Int_t id) :
+ TObject(),
+ fTrack(label),
+ fX(0),
+ fY(0),
+ fZ(0),
+ fPx(0),
+ fPy(0),
+ fPz(0),
+ fLength(gMC->TrackLength()),
+ fTime(gMC->TrackTime()),
+ fUserId(0),
+ fDetectorId(id)
+{
+ //
+ // Create Reference object out of label and
+ // data in TVirtualMC object
+ //
+ // Creates an object and fill all parameters
+ // from data in VirtualMC
+ //
+ // Sylwester Radomski, (S.Radomski@gsi.de)
+ // GSI, Jan 31, 2003
+ //
+
+ Double_t vec[4];
+
+ gMC->TrackPosition(vec[0],vec[1],vec[2]);
+
+ fX = vec[0];
+ fY = vec[1];
+ fZ = vec[2];
+
+ gMC->TrackMomentum(vec[0],vec[1],vec[2],vec[3]);
+
+ fPx = vec[0];
+ fPy = vec[1];
+ fPz = vec[2];
+
+ // Set Up status code
+ // Copy Bits from virtual MC
+
+ for(Int_t i=0; i<16; i++) ResetBit(BIT(i));
+
+ SetBit(BIT(0), gMC->IsNewTrack());
+ SetBit(BIT(1), gMC->IsTrackAlive());
+ SetBit(BIT(2), gMC->IsTrackDisappeared());
+ SetBit(BIT(3), gMC->IsTrackEntering());
+ SetBit(BIT(4), gMC->IsTrackExiting());
+ SetBit(BIT(5), gMC->IsTrackInside());
+ SetBit(BIT(6), gMC->IsTrackOut());
+ SetBit(BIT(7), gMC->IsTrackStop());
+ //
+ // This particle has to be kept
+
+}
+/*
+AliExternalTrackParam * AliTrackReference::MakeTrack(const AliTrackReference *ref, Double_t mass)
+{
+ //
+ // Make dummy track from the track reference
+ // negative mass means opposite charge