]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliTrackReference.cxx
AddTrial method added, changed trials to unsigned int
[u/mrichter/AliRoot.git] / STEER / AliTrackReference.cxx
index 870cde8fdc2a235e14fd9cc15618e4cc9b63db83..8157ab3b4671aad6ab37c17616f031671ce37101 100644 (file)
 /* $Id$ */
 
 #include "TVirtualMC.h"
+#include "TParticle.h"
 
-#include "AliRun.h"
 #include "AliTrackReference.h"
-#include "AliExternalTrackParam.h"
-#include "AliKalmanTrack.h"
+#include <Riostream.h>
 
 // 
 // Track Reference object is created every time particle is 
@@ -48,7 +47,9 @@ ClassImp(AliTrackReference)
    fPy(0),
    fPz(0),
    fLength(0),
-   fTime(0)
+   fTime(0),
+   fUserId(0),
+   fDetectorId(-999)
 {
   //
   // Default constructor
@@ -57,8 +58,25 @@ ClassImp(AliTrackReference)
   for(Int_t i=0; i<16; i++) ResetBit(BIT(i));
 }
 
+AliTrackReference::AliTrackReference(const AliTrackReference &tr) :
+  TObject(tr),
+  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) :
+AliTrackReference::AliTrackReference(Int_t label, Int_t id) :
   TObject(),
   fTrack(label),
   fX(0),
@@ -68,7 +86,9 @@ AliTrackReference::AliTrackReference(Int_t label) :
   fPy(0),
   fPz(0),
   fLength(gMC->TrackLength()),
-  fTime(gMC->TrackTime())
+  fTime(gMC->TrackTime()),
+  fUserId(0),
+  fDetectorId(id)
 {
   //
   // Create Reference object out of label and
@@ -108,8 +128,11 @@ AliTrackReference::AliTrackReference(Int_t label) :
   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)
 {
   //
@@ -122,27 +145,26 @@ AliExternalTrackParam * AliTrackReference::MakeTrack(const AliTrackReference *re
   Double_t x = ref->X(), y = ref->Y(), z = ref->Z();
   Double_t alpha = TMath::ATan2(y,x);
   Double_t xr = TMath::Sqrt(x*x+y*y);
-  xx[0] = 0;
+  xx[0] = ref->LocalY();
   xx[1] = z;
   xx[3] = ref->Pz()/ref->Pt();
-  Float_t b[3];
-  Float_t xyz[3]={x,y,z};
-  Float_t convConst = 0;
-  (AliKalmanTrack::GetFieldMap())->Field(xyz,b);
-  convConst=1000/0.299792458/(1e-13 - b[2]);
-  xx[4] = 1./(convConst*ref->Pt()); // curvature rpresentation
+  xx[4] = 1./ref->Pt(); 
   if (mass<0) xx[4]*=-1.;  // negative mass - negative direction
   Double_t alphap = TMath::ATan2(ref->Py(),ref->Px())-alpha;
   if (alphap> TMath::Pi()) alphap-=TMath::Pi();
   if (alphap<-TMath::Pi()) alphap+=TMath::Pi();
   xx[2] = TMath::Sin(alphap);
-  xx[4]*=convConst;   // 1/pt representation 
-  //  AliExternalTrackParam * track = new  AliExternalTrackParam(xx,cc,xr,alpha);
+
   AliExternalTrackParam * track = new  AliExternalTrackParam(xr,alpha,xx,cc);
-  track->SetMass(TMath::Abs(mass));
-  //track->StartTimeIntegral();  
-  track->SaveLocalConvConst(); 
   return track;
 }
-
+*/
+//_______________________________________________________________________
+void
+AliTrackReference::Print(Option_t* /*opt*/) const
+{
+  cout << Form("Label %d P=%7.2f (PX,PY,PZ)=(%7.2f,%7.2f,%7.2f) (X,Y,Z)=(%7.2f,%7.2f,%7.2f)"
+               " Length=%7.2f Time=%7.2f UserId=%d",
+              Label(),P(),Px(),Py(),Pz(),X(),Y(),Z(),GetLength(),GetTime(),UserId()) << endl;
+}