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