]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/tracking-ca/AliHLTTPCCAMCTrack.cxx
Fit mathematics improved, obsollete GBTracker cleaned up
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCAMCTrack.cxx
CommitLineData
d54804bf 1// $Id$
ce565086 2// **************************************************************************
d54804bf 3// This file is property of and copyright by the ALICE HLT Project *
4// ALICE Experiment at CERN, All rights reserved. *
5// *
6// Primary Authors: Sergey Gorbunov <sergey.gorbunov@kip.uni-heidelberg.de> *
7// Ivan Kisel <kisel@kip.uni-heidelberg.de> *
8// for The ALICE HLT Project. *
9// *
10// Permission to use, copy, modify and distribute this software and its *
11// documentation strictly for non-commercial purposes is hereby granted *
12// without fee, provided that the above copyright notice appears in all *
13// copies and that both the copyright notice and this permission notice *
14// appear in the supporting documentation. The authors make no claims *
15// about the suitability of this software for any purpose. It is *
16// provided "as is" without express or implied warranty. *
ce565086 17// *
d54804bf 18//***************************************************************************
19
ce565086 20
d54804bf 21#include "AliHLTTPCCAMCTrack.h"
4687b8fc 22#include "AliHLTTPCCAMath.h"
d54804bf 23#include "TParticle.h"
24#include "TDatabasePDG.h"
d54804bf 25
26
27AliHLTTPCCAMCTrack::AliHLTTPCCAMCTrack()
eb30eb49 28 : fPDG(0), fP(0), fPt(0), fNHits(0), fNMCPoints(0), fFirstMCPointID(0), fNReconstructed(0), fSet(0), fNTurns(0)
d54804bf 29{
30 //* Default constructor
31}
32
33
34AliHLTTPCCAMCTrack::AliHLTTPCCAMCTrack( const TParticle *part )
eb30eb49 35 : fPDG(0), fP(0), fPt(0), fNHits(0), fNMCPoints(0), fFirstMCPointID(0), fNReconstructed(0), fSet(0), fNTurns(0)
d54804bf 36{
37 //* Constructor from TParticle
38
39 for( Int_t i=0; i<7; i++ ) fPar[i] = 0;
eb30eb49 40 for( Int_t i=0; i<7; i++ ) fTPCPar[i] = 0;
d54804bf 41 fP = 0;
42 fPt = 0;
43
44 if( !part ) return;
45 TLorentzVector mom, vtx;
46 part->ProductionVertex(vtx);
47 part->Momentum(mom);
48 fPar[0] = part->Vx();
49 fPar[1] = part->Vy();
50 fPar[2] = part->Vz();
51 fP = part->P();
52 fPt = part->Pt();
53 Double_t pi = ( fP >1.e-4 ) ?1./fP :0;
54 fPar[3] = part->Px()*pi;
55 fPar[4] = part->Py()*pi;
56 fPar[5] = part->Pz()*pi;
57 fPar[6] = 0;
eb30eb49 58 fPDG = part->GetPdgCode();
00d07bcd 59 if ( CAMath::Abs(fPDG) < 100000 ){
eb30eb49 60 TParticlePDG *pPDG = TDatabasePDG::Instance()->GetParticle(fPDG);
d54804bf 61 if( pPDG ) fPar[6] = pPDG->Charge()/3.0*pi;
62 }
63}
eb30eb49 64
65void AliHLTTPCCAMCTrack::SetTPCPar( Float_t X, Float_t Y, Float_t Z,
66 Float_t Px, Float_t Py, Float_t Pz )
67{
68 //* Set parameters at TPC entrance
69
70 for( Int_t i=0; i<7; i++ ) fTPCPar[i] = 0;
71
72 fTPCPar[0] = X;
73 fTPCPar[1] = Y;
74 fTPCPar[2] = Z;
00d07bcd 75 Double_t p = CAMath::Sqrt(Px*Px + Py*Py + Pz*Pz);
eb30eb49 76 Double_t pi = ( p >1.e-4 ) ?1./p :0;
77 fTPCPar[3] = Px*pi;
78 fTPCPar[4] = Py*pi;
79 fTPCPar[5] = Pz*pi;
80 fTPCPar[6] = 0;
00d07bcd 81 if ( CAMath::Abs(fPDG) < 100000 ){
eb30eb49 82 TParticlePDG *pPDG = TDatabasePDG::Instance()->GetParticle(fPDG);
83 if( pPDG ) fTPCPar[6] = pPDG->Charge()/3.0*pi;
84 }
85}