]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/ESD/AliKFParticle.h
Fix (Alexander)
[u/mrichter/AliRoot.git] / STEER / ESD / AliKFParticle.h
CommitLineData
f826d409 1//---------------------------------------------------------------------------------
2// The AliKFParticle class
3// .
4// @author S.Gorbunov, I.Kisel
5// @version 1.0
6// @since 13.05.07
7//
8// Class to reconstruct and store the decayed particle parameters.
9// The method is described in CBM-SOFT note 2007-003,
10// ``Reconstruction of decayed particles based on the Kalman filter'',
11// http://www.gsi.de/documents/DOC-2007-May-14-1.pdf
12//
13// This class is ALICE interface to general mathematics in AliKFParticleBase
14//
15// -= Copyright &copy ALICE HLT Group =-
16//_________________________________________________________________________________
17
18#ifndef ALIKFPARTICLE_H
19#define ALIKFPARTICLE_H
20
21#include "AliKFParticleBase.h"
cfb5a2e1 22#include "TMath.h"
f826d409 23
706952f5 24class AliVTrack;
cfb5a2e1 25class AliVVertex;
f826d409 26
f826d409 27class AliKFParticle :public AliKFParticleBase
28{
29
30 public:
31
32 //*
33 //* INITIALIZATION
34 //*
35
4bbc290d 36 //* Set magnetic field for all particles
37
38 static void SetField( Double_t Bz );
39
f826d409 40 //* Constructor (empty)
41
e7b09c95 42 AliKFParticle():AliKFParticleBase(){ ; }
f826d409 43
44 //* Destructor (empty)
45
e7b09c95 46 ~AliKFParticle(){ ; }
f826d409 47
616ffc76 48 //* Construction of mother particle by its 2-3-4 daughters
49
537b06a4 50 AliKFParticle( const AliKFParticle &d1, const AliKFParticle &d2, Bool_t gamma = kFALSE );
616ffc76 51
52 AliKFParticle( const AliKFParticle &d1, const AliKFParticle &d2,
53 const AliKFParticle &d3 );
54
55 AliKFParticle( const AliKFParticle &d1, const AliKFParticle &d2,
56 const AliKFParticle &d3, const AliKFParticle &d4 );
57
e7b09c95 58 //* Initialisation from "cartesian" coordinates ( X Y Z Px Py Pz )
59 //* Parameters, covariance matrix, charge and PID hypothesis should be provided
60
7972a8db 61 void Create( const Double_t Param[], const Double_t Cov[], Int_t Charge, Int_t PID );
e7b09c95 62
63 //* Initialisation from ALICE track, PID hypothesis shoould be provided
f826d409 64
706952f5 65 AliKFParticle( const AliVTrack &track, Int_t PID );
f826d409 66
706952f5 67 //* Initialisation from VVertex
f826d409 68
706952f5 69 AliKFParticle( const AliVVertex &vertex );
f826d409 70
f826d409 71 //* Initialise covariance matrix and set current parameters to 0.0
72
73 void Initialize();
74
75 //* Set decay vertex parameters for linearisation
76
77 void SetVtxGuess( Double_t x, Double_t y, Double_t z );
78
79 //*
80 //* ACCESSORS
81 //*
82
83 //* Simple accessors
84
85 Double_t GetX () const ; //* x of current position
86 Double_t GetY () const ; //* y of current position
87 Double_t GetZ () const ; //* z of current position
88 Double_t GetPx () const ; //* x-compoment of 3-momentum
89 Double_t GetPy () const ; //* y-compoment of 3-momentum
90 Double_t GetPz () const ; //* z-compoment of 3-momentum
91 Double_t GetE () const ; //* energy
92 Double_t GetS () const ; //* decay length / momentum
93 Int_t GetQ () const ; //* charge
94 Double_t GetChi2 () const ; //* chi^2
95 Int_t GetNDF () const ; //* Number of Degrees of Freedom
91b25235 96
97 const Double_t& X () const { return fP[0]; }
98 const Double_t& Y () const { return fP[1]; }
99 const Double_t& Z () const { return fP[2]; }
100 const Double_t& Px () const { return fP[3]; }
101 const Double_t& Py () const { return fP[4]; }
102 const Double_t& Pz () const { return fP[5]; }
103 const Double_t& E () const { return fP[6]; }
104 const Double_t& S () const { return fP[7]; }
105 const Int_t & Q () const { return fQ; }
106 const Double_t& Chi2 () const { return fChi2; }
107 const Int_t & NDF () const { return fNDF; }
f826d409 108
109 Double_t GetParameter ( int i ) const ;
110 Double_t GetCovariance( int i ) const ;
111 Double_t GetCovariance( int i, int j ) const ;
112
e7b09c95 113 //* Accessors with calculations, value returned w/o error flag
114
706952f5 115 Double_t GetP () const; //* momentum
116 Double_t GetPt () const; //* transverse momentum
117 Double_t GetEta () const; //* pseudorapidity
118 Double_t GetPhi () const; //* phi
119 Double_t GetMomentum () const; //* momentum (same as GetP() )
120 Double_t GetMass () const; //* mass
121 Double_t GetDecayLength () const; //* decay length
446ce366 122 Double_t GetDecayLengthXY () const; //* decay length in XY
706952f5 123 Double_t GetLifeTime () const; //* life time
124 Double_t GetR () const; //* distance to the origin
e7b09c95 125
126 //* Accessors to estimated errors
127
706952f5 128 Double_t GetErrX () const ; //* x of current position
e7b09c95 129 Double_t GetErrY () const ; //* y of current position
130 Double_t GetErrZ () const ; //* z of current position
131 Double_t GetErrPx () const ; //* x-compoment of 3-momentum
132 Double_t GetErrPy () const ; //* y-compoment of 3-momentum
133 Double_t GetErrPz () const ; //* z-compoment of 3-momentum
134 Double_t GetErrE () const ; //* energy
135 Double_t GetErrS () const ; //* decay length / momentum
706952f5 136 Double_t GetErrP () const ; //* momentum
137 Double_t GetErrPt () const ; //* transverse momentum
138 Double_t GetErrEta () const ; //* pseudorapidity
139 Double_t GetErrPhi () const ; //* phi
140 Double_t GetErrMomentum () const ; //* momentum
141 Double_t GetErrMass () const ; //* mass
142 Double_t GetErrDecayLength () const ; //* decay length
446ce366 143 Double_t GetErrDecayLengthXY () const ; //* decay length in XY
706952f5 144 Double_t GetErrLifeTime () const ; //* life time
145 Double_t GetErrR () const ; //* distance to the origin
e7b09c95 146
f826d409 147 //* Accessors with calculations( &value, &estimated sigma )
148 //* error flag returned (0 means no error during calculations)
149
706952f5 150 int GetP ( Double_t &P, Double_t &SigmaP ) const ; //* momentum
151 int GetPt ( Double_t &Pt, Double_t &SigmaPt ) const ; //* transverse momentum
152 int GetEta ( Double_t &Eta, Double_t &SigmaEta ) const ; //* pseudorapidity
153 int GetPhi ( Double_t &Phi, Double_t &SigmaPhi ) const ; //* phi
154 int GetMomentum ( Double_t &P, Double_t &SigmaP ) const ; //* momentum
155 int GetMass ( Double_t &M, Double_t &SigmaM ) const ; //* mass
156 int GetDecayLength ( Double_t &L, Double_t &SigmaL ) const ; //* decay length
446ce366 157 int GetDecayLengthXY ( Double_t &L, Double_t &SigmaL ) const ; //* decay length in XY
158 int GetLifeTime ( Double_t &T, Double_t &SigmaT ) const ; //* life time
706952f5 159 int GetR ( Double_t &R, Double_t &SigmaR ) const ; //* R
f826d409 160
e7b09c95 161
f826d409 162 //*
163 //* MODIFIERS
164 //*
165
166 Double_t & X () ;
167 Double_t & Y () ;
168 Double_t & Z () ;
169 Double_t & Px () ;
170 Double_t & Py () ;
171 Double_t & Pz () ;
172 Double_t & E () ;
173 Double_t & S () ;
174 Int_t & Q () ;
175 Double_t & Chi2 () ;
176 Int_t & NDF () ;
177
178 Double_t & Parameter ( int i ) ;
179 Double_t & Covariance( int i ) ;
180 Double_t & Covariance( int i, int j ) ;
bb4bc052 181 Double_t * Parameters () ;
182 Double_t * CovarianceMatrix() ;
f826d409 183
184 //*
185 //* CONSTRUCTION OF THE PARTICLE BY ITS DAUGHTERS AND MOTHER
186 //* USING THE KALMAN FILTER METHOD
187 //*
188
189
616ffc76 190 //* Add daughter to the particle
f826d409 191
616ffc76 192 void AddDaughter( const AliKFParticle &Daughter );
f826d409 193
616ffc76 194 //* Add daughter via += operator: ex.{ D0; D0+=Pion; D0+= Kaon; }
f826d409 195
616ffc76 196 void operator +=( const AliKFParticle &Daughter );
f826d409 197
198 //* Set production vertex
199
200 void SetProductionVertex( const AliKFParticle &Vtx );
201
e7b09c95 202 //* Set mass constraint
f826d409 203
e7b09c95 204 void SetMassConstraint( Double_t Mass, Double_t SigmaMass = 0 );
f826d409 205
e7b09c95 206 //* Set no decay length for resonances
207
208 void SetNoDecayLength();
209
f826d409 210 //* Everything in one go
211
212 void Construct( const AliKFParticle *vDaughters[], int NDaughters,
706952f5 213 const AliKFParticle *ProdVtx=0, Double_t Mass=-1, Bool_t IsConstrained=0 );
f826d409 214
215 //*
216 //* TRANSPORT
217 //*
218 //* ( main transportation parameter is S = SignedPath/Momentum )
219 //* ( parameters of decay & production vertices are stored locally )
220 //*
221
222 //* Transport the particle to its decay vertex
223
224 void TransportToDecayVertex();
225
226 //* Transport the particle to its production vertex
227
228 void TransportToProductionVertex();
229
230 //* Transport the particle close to xyz[] point
231
232 void TransportToPoint( const Double_t xyz[] );
233
706952f5 234 //* Transport the particle close to VVertex
f826d409 235
706952f5 236 void TransportToVertex( const AliVVertex &v );
f826d409 237
238 //* Transport the particle close to another particle p
239
240 void TransportToParticle( const AliKFParticle &p );
241
242 //* Transport the particle on dS parameter (SignedPath/Momentum)
243
244 void TransportToDS( Double_t dS );
245
246 //* Get dS to a certain space point
247
248 Double_t GetDStoPoint( const Double_t xyz[] ) const ;
249
250 //* Get dS to other particle p (dSp for particle p also returned)
251
252 void GetDStoParticle( const AliKFParticle &p,
253 Double_t &DS, Double_t &DSp ) const ;
254
e7b09c95 255 //* Get dS to other particle p in XY-plane
256
257 void GetDStoParticleXY( const AliKFParticleBase &p,
258 Double_t &DS, Double_t &DSp ) const ;
259
f826d409 260 //*
261 //* OTHER UTILITIES
262 //*
263
264
265 //* Calculate distance from another object [cm]
266
267 Double_t GetDistanceFromVertex( const Double_t vtx[] ) const ;
268 Double_t GetDistanceFromVertex( const AliKFParticle &Vtx ) const ;
706952f5 269 Double_t GetDistanceFromVertex( const AliVVertex &Vtx ) const ;
f826d409 270 Double_t GetDistanceFromParticle( const AliKFParticle &p ) const ;
271
272 //* Calculate sqrt(Chi2/ndf) deviation from another object
273 //* ( v = [xyz]-vertex, Cv=[Cxx,Cxy,Cyy,Cxz,Cyz,Czz]-covariance matrix )
274
275 Double_t GetDeviationFromVertex( const Double_t v[], const Double_t Cv[]=0 ) const ;
276 Double_t GetDeviationFromVertex( const AliKFParticle &Vtx ) const ;
706952f5 277 Double_t GetDeviationFromVertex( const AliVVertex &Vtx ) const ;
f826d409 278 Double_t GetDeviationFromParticle( const AliKFParticle &p ) const ;
e7b09c95 279
280 //* Calculate distance from another object [cm] in XY-plane
281
446ce366 282 Bool_t GetDistanceFromVertexXY( const Double_t vtx[], Double_t &val, Double_t &err ) const ;
283 Bool_t GetDistanceFromVertexXY( const Double_t vtx[], const Double_t Cv[], Double_t &val, Double_t &err ) const ;
284 Bool_t GetDistanceFromVertexXY( const AliKFParticle &Vtx, Double_t &val, Double_t &err ) const ;
285 Bool_t GetDistanceFromVertexXY( const AliVVertex &Vtx, Double_t &val, Double_t &err ) const ;
286
e7b09c95 287 Double_t GetDistanceFromVertexXY( const Double_t vtx[] ) const ;
288 Double_t GetDistanceFromVertexXY( const AliKFParticle &Vtx ) const ;
706952f5 289 Double_t GetDistanceFromVertexXY( const AliVVertex &Vtx ) const ;
e7b09c95 290 Double_t GetDistanceFromParticleXY( const AliKFParticle &p ) const ;
291
292 //* Calculate sqrt(Chi2/ndf) deviation from another object in XY plane
293 //* ( v = [xyz]-vertex, Cv=[Cxx,Cxy,Cyy,Cxz,Cyz,Czz]-covariance matrix )
294
295 Double_t GetDeviationFromVertexXY( const Double_t v[], const Double_t Cv[]=0 ) const ;
296 Double_t GetDeviationFromVertexXY( const AliKFParticle &Vtx ) const ;
706952f5 297 Double_t GetDeviationFromVertexXY( const AliVVertex &Vtx ) const ;
e7b09c95 298 Double_t GetDeviationFromParticleXY( const AliKFParticle &p ) const ;
299
300 //* Calculate opennig angle between two particles
301
302 Double_t GetAngle ( const AliKFParticle &p ) const ;
303 Double_t GetAngleXY( const AliKFParticle &p ) const ;
304 Double_t GetAngleRZ( const AliKFParticle &p ) const ;
f826d409 305
306 //* Subtract the particle from the vertex
307
308 void SubtractFromVertex( AliKFParticle &v ) const ;
f826d409 309
a65041d0 310 //* Special method for creating gammas
311
312 void ConstructGamma( const AliKFParticle &daughter1,
313 const AliKFParticle &daughter2 );
91b25235 314
315 // * Pseudo Proper Time of decay = (r*pt) / |pt| * M/|pt|
316 // @primVertex - primary vertex
317 // @mass - mass of the mother particle (in the case of "Hb -> JPsi" it would be JPsi mass)
318 // @*timeErr2 - squared error of the decay time. If timeErr2 = 0 it isn't calculated
319 Double_t GetPseudoProperDecayTime( const AliKFParticle &primVertex, const Double_t& mass, Double_t* timeErr2 = 0 ) const;
320
f826d409 321 protected:
322
323 //*
324 //* INTERNAL STUFF
706952f5 325 //*
f826d409 326
327 //* Method to access ALICE field
328
4bbc290d 329 static Double_t GetFieldAlice();
f826d409 330
331 //* Other methods required by the abstract AliKFParticleBase class
332
333 void GetFieldValue( const Double_t xyz[], Double_t B[] ) const ;
334 void GetDStoParticle( const AliKFParticleBase &p, Double_t &DS, Double_t &DSp )const ;
335 void Transport( Double_t dS, Double_t P[], Double_t C[] ) const ;
616ffc76 336 static void GetExternalTrackParam( const AliKFParticleBase &p, Double_t &X, Double_t &Alpha, Double_t P[5] ) ;
f826d409 337
706952f5 338 //void GetDStoParticleALICE( const AliKFParticleBase &p, Double_t &DS, Double_t &DS1 ) const;
339
340
4bbc290d 341 private:
342
343 static Double_t fgBz; //* Bz compoment of the magnetic field
f826d409 344
616ffc76 345 ClassDef( AliKFParticle, 1 );
f826d409 346
347};
348
349
350
351//---------------------------------------------------------------------
352//
353// Inline implementation of the AliKFParticle methods
354//
355//---------------------------------------------------------------------
356
357
4bbc290d 358inline void AliKFParticle::SetField( Double_t Bz )
359{
de0d0ceb 360 fgBz = Bz;
4bbc290d 361}
f826d409 362
616ffc76 363inline AliKFParticle::AliKFParticle( const AliKFParticle &d1,
364 const AliKFParticle &d2,
365 const AliKFParticle &d3 )
366{
367 AliKFParticle mother;
368 mother+= d1;
369 mother+= d2;
370 mother+= d3;
371 *this = mother;
372}
373
374inline AliKFParticle::AliKFParticle( const AliKFParticle &d1,
375 const AliKFParticle &d2,
376 const AliKFParticle &d3,
377 const AliKFParticle &d4 )
378{
379 AliKFParticle mother;
380 mother+= d1;
381 mother+= d2;
382 mother+= d3;
383 mother+= d4;
384 *this = mother;
385}
386
387
f826d409 388inline void AliKFParticle::Initialize()
389{
390 AliKFParticleBase::Initialize();
391}
392
393inline void AliKFParticle::SetVtxGuess( Double_t x, Double_t y, Double_t z )
394{
395 AliKFParticleBase::SetVtxGuess(x,y,z);
396}
397
398inline Double_t AliKFParticle::GetX () const
399{
400 return AliKFParticleBase::GetX();
401}
402
403inline Double_t AliKFParticle::GetY () const
404{
405 return AliKFParticleBase::GetY();
406}
407
408inline Double_t AliKFParticle::GetZ () const
409{
410 return AliKFParticleBase::GetZ();
411}
412
413inline Double_t AliKFParticle::GetPx () const
414{
415 return AliKFParticleBase::GetPx();
416}
417
418inline Double_t AliKFParticle::GetPy () const
419{
420 return AliKFParticleBase::GetPy();
421}
422
423inline Double_t AliKFParticle::GetPz () const
424{
425 return AliKFParticleBase::GetPz();
426}
427
428inline Double_t AliKFParticle::GetE () const
429{
430 return AliKFParticleBase::GetE();
431}
432
433inline Double_t AliKFParticle::GetS () const
434{
435 return AliKFParticleBase::GetS();
436}
437
438inline Int_t AliKFParticle::GetQ () const
439{
440 return AliKFParticleBase::GetQ();
441}
442
443inline Double_t AliKFParticle::GetChi2 () const
444{
445 return AliKFParticleBase::GetChi2();
446}
447
448inline Int_t AliKFParticle::GetNDF () const
449{
450 return AliKFParticleBase::GetNDF();
451}
452
453inline Double_t AliKFParticle::GetParameter ( int i ) const
454{
455 return AliKFParticleBase::GetParameter(i);
456}
457
458inline Double_t AliKFParticle::GetCovariance( int i ) const
459{
460 return AliKFParticleBase::GetCovariance(i);
461}
462
463inline Double_t AliKFParticle::GetCovariance( int i, int j ) const
464{
465 return AliKFParticleBase::GetCovariance(i,j);
466}
467
e7b09c95 468
706952f5 469inline Double_t AliKFParticle::GetP () const
470{
471 Double_t par, err;
472 if( AliKFParticleBase::GetMomentum( par, err ) ) return 0;
473 else return par;
474}
475
476inline Double_t AliKFParticle::GetPt () const
477{
478 Double_t par, err;
479 if( AliKFParticleBase::GetPt( par, err ) ) return 0;
480 else return par;
481}
482
483inline Double_t AliKFParticle::GetEta () const
484{
485 Double_t par, err;
486 if( AliKFParticleBase::GetEta( par, err ) ) return 0;
487 else return par;
488}
489
490inline Double_t AliKFParticle::GetPhi () const
491{
492 Double_t par, err;
493 if( AliKFParticleBase::GetPhi( par, err ) ) return 0;
494 else return par;
495}
496
e7b09c95 497inline Double_t AliKFParticle::GetMomentum () const
498{
499 Double_t par, err;
500 if( AliKFParticleBase::GetMomentum( par, err ) ) return 0;
501 else return par;
502}
503
504inline Double_t AliKFParticle::GetMass () const
505{
506 Double_t par, err;
507 if( AliKFParticleBase::GetMass( par, err ) ) return 0;
508 else return par;
509}
510
511inline Double_t AliKFParticle::GetDecayLength () const
512{
513 Double_t par, err;
514 if( AliKFParticleBase::GetDecayLength( par, err ) ) return 0;
515 else return par;
516}
517
446ce366 518inline Double_t AliKFParticle::GetDecayLengthXY () const
519{
520 Double_t par, err;
521 if( AliKFParticleBase::GetDecayLengthXY( par, err ) ) return 0;
522 else return par;
523}
524
e7b09c95 525inline Double_t AliKFParticle::GetLifeTime () const
526{
527 Double_t par, err;
528 if( AliKFParticleBase::GetLifeTime( par, err ) ) return 0;
529 else return par;
530}
531
706952f5 532inline Double_t AliKFParticle::GetR () const
533{
534 Double_t par, err;
535 if( AliKFParticleBase::GetR( par, err ) ) return 0;
536 else return par;
537}
538
e7b09c95 539inline Double_t AliKFParticle::GetErrX () const
540{
541 return TMath::Sqrt(TMath::Abs( GetCovariance(0,0) ));
542}
543
544inline Double_t AliKFParticle::GetErrY () const
545{
546 return TMath::Sqrt(TMath::Abs( GetCovariance(1,1) ));
547}
548
549inline Double_t AliKFParticle::GetErrZ () const
550{
551 return TMath::Sqrt(TMath::Abs( GetCovariance(2,2) ));
552}
553
554inline Double_t AliKFParticle::GetErrPx () const
555{
556 return TMath::Sqrt(TMath::Abs( GetCovariance(3,3) ));
557}
558
559inline Double_t AliKFParticle::GetErrPy () const
560{
561 return TMath::Sqrt(TMath::Abs( GetCovariance(4,4) ));
562}
563
564inline Double_t AliKFParticle::GetErrPz () const
565{
566 return TMath::Sqrt(TMath::Abs( GetCovariance(5,5) ));
567}
568
569inline Double_t AliKFParticle::GetErrE () const
570{
571 return TMath::Sqrt(TMath::Abs( GetCovariance(6,6) ));
572}
573
574inline Double_t AliKFParticle::GetErrS () const
575{
576 return TMath::Sqrt(TMath::Abs( GetCovariance(7,7) ));
577}
578
706952f5 579inline Double_t AliKFParticle::GetErrP () const
580{
581 Double_t par, err;
582 if( AliKFParticleBase::GetMomentum( par, err ) ) return 1.e10;
583 else return err;
584}
585
586inline Double_t AliKFParticle::GetErrPt () const
587{
588 Double_t par, err;
589 if( AliKFParticleBase::GetPt( par, err ) ) return 1.e10;
590 else return err;
591}
592
593inline Double_t AliKFParticle::GetErrEta () const
594{
595 Double_t par, err;
596 if( AliKFParticleBase::GetEta( par, err ) ) return 1.e10;
597 else return err;
598}
599
600inline Double_t AliKFParticle::GetErrPhi () const
601{
602 Double_t par, err;
603 if( AliKFParticleBase::GetPhi( par, err ) ) return 1.e10;
604 else return err;
605}
606
e7b09c95 607inline Double_t AliKFParticle::GetErrMomentum () const
608{
609 Double_t par, err;
610 if( AliKFParticleBase::GetMomentum( par, err ) ) return 1.e10;
611 else return err;
612}
613
614inline Double_t AliKFParticle::GetErrMass () const
615{
616 Double_t par, err;
617 if( AliKFParticleBase::GetMass( par, err ) ) return 1.e10;
618 else return err;
619}
620
621inline Double_t AliKFParticle::GetErrDecayLength () const
622{
623 Double_t par, err;
624 if( AliKFParticleBase::GetDecayLength( par, err ) ) return 1.e10;
625 else return err;
626}
627
446ce366 628inline Double_t AliKFParticle::GetErrDecayLengthXY () const
629{
630 Double_t par, err;
631 if( AliKFParticleBase::GetDecayLengthXY( par, err ) ) return 1.e10;
632 else return err;
633}
634
e7b09c95 635inline Double_t AliKFParticle::GetErrLifeTime () const
636{
637 Double_t par, err;
638 if( AliKFParticleBase::GetLifeTime( par, err ) ) return 1.e10;
639 else return err;
640}
641
706952f5 642inline Double_t AliKFParticle::GetErrR () const
643{
644 Double_t par, err;
645 if( AliKFParticleBase::GetR( par, err ) ) return 1.e10;
646 else return err;
647}
648
649
650inline int AliKFParticle::GetP( Double_t &P, Double_t &SigmaP ) const
651{
652 return AliKFParticleBase::GetMomentum( P, SigmaP );
653}
654
655inline int AliKFParticle::GetPt( Double_t &Pt, Double_t &SigmaPt ) const
656{
657 return AliKFParticleBase::GetPt( Pt, SigmaPt );
658}
659
660inline int AliKFParticle::GetEta( Double_t &Eta, Double_t &SigmaEta ) const
661{
662 return AliKFParticleBase::GetEta( Eta, SigmaEta );
663}
664
665inline int AliKFParticle::GetPhi( Double_t &Phi, Double_t &SigmaPhi ) const
666{
667 return AliKFParticleBase::GetPhi( Phi, SigmaPhi );
668}
e7b09c95 669
f826d409 670inline int AliKFParticle::GetMomentum( Double_t &P, Double_t &SigmaP ) const
671{
672 return AliKFParticleBase::GetMomentum( P, SigmaP );
673}
674
675inline int AliKFParticle::GetMass( Double_t &M, Double_t &SigmaM ) const
676{
677 return AliKFParticleBase::GetMass( M, SigmaM );
678}
679
680inline int AliKFParticle::GetDecayLength( Double_t &L, Double_t &SigmaL ) const
681{
682 return AliKFParticleBase::GetDecayLength( L, SigmaL );
683}
684
446ce366 685inline int AliKFParticle::GetDecayLengthXY( Double_t &L, Double_t &SigmaL ) const
686{
687 return AliKFParticleBase::GetDecayLengthXY( L, SigmaL );
688}
689
f826d409 690inline int AliKFParticle::GetLifeTime( Double_t &T, Double_t &SigmaT ) const
691{
692 return AliKFParticleBase::GetLifeTime( T, SigmaT );
693}
694
706952f5 695inline int AliKFParticle::GetR( Double_t &R, Double_t &SigmaR ) const
696{
697 return AliKFParticleBase::GetR( R, SigmaR );
698}
699
f826d409 700inline Double_t & AliKFParticle::X()
701{
702 return AliKFParticleBase::X();
703}
704
705inline Double_t & AliKFParticle::Y()
706{
707 return AliKFParticleBase::Y();
708}
709
710inline Double_t & AliKFParticle::Z()
711{
712 return AliKFParticleBase::Z();
713}
714
715inline Double_t & AliKFParticle::Px()
716{
717 return AliKFParticleBase::Px();
718}
719
720inline Double_t & AliKFParticle::Py()
721{
722 return AliKFParticleBase::Py();
723}
724
725inline Double_t & AliKFParticle::Pz()
726{
727 return AliKFParticleBase::Pz();
728}
729
730inline Double_t & AliKFParticle::E()
731{
732 return AliKFParticleBase::E();
733}
734
735inline Double_t & AliKFParticle::S()
736{
737 return AliKFParticleBase::S();
738}
739
740inline Int_t & AliKFParticle::Q()
741{
742 return AliKFParticleBase::Q();
743}
744
745inline Double_t & AliKFParticle::Chi2()
746{
747 return AliKFParticleBase::Chi2();
748}
749
750inline Int_t & AliKFParticle::NDF()
751{
752 return AliKFParticleBase::NDF();
753}
754
755inline Double_t & AliKFParticle::Parameter ( int i )
756{
757 return AliKFParticleBase::Parameter(i);
758}
759
760inline Double_t & AliKFParticle::Covariance( int i )
761{
762 return AliKFParticleBase::Covariance(i);
763}
764
765inline Double_t & AliKFParticle::Covariance( int i, int j )
766{
767 return AliKFParticleBase::Covariance(i,j);
768}
769
bb4bc052 770inline Double_t * AliKFParticle::Parameters ()
771{
772 return fP;
773}
774
775inline Double_t * AliKFParticle::CovarianceMatrix()
776{
777 return fC;
778}
779
f826d409 780
781inline void AliKFParticle::operator +=( const AliKFParticle &Daughter )
782{
783 AliKFParticleBase::operator +=( Daughter );
784}
785
f826d409 786
787inline void AliKFParticle::AddDaughter( const AliKFParticle &Daughter )
788{
789 AliKFParticleBase::AddDaughter( Daughter );
790}
791
792inline void AliKFParticle::SetProductionVertex( const AliKFParticle &Vtx )
793{
794 AliKFParticleBase::SetProductionVertex( Vtx );
795}
796
e7b09c95 797inline void AliKFParticle::SetMassConstraint( Double_t Mass, Double_t SigmaMass )
f826d409 798{
e7b09c95 799 AliKFParticleBase::SetMassConstraint( Mass, SigmaMass );
f826d409 800}
e7b09c95 801
802inline void AliKFParticle::SetNoDecayLength()
803{
804 AliKFParticleBase::SetNoDecayLength();
805}
806
f826d409 807inline void AliKFParticle::Construct( const AliKFParticle *vDaughters[], int NDaughters,
706952f5 808 const AliKFParticle *ProdVtx, Double_t Mass, Bool_t IsConstrained )
f826d409 809{
810 AliKFParticleBase::Construct( ( const AliKFParticleBase**)vDaughters, NDaughters,
706952f5 811 ( const AliKFParticleBase*)ProdVtx, Mass, IsConstrained );
f826d409 812}
813
814inline void AliKFParticle::TransportToDecayVertex()
815{
816 AliKFParticleBase::TransportToDecayVertex();
817}
818
819inline void AliKFParticle::TransportToProductionVertex()
820{
821 AliKFParticleBase::TransportToProductionVertex();
822}
823
824inline void AliKFParticle::TransportToPoint( const Double_t xyz[] )
825{
826 TransportToDS( GetDStoPoint(xyz) );
827}
828
706952f5 829inline void AliKFParticle::TransportToVertex( const AliVVertex &v )
f826d409 830{
4bbc290d 831 TransportToPoint( AliKFParticle(v).fP );
f826d409 832}
833
834inline void AliKFParticle::TransportToParticle( const AliKFParticle &p )
835{
836 Double_t dS, dSp;
837 GetDStoParticle( p, dS, dSp );
838 TransportToDS( dS );
839}
840
841inline void AliKFParticle::TransportToDS( Double_t dS )
842{
843 AliKFParticleBase::TransportToDS( dS );
844}
845
846inline Double_t AliKFParticle::GetDStoPoint( const Double_t xyz[] ) const
847{
848 return AliKFParticleBase::GetDStoPointBz( GetFieldAlice(), xyz );
849}
4bbc290d 850
f826d409 851
852inline void AliKFParticle::GetDStoParticle( const AliKFParticle &p,
4bbc290d 853 Double_t &DS, Double_t &DSp ) const
f826d409 854{
e7b09c95 855 GetDStoParticleXY( p, DS, DSp );
f826d409 856}
857
858
859inline Double_t AliKFParticle::GetDistanceFromVertex( const Double_t vtx[] ) const
860{
861 return AliKFParticleBase::GetDistanceFromVertex( vtx );
862}
863
864inline Double_t AliKFParticle::GetDeviationFromVertex( const Double_t v[],
865 const Double_t Cv[] ) const
866{
867 return AliKFParticleBase::GetDeviationFromVertex( v, Cv);
868}
869
870inline Double_t AliKFParticle::GetDistanceFromVertex( const AliKFParticle &Vtx ) const
871{
872 return AliKFParticleBase::GetDistanceFromVertex( Vtx );
873}
874
875inline Double_t AliKFParticle::GetDeviationFromVertex( const AliKFParticle &Vtx ) const
876{
877 return AliKFParticleBase::GetDeviationFromVertex( Vtx );
878}
879
706952f5 880inline Double_t AliKFParticle::GetDistanceFromVertex( const AliVVertex &Vtx ) const
f826d409 881{
4bbc290d 882 return GetDistanceFromVertex( AliKFParticle(Vtx) );
f826d409 883}
884
706952f5 885inline Double_t AliKFParticle::GetDeviationFromVertex( const AliVVertex &Vtx ) const
f826d409 886{
4bbc290d 887 return GetDeviationFromVertex( AliKFParticle(Vtx) );
f826d409 888}
446ce366 889
f826d409 890inline Double_t AliKFParticle::GetDistanceFromParticle( const AliKFParticle &p ) const
891{
616ffc76 892 return AliKFParticleBase::GetDistanceFromParticle( p );
f826d409 893}
894
895inline Double_t AliKFParticle::GetDeviationFromParticle( const AliKFParticle &p ) const
896{
616ffc76 897 return AliKFParticleBase::GetDeviationFromParticle( p );
f826d409 898}
899
900inline void AliKFParticle::SubtractFromVertex( AliKFParticle &v ) const
901{
de0d0ceb 902 AliKFParticleBase::SubtractFromVertex( v );
f826d409 903}
904
4bbc290d 905inline Double_t AliKFParticle::GetFieldAlice()
f826d409 906{
4bbc290d 907 return fgBz;
f826d409 908}
909
910inline void AliKFParticle::GetFieldValue( const Double_t * /*xyz*/, Double_t B[] ) const
911{
912 B[0] = B[1] = 0;
913 B[2] = GetFieldAlice();
914}
915
916inline void AliKFParticle::GetDStoParticle( const AliKFParticleBase &p,
4bbc290d 917 Double_t &DS, Double_t &DSp )const
f826d409 918{
e7b09c95 919 GetDStoParticleXY( p, DS, DSp );
920}
921
922inline void AliKFParticle::GetDStoParticleXY( const AliKFParticleBase &p,
923 Double_t &DS, Double_t &DSp ) const
924{
925 AliKFParticleBase::GetDStoParticleBz( GetFieldAlice(), p, DS, DSp ) ;
706952f5 926 //GetDStoParticleALICE( p, DS, DSp ) ;
f826d409 927}
928
929inline void AliKFParticle::Transport( Double_t dS, Double_t P[], Double_t C[] ) const
930{
931 AliKFParticleBase::TransportBz( GetFieldAlice(), dS, P, C );
932}
933
a65041d0 934inline void AliKFParticle::ConstructGamma( const AliKFParticle &daughter1,
935 const AliKFParticle &daughter2 )
936{
937 AliKFParticleBase::ConstructGammaBz( daughter1, daughter2, GetFieldAlice() );
938}
939
f826d409 940#endif