17   double weight[kNPidType];
 
   22   for (
int k=0;k<cand->GetMvdHits(); k++) {
 
   23     dE+=cand->GetMvdHitdE(k);
 
   24     dx+=cand->GetMvdHitdx(k);
 
   25     fmomentum+=cand->GetMvdHitMomentum(k);
 
   29     fmomentum/=cand->GetMvdHits();
 
   34   CalcLikelihood(weight);
 
   36   cand->SetLikelihood(2212, weight[kProton]);
 
   37   cand->SetLikelihood(211, weight[kPion]);
 
   38   cand->SetLikelihood(321, weight[kKaon]);
 
   39   cand->SetLikelihood(13, weight[kMuon]);
 
   40   cand->SetLikelihood(11, weight[kElectron]);
 
   96   static float eb=0.14e-6;
 
   98   static float c=2.99792458e8;
 
  100   static float Mass[
kNPidType]={ 0.511e-3, 0.1058, 0.1396, 0.4937, 0.9383 };
 
  102   double sqrBeta=1/(1+pow(Mass[part]/
fmomentum,2));
 
  103   return 4.9312e-05 * (
log(2*Mass[
kElectron]*c*c/eb*sqrBeta/(1-sqrBeta))-sqrBeta)/sqrBeta;
 
  112     return TMath::Gaus(s_mpv, 0, width2, 
true);
 
  114     return TMath::Landau(s_mpv, 0, width1, 
true);
 
  116     static double x[12] = { 0.96028985649753623,  0.79666647741362674,
 
  117                             0.52553240991632899,  0.18343464249564980,
 
  118                             0.98940093499164993,  0.94457502307323258,
 
  119                             0.86563120238783174,  0.75540440835500303,
 
  120                             0.61787624440264375,  0.45801677765722739,
 
  121                             0.28160355077925891,  0.09501250983763744};
 
  123     static double w[12] = { 0.10122853629037626,  0.22238103445337447,
 
  124                             0.31370664587788729,  0.36268378337836198,
 
  125                             0.02715245941175409,  0.06225352393864789,
 
  126                             0.09515851168249278,  0.12462897125553387,
 
  127                             0.14959598881657673,  0.16915651939500254,
 
  128                             0.18260341504492359,  0.18945061045506850};
 
  130     double h, bb, aa, 
c1, 
c2, u, s8, s16, 
f1, 
f2;
 
  147         f1 = TMath::Landau(s_mpv+xx, 0, width1, 
true)*TMath::Gaus(xx, 0, width2, 
true);
 
  149         f2 = TMath::Landau(s_mpv+xx, 0, width1, 
true)*TMath::Gaus(xx, 0, width2, 
true);
 
  156         f1  = TMath::Landau(s_mpv+xx, 0, width1, 
true)*TMath::Gaus(xx, 0, width2, 
true);
 
  158         f2  = TMath::Landau(s_mpv+xx, 0, width1, 
true)*TMath::Gaus(xx, 0, width2, 
true);
 
  159         s16+= w[
i]*(f1 + 
f2);
 
  162       if (
TMath::Abs(s16-c2*s8) <= 1e-12*(s16+1) ) {
 
  234     return c0+c1*(x1-
x0)+d1*(x-x1);
 
  238     return c0+c1*(x-
x0)+pow(x0-x,3)*(a3+(x0-
x)*(a4+(x0-x)*a5));
 
  246       return +3.81174e-04+x*(-2.25108e-04+x*+5.45154e-05);
 
  248       return -5.28145e-05+x*(+8.29883e-04+x*-5.35972e-04);
 
  252       return +2.61134e-04+x*(-1.30818e-04+x*+3.44165e-05);
 
  254       return +3.41858e-04+x*(-3.21115e-04+x*+1.37459e-04);
 
  258       return +1.88718e-04+x*(-6.38948e-05+x*+1.78590e-05);
 
  260       return +1.82872e-04+x*(-1.28373e-04+x*+8.01459e-05);
 
  264       return +1.06142e-04+x*(+3.68777e-05+x*-1.00190e-05);
 
  266       return +1.89374e-04+x*(-1.46441e-04+x*+9.10813e-05);
 
  271     return +1.27955e-04+x*(-3.15732e-06+x*+9.64736e-06);
 
  283       return +6.41067e-04+x*(-3.82507e-04+x*+9.03732e-05);
 
  285       return +6.40328e-04-3.21725e-04*x+3.17708e-05*pow(x,-3);
 
  289       return +2.22504e-04+x*(-6.40051e-06+x*+2.14434e-06);
 
  291       return +3.86684e-04-1.61873e-04*x+7.76586e-06*pow(x,-3);
 
  295       return +1.32999e-04+x*(+1.19714e-04+x*-3.53302e-05);
 
  297       return +2.21603e-04-3.21357e-06*x+4.64793e-06*pow(x,-2);
 
  301       return +7.84582e-05+x*(+1.88988e-04+x*-5.49637e-05);
 
  303       return +1.67388e-04+5.67991e-05*x+3.42702e-06*pow(x,-2);
 
  308     return +4.08849e-04-3.56548e-05*x+1.84825e-08*pow(x,-3);
 
static double MeanEnergyLoss(PidType particle)
static double mpv(PidType particle)
friend F32vec4 log(const F32vec4 &a)
static void CalcLikelihood(PndMvdPidCand *cand)
static double width2(PidType particle)
static double LandauGaus(double s_mpv, double width1, double width2)
void SetLikelihood(int lundId, double likelihood)
static double width1(PidType particle)
static double fenergyloss
ClassImp(PndMvdAdvancedPidAlgo) void PndMvdAdvancedPidAlgo