62 #ifdef HomogeneousField
63 static void SetField(
float Bz );
86 void Create(
const float Param[],
const float Cov[], Int_t Charge,
float mass );
87 void Create(
const Double_t Param[],
const Double_t Cov[], Int_t Charge,
float mass );
108 float GetX ()
const ;
109 float GetY ()
const ;
110 float GetZ ()
const ;
111 float GetPx ()
const ;
112 float GetPy ()
const ;
113 float GetPz ()
const ;
114 float GetE ()
const ;
115 float GetS ()
const ;
123 #ifdef NonhomogeneousField
124 const float* GetFieldCoeff()
const {
return fieldRegion; }
125 void SetFieldCoeff(
float c,
int i) { fieldRegion[
i] =
c; }
128 const float&
X ()
const {
return fP[0]; }
129 const float&
Y ()
const {
return fP[1]; }
130 const float&
Z ()
const {
return fP[2]; }
131 const float&
Px ()
const {
return fP[3]; }
132 const float&
Py ()
const {
return fP[4]; }
133 const float&
Pz ()
const {
return fP[5]; }
134 const float&
E ()
const {
return fP[6]; }
135 const float&
S ()
const {
return fP[7]; }
136 const char&
Q ()
const {
return fQ; }
147 float GetPt ()
const;
181 int GetP (
float &
P,
float &SigmaP )
const ;
182 int GetPt (
float &
Pt,
float &SigmaPt )
const ;
183 int GetEta (
float &
Eta,
float &SigmaEta )
const ;
184 int GetPhi (
float &Phi,
float &SigmaPhi )
const ;
186 int GetMass (
float &M,
float &SigmaM )
const ;
190 int GetR (
float &
R,
float &SigmaR )
const ;
248 #ifdef HomogeneousField
255 float GetDStoPoint(
const float xyz[3],
float dsdr[6] )
const ;
270 #ifdef HomogeneousField
276 #ifdef HomogeneousField
286 #ifdef HomogeneousField
304 void Transport(
float dS,
const float* dsdr,
float P[],
float C[],
float* dsdr1=0,
float* F=0,
float*
F1=0 )
const ;
313 #ifdef HomogeneousField
314 static float GetFieldAlice();
318 #ifdef HomogeneousField
321 #ifdef NonhomogeneousField
325 float fieldRegion[10];
328 #ifndef KFParticleStandalone
341 #ifdef HomogeneousField
342 inline void KFParticle::SetField(
float Bz )
826 #ifdef NonhomogeneousField
827 for(
int i=0;
i<10;
i++)
828 SetFieldCoeff(Daughter.GetFieldCoeff()[
i],
i);
848 #ifdef NonhomogeneousField
849 for(
int i=0;
i<10;
i++)
850 SetFieldCoeff(Daughter.GetFieldCoeff()[
i],
i);
868 #ifdef NonhomogeneousField
869 for(
int i=0;
i<10;
i++)
870 SetFieldCoeff(vDaughters[0]->GetFieldCoeff()[
i],
i);
881 float dsdr[6] = {0.f};
885 #ifdef HomogeneousField
886 inline void KFParticle::TransportToVertex(
const KFPVertex &
v )
918 #ifdef HomogeneousField
921 #ifdef NonhomogeneousField
926 #ifdef HomogeneousField
927 inline float KFParticle::GetFieldAlice()
934 #ifdef HomogeneousField
944 B[2] = GetFieldAlice();
948 #ifdef NonhomogeneousField
957 const float dz = (xyz[2]-fieldRegion[9]);
958 const float dz2 = dz*
dz;
960 B[0] = fieldRegion[0] + fieldRegion[1]*dz + fieldRegion[2]*dz2;
961 B[1] = fieldRegion[3] + fieldRegion[4]*dz + fieldRegion[5]*dz2;
962 B[2] = fieldRegion[6] + fieldRegion[7]*dz + fieldRegion[8]*dz2;
984 #ifdef HomogeneousField
987 #ifdef NonhomogeneousField
1016 #ifdef HomogeneousField
1019 #ifdef NonhomogeneousField