//#include "AliITSIOTrack.h"
#include "AliKalmanTrack.h"
#include "Riostream.h"
+#include <cassert>
+
+using std::cout;
+using std::endl;
ClassImp(AliTPCPid)
// Correction 13.01.2003 Z.S.,Dubna
// 22.01.2003
// pid class by B. Batyunya
// stupid corrections by M.K.
//
+//_______________________________________________________
//________________________________________________________
- AliTPCPid::AliTPCPid( const AliTPCPid& r):TObject(r)
+AliTPCPid::AliTPCPid( const AliTPCPid& r):TObject(r),
+ fCutKa(0),
+ fCutPr(0),
+ fCutKaTune(0.),
+ fCutPrTune(0.),
+ fSigmin(0.),
+ fSilent(0),
+ fmxtrs(0),
+ trs(0),
+ fqtot(0.),
+ fWpi(0.),
+ fWk(0.),
+ fWp(0.),
+ fRpik(0.),
+ fRppi(0.),
+ fRpka(0.),
+ fRp(0.),
+ fPcode(0)
{
// dummy copy constructor
}
if(fcorr<=0.1)fcorr=0.1;
return fqtot/fcorr;
}
+//__________________________________________________________
+AliTPCPid & AliTPCPid::operator =(const AliTPCPid & param)
+{
+ //
+ // assignment operator - dummy
+ //
+ if(this!=¶m){
+ fSigmin=param.fSigmin;
+ }
+ return (*this);
+}
//-----------------------------------------------------------
Float_t AliTPCPid::Qtrm(Int_t track) const
{
cout<<"TPCtrack dedx,mom,pcode="<<dedx<<","<<mom<<","<<pcode<<endl;
return pcode?pcode:211;
}
-
+/*
//-----------------------------------------------------------
Int_t AliTPCPid::GetPcode(AliKalmanTrack *track)
{
cout<<"ITS V2 dedx,mom,pcode="<<dedx<<","<<mom<<","<<pcode<<endl;
return pcode?pcode:211;
}
-
+*/
//-----------------------------------------------------------
Int_t AliTPCPid::GetPcode(Float_t q,Float_t pm)
{
{ if( q<fCutKa->Eval(pm) ){fWpi=1.; return Pion(); }
else {fWk =1.; return Kaon();} }
//3)----------------------200-400 Mev/c -------------
- if ( pm<=fcut[3][0] )
+ if ( pm<=fcut[3][0] ){
if( q<fCutKa->Eval(pm) )
{ fWpi=1.;return Pion(); }
else
{ if ( q<=fCutPr->Eval(pm) )
{fWk=1.;return Kaon();}
else {fWp=1.;return Proton();}
- }
+ }}
//4)----------------------400-450 Mev/c -------------
- if ( pm<=fcut[4][0] )
+ if ( pm<=fcut[4][0] ){
if( q<fCutKaTune*fCutKa->Eval(pm) )
{ fWpi=1.;return Pion(); }
else
{ if( q<fCutPr->Eval(pm) )
{fWk=1.;return Kaon();} else {fWp=1.;return Proton(); }
- }
+ }}
//5)----------------------450-500 Mev/c -------------
- if ( pm<=fcut[5][0] )
+ if ( pm<=fcut[5][0] ){
if ( q>fCutPr->Eval(pm) )
- {fWp=1.;return Proton();} else {return Wpik(5,q);};
+ {fWp=1.;return Proton();} else {return Wpik(5,q);}}
//6)----------------------500-550 Mev/c -------------
- if ( pm<=fcut[6][0] )
+ if ( pm<=fcut[6][0] ){
if ( q>fCutPr->Eval(pm) )
- {fWp=1.;return Proton();} else {return Wpik(6,q);};
+ {fWp=1.;return Proton();} else {return Wpik(6,q);}}
//7)----------------------550-600 Mev/c -------------
- if ( pm<=fcut[7][0] )
+ if ( pm<=fcut[7][0] ){
if ( q>fCutPr->Eval(pm) )
- {fWp=1.;return Proton();} else {return Wpik(7,q);};
+ {fWp=1.;return Proton();} else {return Wpik(7,q);}}
//8)----------------------600-650 Mev/c -------------
- if ( pm<=fcut[8][0] )
- if ( q>fCutPrTune*fCutPr->Eval(pm) ){fWp=1.;return Proton();}
+ if ( pm<=fcut[8][0] ){
+ if ( q>fCutPrTune*fCutPr->Eval(pm) ){fWp=1.;return Proton();}}
else {return Wpik(8,q);};
//9)----------------------650-730 Mev/c -------------
- if ( pm<=fcut[9][0] )
+ if ( pm<=fcut[9][0] ){
if ( q>fCutPrTune*fCutPr->Eval(pm) ){fWp=1.;return Proton();}
- else {return Wpik(9,q);};
+ else {return Wpik(9,q);}}
//10)----------------------730-830 Mev/c -------------
- if( pm<=fcut[10][0] )
- if ( q>fCutPrTune*fCutPr->Eval(pm) ){fWp=1.;return Proton();}
+ if( pm<=fcut[10][0] ){
+ if ( q>fCutPrTune*fCutPr->Eval(pm) ){fWp=1.;return Proton();}}
else {return Wpik(10,q);};
//11)----------------------830-930 Mev/c -------------
if( pm<=fcut[11][0] ){ return Wpikp(11,q); }
}
}
//-----------------------------------------------------------
-void AliTPCPid::Print(Int_t track)
+void AliTPCPid::PrintPID(Int_t track)
{
//
// control print
TVector xx( *((TVector*)trs->At(i)) );
if( xx.IsValid() && xx(0)>0 )
{
- TVector xx( *((TVector*)trs->At(i)) );
if(xx(0)>=2)
{
// 1)Calculate Qtrm
}
}
//-----------------------------------------------------------
-AliTPCPid::AliTPCPid(Int_t ntrack)
+AliTPCPid::AliTPCPid(Int_t ntrack):TObject(),
+ fCutKa(0),
+ fCutPr(0),
+ fCutKaTune(0.),
+ fCutPrTune(0.),
+ fSigmin(0.),
+ fSilent(0),
+ fmxtrs(0),
+ trs(0),
+ fqtot(0.),
+ fWpi(0.),
+ fWk(0.),
+ fWp(0.),
+ fRpik(0.),
+ fRppi(0.),
+ fRpka(0.),
+ fRp(0.),
+ fPcode(0)
{
trs = new TClonesArray("TVector",ntrack);
TClonesArray &arr=*trs;
for(Int_t i=0;i<ntrack;i++)new(arr[i])TVector(0,11);
- fmxtrs=0;
+
//fCutKa = new TF1("fkaons","[0]/x/x+[1]",0.1,1.2);
//fCutPr = new TF1("fprotons","[0]/x/x +[1]",0.2,1.2);
- TF1 *frmska=0;
+ //TF1 *frmska=0;
- frmska = new TF1("x_frmska","1.46-7.82*x+16.78*x^2-15.53*x^3+5.24*x^4 ",
+ TF1 frmska("x_frmska","1.46-7.82*x+16.78*x^2-15.53*x^3+5.24*x^4 ",
0.1,1.2);
fCutKa = new TF1("fkaons",
"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",