]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONTrackParam.cxx
Initial version (Laurent)
[u/mrichter/AliRoot.git] / MUON / AliMUONTrackParam.cxx
CommitLineData
a9e2aefa 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
88cb7938 16/* $Id$ */
a9e2aefa 17
56316147 18//-----------------------------------------------------------------------------
19// Class AliMUONTrackParam
20//-------------------------
21// Track parameters in ALICE dimuon spectrometer
22//-----------------------------------------------------------------------------
a9e2aefa 23
37827b29 24#include "AliMUONTrackParam.h"
22ccc301 25#include "AliMUONHitForRec.h"
26
211c52eb 27#include "AliESDMuonTrack.h"
37827b29 28#include "AliLog.h"
22ccc301 29
22ccc301 30#include <TMath.h>
ea94c18b 31
32#include <Riostream.h>
a9e2aefa 33
7945aae7 34/// \cond CLASSIMP
a9e2aefa 35ClassImp(AliMUONTrackParam) // Class implementation in ROOT context
7945aae7 36/// \endcond
a9e2aefa 37
61adb9bd 38 //_________________________________________________________________________
30178c30 39AliMUONTrackParam::AliMUONTrackParam()
54d7ba50 40 : TObject(),
208f139e 41 fZ(0.),
ea94c18b 42 fParameters(5,1),
208f139e 43 fCovariances(0x0),
ea94c18b 44 fPropagator(0x0),
45 fExtrapParameters(0x0),
46 fExtrapCovariances(0x0),
47 fSmoothParameters(0x0),
48 fSmoothCovariances(0x0),
49 fHitForRecPtr(0x0),
50 fRemovable(kFALSE),
b709ac13 51 fAloneInChamber(kTRUE),
ea94c18b 52 fTrackChi2(0.),
53 fLocalChi2(0.)
30178c30 54{
37827b29 55 /// Constructor
30178c30 56}
61adb9bd 57
30178c30 58 //_________________________________________________________________________
de2cd600 59AliMUONTrackParam::AliMUONTrackParam(const AliMUONTrackParam& theMUONTrackParam)
60 : TObject(theMUONTrackParam),
208f139e 61 fZ(theMUONTrackParam.fZ),
ea94c18b 62 fParameters(theMUONTrackParam.fParameters),
208f139e 63 fCovariances(0x0),
ea94c18b 64 fPropagator(0x0),
65 fExtrapParameters(0x0),
66 fExtrapCovariances(0x0),
67 fSmoothParameters(0x0),
68 fSmoothCovariances(0x0),
69 fHitForRecPtr(theMUONTrackParam.fHitForRecPtr),
70 fRemovable(theMUONTrackParam.fRemovable),
b709ac13 71 fAloneInChamber(theMUONTrackParam.fAloneInChamber),
ea94c18b 72 fTrackChi2(theMUONTrackParam.fTrackChi2),
73 fLocalChi2(theMUONTrackParam.fLocalChi2)
de2cd600 74{
2457f726 75 /// Copy constructor
208f139e 76 if (theMUONTrackParam.fCovariances) fCovariances = new TMatrixD(*(theMUONTrackParam.fCovariances));
ea94c18b 77 if (theMUONTrackParam.fPropagator) fPropagator = new TMatrixD(*(theMUONTrackParam.fPropagator));
78 if (theMUONTrackParam.fExtrapParameters) fExtrapParameters = new TMatrixD(*(theMUONTrackParam.fExtrapParameters));
79 if (theMUONTrackParam.fExtrapCovariances) fExtrapCovariances = new TMatrixD(*(theMUONTrackParam.fExtrapCovariances));
80 if (theMUONTrackParam.fSmoothParameters) fSmoothParameters = new TMatrixD(*(theMUONTrackParam.fSmoothParameters));
81 if (theMUONTrackParam.fSmoothCovariances) fSmoothCovariances = new TMatrixD(*(theMUONTrackParam.fSmoothCovariances));
de2cd600 82}
83
84 //_________________________________________________________________________
85AliMUONTrackParam& AliMUONTrackParam::operator=(const AliMUONTrackParam& theMUONTrackParam)
61adb9bd 86{
2457f726 87 /// Asignment operator
30178c30 88 if (this == &theMUONTrackParam)
61adb9bd 89 return *this;
90
30178c30 91 // base class assignement
92 TObject::operator=(theMUONTrackParam);
93
ea94c18b 94 fZ = theMUONTrackParam.fZ;
95
96 fParameters = theMUONTrackParam.fParameters;
208f139e 97
98 if (theMUONTrackParam.fCovariances) {
99 if (fCovariances) *fCovariances = *(theMUONTrackParam.fCovariances);
100 else fCovariances = new TMatrixD(*(theMUONTrackParam.fCovariances));
019df241 101 } else {
208f139e 102 delete fCovariances;
103 fCovariances = 0x0;
104 }
105
ea94c18b 106 if (theMUONTrackParam.fPropagator) {
107 if (fPropagator) *fPropagator = *(theMUONTrackParam.fPropagator);
108 else fPropagator = new TMatrixD(*(theMUONTrackParam.fPropagator));
019df241 109 } else {
ea94c18b 110 delete fPropagator;
111 fPropagator = 0x0;
112 }
113
114 if (theMUONTrackParam.fExtrapParameters) {
115 if (fExtrapParameters) *fExtrapParameters = *(theMUONTrackParam.fExtrapParameters);
116 else fExtrapParameters = new TMatrixD(*(theMUONTrackParam.fExtrapParameters));
019df241 117 } else {
ea94c18b 118 delete fExtrapParameters;
119 fExtrapParameters = 0x0;
120 }
121
122 if (theMUONTrackParam.fExtrapCovariances) {
123 if (fExtrapCovariances) *fExtrapCovariances = *(theMUONTrackParam.fExtrapCovariances);
124 else fExtrapCovariances = new TMatrixD(*(theMUONTrackParam.fExtrapCovariances));
019df241 125 } else {
ea94c18b 126 delete fExtrapCovariances;
127 fExtrapCovariances = 0x0;
128 }
129
130 if (theMUONTrackParam.fSmoothParameters) {
131 if (fSmoothParameters) *fSmoothParameters = *(theMUONTrackParam.fSmoothParameters);
132 else fSmoothParameters = new TMatrixD(*(theMUONTrackParam.fSmoothParameters));
019df241 133 } else {
ea94c18b 134 delete fSmoothParameters;
135 fSmoothParameters = 0x0;
136 }
137
138 if (theMUONTrackParam.fSmoothCovariances) {
139 if (fSmoothCovariances) *fSmoothCovariances = *(theMUONTrackParam.fSmoothCovariances);
140 else fSmoothCovariances = new TMatrixD(*(theMUONTrackParam.fSmoothCovariances));
019df241 141 } else {
ea94c18b 142 delete fSmoothCovariances;
143 fSmoothCovariances = 0x0;
144 }
145
146 fHitForRecPtr = theMUONTrackParam.fHitForRecPtr;
147
148 fRemovable = theMUONTrackParam.fRemovable;
149
b709ac13 150 fAloneInChamber = theMUONTrackParam.fAloneInChamber;
151
ea94c18b 152 fTrackChi2 = theMUONTrackParam.fTrackChi2;
153 fLocalChi2 = theMUONTrackParam.fLocalChi2;
154
61adb9bd 155 return *this;
156}
de2cd600 157
158 //__________________________________________________________________________
159AliMUONTrackParam::~AliMUONTrackParam()
61adb9bd 160{
de2cd600 161/// Destructor
208f139e 162 DeleteCovariances();
ea94c18b 163 delete fPropagator;
164 delete fExtrapParameters;
165 delete fExtrapCovariances;
166 delete fSmoothParameters;
167 delete fSmoothCovariances;
de2cd600 168}
169
170 //__________________________________________________________________________
ea94c18b 171void
172AliMUONTrackParam::Clear(Option_t* /*opt*/)
173{
174 /// Delete the covariance matrix
175 DeleteCovariances();
176 delete fPropagator; fPropagator = 0x0;
177 delete fExtrapParameters; fExtrapParameters = 0x0;
178 delete fExtrapCovariances; fExtrapCovariances = 0x0;
179 delete fSmoothParameters; fSmoothParameters = 0x0;
180 delete fSmoothCovariances; fSmoothCovariances = 0x0;
de2cd600 181}
54d7ba50 182
de2cd600 183 //__________________________________________________________________________
184AliMUONHitForRec* AliMUONTrackParam::GetHitForRecPtr(void) const
185{
186/// return pointer to HitForRec attached to the current TrackParam
187/// this method should not be called when fHitForRecPtr == NULL
208f139e 188 if (!fHitForRecPtr) AliWarning("fHitForRecPtr == NULL");
de2cd600 189 return fHitForRecPtr;
190}
191
211c52eb 192 //_________________________________________________________________________
193void AliMUONTrackParam::GetParamFrom(const AliESDMuonTrack& esdMuonTrack)
194{
60765b06 195 /// Get parameters from ESD track
ea94c18b 196 fZ = esdMuonTrack.GetZ();
197 fParameters(0,0) = esdMuonTrack.GetNonBendingCoor();
198 fParameters(1,0) = TMath::Tan(esdMuonTrack.GetThetaX());
199 fParameters(2,0) = esdMuonTrack.GetBendingCoor();
200 fParameters(3,0) = TMath::Tan(esdMuonTrack.GetThetaY());
201 fParameters(4,0) = esdMuonTrack.GetInverseBendingMomentum();
211c52eb 202}
203
204 //_________________________________________________________________________
ea94c18b 205void AliMUONTrackParam::SetParamFor(AliESDMuonTrack& esdMuonTrack) const
211c52eb 206{
60765b06 207 /// Set parameters in ESD track
ea94c18b 208 esdMuonTrack.SetZ(fZ);
209 esdMuonTrack.SetNonBendingCoor(fParameters(0,0));
210 esdMuonTrack.SetThetaX(TMath::ATan(fParameters(1,0)));
211 esdMuonTrack.SetBendingCoor(fParameters(2,0));
212 esdMuonTrack.SetThetaY(TMath::ATan(fParameters(3,0)));
213 esdMuonTrack.SetInverseBendingMomentum(fParameters(4,0));
211c52eb 214}
215
22ccc301 216 //_________________________________________________________________________
217void AliMUONTrackParam::GetParamFromUncorrected(const AliESDMuonTrack& esdMuonTrack)
218{
60765b06 219 /// Get parameters from ESD track
ea94c18b 220 fZ = esdMuonTrack.GetZUncorrected();
221 fParameters(0,0) = esdMuonTrack.GetNonBendingCoorUncorrected();
222 fParameters(1,0) = TMath::Tan(esdMuonTrack.GetThetaXUncorrected());
223 fParameters(2,0) = esdMuonTrack.GetBendingCoorUncorrected();
224 fParameters(3,0) = TMath::Tan(esdMuonTrack.GetThetaYUncorrected());
225 fParameters(4,0) = esdMuonTrack.GetInverseBendingMomentumUncorrected();
22ccc301 226}
227
228 //_________________________________________________________________________
ea94c18b 229void AliMUONTrackParam::SetParamForUncorrected(AliESDMuonTrack& esdMuonTrack) const
22ccc301 230{
60765b06 231 /// Set parameters in ESD track
ea94c18b 232 esdMuonTrack.SetZUncorrected(fZ);
233 esdMuonTrack.SetNonBendingCoorUncorrected(fParameters(0,0));
234 esdMuonTrack.SetThetaXUncorrected(TMath::ATan(fParameters(1,0)));
235 esdMuonTrack.SetBendingCoorUncorrected(fParameters(2,0));
236 esdMuonTrack.SetThetaYUncorrected(TMath::ATan(fParameters(3,0)));
237 esdMuonTrack.SetInverseBendingMomentumUncorrected(fParameters(4,0));
60765b06 238}
239
240 //_________________________________________________________________________
241void AliMUONTrackParam::GetCovFrom(const AliESDMuonTrack& esdMuonTrack)
242{
243 /// Get parameters covariances from ESD track
244
245 // Get ESD covariance matrix
246 if (!fCovariances) fCovariances = new TMatrixD(5,5);
247 esdMuonTrack.GetCovariances(*fCovariances);
248
249 // compute Jacobian to change the coordinate system
250 // from (X,thetaX,Y,thetaY,c/pYZ) to (X,slopeX,Y,slopeY,c/pYZ)
251 Double_t cosThetaX = TMath::Cos(TMath::ATan(fParameters(1,0)));
252 Double_t cosThetaY = TMath::Cos(TMath::ATan(fParameters(3,0)));
253 TMatrixD jacob(5,5);
254 jacob.Zero();
255 jacob(0,0) = 1.;
256 jacob(1,1) = 1. / cosThetaX / cosThetaX;
257 jacob(2,2) = 1.;
258 jacob(3,3) = 1. / cosThetaY / cosThetaY;
259 jacob(4,4) = 1.;
260
261 // compute covariance matrix in ESD coordinate system
262 TMatrixD tmp(*fCovariances,TMatrixD::kMultTranspose,jacob);
263 *fCovariances = TMatrixD(jacob,TMatrixD::kMult,tmp);
264
265}
266
267 //_________________________________________________________________________
268void AliMUONTrackParam::SetCovFor(AliESDMuonTrack& esdMuonTrack) const
269{
270 /// Set parameters covariances in ESD track
271
272 // set null matrix if covariances does not exist
273 if (!fCovariances) {
274 TMatrixD tmp(5,5);
275 tmp.Zero();
276 esdMuonTrack.SetCovariances(tmp);
277 return;
278 }
279
280 // compute Jacobian to change the coordinate system
281 // from (X,slopeX,Y,slopeY,c/pYZ) to (X,thetaX,Y,thetaY,c/pYZ)
282 Double_t cosThetaX = TMath::Cos(TMath::ATan(fParameters(1,0)));
283 Double_t cosThetaY = TMath::Cos(TMath::ATan(fParameters(3,0)));
284 TMatrixD jacob(5,5);
285 jacob.Zero();
286 jacob(0,0) = 1.;
287 jacob(1,1) = cosThetaX * cosThetaX;
288 jacob(2,2) = 1.;
289 jacob(3,3) = cosThetaY * cosThetaY;
290 jacob(4,4) = 1.;
291
292 // compute covariance matrix in ESD coordinate system
293 TMatrixD tmp(*fCovariances,TMatrixD::kMultTranspose,jacob);
294 TMatrixD tmp2(jacob,TMatrixD::kMult,tmp);
295 esdMuonTrack.SetCovariances(tmp2);
296
22ccc301 297}
298
b8dc484b 299 //__________________________________________________________________________
6464217e 300Double_t AliMUONTrackParam::Px() const
b8dc484b 301{
22ccc301 302 /// return p_x from track parameters
b8dc484b 303 Double_t pYZ, pZ, pX;
304 pYZ = 0;
ea94c18b 305 if ( TMath::Abs(fParameters(4,0)) > 0 )
306 pYZ = TMath::Abs(1.0 / fParameters(4,0));
307 pZ = -pYZ / (TMath::Sqrt(1.0 + fParameters(3,0) * fParameters(3,0))); // spectro. (z<0)
308 pX = pZ * fParameters(1,0);
b8dc484b 309 return pX;
310}
37827b29 311
b8dc484b 312 //__________________________________________________________________________
6464217e 313Double_t AliMUONTrackParam::Py() const
b8dc484b 314{
22ccc301 315 /// return p_y from track parameters
b8dc484b 316 Double_t pYZ, pZ, pY;
317 pYZ = 0;
ea94c18b 318 if ( TMath::Abs(fParameters(4,0)) > 0 )
319 pYZ = TMath::Abs(1.0 / fParameters(4,0));
320 pZ = -pYZ / (TMath::Sqrt(1.0 + fParameters(3,0) * fParameters(3,0))); // spectro. (z<0)
321 pY = pZ * fParameters(3,0);
b8dc484b 322 return pY;
323}
37827b29 324
b8dc484b 325 //__________________________________________________________________________
6464217e 326Double_t AliMUONTrackParam::Pz() const
b8dc484b 327{
22ccc301 328 /// return p_z from track parameters
b8dc484b 329 Double_t pYZ, pZ;
330 pYZ = 0;
ea94c18b 331 if ( TMath::Abs(fParameters(4,0)) > 0 )
332 pYZ = TMath::Abs(1.0 / fParameters(4,0));
333 pZ = -pYZ / (TMath::Sqrt(1.0 + fParameters(3,0) * fParameters(3,0))); // spectro. (z<0)
b8dc484b 334 return pZ;
335}
37827b29 336
b8dc484b 337 //__________________________________________________________________________
6464217e 338Double_t AliMUONTrackParam::P() const
b8dc484b 339{
22ccc301 340 /// return p from track parameters
b8dc484b 341 Double_t pYZ, pZ, p;
342 pYZ = 0;
ea94c18b 343 if ( TMath::Abs(fParameters(4,0)) > 0 )
344 pYZ = TMath::Abs(1.0 / fParameters(4,0));
345 pZ = -pYZ / (TMath::Sqrt(1.0 + fParameters(3,0) * fParameters(3,0))); // spectro. (z<0)
b8dc484b 346 p = TMath::Abs(pZ) *
ea94c18b 347 TMath::Sqrt(1.0 + fParameters(3,0) * fParameters(3,0) + fParameters(1,0) * fParameters(1,0));
b8dc484b 348 return p;
349
b45fd22b 350}
4d03a78e 351
208f139e 352 //__________________________________________________________________________
ea94c18b 353const TMatrixD& AliMUONTrackParam::GetCovariances() const
208f139e 354{
355 /// Return the covariance matrix (create it before if needed)
356 if (!fCovariances) {
357 fCovariances = new TMatrixD(5,5);
ea94c18b 358 fCovariances->Zero();
208f139e 359 }
ea94c18b 360 return *fCovariances;
361}
208f139e 362
363 //__________________________________________________________________________
ea94c18b 364void AliMUONTrackParam::SetCovariances(const TMatrixD& covariances)
208f139e 365{
366 /// Set the covariance matrix
ea94c18b 367 if (fCovariances) *fCovariances = covariances;
368 else fCovariances = new TMatrixD(covariances);
208f139e 369}
370
371 //__________________________________________________________________________
ea94c18b 372void AliMUONTrackParam::SetCovariances(const Double_t matrix[5][5])
208f139e 373{
374 /// Set the covariance matrix
375 if (fCovariances) fCovariances->SetMatrixArray(&(matrix[0][0]));
376 else fCovariances = new TMatrixD(5,5,&(matrix[0][0]));
377}
378
379 //__________________________________________________________________________
ea94c18b 380void AliMUONTrackParam::SetVariances(const Double_t matrix[5][5])
208f139e 381{
382 /// Set the diagonal terms of the covariance matrix (variances)
383 if (!fCovariances) fCovariances = new TMatrixD(5,5);
ea94c18b 384 fCovariances->Zero();
208f139e 385 for (Int_t i=0; i<5; i++) (*fCovariances)(i,i) = matrix[i][i];
386}
387
388 //__________________________________________________________________________
389void AliMUONTrackParam::DeleteCovariances()
390{
391 /// Delete the covariance matrix
686772dc 392 delete fCovariances;
208f139e 393 fCovariances = 0x0;
394}
395
396 //__________________________________________________________________________
ea94c18b 397const TMatrixD& AliMUONTrackParam::GetPropagator() const
208f139e 398{
ea94c18b 399 /// Return the propagator (create it before if needed)
400 if (!fPropagator) {
401 fPropagator = new TMatrixD(5,5);
019df241 402 fPropagator->UnitMatrix();
208f139e 403 }
ea94c18b 404 return *fPropagator;
405 }
406
407 //__________________________________________________________________________
408void AliMUONTrackParam::ResetPropagator()
409{
410 /// Reset the propagator
019df241 411 if (fPropagator) fPropagator->UnitMatrix();
ea94c18b 412}
413
414 //__________________________________________________________________________
415void AliMUONTrackParam::UpdatePropagator(const TMatrixD& propagator)
416{
417 /// Update the propagator
ea94c18b 418 if (fPropagator) *fPropagator = TMatrixD(propagator,TMatrixD::kMult,*fPropagator);
419 else fPropagator = new TMatrixD(propagator);
420}
421
422 //__________________________________________________________________________
423const TMatrixD& AliMUONTrackParam::GetExtrapParameters() const
424{
425 /// Return extrapolated parameters (create it before if needed)
426 if (!fExtrapParameters) {
427 fExtrapParameters = new TMatrixD(5,1);
428 fExtrapParameters->Zero();
429 }
430 return *fExtrapParameters;
431 }
432
433 //__________________________________________________________________________
434void AliMUONTrackParam::SetExtrapParameters(const TMatrixD& extrapParameters)
435{
436 /// Set extrapolated parameters
ea94c18b 437 if (fExtrapParameters) *fExtrapParameters = extrapParameters;
438 else fExtrapParameters = new TMatrixD(extrapParameters);
439}
440
441 //__________________________________________________________________________
442const TMatrixD& AliMUONTrackParam::GetExtrapCovariances() const
443{
444 /// Return the extrapolated covariance matrix (create it before if needed)
445 if (!fExtrapCovariances) {
446 fExtrapCovariances = new TMatrixD(5,5);
447 fExtrapCovariances->Zero();
448 }
449 return *fExtrapCovariances;
450 }
451
452 //__________________________________________________________________________
453void AliMUONTrackParam::SetExtrapCovariances(const TMatrixD& extrapCovariances)
454{
455 /// Set the extrapolated covariance matrix
ea94c18b 456 if (fExtrapCovariances) *fExtrapCovariances = extrapCovariances;
457 else fExtrapCovariances = new TMatrixD(extrapCovariances);
458}
459
460 //__________________________________________________________________________
461const TMatrixD& AliMUONTrackParam::GetSmoothParameters() const
462{
463 /// Return the smoothed parameters (create it before if needed)
464 if (!fSmoothParameters) {
465 fSmoothParameters = new TMatrixD(5,1);
466 fSmoothParameters->Zero();
467 }
468 return *fSmoothParameters;
469 }
470
471 //__________________________________________________________________________
472void AliMUONTrackParam::SetSmoothParameters(const TMatrixD& smoothParameters)
473{
474 /// Set the smoothed parameters
ea94c18b 475 if (fSmoothParameters) *fSmoothParameters = smoothParameters;
476 else fSmoothParameters = new TMatrixD(smoothParameters);
477}
478
479 //__________________________________________________________________________
480const TMatrixD& AliMUONTrackParam::GetSmoothCovariances() const
481{
482 /// Return the smoothed covariance matrix (create it before if needed)
483 if (!fSmoothCovariances) {
484 fSmoothCovariances = new TMatrixD(5,5);
485 fSmoothCovariances->Zero();
486 }
487 return *fSmoothCovariances;
488 }
489
490 //__________________________________________________________________________
491void AliMUONTrackParam::SetSmoothCovariances(const TMatrixD& smoothCovariances)
492{
493 /// Set the smoothed covariance matrix
ea94c18b 494 if (fSmoothCovariances) *fSmoothCovariances = smoothCovariances;
495 else fSmoothCovariances = new TMatrixD(smoothCovariances);
208f139e 496}
497
498 //__________________________________________________________________________
499Int_t AliMUONTrackParam::Compare(const TObject* trackParam) const
500{
501 /// "Compare" function to sort with decreasing Z (spectro. muon Z <0).
502 /// Returns 1 (0, -1) if Z of current TrackHit
503 /// is smaller than (equal to, larger than) Z of TrackHit
847cbaef 504 if (fHitForRecPtr) {
505 if (fHitForRecPtr->GetZ() != fZ)
506 AliWarning("track parameters are given at a different z position than the one of the corresponding hit");
507 }
508 if (fZ < ((AliMUONTrackParam*)trackParam)->GetZ()) return(1);
509 else if (fZ == ((AliMUONTrackParam*)trackParam)->GetZ()) return(0);
208f139e 510 else return(-1);
511}
512
6464217e 513//_____________________________________________-
514void AliMUONTrackParam::Print(Option_t* opt) const
515{
2457f726 516 /// Printing TrackParam information
517 /// "full" option for printing all the information about the TrackParam
6464217e 518 TString sopt(opt);
519 sopt.ToUpper();
520
521 if ( sopt.Contains("FULL") ) {
ea94c18b 522 cout << "<AliMUONTrackParam> Bending P=" << setw(5) << setprecision(3) << 1./fParameters(4,0) <<
523 ", NonBendSlope=" << setw(5) << setprecision(3) << fParameters(1,0)*180./TMath::Pi() <<
524 ", BendSlope=" << setw(5) << setprecision(3) << fParameters(3,0)*180./TMath::Pi() <<
525 ", (x,y,z)_IP=(" << setw(5) << setprecision(3) << fParameters(0,0) <<
526 "," << setw(5) << setprecision(3) << fParameters(2,0) <<
527 "," << setw(5) << setprecision(3) << fZ <<
6464217e 528 ") cm, (px,py,pz)=(" << setw(5) << setprecision(3) << Px() <<
529 "," << setw(5) << setprecision(3) << Py() <<
530 "," << setw(5) << setprecision(3) << Pz() << ") GeV/c" << endl;
531 }
532 else {
533 cout << "<AliMUONTrackParam>" << endl;
534 }
535
536}