2 //***************************************************************************
3 // This file is property of and copyright by the ALICE HLT Project *
4 // ALICE Experiment at CERN, All rights reserved. *
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. *
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. *
17 //***************************************************************************
19 #include "AliHLTTPCCAMCTrack.h"
20 #include "TParticle.h"
21 #include "TDatabasePDG.h"
22 #include "AliHLTTPCCAMath.h"
25 AliHLTTPCCAMCTrack::AliHLTTPCCAMCTrack()
26 : fPDG(0), fP(0), fPt(0), fNHits(0), fNMCPoints(0), fFirstMCPointID(0), fNReconstructed(0), fSet(0), fNTurns(0)
28 //* Default constructor
32 AliHLTTPCCAMCTrack::AliHLTTPCCAMCTrack( const TParticle *part )
33 : fPDG(0), fP(0), fPt(0), fNHits(0), fNMCPoints(0), fFirstMCPointID(0), fNReconstructed(0), fSet(0), fNTurns(0)
35 //* Constructor from TParticle
37 for( Int_t i=0; i<7; i++ ) fPar[i] = 0;
38 for( Int_t i=0; i<7; i++ ) fTPCPar[i] = 0;
43 TLorentzVector mom, vtx;
44 part->ProductionVertex(vtx);
51 Double_t pi = ( fP >1.e-4 ) ?1./fP :0;
52 fPar[3] = part->Px()*pi;
53 fPar[4] = part->Py()*pi;
54 fPar[5] = part->Pz()*pi;
56 fPDG = part->GetPdgCode();
57 if ( CAMath::Abs(fPDG) < 100000 ){
58 TParticlePDG *pPDG = TDatabasePDG::Instance()->GetParticle(fPDG);
59 if( pPDG ) fPar[6] = pPDG->Charge()/3.0*pi;
63 void AliHLTTPCCAMCTrack::SetTPCPar( Float_t X, Float_t Y, Float_t Z,
64 Float_t Px, Float_t Py, Float_t Pz )
66 //* Set parameters at TPC entrance
68 for( Int_t i=0; i<7; i++ ) fTPCPar[i] = 0;
73 Double_t p = CAMath::Sqrt(Px*Px + Py*Py + Pz*Pz);
74 Double_t pi = ( p >1.e-4 ) ?1./p :0;
79 if ( CAMath::Abs(fPDG) < 100000 ){
80 TParticlePDG *pPDG = TDatabasePDG::Instance()->GetParticle(fPDG);
81 if( pPDG ) fTPCPar[6] = pPDG->Charge()/3.0*pi;