ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

#include "AliESDtrack.h" 
#include "AliTracker.h" 
#include "AliHMPIDtrack.h" 
#include "AliPID.h" 

ClassImp(AliHMPIDtrack)

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
AliHMPIDtrack::AliHMPIDtrack():AliKalmanTrack()
{
  //
  // def. ctor
  //
}                                
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
AliHMPIDtrack::AliHMPIDtrack(const AliHMPIDtrack& t):AliKalmanTrack(t)
{
  //
  // cctor.
  //
 }                                
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
AliHMPIDtrack::AliHMPIDtrack(const AliESDtrack& t):AliKalmanTrack()
{
  //
  // Constructor from AliESDtrack
  //
  SetLabel(t.GetLabel());
  SetChi2(0.);
  SetMass(t.GetMassForTracking());

  Set(t.GetX(),t.GetAlpha(),t.GetParameter(),t.GetCovariance());

  if ((t.GetStatus()&AliESDtrack::kTIME) == 0) return;
  StartTimeIntegral();
  Double_t times[AliPID::kSPECIESC]; 
  t.GetIntegratedTimes(times,AliPID::kSPECIESC); SetIntegratedTimes(times);
  SetIntegratedLength(t.GetIntegratedLength());
}              
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
AliHMPIDtrack& AliHMPIDtrack::operator=(const AliHMPIDtrack &/*source*/)
{
  // ass. op.
  
  return *this;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Bool_t AliHMPIDtrack::PropagateTo(Double_t xk, Double_t xx0, Double_t xrho)
{
  //
  // Propagates this track to a reference plane defined by "xk" [cm] 
  // correcting for the mean crossed material.
  // Arguments:
  // "xx0"  - thickness/rad.length [units of the radiation length] 
  // "xrho" - thickness*density    [g/cm^2] 
  //  Returns: kTRUE if the track propagates to plane, else kFALSE
 
  if (xk == GetX()) {
    return kTRUE;
  }
  Double_t b[3]; GetBxByBz(b);
  if (!AliExternalTrackParam::PropagateToBxByBz(xk,b)) {
    return kFALSE;
  }
  if (!AliExternalTrackParam::CorrectForMeanMaterial(xx0,xrho,GetMass())) { 
    return kFALSE;
  }
  return kTRUE;            
}//PropagateTo()  
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Bool_t AliHMPIDtrack::Rotate(Double_t alpha, Bool_t absolute)
{
  //
  // Rotates track parameters in R*phi plane
  // if absolute rotation alpha is in global system
  // otherwise alpha rotation is relative to the current rotation angle
  //  

  if (absolute) {
    alpha -= GetAlpha();
  }
 

  return AliExternalTrackParam::Rotate(GetAlpha()+alpha);

}   
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  
Int_t AliHMPIDtrack::GetProlongation(Double_t xk, Double_t &y, Double_t &z)
{
  //
  // Find a prolongation at given x
  // Return 0 if it does not exist
  //  

  Double_t bz = GetBz();

  if (!AliExternalTrackParam::GetYAt(xk,bz,y)) {
    return 0;
  }
  if (!AliExternalTrackParam::GetZAt(xk,bz,z)) {
    return 0;
  }

  return 1;  

}
 
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Bool_t   AliHMPIDtrack::PropagateToR(Double_t r,Double_t step)
{
  //
  // Propagate track to the radial position
  // Rotation always connected to the last track position
  //

  Double_t xyz0[3];
  Double_t xyz1[3];
  Double_t y;
  Double_t z; 

  Double_t radius = TMath::Sqrt(GetX()*GetX() + GetY()*GetY());
  // Direction +-
  Double_t dir    = (radius > r) ? -1.0 : 1.0;   

  for (Double_t x = radius+dir*step; dir*x < dir*r; x += dir*step) {

    GetXYZ(xyz0);	
    Double_t alpha = TMath::ATan2(xyz0[1],xyz0[0]);
    if(!Rotate(alpha,kTRUE)) return kFALSE;
    GetXYZ(xyz0);	
    if (!GetProlongation(x,y,z)) return kFALSE;
    xyz1[0] = x * TMath::Cos(alpha) + y * TMath::Sin(alpha); 
    xyz1[1] = x * TMath::Sin(alpha) - y * TMath::Cos(alpha);
    xyz1[2] = z;
    Double_t param[7];
    AliTracker::MeanMaterialBudget(xyz0,xyz1,param);
    if (param[1] <= 0) {
      param[1] = 100000000;
    }
    PropagateTo(x,param[1],param[0]*param[4]);

  } 

  GetXYZ(xyz0);	
  Double_t alpha = TMath::ATan2(xyz0[1],xyz0[0]);
  if(!Rotate(alpha,kTRUE)) return kFALSE;
  GetXYZ(xyz0);	
  if (!GetProlongation(r,y,z)) return kFALSE;
  xyz1[0] = r * TMath::Cos(alpha) + y * TMath::Sin(alpha); 
  xyz1[1] = r * TMath::Sin(alpha) - y * TMath::Cos(alpha);
  xyz1[2] = z;
  Double_t param[7];
  AliTracker::MeanMaterialBudget(xyz0,xyz1,param);

  if (param[1] <= 0) {
    param[1] = 100000000;
  }
 
  return PropagateTo(r,param[1],param[0]*param[4]);
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Double_t AliHMPIDtrack::GetPredictedChi2(const AliCluster3D *c) const {
  //
  // Arguments: AliCluster3D
  // Returns:   Chi2 of track for the cluster
  Double_t      p[3]={c->GetX(),       c->GetY(),       c->GetZ()};
  Double_t  covyz[3]={c->GetSigmaY2(), c->GetSigmaYZ(), c->GetSigmaZ2()};
  Double_t covxyz[3]={c->GetSigmaX2(), c->GetSigmaXY(), c->GetSigmaXZ()};
  return AliExternalTrackParam::GetPredictedChi2(p, covyz, covxyz);
}//GetPredictedChi2()
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Bool_t AliHMPIDtrack::PropagateTo(const AliCluster3D *c) {
  //
  // Arguments: AliCluster3D
  // Returns: kTRUE if the track propagates to the plane of the cluster
  Double_t      oldX=GetX(),   oldY=GetY(), oldZ=GetZ();
  Double_t      p[3]={c->GetX(), c->GetY(), c->GetZ()};
  Double_t  covyz[3]={c->GetSigmaY2(), c->GetSigmaYZ(), c->GetSigmaZ2()};
  Double_t covxyz[3]={c->GetSigmaX2(), c->GetSigmaXY(), c->GetSigmaXZ()};
  Double_t bz=-GetBz();
    
  if(!AliExternalTrackParam::PropagateTo(p, covyz, covxyz, bz)) return kFALSE;
  if(IsStartedTimeIntegral()) 
    {
      Double_t d = TMath::Sqrt((GetX()-oldX)*(GetX()-oldX) + (GetY()-oldY)*(GetY()-oldY) + (GetZ()-oldZ)*(GetZ()-oldZ));
      if (GetX()<oldX) d=-d;
      AddTimeStep(d);
    }
  return kTRUE;
}//PropagateTo()
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Bool_t AliHMPIDtrack::Intersect(Double_t pnt[3], Double_t norm[3]) const {
  //+++++++++++++++++++++++++++++++++++++++++    
  // Origin: K. Shileev (Kirill.Shileev@cern.ch)
  // Finds point of intersection (if exists) of the helix with the plane. 
  // Stores result in fX and fP.   
  // Arguments: planePoint,planeNorm - the plane defined by any plane's point 
  // and vector, normal to the plane
  // Returns: kTrue if helix intersects the plane, kFALSE otherwise.
  //+++++++++++++++++++++++++++++++++++++++++    
  Double_t x0[3]; GetXYZ(x0); //get track position in MARS
  
  //estimates initial helix length up to plane
  Double_t s=(pnt[0]-x0[0])*norm[0] + (pnt[1]-x0[1])*norm[1] + (pnt[2]-x0[2])*norm[2];
  Double_t dist=99999,distPrev=dist;
  Double_t p[3],x[3]; 
  while(TMath::Abs(dist)>0.00001){
    //calculates helix at the distance s from x0 ALONG the helix
    Propagate(s,x,p);
    //distance between current helix position and plane
    dist=(x[0]-pnt[0])*norm[0]+(x[1]-pnt[1])*norm[1]+(x[2]-pnt[2])*norm[2];  
    if(TMath::Abs(dist) >= TMath::Abs(distPrev)) {return kFALSE;}
    distPrev=dist;
    s-=dist;
  }
  //on exit pnt is intersection point,norm is track vector at that point, 
  //all in MARS
  for (Int_t i=0; i<3; i++) {pnt[i]=x[i]; norm[i]=p[i];}
  return kTRUE;
}//Intersect()
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void AliHMPIDtrack::Propagate(Double_t len, Double_t x[3],Double_t p[3]) const {
  //+++++++++++++++++++++++++++++++++++++++++    
  // Origin: K. Shileev (Kirill.Shileev@cern.ch)
  // Extrapolate track along simple helix in magnetic field
  // Arguments: len -distance alogn helix, [cm]
  //            bz  - mag field, [kGaus]   
  // Returns: x and p contain extrapolated positon and momentum  
  // The momentum returned for straight-line tracks is meaningless !
  //+++++++++++++++++++++++++++++++++++++++++    
  GetXYZ(x);    
  Double_t bField[3];
  TGeoGlobalMagField::Instance()->Field(x,bField);
  Double_t bz = -bField[2];
  if (OneOverPt() < kAlmost0 || TMath::Abs(bz) < kAlmost0Field ){ //straight-line tracks
     Double_t unit[3]; GetDirection(unit);
     x[0]+=unit[0]*len;   
     x[1]+=unit[1]*len;   
     x[2]+=unit[2]*len;

     p[0]=unit[0]/kAlmost0;   
     p[1]=unit[1]/kAlmost0;   
     p[2]=unit[2]/kAlmost0;   
  } else {
     GetPxPyPz(p);
     Double_t pp=GetP();
     Double_t a = -kB2C*bz*GetSign(); ////////// what is kB2C
     Double_t rho = a/pp;
     x[0] += p[0]*TMath::Sin(rho*len)/a - p[1]*(1-TMath::Cos(rho*len))/a;
     x[1] += p[1]*TMath::Sin(rho*len)/a + p[0]*(1-TMath::Cos(rho*len))/a;
     x[2] += p[2]*len/pp;
     Double_t p0=p[0];
     p[0] = p0  *TMath::Cos(rho*len) - p[1]*TMath::Sin(rho*len);
     p[1] = p[1]*TMath::Cos(rho*len) + p0  *TMath::Sin(rho*len);
  }
}//Propagate()
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Bool_t AliHMPIDtrack::Update(const AliHMPIDCluster *pClu, Double_t /*chisq*/, Int_t /*index*/)
{
  //
  // Arguments: AliCluster3D, chi sq, and clu index
  // Returns: kTRUE if the track parameters are successfully updated
  Double_t p[2]={pClu->GetY(), pClu->GetZ()};
  Double_t cov[3]={pClu->GetSigmaY2(), 0., pClu->GetSigmaZ2()};
  if (!AliExternalTrackParam::Update(p,cov)) return kFALSE;

  /*
  AliTracker::FillResiduals(this,p,cov,pClu->GetVolumeId());

  Int_t n=GetNumberOfClusters();
  fIndex[n]=index;
  SetNumberOfClusters(n+1);
  SetChi2(GetChi2()+chisq);
*/
  return kTRUE;

}//Update()
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 AliHMPIDtrack.cxx:1
 AliHMPIDtrack.cxx:2
 AliHMPIDtrack.cxx:3
 AliHMPIDtrack.cxx:4
 AliHMPIDtrack.cxx:5
 AliHMPIDtrack.cxx:6
 AliHMPIDtrack.cxx:7
 AliHMPIDtrack.cxx:8
 AliHMPIDtrack.cxx:9
 AliHMPIDtrack.cxx:10
 AliHMPIDtrack.cxx:11
 AliHMPIDtrack.cxx:12
 AliHMPIDtrack.cxx:13
 AliHMPIDtrack.cxx:14
 AliHMPIDtrack.cxx:15
 AliHMPIDtrack.cxx:16
 AliHMPIDtrack.cxx:17
 AliHMPIDtrack.cxx:18
 AliHMPIDtrack.cxx:19
 AliHMPIDtrack.cxx:20
 AliHMPIDtrack.cxx:21
 AliHMPIDtrack.cxx:22
 AliHMPIDtrack.cxx:23
 AliHMPIDtrack.cxx:24
 AliHMPIDtrack.cxx:25
 AliHMPIDtrack.cxx:26
 AliHMPIDtrack.cxx:27
 AliHMPIDtrack.cxx:28
 AliHMPIDtrack.cxx:29
 AliHMPIDtrack.cxx:30
 AliHMPIDtrack.cxx:31
 AliHMPIDtrack.cxx:32
 AliHMPIDtrack.cxx:33
 AliHMPIDtrack.cxx:34
 AliHMPIDtrack.cxx:35
 AliHMPIDtrack.cxx:36
 AliHMPIDtrack.cxx:37
 AliHMPIDtrack.cxx:38
 AliHMPIDtrack.cxx:39
 AliHMPIDtrack.cxx:40
 AliHMPIDtrack.cxx:41
 AliHMPIDtrack.cxx:42
 AliHMPIDtrack.cxx:43
 AliHMPIDtrack.cxx:44
 AliHMPIDtrack.cxx:45
 AliHMPIDtrack.cxx:46
 AliHMPIDtrack.cxx:47
 AliHMPIDtrack.cxx:48
 AliHMPIDtrack.cxx:49
 AliHMPIDtrack.cxx:50
 AliHMPIDtrack.cxx:51
 AliHMPIDtrack.cxx:52
 AliHMPIDtrack.cxx:53
 AliHMPIDtrack.cxx:54
 AliHMPIDtrack.cxx:55
 AliHMPIDtrack.cxx:56
 AliHMPIDtrack.cxx:57
 AliHMPIDtrack.cxx:58
 AliHMPIDtrack.cxx:59
 AliHMPIDtrack.cxx:60
 AliHMPIDtrack.cxx:61
 AliHMPIDtrack.cxx:62
 AliHMPIDtrack.cxx:63
 AliHMPIDtrack.cxx:64
 AliHMPIDtrack.cxx:65
 AliHMPIDtrack.cxx:66
 AliHMPIDtrack.cxx:67
 AliHMPIDtrack.cxx:68
 AliHMPIDtrack.cxx:69
 AliHMPIDtrack.cxx:70
 AliHMPIDtrack.cxx:71
 AliHMPIDtrack.cxx:72
 AliHMPIDtrack.cxx:73
 AliHMPIDtrack.cxx:74
 AliHMPIDtrack.cxx:75
 AliHMPIDtrack.cxx:76
 AliHMPIDtrack.cxx:77
 AliHMPIDtrack.cxx:78
 AliHMPIDtrack.cxx:79
 AliHMPIDtrack.cxx:80
 AliHMPIDtrack.cxx:81
 AliHMPIDtrack.cxx:82
 AliHMPIDtrack.cxx:83
 AliHMPIDtrack.cxx:84
 AliHMPIDtrack.cxx:85
 AliHMPIDtrack.cxx:86
 AliHMPIDtrack.cxx:87
 AliHMPIDtrack.cxx:88
 AliHMPIDtrack.cxx:89
 AliHMPIDtrack.cxx:90
 AliHMPIDtrack.cxx:91
 AliHMPIDtrack.cxx:92
 AliHMPIDtrack.cxx:93
 AliHMPIDtrack.cxx:94
 AliHMPIDtrack.cxx:95
 AliHMPIDtrack.cxx:96
 AliHMPIDtrack.cxx:97
 AliHMPIDtrack.cxx:98
 AliHMPIDtrack.cxx:99
 AliHMPIDtrack.cxx:100
 AliHMPIDtrack.cxx:101
 AliHMPIDtrack.cxx:102
 AliHMPIDtrack.cxx:103
 AliHMPIDtrack.cxx:104
 AliHMPIDtrack.cxx:105
 AliHMPIDtrack.cxx:106
 AliHMPIDtrack.cxx:107
 AliHMPIDtrack.cxx:108
 AliHMPIDtrack.cxx:109
 AliHMPIDtrack.cxx:110
 AliHMPIDtrack.cxx:111
 AliHMPIDtrack.cxx:112
 AliHMPIDtrack.cxx:113
 AliHMPIDtrack.cxx:114
 AliHMPIDtrack.cxx:115
 AliHMPIDtrack.cxx:116
 AliHMPIDtrack.cxx:117
 AliHMPIDtrack.cxx:118
 AliHMPIDtrack.cxx:119
 AliHMPIDtrack.cxx:120
 AliHMPIDtrack.cxx:121
 AliHMPIDtrack.cxx:122
 AliHMPIDtrack.cxx:123
 AliHMPIDtrack.cxx:124
 AliHMPIDtrack.cxx:125
 AliHMPIDtrack.cxx:126
 AliHMPIDtrack.cxx:127
 AliHMPIDtrack.cxx:128
 AliHMPIDtrack.cxx:129
 AliHMPIDtrack.cxx:130
 AliHMPIDtrack.cxx:131
 AliHMPIDtrack.cxx:132
 AliHMPIDtrack.cxx:133
 AliHMPIDtrack.cxx:134
 AliHMPIDtrack.cxx:135
 AliHMPIDtrack.cxx:136
 AliHMPIDtrack.cxx:137
 AliHMPIDtrack.cxx:138
 AliHMPIDtrack.cxx:139
 AliHMPIDtrack.cxx:140
 AliHMPIDtrack.cxx:141
 AliHMPIDtrack.cxx:142
 AliHMPIDtrack.cxx:143
 AliHMPIDtrack.cxx:144
 AliHMPIDtrack.cxx:145
 AliHMPIDtrack.cxx:146
 AliHMPIDtrack.cxx:147
 AliHMPIDtrack.cxx:148
 AliHMPIDtrack.cxx:149
 AliHMPIDtrack.cxx:150
 AliHMPIDtrack.cxx:151
 AliHMPIDtrack.cxx:152
 AliHMPIDtrack.cxx:153
 AliHMPIDtrack.cxx:154
 AliHMPIDtrack.cxx:155
 AliHMPIDtrack.cxx:156
 AliHMPIDtrack.cxx:157
 AliHMPIDtrack.cxx:158
 AliHMPIDtrack.cxx:159
 AliHMPIDtrack.cxx:160
 AliHMPIDtrack.cxx:161
 AliHMPIDtrack.cxx:162
 AliHMPIDtrack.cxx:163
 AliHMPIDtrack.cxx:164
 AliHMPIDtrack.cxx:165
 AliHMPIDtrack.cxx:166
 AliHMPIDtrack.cxx:167
 AliHMPIDtrack.cxx:168
 AliHMPIDtrack.cxx:169
 AliHMPIDtrack.cxx:170
 AliHMPIDtrack.cxx:171
 AliHMPIDtrack.cxx:172
 AliHMPIDtrack.cxx:173
 AliHMPIDtrack.cxx:174
 AliHMPIDtrack.cxx:175
 AliHMPIDtrack.cxx:176
 AliHMPIDtrack.cxx:177
 AliHMPIDtrack.cxx:178
 AliHMPIDtrack.cxx:179
 AliHMPIDtrack.cxx:180
 AliHMPIDtrack.cxx:181
 AliHMPIDtrack.cxx:182
 AliHMPIDtrack.cxx:183
 AliHMPIDtrack.cxx:184
 AliHMPIDtrack.cxx:185
 AliHMPIDtrack.cxx:186
 AliHMPIDtrack.cxx:187
 AliHMPIDtrack.cxx:188
 AliHMPIDtrack.cxx:189
 AliHMPIDtrack.cxx:190
 AliHMPIDtrack.cxx:191
 AliHMPIDtrack.cxx:192
 AliHMPIDtrack.cxx:193
 AliHMPIDtrack.cxx:194
 AliHMPIDtrack.cxx:195
 AliHMPIDtrack.cxx:196
 AliHMPIDtrack.cxx:197
 AliHMPIDtrack.cxx:198
 AliHMPIDtrack.cxx:199
 AliHMPIDtrack.cxx:200
 AliHMPIDtrack.cxx:201
 AliHMPIDtrack.cxx:202
 AliHMPIDtrack.cxx:203
 AliHMPIDtrack.cxx:204
 AliHMPIDtrack.cxx:205
 AliHMPIDtrack.cxx:206
 AliHMPIDtrack.cxx:207
 AliHMPIDtrack.cxx:208
 AliHMPIDtrack.cxx:209
 AliHMPIDtrack.cxx:210
 AliHMPIDtrack.cxx:211
 AliHMPIDtrack.cxx:212
 AliHMPIDtrack.cxx:213
 AliHMPIDtrack.cxx:214
 AliHMPIDtrack.cxx:215
 AliHMPIDtrack.cxx:216
 AliHMPIDtrack.cxx:217
 AliHMPIDtrack.cxx:218
 AliHMPIDtrack.cxx:219
 AliHMPIDtrack.cxx:220
 AliHMPIDtrack.cxx:221
 AliHMPIDtrack.cxx:222
 AliHMPIDtrack.cxx:223
 AliHMPIDtrack.cxx:224
 AliHMPIDtrack.cxx:225
 AliHMPIDtrack.cxx:226
 AliHMPIDtrack.cxx:227
 AliHMPIDtrack.cxx:228
 AliHMPIDtrack.cxx:229
 AliHMPIDtrack.cxx:230
 AliHMPIDtrack.cxx:231
 AliHMPIDtrack.cxx:232
 AliHMPIDtrack.cxx:233
 AliHMPIDtrack.cxx:234
 AliHMPIDtrack.cxx:235
 AliHMPIDtrack.cxx:236
 AliHMPIDtrack.cxx:237
 AliHMPIDtrack.cxx:238
 AliHMPIDtrack.cxx:239
 AliHMPIDtrack.cxx:240
 AliHMPIDtrack.cxx:241
 AliHMPIDtrack.cxx:242
 AliHMPIDtrack.cxx:243
 AliHMPIDtrack.cxx:244
 AliHMPIDtrack.cxx:245
 AliHMPIDtrack.cxx:246
 AliHMPIDtrack.cxx:247
 AliHMPIDtrack.cxx:248
 AliHMPIDtrack.cxx:249
 AliHMPIDtrack.cxx:250
 AliHMPIDtrack.cxx:251
 AliHMPIDtrack.cxx:252
 AliHMPIDtrack.cxx:253
 AliHMPIDtrack.cxx:254
 AliHMPIDtrack.cxx:255
 AliHMPIDtrack.cxx:256
 AliHMPIDtrack.cxx:257
 AliHMPIDtrack.cxx:258
 AliHMPIDtrack.cxx:259
 AliHMPIDtrack.cxx:260
 AliHMPIDtrack.cxx:261
 AliHMPIDtrack.cxx:262
 AliHMPIDtrack.cxx:263
 AliHMPIDtrack.cxx:264
 AliHMPIDtrack.cxx:265
 AliHMPIDtrack.cxx:266
 AliHMPIDtrack.cxx:267
 AliHMPIDtrack.cxx:268
 AliHMPIDtrack.cxx:269
 AliHMPIDtrack.cxx:270
 AliHMPIDtrack.cxx:271
 AliHMPIDtrack.cxx:272
 AliHMPIDtrack.cxx:273
 AliHMPIDtrack.cxx:274
 AliHMPIDtrack.cxx:275
 AliHMPIDtrack.cxx:276
 AliHMPIDtrack.cxx:277
 AliHMPIDtrack.cxx:278
 AliHMPIDtrack.cxx:279
 AliHMPIDtrack.cxx:280
 AliHMPIDtrack.cxx:281
 AliHMPIDtrack.cxx:282
 AliHMPIDtrack.cxx:283
 AliHMPIDtrack.cxx:284
 AliHMPIDtrack.cxx:285
 AliHMPIDtrack.cxx:286
 AliHMPIDtrack.cxx:287
 AliHMPIDtrack.cxx:288
 AliHMPIDtrack.cxx:289
 AliHMPIDtrack.cxx:290
 AliHMPIDtrack.cxx:291
 AliHMPIDtrack.cxx:292
 AliHMPIDtrack.cxx:293