]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCPid.cxx
remove permission
[u/mrichter/AliRoot.git] / TPC / AliTPCPid.cxx
index d32390cf4ecb004a3209b06bf16ba132c16580f4..ba47b3e5ffdce06d3ccfdb74876b0437c7e36c28 100644 (file)
 //#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
@@ -30,8 +34,26 @@ ClassImp(AliTPCPid)
 // 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
 }
@@ -46,6 +68,17 @@ Float_t AliTPCPid::Qcorr(Float_t xc)
   if(fcorr<=0.1)fcorr=0.1;
 return fqtot/fcorr;
 }
+//__________________________________________________________
+AliTPCPid & AliTPCPid::operator =(const AliTPCPid & param)
+{
+  //
+  // assignment operator - dummy
+  //
+  if(this!=&param){
+     fSigmin=param.fSigmin;
+  }
+  return (*this);
+}
 //-----------------------------------------------------------
 Float_t AliTPCPid::Qtrm(Int_t track) const
 {
@@ -201,6 +234,7 @@ Int_t   AliTPCPid::GetPcode(AliTPCtrack *track)
     cout<<"TPCtrack dedx,mom,pcode="<<dedx<<","<<mom<<","<<pcode<<endl;
     return pcode?pcode:211;
     }
+/*
 //-----------------------------------------------------------
 Int_t   AliTPCPid::GetPcode(AliKalmanTrack *track)
 {
@@ -216,12 +250,13 @@ Int_t   AliTPCPid::GetPcode(AliKalmanTrack *track)
     Float_t pt1=TMath::Abs(par[4]);
     Float_t mom=0.;
     if( (pt1*TMath::Cos(lam))!=0. ){ mom=1./(pt1*TMath::Cos(lam)); }else{mom=0.;};
-    Float_t dedx=track->GetdEdx();
+    Float_t dedx=track->GetPIDsignal();
     cout<<"lam,pt1,mom,dedx="<<lam<<","<<pt1<<","<<mom<<","<<dedx<<endl;
     Int_t pcode=GetPcode(dedx,mom);
     cout<<"ITS V2 dedx,mom,pcode="<<dedx<<","<<mom<<","<<pcode<<endl;
 return pcode?pcode:211;
 }
+*/
 //-----------------------------------------------------------
 Int_t  AliTPCPid::GetPcode(Float_t q,Float_t pm)
 {
@@ -237,45 +272,45 @@ 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); }
@@ -362,7 +397,7 @@ void AliTPCPid::SetPcod(Int_t track,Int_t partcode)
        }
 }
 //-----------------------------------------------------------
-void AliTPCPid::Print(Int_t track)
+void AliTPCPid::PrintPID(Int_t track)
 {
   //
   // control print
@@ -391,7 +426,6 @@ for(Int_t i=0;i<trs->GetEntries();i++)
   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      
@@ -433,18 +467,35 @@ void AliTPCPid::Reset(void)
   }
 }
 //-----------------------------------------------------------
-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",