AliRoot Core  v5-06-30 (35d6c57)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliTPCPid.cxx
Go to the documentation of this file.
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 
17 
18 #include "AliTPCPid.h"
19 #include "TMath.h"
20 //#include <TVector.h>
21 
22 #include <TF1.h>
23 #include <TClonesArray.h>
24 //#include "AliITSIOTrack.h"
25 #include "AliKalmanTrack.h"
26 #include "Riostream.h"
27 #include <cassert>
28 
29 using std::cout;
30 using std::endl;
34 // Correction 13.01.2003 Z.S.,Dubna
35 // 22.01.2003
36 //------------------------------------------------------------
37 // pid class by B. Batyunya
38 // stupid corrections by M.K.
39 //
40 //_______________________________________________________
41 //________________________________________________________
42 AliTPCPid::AliTPCPid( const AliTPCPid& r):TObject(r),
43  fCutKa(0),
44  fCutPr(0),
45  fCutKaTune(0.),
46  fCutPrTune(0.),
47  fSigmin(0.),
48  fSilent(0),
49  fmxtrs(0),
50  trs(0),
51  fqtot(0.),
52  fWpi(0.),
53  fWk(0.),
54  fWp(0.),
55  fRpik(0.),
56  fRppi(0.),
57  fRpka(0.),
58  fRp(0.),
59  fPcode(0)
60 {
61  // dummy copy constructor
62 }
63 Float_t AliTPCPid::Qcorr(Float_t xc)
64 {
66 
67  assert(0);
68  Float_t fcorr;
69  fcorr=( 0.766 +0.9692*xc -1.267*xc*xc )*( 1.-TMath::Exp(-xc*64.75) );
70  if(fcorr<=0.1)fcorr=0.1;
71 return fqtot/fcorr;
72 }
73 //__________________________________________________________
75 {
77 
78  if(this!=&param){
79  fSigmin=param.fSigmin;
80  }
81  return (*this);
82 }
83 //-----------------------------------------------------------
84 Float_t AliTPCPid::Qtrm(Int_t track) const
85 {
87 
88  TVector q(*( this->GetVec(track) ));
89  Int_t ml=(Int_t)q(0);
90  if(ml<1)return 0.;
91  if(ml>6)ml=6;
92  float vf[6];
93  Int_t nl=0; for(Int_t i=0;i<ml;i++){if(q(i)>fSigmin){vf[nl]=q(i+1);nl++;}}
94  if(nl==0)return 0.;
95  switch(nl){
96  case 1:q(6)=q(1); break;
97  case 2:q(6)=(q(1)+q(2))/2.; break;
98  default:
99  for(int fi=0;fi<2;fi++){
100  Int_t swap;
101  do{ swap=0; float qmin=vf[fi];
102  for(int j=fi+1;j<nl;j++)
103  if(qmin>vf[j]){qmin=vf[j];vf[j]=vf[fi];vf[fi]=qmin;swap=1;};
104  }while(swap==1);
105  }
106  q(6)= (vf[0]+vf[1])/2.;
107  break;
108  }
109  for(Int_t i=0;i<nl;i++){q(i+1)=vf[i];} this->SetVec(track,q);
110  return (q(6));
111 }// --- End AliTPCPid::Qtrm ---
112 
113 Float_t AliTPCPid::Qtrm(Float_t qarr[6],Int_t narr)
114 {
116 
117  Float_t q[6],qm,qmin;
118  Int_t nl,ml;
119  if(narr>0&&narr<7){ml=narr;}else{return 0;};
120  nl=0; for(Int_t i=0;i<ml;i++){if(qarr[i]>fSigmin){q[nl]=qarr[i];nl++;}}
121  if(nl==0)return 0.;
122  switch(nl){
123  case 1:qm=q[0]; break;
124  case 2:qm=(q[0]+q[1])/2.; break;
125  default:
126  Int_t swap;
127  for(int fi=0;fi<2;fi++){
128  do{ swap=0; qmin=q[fi];
129  for(int j=fi+1;j<nl;j++)
130  if(qmin>q[j]){qmin=q[j];q[j]=q[fi];q[fi]=qmin;swap=1;};
131  }while(swap==1);
132  }
133  qm= (q[0]+q[1])/2.;
134  break;
135  }
136  return qm;
137 }// --- End AliTPCPid::Qtrm ---
138 
139 Int_t AliTPCPid::Wpik(Int_t nc,Float_t q)
140 {
142 
143  Float_t qmpi,qmk,sigpi,sigk,dpi,dk,ppi,pk;
144  Float_t appi,apk;
145  qmpi =fcut[nc][1];
146  sigpi=fcut[nc][2];
147  qmk =fcut[nc][3];
148  sigk =fcut[nc][4];
149  appi = faprob[0][nc-5];
150  apk = faprob[1][nc-5];
151  if( !fSilent ){
152  cout<<"qmpi,sigpi,qmk,sigk="<<qmpi<<" "<<sigpi<<" "<<qmk<<" "<<sigk<<endl;
153  cout<<"appi,apk="<<appi<<","<<apk<<endl;
154  }
155  Float_t dqpi=(q-qmpi)/sigpi;
156  Float_t dqk =(q-qmk )/sigk;
157  dpi =TMath::Abs(dqpi);
158  dk =TMath::Abs(dqk);
159  Double_t dn=appi*TMath::Gaus(q,qmpi,sigpi)+apk*TMath::Gaus(q,qmk,sigk);
160  if(dn>0.){
161  ppi=appi*TMath::Gaus(q,qmpi,sigpi)/dn;
162  pk = apk*TMath::Gaus(q,qmk, sigk )/dn;
163  }else{fWpi=1;return Pion();}
164  Float_t rpik=ppi/(pk+0.0000001);
165  if( !fSilent )
166  cout<<"q,dqpi,dqk, Wpik: ppi,pk,rpik="
167  <<q<<" "<<dqpi<<" "<<dqk<<" "<<ppi<<" "<<pk<<" "<<rpik<<endl;
168 
169  fWp=0.; fWpi=ppi; fWk=pk;
170  if( pk>ppi){return Kaon();}else{return Pion();}
171 }
172 //-----------------------------------------------------------
173 Int_t AliTPCPid::Wpikp(Int_t nc,Float_t q)
174 {
176 
177  Float_t qmpi,qmk,qmp,sigpi,sigk,sigp,ppi,pk,pp;
178  Float_t appi,apk,app;
179 
180  qmpi =fcut[nc][1];
181  sigpi=fcut[nc][2];
182  qmk =fcut[nc][3];
183  sigk =fcut[nc][4];
184  qmp =fcut[nc][5];
185  sigp =fcut[nc][6];
186 
187  //appi = apk = app = 1.;
188  appi = faprob[0][nc-5];
189  apk = faprob[1][nc-5];
190  app = faprob[2][nc-5];
191 
192  Double_t dn= appi*TMath::Gaus(q,qmpi,sigpi)
193  +apk*TMath::Gaus(q,qmk,sigk)+app*TMath::Gaus(q,qmp,sigp);
194  if(dn>0.){
195  ppi=appi*TMath::Gaus(q,qmpi,sigpi)/dn;
196  pk = apk*TMath::Gaus(q,qmk, sigk )/dn;
197  pp = app*TMath::Gaus(q,qmp, sigp )/dn;
198  }
199  else{fWpi=1;return Pion();}
200  fWp=pp; fWpi=ppi; fWk=pk;
201  if( !fSilent ){
202 cout<<" Wpikp: mid,sig pi,k,p="<<qmpi<<" "<<sigpi<<"; "<<qmk<<" "<<sigk<<"; "
203  <<qmp<<" "<<sigp<<"; "<<endl;
204 cout<<" faprob: "<<appi<<" "<<apk<<" "<<app<<endl;
205 cout<<" ppi,pk,pp="<<ppi<<" "<<pk<<" "<<pp<<endl;
206  }
207  if( ppi>pk&&ppi>pp ) { return Pion(); }
208  if(pk>pp){return Kaon();}else{return Proton();}
209 }
210 //-----------------------------------------------------------
211 Int_t AliTPCPid::GetPcode(TClonesArray* /*rps*/,Float_t /*pm*/) const
212 {
214 
215  return 0;
216 }
217 //-----------------------------------------------------------
218 Int_t AliTPCPid::GetPcode(AliTPCtrack *track)
219 {
221 
222  Double_t xk,par[5]; track->GetExternalParameters(xk,par);
223  Float_t phi=TMath::ASin(par[2]) + track->GetAlpha();
224  if (phi<-TMath::Pi()) phi+=2*TMath::Pi();
225  if (phi>=TMath::Pi()) phi-=2*TMath::Pi();
226  Float_t lam=TMath::ATan(par[3]);
227  Float_t pt1=TMath::Abs(par[4]);
228  Float_t mom=1./(pt1*TMath::Cos(lam));
229  Float_t dedx=track->GetdEdx();
230  Int_t pcode=GetPcode(dedx/40.,mom);
231  cout<<"TPCtrack dedx,mom,pcode="<<dedx<<","<<mom<<","<<pcode<<endl;
232  return pcode?pcode:211;
233  }
234 /*
235 //-----------------------------------------------------------
236 Int_t AliTPCPid::GetPcode(AliKalmanTrack *track)
237 {
238  //
239  // get particle code
240  //
241  if(track==0)return 0;
242  // track->Propagate(track->GetAlpha(),3.,0.1/65.19*1.848,0.1*1.848);
243  track->PropagateTo(3.,0.0028,65.19);
244  track->PropagateToVertex();
245  Double_t xk,par[5]; track->GetExternalParameters(xk,par);
246  Float_t lam=TMath::ATan(par[3]);
247  Float_t pt1=TMath::Abs(par[4]);
248  Float_t mom=0.;
249  if( (pt1*TMath::Cos(lam))!=0. ){ mom=1./(pt1*TMath::Cos(lam)); }else{mom=0.;};
250  Float_t dedx=track->GetPIDsignal();
251  cout<<"lam,pt1,mom,dedx="<<lam<<","<<pt1<<","<<mom<<","<<dedx<<endl;
252  Int_t pcode=GetPcode(dedx,mom);
253  cout<<"ITS V2 dedx,mom,pcode="<<dedx<<","<<mom<<","<<pcode<<endl;
254 return pcode?pcode:211;
255 }
256 */
257 //-----------------------------------------------------------
258 Int_t AliTPCPid::GetPcode(Float_t q,Float_t pm)
259 {
261 
262  fWpi=fWk=fWp=0.; fPcode=0;
263 //1)---------------------- 0-120 MeV/c --------------
264  if ( pm<=fcut[1][0] )
265  { fWpi=1.; return Pion(); }
266 //2)----------------------120-200 Mev/c ( 29.7.2002 ) -------------
267  if ( pm<=fcut[2][0] )
268  { if( q<fCutKa->Eval(pm) ){fWpi=1.; return Pion(); }
269  else {fWk =1.; return Kaon();} }
270 //3)----------------------200-400 Mev/c -------------
271  if ( pm<=fcut[3][0] ){
272  if( q<fCutKa->Eval(pm) )
273  { fWpi=1.;return Pion(); }
274  else
275  { if ( q<=fCutPr->Eval(pm) )
276  {fWk=1.;return Kaon();}
277  else {fWp=1.;return Proton();}
278  }}
279 //4)----------------------400-450 Mev/c -------------
280  if ( pm<=fcut[4][0] ){
281  if( q<fCutKaTune*fCutKa->Eval(pm) )
282  { fWpi=1.;return Pion(); }
283  else
284  { if( q<fCutPr->Eval(pm) )
285  {fWk=1.;return Kaon();} else {fWp=1.;return Proton(); }
286  }}
287 //5)----------------------450-500 Mev/c -------------
288  if ( pm<=fcut[5][0] ){
289  if ( q>fCutPr->Eval(pm) )
290  {fWp=1.;return Proton();} else {return Wpik(5,q);}}
291 //6)----------------------500-550 Mev/c -------------
292  if ( pm<=fcut[6][0] ){
293  if ( q>fCutPr->Eval(pm) )
294  {fWp=1.;return Proton();} else {return Wpik(6,q);}}
295 //7)----------------------550-600 Mev/c -------------
296  if ( pm<=fcut[7][0] ){
297  if ( q>fCutPr->Eval(pm) )
298  {fWp=1.;return Proton();} else {return Wpik(7,q);}}
299 //8)----------------------600-650 Mev/c -------------
300  if ( pm<=fcut[8][0] ){
301  if ( q>fCutPrTune*fCutPr->Eval(pm) ){fWp=1.;return Proton();}}
302  else {return Wpik(8,q);};
303 //9)----------------------650-730 Mev/c -------------
304  if ( pm<=fcut[9][0] ){
305  if ( q>fCutPrTune*fCutPr->Eval(pm) ){fWp=1.;return Proton();}
306  else {return Wpik(9,q);}}
307 //10)----------------------730-830 Mev/c -------------
308  if( pm<=fcut[10][0] ){
309  if ( q>fCutPrTune*fCutPr->Eval(pm) ){fWp=1.;return Proton();}}
310  else {return Wpik(10,q);};
311 //11)----------------------830-930 Mev/c -------------
312  if( pm<=fcut[11][0] ){ return Wpikp(11,q); }
313 //12)----------------------930-1030 Mev/c -------------
314  if( pm<=fcut[12][0] )
315  { return Wpikp(12,q); };
316 
317  return fPcode;
318 }
319 //-----------------------------------------------------------
320 void AliTPCPid::SetCut(Int_t n,Float_t pm,Float_t pilo,Float_t pihi,
321  Float_t klo,Float_t khi,Float_t plo,Float_t phi)
322 {
324 
325  fcut[n][0]=pm;
326  fcut[n][1]=pilo;
327  fcut[n][2]=pihi;
328  fcut[n][3]=klo;
329  fcut[n][4]=khi;
330  fcut[n][5]=plo;
331  fcut[n][6]=phi;
332  return ;
333 }
334 //------------------------------------------------------------
335 void AliTPCPid::SetVec(Int_t ntrack,TVector info) const
336 {
338 
339 TClonesArray& arr=*trs;
340  new( arr[ntrack] ) TVector(info);
341 }
342 //-----------------------------------------------------------
343 TVector* AliTPCPid::GetVec(Int_t ntrack) const
344 {
346 
347 TClonesArray& arr=*trs;
348  return (TVector*)arr[ntrack];
349 }
350 //-----------------------------------------------------------
351 void AliTPCPid::SetEdep(Int_t track,Float_t Edep)
352 {
354 
355  TVector xx(0,11);
356  if( ((TVector*)trs->At(track))->IsValid() )
357  {TVector yy( *((TVector*)trs->At(track)) );xx=yy; }
358  Int_t j=(Int_t)xx(0); if(j>4)return;
359  xx(++j)=Edep;xx(0)=j;
360  TClonesArray &arr=*trs;
361  new(arr[track])TVector(xx);
362 }
363 //-----------------------------------------------------------
364 void AliTPCPid::SetPmom(Int_t track,Float_t Pmom)
365 {
367 
368  TVector xx(0,11);
369  if( ((TVector*)trs->At(track))->IsValid() )
370  {TVector yy( *((TVector*)trs->At(track)) );xx=yy; }
371  xx(10)=Pmom;
372  TClonesArray &arr=*trs;
373  new(arr[track])TVector(xx);
374 }
375 //-----------------------------------------------------------
376 void AliTPCPid::SetPcod(Int_t track,Int_t partcode)
377 {
379 
380  TVector xx(0,11);
381  if( ((TVector*)trs->At(track))->IsValid() )
382  {TVector yy( *((TVector*)trs->At(track)) );xx=yy; }
383  if(xx(11)==0)
384  {xx(11)=partcode; fmxtrs++;
385  TClonesArray &arr=*trs;
386  new(arr[track])TVector(xx);
387  }
388 }
389 //-----------------------------------------------------------
391 {
393 
394 cout<<fmxtrs<<" tracks in AliITSPid obj."<<endl;
395  if( ((TVector*)trs->At(track))->IsValid() )
396  {TVector xx( *((TVector*)trs->At(track)) );
397  xx.Print();
398  }
399  else
400  {cout<<"No data for track "<<track<<endl;return;}
401 }
402 //-----------------------------------------------------------
403 void AliTPCPid::Tab(void)
404 {
406 
407 if(trs->GetEntries()==0){cout<<"No entries in TAB"<<endl;return;}
408 cout<<"------------------------------------------------------------------------"<<endl;
409 cout<<"Nq"<<" q1 "<<" q2 "<<" q3 "<<" q4 "<<" q5 "<<
410  " Qtrm " <<" Wpi "<<" Wk "<<" Wp "<<"Pmom "<<endl;
411 cout<<"------------------------------------------------------------------------"<<endl;
412 for(Int_t i=0;i<trs->GetEntries();i++)
413 {
414  TVector xx( *((TVector*)trs->At(i)) );
415  if( xx.IsValid() && xx(0)>0 )
416  {
417  if(xx(0)>=2)
418  {
419 // 1)Calculate Qtrm
420  xx(6)=(this->Qtrm(i));
421 
422  }else{
423  xx(6)=xx(1);
424  }
425 // 2)Calculate Wpi,Wk,Wp
426  this->GetPcode(xx(6),xx(10)/1000.);
427  xx(7)=GetWpi();
428  xx(8)=GetWk();
429  xx(9)=GetWp();
430 // 3)Print table
431  if(xx(0)>0){
432  cout<<xx(0)<<" ";
433  for(Int_t j=1;j<11;j++){
434  cout.width(7);cout.precision(5);cout<<xx(j);
435  }
436  cout<<endl;
437  }
438 // 4)Update data in TVector
439  TClonesArray &arr=*trs;
440  new(arr[i])TVector(xx);
441  }
442  else
443  {/*cout<<"No data for track "<<i<<endl;*/}
444 }// End loop for tracks
445 }
447 {
449 
450  for(Int_t i=0;i<trs->GetEntries();i++){
451  TVector xx(0,11);
452  TClonesArray &arr=*trs;
453  new(arr[i])TVector(xx);
454  }
455 }
456 //-----------------------------------------------------------
457 AliTPCPid::AliTPCPid(Int_t ntrack):TObject(),
458  fCutKa(0),
459  fCutPr(0),
460  fCutKaTune(0.),
461  fCutPrTune(0.),
462  fSigmin(0.),
463  fSilent(0),
464  fmxtrs(0),
465  trs(0),
466  fqtot(0.),
467  fWpi(0.),
468  fWk(0.),
469  fWp(0.),
470  fRpik(0.),
471  fRppi(0.),
472  fRpka(0.),
473  fRp(0.),
474  fPcode(0)
475 {
476  trs = new TClonesArray("TVector",ntrack);
477  TClonesArray &arr=*trs;
478  for(Int_t i=0;i<ntrack;i++)new(arr[i])TVector(0,11);
479 
480 
481  //fCutKa = new TF1("fkaons","[0]/x/x+[1]",0.1,1.2);
482  //fCutPr = new TF1("fprotons","[0]/x/x +[1]",0.2,1.2);
483  //TF1 *frmska=0;
484 
485  TF1 frmska("x_frmska","1.46-7.82*x+16.78*x^2-15.53*x^3+5.24*x^4 ",
486  0.1,1.2);
487  fCutKa = new TF1("fkaons",
488  "1.25+0.044/x/x+1.25+0.044*x-13.87*x^2+22.37*x^3-10.05*x^4-2.5*x_frmska",
489  0.1,1.2);
490  fCutPr = new TF1("fprotons",
491  "0.83*(15.32-56.094*x+89.962*x^2-66.1856*x^3+18.4052*x^4)",
492  0.2,1.2);
493  fCutKaTune=1.1; // 0.92;
494  fCutPrTune=1.0; //0.80;
495 
496 const int kinf=10;
497 // Ncut Pmom pilo pihi klo khi plo phi
498 // fcut[j] [0] [1] [2] [3] [4] [5] [6]
499 //----------------------------------------------------------------
500  SetCut( 1, 0.120, 0. , 0. , kinf , kinf , kinf , kinf );
501  SetCut( 2, 0.200, 0. , 6.0 , 6.0 , kinf , kinf , kinf ); //120-200
502  SetCut( 3, 0.400, 0. , 3.5 , 3.5 , 9.0 , 9.0 , kinf ); //200-400
503  SetCut( 4, 0.450, 0. , 1.9 , 1.9 , 4.0 , 4.0 , kinf ); //400-450
504 //----------------------------------------------------------------
505  SetCut( 5, 0.500, 0.976, 0.108, 1.484 , 0.159 , 3.5 , kinf ); //450-500
506  SetCut( 6, 0.550, 0.979, 0.108, 1.376 , 0.145 , 3.0 , kinf ); //500-550
507 //----------------------------------------------------------------
508  SetCut( 7, 0.600, 0.984, 0.111, 1.295 , 0.146 , 2.7 , kinf ); //550-600
509  SetCut( 8, 0.650, 0.989, 0.113, 1.239 , 0.141 , 2.5 , kinf ); //600-650
510  SetCut( 9, 0.730, 0.995, 0.109, 1.172 , 0.132 , 2.0 , kinf ); //650-730
511 //----------------------------------------------------------------
512  SetCut( 10, 0.830, 1.008, 0.116, 1.117 , 0.134 , 1.703, 0.209 ); //730-830
513  SetCut( 11, 0.930, 1.019, 0.115, 1.072 , 0.121 , 1.535, 0.215 ); //830-930
514  SetCut( 12, 1.230, 1.035, 0.117, 1.053 , 0.140 ,1.426, 0.270); //930-1030
515  //------------------------ pi,K ---------------------
516  faprob[0][0]=33219.; faprob[1][0]=1971.; // faprob[0][i] - pions
517  faprob[0][1]=28828.; faprob[1][1]=1973.; // faprob[1][i] - kaons
518  //---------------------------------------------------
519  faprob[0][2]=24532.; faprob[1][2]=1932.; faprob[2][2]=1948.;
520  faprob[0][3]=20797.; faprob[1][3]=1823.; faprob[2][3]=1970.;
521  faprob[0][4]=27017.; faprob[1][4]=2681.; faprob[2][4]=2905.;
522  //------------------------ pi,K,p -------------------
523  faprob[0][5]= 24563.; faprob[1][5]=2816.; faprob[2][5]=3219.;
524  faprob[0][6]= 16877.; faprob[1][6]=2231.; faprob[2][6]=2746.;
525  faprob[0][7]= 11557.; faprob[1][7]=1681; faprob[2][7]=2190.;
526 
527  fSilent=kTRUE;
528 }
529 //-----------------------------------------------------------
530 
531 
532 
void Tab(void)
Definition: AliTPCPid.cxx:403
TClonesArray * trs
pointer
Definition: AliTPCPid.h:63
void SetVec(Int_t track, TVector info) const
Definition: AliTPCPid.cxx:335
Float_t fcut[13][7]
Definition: AliTPCPid.h:61
Float_t fWpi
Definition: AliTPCPid.h:65
Float_t fCutKaTune
Definition: AliTPCPid.h:58
Int_t fmxtrs
fmxtrs
Definition: AliTPCPid.h:62
Int_t Kaon()
Definition: AliTPCPid.h:53
Float_t Qtrm(Int_t track) const
Definition: AliTPCPid.cxx:84
TF1 * fCutKa
function
Definition: AliTPCPid.h:56
Int_t fSilent
flag
Definition: AliTPCPid.h:60
Float_t faprob[3][8]
cuts
Definition: AliTPCPid.h:61
Float_t GetWp() const
Definition: AliTPCPid.h:44
Float_t fCutPrTune
tune cuts
Definition: AliTPCPid.h:58
AliTPCfastTrack * track
Int_t GetPcode(TClonesArray *, Float_t) const
Definition: AliTPCPid.cxx:211
Float_t fWk
Definition: AliTPCPid.h:65
ClassImp(TPCGenInfo)
Definition: AliTPCCmpNG.C:254
Float_t Qcorr(Float_t xc)
Definition: AliTPCPid.cxx:63
void PrintPID(Int_t track)
Definition: AliTPCPid.cxx:390
void SetCut(Int_t n, Float_t pm, Float_t pilo, Float_t pihi, Float_t klo, Float_t khi, Float_t plo, Float_t phi)
Definition: AliTPCPid.cxx:320
AliTPCPid & operator=(const AliTPCPid &param)
Definition: AliTPCPid.cxx:74
Int_t Wpik(Int_t nc, Float_t q)
Definition: AliTPCPid.cxx:139
Float_t GetWk() const
Definition: AliTPCPid.h:43
Int_t Proton()
Definition: AliTPCPid.h:54
Int_t Pion()
Definition: AliTPCPid.h:52
Int_t fPcode
p-code
Definition: AliTPCPid.h:67
Float_t fSigmin
sigma min
Definition: AliTPCPid.h:59
Float_t fqtot
tot q
Definition: AliTPCPid.h:64
void SetPcod(Int_t track, Int_t Pcod)
Definition: AliTPCPid.cxx:376
void SetEdep(Int_t track, Float_t Edep)
Definition: AliTPCPid.cxx:351
TVector * GetVec(Int_t track) const
Definition: AliTPCPid.cxx:343
Float_t fWp
weights
Definition: AliTPCPid.h:65
void Reset(void)
Definition: AliTPCPid.cxx:446
Float_t GetWpi() const
Definition: AliTPCPid.h:42
AliTPCPid(Int_t ntrs=1000)
Definition: AliTPCPid.cxx:457
TF1 * fCutPr
function
Definition: AliTPCPid.h:57
void SetPmom(Int_t track, Float_t Pmom)
Definition: AliTPCPid.cxx:364
Int_t Wpikp(Int_t nc, Float_t q)
Definition: AliTPCPid.cxx:173