improved pid cuts + coverty stuff
authorsnelling <snelling@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 22 Feb 2011 19:29:29 +0000 (19:29 +0000)
committersnelling <snelling@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 22 Feb 2011 19:29:29 +0000 (19:29 +0000)
PWG2/FLOW/AliFlowTasks/AliAnalysisTaskFlowEvent.cxx
PWG2/FLOW/AliFlowTasks/AliAnalysisTaskPIDflowQA.cxx
PWG2/FLOW/AliFlowTasks/AliAnalysisTaskPIDflowQA.h
PWG2/FLOW/AliFlowTasks/AliFlowTrackCuts.cxx
PWG2/FLOW/AliFlowTasks/AliFlowTrackCuts.h

index 4cc3d60..ca20833 100644 (file)
@@ -276,12 +276,12 @@ void AliAnalysisTaskFlowEvent::UserExec(Option_t *)
     TList* FMDdata = dynamic_cast<TList*>(GetInputData(availableINslot++));
     if(!FMDdata) {
       cout<<" No FMDdata "<<endl;
-      exit(2);
+      return;
     }
     histFMD = dynamic_cast<TH2F*>(FMDdata->FindObject("dNdetadphiHistogramTrVtx"));
     if (!histFMD) {
       cout<< "No histFMD"<<endl;
-      exit(2);
+      return;
     }
   }
 
@@ -309,7 +309,7 @@ void AliAnalysisTaskFlowEvent::UserExec(Option_t *)
   }
 
   // Make the FlowEvent for MC input
-  if (fAnalysisType == "MC")
+  else if (fAnalysisType == "MC")
   {
     // Process MC truth, therefore we receive the AliAnalysisManager and ask it for the AliMCEventHandler
     // This handler can return the current MC event
@@ -365,10 +365,10 @@ void AliAnalysisTaskFlowEvent::UserExec(Option_t *)
     if (fRPType == "Global") {
       flowEvent = new AliFlowEvent(myESD,fCFManager1,fCFManager2);
     }
-    if (fRPType == "TPCOnly") {
+    else if (fRPType == "TPCOnly") {
       flowEvent = new AliFlowEvent(myESD,fCFManager2,kFALSE);
     }
-    if (fRPType == "TPCHybrid") {
+    else if (fRPType == "TPCHybrid") {
       flowEvent = new AliFlowEvent(myESD,fCFManager2,kTRUE);
     }
     else if (fRPType == "Tracklet"){
@@ -427,6 +427,7 @@ void AliAnalysisTaskFlowEvent::UserExec(Option_t *)
     {
       flowEvent = new AliFlowEvent(myESD, mcEvent, AliFlowEvent::kMCkine, fCFManager1, fCFManager2 );
     }
+    if (!flowEvent) return;
     // if monte carlo event get reaction plane from monte carlo (depends on generator)
     if (mcEvent && mcEvent->GenEventHeader()) flowEvent->SetMCReactionPlaneAngle(mcEvent);
     //set reference multiplicity, TODO: maybe move it to the constructor?
@@ -478,6 +479,8 @@ void AliAnalysisTaskFlowEvent::UserExec(Option_t *)
     }
   }
 
+  if (!flowEvent) return; //shuts up coverity
+
   //check final event cuts
   Int_t mult = flowEvent->NumberOfTracks();
   AliInfo(Form("FlowEvent has %i tracks",mult));
index 7239ec6..c91adbe 100644 (file)
@@ -49,24 +49,6 @@ AliAnalysisTaskPIDflowQA:: AliAnalysisTaskPIDflowQA():
   fITSsignal(NULL),
   fTPCsignal(NULL),
   fTOFsignal(NULL),
-  fITSsignalpi(NULL),
-  fTPCsignalpi(NULL),
-  fTOFsignalpi(NULL),
-  fITSsignalK(NULL),
-  fTPCsignalK(NULL),
-  fTOFsignalK(NULL),
-  fITSsignalp(NULL),
-  fTPCsignalp(NULL),
-  fTOFsignalp(NULL),
-  fITSsignalpiMC(NULL),
-  fTPCsignalpiMC(NULL),
-  fTOFsignalpiMC(NULL),
-  fITSsignalKMC(NULL),
-  fTPCsignalKMC(NULL),
-  fTOFsignalKMC(NULL),
-  fITSsignalpMC(NULL),
-  fTPCsignalpMC(NULL),
-  fTOFsignalpMC(NULL),
   fITSsignalpip(NULL),
   fTPCsignalpip(NULL),
   fTOFsignalpip(NULL),
@@ -85,25 +67,12 @@ AliAnalysisTaskPIDflowQA:: AliAnalysisTaskPIDflowQA():
   fITSsignalpMCp(NULL),
   fTPCsignalpMCp(NULL),
   fTOFsignalpMCp(NULL),
-  fTOFsignalPiExpKvsPt(NULL),
-  fTOFsignalPiExpPvsPt(NULL),
-  fTOFsignalKExpPivsPt(NULL),
-  fTOFsignalKExpPvsPt(NULL),
-  fTOFsignalPExpPivsPt(NULL),
-  fTOFsignalPExpKvsPt(NULL),
-  fTOFsignalPiExpKvsP(NULL),
-  fTOFsignalPiExpPvsP(NULL),
-  fTOFsignalKExpPivsP(NULL),
-  fTOFsignalKExpPvsP(NULL),
-  fTOFsignalPExpPivsP(NULL),
-  fTOFsignalPExpKvsP(NULL),
   fTOFsignalBeta(NULL),
   fTOFsignalPiBeta(NULL),
   fTOFsignalKBeta(NULL),
   fTOFsignalPBeta(NULL),
   fPvsPt(NULL),
   fMeanPvsP(NULL),
-  fMeanPtvsPt(NULL),
   fOutputList(NULL)
 {
   //def ctor
@@ -120,24 +89,6 @@ AliAnalysisTaskPIDflowQA:: AliAnalysisTaskPIDflowQA(const char *name):
   fITSsignal(NULL),
   fTPCsignal(NULL),
   fTOFsignal(NULL),
-  fITSsignalpi(NULL),
-  fTPCsignalpi(NULL),
-  fTOFsignalpi(NULL),
-  fITSsignalK(NULL),
-  fTPCsignalK(NULL),
-  fTOFsignalK(NULL),
-  fITSsignalp(NULL),
-  fTPCsignalp(NULL),
-  fTOFsignalp(NULL),
-  fITSsignalpiMC(NULL),
-  fTPCsignalpiMC(NULL),
-  fTOFsignalpiMC(NULL),
-  fITSsignalKMC(NULL),
-  fTPCsignalKMC(NULL),
-  fTOFsignalKMC(NULL),
-  fITSsignalpMC(NULL),
-  fTPCsignalpMC(NULL),
-  fTOFsignalpMC(NULL),
   fITSsignalpip(NULL),
   fTPCsignalpip(NULL),
   fTOFsignalpip(NULL),
@@ -156,25 +107,12 @@ AliAnalysisTaskPIDflowQA:: AliAnalysisTaskPIDflowQA(const char *name):
   fITSsignalpMCp(NULL),
   fTPCsignalpMCp(NULL),
   fTOFsignalpMCp(NULL),
-  fTOFsignalPiExpKvsPt(NULL),
-  fTOFsignalPiExpPvsPt(NULL),
-  fTOFsignalKExpPivsPt(NULL),
-  fTOFsignalKExpPvsPt(NULL),
-  fTOFsignalPExpPivsPt(NULL),
-  fTOFsignalPExpKvsPt(NULL),
-  fTOFsignalPiExpKvsP(NULL),
-  fTOFsignalPiExpPvsP(NULL),
-  fTOFsignalKExpPivsP(NULL),
-  fTOFsignalKExpPvsP(NULL),
-  fTOFsignalPExpPivsP(NULL),
-  fTOFsignalPExpKvsP(NULL),
   fTOFsignalBeta(NULL),
   fTOFsignalPiBeta(NULL),
   fTOFsignalKBeta(NULL),
   fTOFsignalPBeta(NULL),
   fPvsPt(NULL),
   fMeanPvsP(NULL),
-  fMeanPtvsPt(NULL),
   fOutputList(NULL)
 {
   //Constructor
@@ -217,12 +155,11 @@ void  AliAnalysisTaskPIDflowQA::UserCreateOutputObjects()
   }
   tabx[ndec*npredec]=TMath::Power(10,ndec+startvalue);
 
-
-  fITSsignal=new TH2F("fITSsignal","fITSsignal;dEdx;p[GeV/c]",ndec*npredec,tabx,900,0,900);
+  fITSsignal=new TH2F("fITSsignal",";p [GeV/c];dEdx",ndec*npredec,tabx,900,0,900);
   fOutputList->Add(fITSsignal);
-  fTPCsignal=new TH2F("fTPCsignal","fTPCsignal;dEdx;p[GeV/c]",ndec*npredec,tabx,900,0,900);
+  fTPCsignal=new TH2F("fTPCsignal",";p [GeV/c];dEdx",ndec*npredec,tabx,500,0,500);
   fOutputList->Add(fTPCsignal);
-  fTOFsignal=new TH2F("fTOFsignal","fTOFsignal;t-t_{#pi};p[GeV/c]",ndec*npredec,tabx,1200,-2000,10000);
+  fTOFsignal=new TH2F("fTOFsignal",";p [GeV/c];t-t_{#pi}",ndec*npredec,tabx,1000,-2000,10000);
   fOutputList->Add(fTOFsignal);
 
   Int_t kPtBins=60;
@@ -247,79 +184,31 @@ void  AliAnalysisTaskPIDflowQA::UserCreateOutputObjects()
       binsPDummy[i]=binsPDummy[i-1]+0.1;
   }
 
-  fITSsignalpi=new TH2F("fITSsignalpi",";pt[GeV/c];signal",kPtBins,binsPtDummy,600,-4,4);//ITS PID signal as function of pt for pi+
-  fTPCsignalpi=new TH2F("fTPCsignalpi",";pt[GeV/c];signal",kPtBins,binsPtDummy,600,-4,4);//TPC PID signal as function of pt for pi+
-  fTOFsignalpi=new TH2F("fTOFsignalpi",";pt[GeV/c];signal",kPtBins,binsPtDummy,1000,-8000,8000);//TOF PID signal as function of pt for pi+
-  fOutputList->Add(fITSsignalpi);
-  fOutputList->Add(fTPCsignalpi);
-  fOutputList->Add(fTOFsignalpi);
-
-  fITSsignalK=new TH2F("fITSsignalK",";pt[GeV/c];signal",kPtBins,binsPtDummy,600,-4,4);//ITS PID signal as function of pt for K+
-  fTPCsignalK=new TH2F("fTPCsignalK",";pt[GeV/c];signal",kPtBins,binsPtDummy,600,-4,4);//TPC PID signal as function of pt for K+
-  fTOFsignalK=new TH2F("fTOFsignalK",";pt[GeV/c];signal",kPtBins,binsPtDummy,1000,-8000,8000);//TOF PID signal as function of pt for K+
-  fOutputList->Add(fITSsignalK);
-  fOutputList->Add(fTPCsignalK);
-  fOutputList->Add(fTOFsignalK);
-
-  fITSsignalp=new TH2F("fITSsignalp",";pt[GeV/c];signal",kPtBins,binsPtDummy,600,-4,4);//ITS PID signal as function of pt for p
-  fTPCsignalp=new TH2F("fTPCsignalp",";pt[GeV/c];signal",kPtBins,binsPtDummy,600,-4,4);//TPC PID signal as function of pt for p
-  fTOFsignalp=new TH2F("fTOFsignalp",";pt[GeV/c];signal",kPtBins,binsPtDummy,1000,-8000,8000);//TOF PID signal as function of pt for p
-  fOutputList->Add(fITSsignalp);
-  fOutputList->Add(fTPCsignalp);
-  fOutputList->Add(fTOFsignalp);
-
-  fTOFsignalPiExpKvsPt=new TH2F("fTOFsignalPiExpKvsPt",";pt[GeV/c];expected signal",kPtBins,binsPtDummy,1000,-8000,8000);//TOF PID signal as function of pt
-  fTOFsignalPiExpPvsPt=new TH2F("fTOFsignalPiExpPvsPt",";pt[GeV/c];expected signal",kPtBins,binsPtDummy,1000,-8000,8000);//TOF PID signal as function of pt
-  fTOFsignalKExpPivsPt=new TH2F("fTOFsignalKExpPivsPt",";pt[GeV/c];expected signal",kPtBins,binsPtDummy,1000,-8000,8000);//TOF PID signal as function of pt
-  fTOFsignalKExpPvsPt=new TH2F("fTOFsignalKExpPvsPt",";pt[GeV/c];expected signal",kPtBins,binsPtDummy,1000,-8000,8000);//TOF PID signal as function of pt
-  fTOFsignalPExpPivsPt=new TH2F("fTOFsignalPExpPivsPt",";pt[GeV/c];expected signal",kPtBins,binsPtDummy,1000,-8000,8000);//TOF PID signal as function of pt
-  fTOFsignalPExpKvsPt=new TH2F("fTOFsignalPExpKvsPt",";pt[GeV/c];expected signal",kPtBins,binsPtDummy,1000,-8000,8000);//TOF PID signal as function of pt
-  fOutputList->Add(fTOFsignalPiExpKvsPt);
-  fOutputList->Add(fTOFsignalPiExpPvsPt);
-  fOutputList->Add(fTOFsignalKExpPivsPt);
-  fOutputList->Add(fTOFsignalKExpPvsPt);
-  fOutputList->Add(fTOFsignalPExpPivsPt);
-  fOutputList->Add(fTOFsignalPExpKvsPt);
-
-  //p
-  fITSsignalpip=new TH2F("fITSsignalpip",";p[GeV/c];signal",kPBins,binsPDummy,600,-4,4);//ITS PID signal as function of p for pi+
-  fTPCsignalpip=new TH2F("fTPCsignalpip",";p[GeV/c];signal",kPBins,binsPDummy,600,-4,4);//TPC PID signal as function of p for pi+
-  fTOFsignalpip=new TH2F("fTOFsignalpip",";p[GeV/c];signal",kPBins,binsPDummy,1000,-8000,8000);//TOF PID signal as function of p for pi+
+  fITSsignalpip=new TH2F("fITSsignalPions",";p [GeV/c];signal",kPBins,binsPDummy,600,-4,4);//ITS PID signal as function of p for pi+
+  fTPCsignalpip=new TH2F("fTPCsignalPions",";p [GeV/c];signal",kPBins,binsPDummy,300,-1,1);//TPC PID signal as function of p for pi+
+  fTOFsignalpip=new TH2F("fTOFsignalPions",";p [GeV/c];signal",kPBins,binsPDummy,1000,-8000,8000);//TOF PID signal as function of p for pi+
   fOutputList->Add(fITSsignalpip);
   fOutputList->Add(fTPCsignalpip);
   fOutputList->Add(fTOFsignalpip);
 
-  fITSsignalKp=new TH2F("fITSsignalKp",";p[GeV/c];signal",kPBins,binsPDummy,600,-4,4);//ITS PID signal as function of p for K+
-  fTPCsignalKp=new TH2F("fTPCsignalKp",";p[GeV/c];signal",kPBins,binsPDummy,600,-4,4);//TPC PID signal as function of p for K+
-  fTOFsignalKp=new TH2F("fTOFsignalKp",";p[GeV/c];signal",kPBins,binsPDummy,1000,-8000,8000);//TOF PID signal as function of p for K+
+  fITSsignalKp=new TH2F("fITSsignalKaons",";p [GeV/c];signal",kPBins,binsPDummy,600,-4,4);//ITS PID signal as function of p for K+
+  fTPCsignalKp=new TH2F("fTPCsignalKaons",";p [GeV/c];signal",kPBins,binsPDummy,300,-1,1);//TPC PID signal as function of p for K+
+  fTOFsignalKp=new TH2F("fTOFsignalKaons",";p [GeV/c];signal",kPBins,binsPDummy,1000,-8000,8000);//TOF PID signal as function of p for K+
   fOutputList->Add(fITSsignalKp);
   fOutputList->Add(fTPCsignalKp);
   fOutputList->Add(fTOFsignalKp);
 
-  fITSsignalpp=new TH2F("fITSsignalpp",";p[GeV/c];signal",kPBins,binsPDummy,600,-4,4);//ITS PID signal as function of p for p
-  fTPCsignalpp=new TH2F("fTPCsignalpp",";p[GeV/c];signal",kPBins,binsPDummy,600,-4,4);//TPC PID signal as function of p for p
-  fTOFsignalpp=new TH2F("fTOFsignalpp",";p[GeV/c];signal",kPBins,binsPDummy,1000,-8000,8000);//TOF PID signal as function of p for p
+  fITSsignalpp=new TH2F("fITSsignalProtons",";p [GeV/c];signal",kPBins,binsPDummy,600,-4,4);//ITS PID signal as function of p for p
+  fTPCsignalpp=new TH2F("fTPCsignalProtons",";p [GeV/c];signal",kPBins,binsPDummy,300,-1,1);//TPC PID signal as function of p for p
+  fTOFsignalpp=new TH2F("fTOFsignalProtons",";p [GeV/c];signal",kPBins,binsPDummy,1000,-8000,8000);//TOF PID signal as function of p for p
   fOutputList->Add(fITSsignalpp);
   fOutputList->Add(fTPCsignalpp);
   fOutputList->Add(fTOFsignalpp);
 
-  fTOFsignalPiExpKvsP=new TH2F("fTOFsignalPiExpKvsP",";p[GeV/c];expected signal",kPBins,binsPDummy,1000,-8000,8000);//TOF PID signal as function of pt
-  fTOFsignalPiExpPvsP=new TH2F("fTOFsignalPiExpPvsP",";p[GeV/c];expected signal",kPBins,binsPDummy,1000,-8000,8000);//TOF PID signal as function of pt
-  fTOFsignalKExpPivsP=new TH2F("fTOFsignalKExpPivsP",";p[GeV/c];expected signal",kPBins,binsPDummy,1000,-8000,8000);//TOF PID signal as function of pt
-  fTOFsignalKExpPvsP=new TH2F("fTOFsignalKExpPvsP",";p[GeV/c];expected signal",kPBins,binsPDummy,1000,-8000,8000);//TOF PID signal as function of pt
-  fTOFsignalPExpPivsP=new TH2F("fTOFsignalPExpPivsP",";p[GeV/c];expected signal",kPBins,binsPDummy,1000,-8000,8000);//TOF PID signal as function of pt
-  fTOFsignalPExpKvsP=new TH2F("fTOFsignalPExpKvsP",";p[GeV/c];expected signal",kPBins,binsPDummy,1000,-8000,8000);//TOF PID signal as function of pt
-  fOutputList->Add(fTOFsignalPiExpKvsP);
-  fOutputList->Add(fTOFsignalPiExpPvsP);
-  fOutputList->Add(fTOFsignalKExpPivsP);
-  fOutputList->Add(fTOFsignalKExpPvsP);
-  fOutputList->Add(fTOFsignalPExpPivsP);
-  fOutputList->Add(fTOFsignalPExpKvsP);
-
-  fTOFsignalBeta=new TH2F("fTOFsignalBeta",";p[GeV/c];#beta",kPBins,binsPDummy,1000, 0.2, 1.1);//
-  fTOFsignalPiBeta=new TH2F("fTOFsignalPiBeta",";p[GeV/c];#beta-#beta_{#pi}",kPBins,binsPDummy,1000, -1.0, 1.0);//
-  fTOFsignalKBeta=new TH2F("fTOFsignalKBeta",";p[GeV/c];#beta-#beta_{K}",kPBins,binsPDummy,1000, -1.0, 1.0);//
-  fTOFsignalPBeta=new TH2F("fTOFsignalPBeta",";p[GeV/c];#beta-#beta_{p}",kPBins,binsPDummy,1000, -1.0, 1.0);//
+  fTOFsignalBeta=new TH2F("fTOFbeta",";p[GeV/c];#beta",kPBins,binsPDummy,1000, 0.4, 1.1);//
+  fTOFsignalPiBeta=new TH2F("fTOFbetaPions",";p [GeV/c];#beta-#beta_{#pi}",kPBins,binsPDummy,500, -0.25, 0.25);//
+  fTOFsignalKBeta=new TH2F("fTOFbetaKaons",";p [GeV/c];#beta-#beta_{K}",kPBins,binsPDummy,500, -0.25, 0.2);//
+  fTOFsignalPBeta=new TH2F("fTOFbetaProtons",";p [GeV/c];#beta-#beta_{p}",kPBins,binsPDummy,500, -0.25, 0.25);//
   fOutputList->Add(fTOFsignalBeta);
   fOutputList->Add(fTOFsignalPiBeta);
   fOutputList->Add(fTOFsignalKBeta);
@@ -327,56 +216,35 @@ void  AliAnalysisTaskPIDflowQA::UserCreateOutputObjects()
 
   if(fMC)
   {
-    fITSsignalpiMC=new TH2F("fITSsignalpiMC",";pt[GeV/c];signal",kPtBins,binsPtDummy,600,-4,4);//ITS PID signal as function of pt for pi+
-    fTPCsignalpiMC=new TH2F("fTPCsignalpiMC",";pt[GeV/c];signal",kPtBins,binsPtDummy,600,-4,4);//TPC PID signal as function of pt for pi+
-    fTOFsignalpiMC=new TH2F("fTOFsignalpiMC",";pt[GeV/c];signal",kPtBins,binsPtDummy,1000,-8000,8000);//TOF PID signal as function of pt for pi+
-    fOutputList->Add(fITSsignalpiMC);
-    fOutputList->Add(fTPCsignalpiMC);
-    fOutputList->Add(fTOFsignalpiMC);
-
-    fITSsignalKMC=new TH2F("fITSsignalKMC",";pt[GeV/c];signal",kPtBins,binsPtDummy,600,-4,4);//ITS PID signal as function of pt for K+
-    fTPCsignalKMC=new TH2F("fTPCsignalKMC",";pt[GeV/c];signal",kPtBins,binsPtDummy,600,-4,4);//TPC PID signal as function of pt for K+
-    fTOFsignalKMC=new TH2F("fTOFsignalKMC",";pt[GeV/c];signal",kPtBins,binsPtDummy,1000,-8000,8000);//TOF PID signal as function of pt for K+
-    fOutputList->Add(fITSsignalKMC);
-    fOutputList->Add(fTPCsignalKMC);
-    fOutputList->Add(fTOFsignalKMC);
-
-    fITSsignalpMC=new TH2F("fITSsignalpMC",";pt[GeV/c];signal",kPtBins,binsPtDummy,600,-4,4);//ITS PID signal as function of pt for p
-    fTPCsignalpMC=new TH2F("fTPCsignalpMC",";pt[GeV/c];signal",kPtBins,binsPtDummy,600,-4,4);//TPC PID signal as function of pt for p
-    fTOFsignalpMC=new TH2F("fTOFsignalpMC",";pt[GeV/c];signal",kPtBins,binsPtDummy,1000,-8000,8000);//TOF PID signal as function of pt for p
-    fOutputList->Add(fITSsignalpMC);
-    fOutputList->Add(fTPCsignalpMC);
-    fOutputList->Add(fTOFsignalpMC);
-
-    fITSsignalpiMCp=new TH2F("fITSsignalpiMCp",";p[GeV/c];signal",kPtBins,binsPtDummy,600,-4,4);//ITS PID signal as function of pt for pi+
-    fTPCsignalpiMCp=new TH2F("fTPCsignalpiMCp",";p[GeV/c];signal",kPtBins,binsPtDummy,600,-4,4);//TPC PID signal as function of pt for pi+
-    fTOFsignalpiMCp=new TH2F("fTOFsignalpiMCp",";p[GeV/c];signal",kPtBins,binsPtDummy,1000,-8000,8000);//TOF PID signal as function of pt for pi+
+    fITSsignalpiMCp=new TH2F("fITSsignalPionsMC",";p [GeV/c];signal",kPBins,binsPDummy,600,-4,4);//ITS PID signal as function of pt for pi+
+    fTPCsignalpiMCp=new TH2F("fTPCsignalPionsMC",";p [GeV/c];signal",kPBins,binsPDummy,600,-1,1);//TPC PID signal as function of pt for pi+
+    fTOFsignalpiMCp=new TH2F("fTOFsignalPionsMC",";p [GeV/c];signal",kPBins,binsPDummy,1000,-8000,8000);//TOF PID signal as function of pt for pi+
     fOutputList->Add(fITSsignalpiMCp);
     fOutputList->Add(fTPCsignalpiMCp);
     fOutputList->Add(fTOFsignalpiMCp);
 
-    fITSsignalKMCp=new TH2F("fITSsignalKMCp",";p[GeV/c];signal",kPtBins,binsPtDummy,600,-4,4);//ITS PID signal as function of pt for K+
-    fTPCsignalKMCp=new TH2F("fTPCsignalKMCp",";p[GeV/c];signal",kPtBins,binsPtDummy,600,-4,4);//TPC PID signal as function of pt for K+
-    fTOFsignalKMCp=new TH2F("fTOFsignalKMCp",";p[GeV/c];signal",kPtBins,binsPtDummy,1000,-8000,8000);//TOF PID signal as function of pt for K+
+    fITSsignalKMCp=new TH2F("fITSsignalKaonsMC",";p [GeV/c];signal",kPBins,binsPDummy,600,-4,4);//ITS PID signal as function of pt for K+
+    fTPCsignalKMCp=new TH2F("fTPCsignalKaonsMC",";p [GeV/c];signal",kPBins,binsPDummy,600,-1,1);//TPC PID signal as function of pt for K+
+    fTOFsignalKMCp=new TH2F("fTOFsignalKaonsMC",";p [GeV/c];signal",kPBins,binsPDummy,1000,-8000,8000);//TOF PID signal as function of pt for K+
     fOutputList->Add(fITSsignalKMCp);
     fOutputList->Add(fTPCsignalKMCp);
     fOutputList->Add(fTOFsignalKMCp);
 
-    fITSsignalpMCp=new TH2F("fITSsignalpMCp",";p[GeV/c];signal",kPtBins,binsPtDummy,600,-4,4);//ITS PID signal as function of pt for p
-    fTPCsignalpMCp=new TH2F("fTPCsignalpMCp",";p[GeV/c];signal",kPtBins,binsPtDummy,600,-4,4);//TPC PID signal as function of pt for p
-    fTOFsignalpMCp=new TH2F("fTOFsignalpMCp",";p[GeV/c];signal",kPtBins,binsPtDummy,1000,-8000,8000);//TOF PID signal as function of pt for p
+    fITSsignalpMCp=new TH2F("fITSsignalProtonsMC",";p [GeV/c];signal",kPBins,binsPDummy,600,-4,4);//ITS PID signal as function of pt for p
+    fTPCsignalpMCp=new TH2F("fTPCsignalProtonsMC",";p [GeV/c];signal",kPBins,binsPDummy,600,-1,1);//TPC PID signal as function of pt for p
+    fTOFsignalpMCp=new TH2F("fTOFsignalProtonsMC",";p [GeV/c];signal",kPBins,binsPDummy,1000,-8000,8000);//TOF PID signal as function of pt for p
     fOutputList->Add(fITSsignalpMCp);
     fOutputList->Add(fTPCsignalpMCp);
     fOutputList->Add(fTOFsignalpMCp);
   }
 
-  fPvsPt=new TH2F("fPvsPt","p vs p_{t}",kPBins,binsPDummy,kPtBins,binsPtDummy);
+  fPvsPt=new TH2F("fPvsPt","p vs p_{t};p [GeV/c];p_{t} [GeV/c]",kPBins,binsPDummy,kPtBins,binsPtDummy);
   fOutputList->Add(fPvsPt);
 
-  fMeanPvsP = new TProfile("fMeanPvsP","Mean P vs P",kPBins,binsPDummy);
-  fMeanPtvsPt = new TProfile("fMeanPtvsPt","Mean Pt vs Pt",kPtBins,binsPtDummy);
+  fMeanPvsP = new TProfile("fMeanPvsP","Mean P vs P;p [Gev/c];<p> [GeV/c]",kPBins,binsPDummy);
   fOutputList->Add(fMeanPvsP);
-  fOutputList->Add(fMeanPtvsPt);
+
+  //fOutputList->Add(fESDpid);
 
   PostData(1,  fOutputList);
 }
@@ -437,7 +305,6 @@ void  AliAnalysisTaskPIDflowQA::UserExec(Option_t *)
     Double_t pt=trackESD->Pt();
     fPvsPt->Fill(p,pt);
     fMeanPvsP->Fill(p,p);
-    fMeanPtvsPt->Fill(pt,pt);
 
     pidITS(trackESD,pdgcode);
     pidTPC(trackESD,pdgcode);
@@ -478,7 +345,6 @@ void AliAnalysisTaskPIDflowQA::pidITS(AliESDtrack* t, Int_t pdgcode)
 
   Bool_t ifSA=!(t->IsOn(AliESDtrack::kTPCin));
   Float_t p=t->GetP();
-  Float_t pt=t->Pt();
 
   Float_t signalpi=fESDpid->GetITSResponse().Bethe(p,AliPID::ParticleMass(2),ifSA);
   Float_t signalK=fESDpid->GetITSResponse().Bethe(p,AliPID::ParticleMass(3),ifSA);
@@ -500,20 +366,6 @@ void AliAnalysisTaskPIDflowQA::pidITS(AliESDtrack* t, Int_t pdgcode)
     else if (TMath::Abs(pdgcode)==2212)
       fITSsignalpMCp->Fill(p,TMath::Log(dedx)-TMath::Log(signalp));
   }
-
-  fITSsignalpi->Fill(pt,TMath::Log(dedx)-TMath::Log(signalpi));
-  fITSsignalK->Fill(pt,TMath::Log(dedx)-TMath::Log(signalK));
-  fITSsignalp->Fill(pt,TMath::Log(dedx)-TMath::Log(signalp));
-
-  if(fMC)
-  {
-    if(TMath::Abs(pdgcode)==211)
-      fITSsignalpiMC->Fill(pt,TMath::Log(dedx)-TMath::Log(signalpi));
-    else if(TMath::Abs(pdgcode)==321)
-      fITSsignalKMC->Fill(pt,TMath::Log(dedx)-TMath::Log(signalK));
-    else if (TMath::Abs(pdgcode)==2212)
-      fITSsignalpMC->Fill(pt,TMath::Log(dedx)-TMath::Log(signalp));
-  }
 }
 
 //________________________________________________________________________
@@ -523,7 +375,6 @@ void AliAnalysisTaskPIDflowQA::pidTPC(AliESDtrack* t, Int_t pdgcode)
   Float_t sigPion     = fESDpid->GetTPCResponse().GetExpectedSignal(pinTPCglobal, AliPID::kPion);
   Float_t sigKaon     = fESDpid->GetTPCResponse().GetExpectedSignal(pinTPCglobal, AliPID::kKaon);
   Float_t sigProton   = fESDpid->GetTPCResponse().GetExpectedSignal(pinTPCglobal, AliPID::kProton);
-  Float_t pt=t->Pt();
   Float_t p=t->GetP();
   Double_t tpcSignal =t ->GetTPCsignal();
   if(!(sigPion>0.0&&sigKaon>0.0&&sigProton>0.0))
@@ -544,20 +395,6 @@ void AliAnalysisTaskPIDflowQA::pidTPC(AliESDtrack* t, Int_t pdgcode)
     else if (TMath::Abs(pdgcode)==2212)
       fTPCsignalpMCp->Fill(p,(tpcSignal-sigProton)/sigProton);
   }
-
-  fTPCsignalpi->Fill(pt,(tpcSignal-sigPion)/sigPion);
-  fTPCsignalK->Fill(pt,(tpcSignal-sigKaon)/sigKaon);
-  fTPCsignalp->Fill(pt,(tpcSignal-sigProton)/sigProton);
-
-  if(fMC)
-  {
-    if(TMath::Abs(pdgcode)==211)
-      fTPCsignalpiMC->Fill(pt,(tpcSignal-sigPion)/sigPion);
-    else if(TMath::Abs(pdgcode)==321)
-      fTPCsignalKMC->Fill(pt,(tpcSignal-sigKaon)/sigKaon);
-    else if (TMath::Abs(pdgcode)==2212)
-      fTPCsignalpMC->Fill(pt,(tpcSignal-sigProton)/sigProton);
-  }
 }
 
 //________________________________________________________________________
@@ -573,7 +410,6 @@ void AliAnalysisTaskPIDflowQA::pidTOF(AliESDtrack* t, Int_t pdgcode)
   if (!goodtrack) return;
 
   const Float_t c = 2.99792457999999984e-02;
-  Float_t pt=t->Pt();
   Float_t p=t->GetP();
   Float_t L = t->GetIntegratedLength();
   Float_t fT0track=fESDpid->GetTOFResponse().GetStartTime(p);
@@ -604,13 +440,6 @@ void AliAnalysisTaskPIDflowQA::pidTOF(AliESDtrack* t, Int_t pdgcode)
   fTOFsignalKp->Fill(p,timeTOF-inttimes[3]);
   fTOFsignalpp->Fill(p,timeTOF-inttimes[4]);
 
-  fTOFsignalPiExpKvsPt->Fill(pt,-inttimes[2]+inttimes[3]);
-  fTOFsignalPiExpPvsPt->Fill(pt,-inttimes[2]+inttimes[4]);
-  fTOFsignalKExpPivsPt->Fill(pt,-inttimes[3]+inttimes[2]);
-  fTOFsignalKExpPvsPt->Fill(pt,-inttimes[3]+inttimes[4]);
-  fTOFsignalPExpPivsPt->Fill(pt,-inttimes[4]+inttimes[2]);
-  fTOFsignalPExpKvsPt->Fill(pt,-inttimes[4]+inttimes[3]);
-
   if(fMC)
   {
     if(TMath::Abs(pdgcode)==211)
@@ -620,28 +449,6 @@ void AliAnalysisTaskPIDflowQA::pidTOF(AliESDtrack* t, Int_t pdgcode)
     else if (TMath::Abs(pdgcode)==2212)
       fTOFsignalpMCp->Fill(p,timeTOF-inttimes[4]);
   }
-
-  //Pt part
-  fTOFsignalpi->Fill(pt,timeTOF-inttimes[2]);
-  fTOFsignalK->Fill(pt,timeTOF-inttimes[3]);
-  fTOFsignalp->Fill(pt,timeTOF-inttimes[4]);
-
-  fTOFsignalPiExpKvsP->Fill(p,-inttimes[2]+inttimes[3]);
-  fTOFsignalPiExpPvsP->Fill(p,-inttimes[2]+inttimes[4]);
-  fTOFsignalKExpPivsP->Fill(p,-inttimes[3]+inttimes[2]);
-  fTOFsignalKExpPvsP->Fill(p,-inttimes[3]+inttimes[4]);
-  fTOFsignalPExpPivsP->Fill(p,-inttimes[4]+inttimes[2]);
-  fTOFsignalPExpKvsP->Fill(p,-inttimes[4]+inttimes[3]);
-
-  if(fMC)
-  {
-    if(TMath::Abs(pdgcode)==211)
-      fTOFsignalpiMC->Fill(pt,timeTOF-inttimes[2]);
-    else if(TMath::Abs(pdgcode)==321)
-      fTOFsignalKMC->Fill(pt,timeTOF-inttimes[3]);
-    else if (TMath::Abs(pdgcode)==2212)
-      fTOFsignalpMC->Fill(pt,timeTOF-inttimes[4]);
-  }
 }
 
 Float_t AliAnalysisTaskPIDflowQA::Beta(Float_t m, Float_t p) 
index c3158b1..d585c5d 100644 (file)
@@ -44,25 +44,7 @@ private:
 \r
   TH2F* fITSsignal; //!ITS signal as function of p\r
   TH2F* fTPCsignal; //!TPC signal as function of p\r
-  TH2F* fTOFsignal; //!TOF signal as function of  p \r
-  TH2F* fITSsignalpi;//!ITS PID signal as function of pt for pi+\r
-  TH2F* fTPCsignalpi;//!TPC PID signal as function of pt for pi+\r
-  TH2F* fTOFsignalpi;//!TOF PID signal as function of pt for pi+\r
-  TH2F* fITSsignalK;//!ITS PID signal as function of pt for K+\r
-  TH2F* fTPCsignalK;//!TPC PID signal as function of pt for K+\r
-  TH2F* fTOFsignalK;//!TOF PID signal as function of pt for K+\r
-  TH2F* fITSsignalp;//!ITS PID signal as function of pt for p\r
-  TH2F* fTPCsignalp;//!TPC PID signal as function of pt for p\r
-  TH2F* fTOFsignalp;//!TOF PID signal as function of pt for p\r
-  TH2F* fITSsignalpiMC;//!ITS PID signal as function of pt for pi+\r
-  TH2F* fTPCsignalpiMC;//!TPC PID signal as function of pt for pi+\r
-  TH2F* fTOFsignalpiMC;//!TOF PID signal as function of pt for pi+\r
-  TH2F* fITSsignalKMC;//!ITS PID signal as function of pt for K+\r
-  TH2F* fTPCsignalKMC;//!TPC PID signal as function of pt for K+\r
-  TH2F* fTOFsignalKMC;//!TOF PID signal as function of pt for K+\r
-  TH2F* fITSsignalpMC;//!ITS PID signal as function of pt for p\r
-  TH2F* fTPCsignalpMC;//!TPC PID signal as function of pt for p\r
-  TH2F* fTOFsignalpMC;//!TOF PID signal as function of pt for p\r
+  TH2F* fTOFsignal; //!TOF signal as function of p \r
   TH2F* fITSsignalpip;//!ITS PID signal as function of p for pi+\r
   TH2F* fTPCsignalpip;//!TPC PID signal as function of p for pi+\r
   TH2F* fTOFsignalpip;//!TOF PID signal as function of p for pi+\r
@@ -81,25 +63,12 @@ private:
   TH2F* fITSsignalpMCp;//!ITS PID signal as function of p for p\r
   TH2F* fTPCsignalpMCp;//!TPC PID signal as function of p for p\r
   TH2F* fTOFsignalpMCp;//!TOF PID signal as function of p for p\r
-  TH2F* fTOFsignalPiExpKvsPt;//!TOF expected signal\r
-  TH2F* fTOFsignalPiExpPvsPt;//!TOF expected signal\r
-  TH2F* fTOFsignalKExpPivsPt;//!TOF expected signal\r
-  TH2F* fTOFsignalKExpPvsPt;//!TOF expected signal\r
-  TH2F* fTOFsignalPExpPivsPt;//!TOF expected signal\r
-  TH2F* fTOFsignalPExpKvsPt;//!TOF expected signal\r
-  TH2F* fTOFsignalPiExpKvsP;//!TOF expected signal\r
-  TH2F* fTOFsignalPiExpPvsP;//!TOF expected signal\r
-  TH2F* fTOFsignalKExpPivsP;//!TOF expected signal\r
-  TH2F* fTOFsignalKExpPvsP;//!TOF expected signal\r
-  TH2F* fTOFsignalPExpPivsP;//!TOF expected signal\r
-  TH2F* fTOFsignalPExpKvsP;//!TOF expected signal\r
   TH2F* fTOFsignalBeta;//!vs beta\r
   TH2F* fTOFsignalPiBeta;//!vs beta\r
   TH2F* fTOFsignalKBeta;//!vs beta\r
   TH2F* fTOFsignalPBeta;//!vs beta\r
   TH2F* fPvsPt; //!P vs Pt yield\r
   TProfile* fMeanPvsP; //!mean p per bin\r
-  TProfile* fMeanPtvsPt; //!mean pt per bin\r
   TList* fOutputList;//!output list\r
        \r
   AliAnalysisTaskPIDflowQA(const  AliAnalysisTaskPIDflowQA&); // not implemented\r
index 72d7b5f..17b6859 100644 (file)
@@ -661,22 +661,23 @@ void AliFlowTrackCuts::HandleESDtrack(AliESDtrack* track)
 {
   //handle esd track
   AliExternalTrackParam* ip=NULL;
+  Bool_t ok=kFALSE;
   switch (fParamType)
   {
     case kGlobal:
       fTrack = track;
       break;
     case kESD_TPConly:
-      if (!track->FillTPCOnlyTrack(fTPCtrack))
+      ip = const_cast<AliExternalTrackParam*>(fTPCtrack.GetInnerParam());
+      ok = track->FillTPCOnlyTrack(fTPCtrack);
+      if (!ip || !ok)
       {
         fTrack=NULL;
         fMCparticle=NULL;
         fTrackLabel=-1;
         return;
       }
-      ip = const_cast<AliExternalTrackParam*>(fTPCtrack.GetInnerParam());
-      if (!ip) { ip = new AliExternalTrackParam(*(track->GetInnerParam())); }
-      else { *ip = *(track->GetInnerParam()); }
+      *ip = *(track->GetInnerParam()); //TODO: remove when fIp gets copied in AliESDtrack::FillTPCOnlyTrack
       fTrack = &fTPCtrack;
       //recalculate the label and mc particle, they may differ as TPClabel != global label
       fTrackLabel = (fFakesAreOK)?TMath::Abs(fTrack->GetLabel()):fTrack->GetLabel();
@@ -690,13 +691,85 @@ void AliFlowTrackCuts::HandleESDtrack(AliESDtrack* track)
 }
 
 //-----------------------------------------------------------------------
+Int_t AliFlowTrackCuts::Count(AliVEvent* event)
+{
+  //calculate the number of track in given event.
+  //if argument is NULL(default) take the event attached
+  //by SetEvent()
+  Int_t multiplicity = 0;
+  if (!event)
+  {
+    for (Int_t i=0; i<GetNumberOfInputObjects(); i++)
+    {
+      if (IsSelected(GetInputObject(i))) multiplicity++;
+    }
+  }
+  else
+  {
+    for (Int_t i=0; i<event->GetNumberOfTracks(); i++)
+    {
+      if (IsSelected(event->GetTrack(i))) multiplicity++;
+    }
+  }
+  return multiplicity;
+}
+
+//-----------------------------------------------------------------------
+AliFlowTrackCuts* AliFlowTrackCuts::GetStandardGlobalTrackCuts2010()
+{
+  //get standard cuts
+  AliFlowTrackCuts* cuts = new AliFlowTrackCuts("standard TPConly cuts");
+  cuts->SetParamType(kGlobal);
+  cuts->SetPtRange(0.2,5.);
+  cuts->SetEtaRange(-0.8,0.8);
+  cuts->SetMinNClustersTPC(70);
+  cuts->SetMinChi2PerClusterTPC(0.1);
+  cuts->SetMaxChi2PerClusterTPC(4.0);
+  cuts->SetMinNClustersITS(2);
+  cuts->SetRequireITSRefit(kTRUE);
+  cuts->SetRequireTPCRefit(kTRUE);
+  cuts->SetMaxDCAToVertexXY(0.3);
+  cuts->SetMaxDCAToVertexZ(0.3);
+  cuts->SetAcceptKinkDaughters(kFALSE);
+
+  return cuts;
+}
+
+//-----------------------------------------------------------------------
+AliFlowTrackCuts* AliFlowTrackCuts::GetStandardTPCOnlyTrackCuts2010()
+{
+  //get standard cuts
+  AliFlowTrackCuts* cuts = new AliFlowTrackCuts("standard TPConly cuts");
+  cuts->SetParamType(kESD_TPConly);
+  cuts->SetPtRange(0.2,5.);
+  cuts->SetEtaRange(-0.8,0.8);
+  cuts->SetMinNClustersTPC(70);
+  cuts->SetMinChi2PerClusterTPC(0.2);
+  cuts->SetMaxChi2PerClusterTPC(4.0);
+  cuts->SetMaxDCAToVertexXY(3.0);
+  cuts->SetMaxDCAToVertexZ(3.0);
+  cuts->SetDCAToVertex2D(kTRUE);
+  cuts->SetAcceptKinkDaughters(kFALSE);
+
+  return cuts;
+}
+
+//-----------------------------------------------------------------------
 AliFlowTrackCuts* AliFlowTrackCuts::GetStandardTPCOnlyTrackCuts()
 {
   //get standard cuts
   AliFlowTrackCuts* cuts = new AliFlowTrackCuts("standard TPConly cuts");
-  delete cuts->fAliESDtrackCuts;
-  cuts->fAliESDtrackCuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
   cuts->SetParamType(kESD_TPConly);
+  cuts->SetPtRange(0.2,5.);
+  cuts->SetEtaRange(-0.8,0.8);
+  cuts->SetMinNClustersTPC(70);
+  cuts->SetMinChi2PerClusterTPC(0.2);
+  cuts->SetMaxChi2PerClusterTPC(4.0);
+  cuts->SetMaxDCAToVertexXY(3.0);
+  cuts->SetMaxDCAToVertexZ(3.0);
+  cuts->SetDCAToVertex2D(kTRUE);
+  cuts->SetAcceptKinkDaughters(kFALSE);
+
   return cuts;
 }
 
@@ -917,14 +990,16 @@ Bool_t AliFlowTrackCuts::PassesTOFpidCut(AliESDtrack* track )
 
   if (!goodtrack) return kFALSE;
   
-  Float_t pt = track->Pt();
+  const Float_t c = 2.99792457999999984e-02;  
   Float_t p = track->GetP();
+  Float_t L = track->GetIntegratedLength();  
   Float_t trackT0 = fESDpid.GetTOFResponse().GetStartTime(p);
   Float_t timeTOF = track->GetTOFsignal()- trackT0; 
-  //2=pion 3=kaon 4=protons
-  Double_t inttimes[5] = {-1.0,-1.0,-1.0,-1.0,-1.0};
-  track->GetIntegratedTimes(inttimes);
-  //construct the pid index because it's screwed up in TOF
+  Float_t beta = L/timeTOF/c;
+  Double_t integratedTimes[5] = {-1.0,-1.0,-1.0,-1.0,-1.0};
+  track->GetIntegratedTimes(integratedTimes);
+
+  //construct the pid index because it's not AliPID::EParticleType
   Int_t pid = 0;
   switch (fAliPID)
   {
@@ -940,10 +1015,12 @@ Bool_t AliFlowTrackCuts::PassesTOFpidCut(AliESDtrack* track )
     default:
       return kFALSE;
   }
-  Float_t s = timeTOF-inttimes[pid];
+
+  //signal to cut on
+  Float_t s = beta-L/integratedTimes[pid]/c;
 
   Float_t* arr = fTOFpidCuts->GetMatrixArray();
-  Int_t col = TMath::BinarySearch(fTOFpidCuts->GetNcols(),arr,static_cast<Float_t>(pt));
+  Int_t col = TMath::BinarySearch(fTOFpidCuts->GetNcols(),arr,static_cast<Float_t>(p));
   if (col<0) return kFALSE;
   Float_t min = (*fTOFpidCuts)(1,col);
   Float_t max = (*fTOFpidCuts)(2,col);
@@ -1040,113 +1117,203 @@ void AliFlowTrackCuts::InitPIDcuts()
   {
     if (fAliPID==AliPID::kPion)
     {
-      t = new TMatrixF(3,31);
-      (*t)(0,0)  = 0.3;   (*t)(1,0)  = -700;  (*t)(2,0)  = 700;
-      (*t)(0,1)  = 0.35;  (*t)(1,1)  = -800;  (*t)(2,1)  = 800;
-      (*t)(0,2)  = 0.40;  (*t)(1,2)  = -600;  (*t)(2,2)  = 800;
-      (*t)(0,3)  = 0.45;  (*t)(1,3)  = -500;  (*t)(2,3)  = 700;
-      (*t)(0,4)  = 0.50;  (*t)(1,4)  = -400;  (*t)(2,4)  = 700;
-      (*t)(0,5)  = 0.55;  (*t)(1,5)  = -400;  (*t)(2,5)  = 700;
-      (*t)(0,6)  = 0.60;  (*t)(1,6)  = -400;  (*t)(2,6)  = 700;
-      (*t)(0,7)  = 0.65;  (*t)(1,7)  = -400;  (*t)(2,7)  = 700;
-      (*t)(0,8)  = 0.70;  (*t)(1,8)  = -400;  (*t)(2,8)  = 700;
-      (*t)(0,9)  = 0.75;  (*t)(1,9)  = -400;  (*t)(2,9)  = 700;
-      (*t)(0,10) = 0.80;  (*t)(1,10) = -400;  (*t)(2,10) = 600;
-      (*t)(0,11) = 0.85;  (*t)(1,11) = -400;  (*t)(2,11) = 600;
-      (*t)(0,12) = 0.90;  (*t)(1,12) = -400;  (*t)(2,12) = 600;
-      (*t)(0,13) = 0.95;  (*t)(1,13) = -400;  (*t)(2,13) = 600;
-      (*t)(0,14) = 1.00;  (*t)(1,14) = -400;  (*t)(2,14) = 550;
-      (*t)(0,15) = 1.10;  (*t)(1,15) = -400;  (*t)(2,15) = 450;
-      (*t)(0,16) = 1.20;  (*t)(1,16) = -400;  (*t)(2,16) = 400;
-      (*t)(0,17) = 1.30;  (*t)(1,17) = -400;  (*t)(2,17) = 300;
-      (*t)(0,18) = 1.40;  (*t)(1,18) = -400;  (*t)(2,18) = 300;
-      (*t)(0,19) = 1.50;  (*t)(1,19) = -400;  (*t)(2,19) = 250;
-      (*t)(0,20) = 1.60;  (*t)(1,20) = -400;  (*t)(2,20) = 200;
-      (*t)(0,21) = 1.70;  (*t)(1,21) = -400;  (*t)(2,21) = 150;
-      (*t)(0,22) = 1.80;  (*t)(1,22) = -400;  (*t)(2,22) = 100;
-      (*t)(0,23) = 1.90;  (*t)(1,23) = -400;  (*t)(2,23) =  70;
-      (*t)(0,24) = 2.00;  (*t)(1,24) = -400;  (*t)(2,24) =  50;
-      (*t)(0,25) = 2.10;  (*t)(1,25) = -400;  (*t)(2,25) =   0;
-      (*t)(0,26) = 2.20;  (*t)(1,26) = -400;  (*t)(2,26) =   0;
-      (*t)(0,27) = 2.30;  (*t)(1,26) = -400;  (*t)(2,26) =   0;
-      (*t)(0,28) = 2.40;  (*t)(1,26) = -400;  (*t)(2,26) = -50;
-      (*t)(0,29) = 2.50;  (*t)(1,26) = -400;  (*t)(2,26) = -50;
-      (*t)(0,30) = 2.60;  (*t)(1,26) =    0;  (*t)(2,26) =   0;
+      //TOF pions, 0.9 purity
+      t = new TMatrixF(3,61);
+      (*t)(0,0)  = 0.000;  (*t)(2,0)  = 0.000;  (*t)(2,0)  =   0.000;
+      (*t)(0,1)  = 0.050;  (*t)(2,1)  = 0.000;  (*t)(2,1)  =   0.000;
+      (*t)(0,2)  = 0.100;  (*t)(2,2)  = 0.000;  (*t)(2,2)  =   0.000;
+      (*t)(0,3)  = 0.150;  (*t)(2,3)  = 0.000;  (*t)(2,3)  =   0.000;
+      (*t)(0,4)  = 0.200;  (*t)(2,4)  = 0.000;  (*t)(2,4)  =   0.000;
+      (*t)(0,5)  = 0.250;  (*t)(2,5)  = -0.046;  (*t)(2,5)  =   0.046;
+      (*t)(0,6)  = 0.300;  (*t)(2,6)  = -0.038;  (*t)(2,6)  =   0.038;
+      (*t)(0,7)  = 0.350;  (*t)(2,7)  = -0.034;  (*t)(2,7)  =   0.034;
+      (*t)(0,8)  = 0.400;  (*t)(2,8)  = -0.032;  (*t)(2,8)  =   0.032;
+      (*t)(0,9)  = 0.450;  (*t)(2,9)  = -0.030;  (*t)(2,9)  =   0.030;
+      (*t)(0,10)  = 0.500;  (*t)(2,10)  = -0.030;  (*t)(2,10)  =   0.030;
+      (*t)(0,11)  = 0.550;  (*t)(2,11)  = -0.030;  (*t)(2,11)  =   0.030;
+      (*t)(0,12)  = 0.600;  (*t)(2,12)  = -0.030;  (*t)(2,12)  =   0.030;
+      (*t)(0,13)  = 0.650;  (*t)(2,13)  = -0.030;  (*t)(2,13)  =   0.030;
+      (*t)(0,14)  = 0.700;  (*t)(2,14)  = -0.030;  (*t)(2,14)  =   0.030;
+      (*t)(0,15)  = 0.750;  (*t)(2,15)  = -0.030;  (*t)(2,15)  =   0.030;
+      (*t)(0,16)  = 0.800;  (*t)(2,16)  = -0.030;  (*t)(2,16)  =   0.030;
+      (*t)(0,17)  = 0.850;  (*t)(2,17)  = -0.030;  (*t)(2,17)  =   0.030;
+      (*t)(0,18)  = 0.900;  (*t)(2,18)  = -0.030;  (*t)(2,18)  =   0.030;
+      (*t)(0,19)  = 0.950;  (*t)(2,19)  = -0.028;  (*t)(2,19)  =   0.028;
+      (*t)(0,20)  = 1.000;  (*t)(2,20)  = -0.028;  (*t)(2,20)  =   0.028;
+      (*t)(0,21)  = 1.100;  (*t)(2,21)  = -0.028;  (*t)(2,21)  =   0.028;
+      (*t)(0,22)  = 1.200;  (*t)(2,22)  = -0.026;  (*t)(2,22)  =   0.028;
+      (*t)(0,23)  = 1.300;  (*t)(2,23)  = -0.024;  (*t)(2,23)  =   0.028;
+      (*t)(0,24)  = 1.400;  (*t)(2,24)  = -0.020;  (*t)(2,24)  =   0.028;
+      (*t)(0,25)  = 1.500;  (*t)(2,25)  = -0.018;  (*t)(2,25)  =   0.028;
+      (*t)(0,26)  = 1.600;  (*t)(2,26)  = -0.016;  (*t)(2,26)  =   0.028;
+      (*t)(0,27)  = 1.700;  (*t)(2,27)  = -0.014;  (*t)(2,27)  =   0.028;
+      (*t)(0,28)  = 1.800;  (*t)(2,28)  = -0.012;  (*t)(2,28)  =   0.026;
+      (*t)(0,29)  = 1.900;  (*t)(2,29)  = -0.010;  (*t)(2,29)  =   0.026;
+      (*t)(0,30)  = 2.000;  (*t)(2,30)  = -0.008;  (*t)(2,30)  =   0.026;
+      (*t)(0,31)  = 2.100;  (*t)(2,31)  = -0.008;  (*t)(2,31)  =   0.024;
+      (*t)(0,32)  = 2.200;  (*t)(2,32)  = -0.006;  (*t)(2,32)  =   0.024;
+      (*t)(0,33)  = 2.300;  (*t)(2,33)  = -0.004;  (*t)(2,33)  =   0.024;
+      (*t)(0,34)  = 2.400;  (*t)(2,34)  = -0.004;  (*t)(2,34)  =   0.024;
+      (*t)(0,35)  = 2.500;  (*t)(2,35)  = -0.002;  (*t)(2,35)  =   0.024;
+      (*t)(0,36)  = 2.600;  (*t)(2,36)  = -0.002;  (*t)(2,36)  =   0.024;
+      (*t)(0,37)  = 2.700;  (*t)(2,37)  = 0.000;  (*t)(2,37)  =   0.024;
+      (*t)(0,38)  = 2.800;  (*t)(2,38)  = 0.000;  (*t)(2,38)  =   0.026;
+      (*t)(0,39)  = 2.900;  (*t)(2,39)  = 0.000;  (*t)(2,39)  =   0.024;
+      (*t)(0,40)  = 3.000;  (*t)(2,40)  = 0.002;  (*t)(2,40)  =   0.026;
+      (*t)(0,41)  = 3.100;  (*t)(2,41)  = 0.002;  (*t)(2,41)  =   0.026;
+      (*t)(0,42)  = 3.200;  (*t)(2,42)  = 0.002;  (*t)(2,42)  =   0.026;
+      (*t)(0,43)  = 3.300;  (*t)(2,43)  = 0.002;  (*t)(2,43)  =   0.026;
+      (*t)(0,44)  = 3.400;  (*t)(2,44)  = 0.002;  (*t)(2,44)  =   0.026;
+      (*t)(0,45)  = 3.500;  (*t)(2,45)  = 0.002;  (*t)(2,45)  =   0.026;
+      (*t)(0,46)  = 3.600;  (*t)(2,46)  = 0.002;  (*t)(2,46)  =   0.026;
+      (*t)(0,47)  = 3.700;  (*t)(2,47)  = 0.002;  (*t)(2,47)  =   0.026;
+      (*t)(0,48)  = 3.800;  (*t)(2,48)  = 0.002;  (*t)(2,48)  =   0.026;
+      (*t)(0,49)  = 3.900;  (*t)(2,49)  = 0.004;  (*t)(2,49)  =   0.024;
+      (*t)(0,50)  = 4.000;  (*t)(2,50)  = 0.004;  (*t)(2,50)  =   0.026;
+      (*t)(0,51)  = 4.100;  (*t)(2,51)  = 0.004;  (*t)(2,51)  =   0.026;
+      (*t)(0,52)  = 4.200;  (*t)(2,52)  = 0.004;  (*t)(2,52)  =   0.024;
+      (*t)(0,53)  = 4.300;  (*t)(2,53)  = 0.006;  (*t)(2,53)  =   0.024;
+      (*t)(0,54)  = 4.400;  (*t)(2,54)  = 0.000;  (*t)(2,54)  =   0.000;
+      (*t)(0,55)  = 4.500;  (*t)(2,55)  = 0.000;  (*t)(2,55)  =   0.000;
+      (*t)(0,56)  = 4.600;  (*t)(2,56)  = 0.000;  (*t)(2,56)  =   0.000;
+      (*t)(0,57)  = 4.700;  (*t)(2,57)  = 0.000;  (*t)(2,57)  =   0.000;
+      (*t)(0,58)  = 4.800;  (*t)(2,58)  = 0.000;  (*t)(2,58)  =   0.000;
+      (*t)(0,59)  = 4.900;  (*t)(2,59)  = 0.000;  (*t)(2,59)  =   0.000;
+      (*t)(0,60)  = 5.900;  (*t)(2,60)  = 0.000;  (*t)(2,60)  =   0.000;
     }
     else
     if (fAliPID==AliPID::kProton)
     {
-      t = new TMatrixF(3,39);
-      (*t)(0,0)  = 0.3;  (*t)(1,0)   = 0;     (*t)(2,0) = 0;
-      (*t)(0,1)  = 0.35;  (*t)(1,1)  = 0;     (*t)(2,1) = 0;
-      (*t)(0,2)  = 0.40;  (*t)(1,2)  = 0;     (*t)(2,2) = 0;
-      (*t)(0,3)  = 0.45;  (*t)(1,3)  = 0;     (*t)(2,3) = 0;
-      (*t)(0,4)  = 0.50;  (*t)(1,4)  = 0;     (*t)(2,4) = 0;
-      (*t)(0,5)  = 0.55;  (*t)(1,5)  = -900;  (*t)(2,5)  = 600;
-      (*t)(0,6)  = 0.60;  (*t)(1,6)  = -800;  (*t)(2,6)  = 600;
-      (*t)(0,7)  = 0.65;  (*t)(1,7)  = -800;  (*t)(2,7)  = 600;
-      (*t)(0,8)  = 0.70;  (*t)(1,8)  = -800;  (*t)(2,8)  = 600;
-      (*t)(0,9)  = 0.75;  (*t)(1,9)  = -700;  (*t)(2,9)  = 500;
-      (*t)(0,10) = 0.80;  (*t)(1,10) = -700;  (*t)(2,10) = 500;
-      (*t)(0,11) = 0.85;  (*t)(1,11) = -700;  (*t)(2,11) = 500;
-      (*t)(0,12) = 0.90;  (*t)(1,12) = -600;  (*t)(2,12) = 500;
-      (*t)(0,13) = 0.95;  (*t)(1,13) = -600;  (*t)(2,13) = 500;
-      (*t)(0,14) = 1.00;  (*t)(1,14) = -600;  (*t)(2,14) = 500;
-      (*t)(0,15) = 1.10;  (*t)(1,15) = -600;  (*t)(2,15) = 500;
-      (*t)(0,16) = 1.20;  (*t)(1,16) = -500;  (*t)(2,16) = 500;
-      (*t)(0,17) = 1.30;  (*t)(1,17) = -500;  (*t)(2,17) = 500;
-      (*t)(0,18) = 1.40;  (*t)(1,18) = -500;  (*t)(2,18) = 500;
-      (*t)(0,19) = 1.50;  (*t)(1,19) = -500;  (*t)(2,19) = 500;
-      (*t)(0,20) = 1.60;  (*t)(1,20) = -400;  (*t)(2,20) = 500;
-      (*t)(0,21) = 1.70;  (*t)(1,21) = -400;  (*t)(2,21) = 500;
-      (*t)(0,22) = 1.80;  (*t)(1,22) = -400;  (*t)(2,22) = 500;
-      (*t)(0,23) = 1.90;  (*t)(1,23) = -400;  (*t)(2,23) = 500;
-      (*t)(0,24) = 2.00;  (*t)(1,24) = -400;  (*t)(2,24) = 500;
-      (*t)(0,25) = 2.10;  (*t)(1,25) = -350;  (*t)(2,25) = 500;
-      (*t)(0,26) = 2.20;  (*t)(1,26) = -350;  (*t)(2,26) = 500;
-      (*t)(0,27) = 2.30;  (*t)(1,27) = -300;  (*t)(2,27) = 500;
-      (*t)(0,28) = 2.40;  (*t)(1,28) = -300;  (*t)(2,28) = 500;
-      (*t)(0,29) = 2.50;  (*t)(1,29) = -300;  (*t)(2,29) = 500;
-      (*t)(0,30) = 2.60;  (*t)(1,30) = -250;  (*t)(2,30) = 500;
-      (*t)(0,31) = 2.70;  (*t)(1,31) = -200;  (*t)(2,31) = 500;
-      (*t)(0,32) = 2.80;  (*t)(1,32) = -150;  (*t)(2,32) = 500;
-      (*t)(0,33) = 2.90;  (*t)(1,33) = -150;  (*t)(2,33) = 500;
-      (*t)(0,34) = 3.00;  (*t)(1,34) = -100;  (*t)(2,34) = 400;
-      (*t)(0,35) = 3.10;  (*t)(1,35) = -100;  (*t)(2,35) = 400;
-      (*t)(0,36) = 3.50;  (*t)(1,36) = -100;  (*t)(2,36) = 400;
-      (*t)(0,37) = 3.60;  (*t)(1,37) =    0;  (*t)(2,37) = 0;
-      (*t)(0,38) = 3.70;  (*t)(1,38) =    0;  (*t)(2,38) = 0;
+      //TOF protons, 0.9 purity
+      t = new TMatrixF(3,61);
+      (*t)(0,0)  = 0.000;  (*t)(2,0)  = 0.000;  (*t)(2,0)  =   0.000;
+      (*t)(0,1)  = 0.050;  (*t)(2,1)  = 0.000;  (*t)(2,1)  =   0.000;
+      (*t)(0,2)  = 0.100;  (*t)(2,2)  = 0.000;  (*t)(2,2)  =   0.000;
+      (*t)(0,3)  = 0.150;  (*t)(2,3)  = 0.000;  (*t)(2,3)  =   0.000;
+      (*t)(0,4)  = 0.200;  (*t)(2,4)  = 0.000;  (*t)(2,4)  =   0.000;
+      (*t)(0,5)  = 0.250;  (*t)(2,5)  = 0.000;  (*t)(2,5)  =   0.000;
+      (*t)(0,6)  = 0.300;  (*t)(2,6)  = 0.000;  (*t)(2,6)  =   0.000;
+      (*t)(0,7)  = 0.350;  (*t)(2,7)  = 0.000;  (*t)(2,7)  =   0.000;
+      (*t)(0,8)  = 0.400;  (*t)(2,8)  = 0.000;  (*t)(2,8)  =   0.000;
+      (*t)(0,9)  = 0.450;  (*t)(2,9)  = 0.000;  (*t)(2,9)  =   0.000;
+      (*t)(0,10)  = 0.500;  (*t)(2,10)  = 0.000;  (*t)(2,10)  =   0.000;
+      (*t)(0,11)  = 0.550;  (*t)(2,11)  = 0.000;  (*t)(2,11)  =   0.000;
+      (*t)(0,12)  = 0.600;  (*t)(2,12)  = 0.000;  (*t)(2,12)  =   0.000;
+      (*t)(0,13)  = 0.650;  (*t)(2,13)  = 0.000;  (*t)(2,13)  =   0.000;
+      (*t)(0,14)  = 0.700;  (*t)(2,14)  = 0.000;  (*t)(2,14)  =   0.000;
+      (*t)(0,15)  = 0.750;  (*t)(2,15)  = 0.000;  (*t)(2,15)  =   0.000;
+      (*t)(0,16)  = 0.800;  (*t)(2,16)  = 0.000;  (*t)(2,16)  =   0.000;
+      (*t)(0,17)  = 0.850;  (*t)(2,17)  = -0.070;  (*t)(2,17)  =   0.070;
+      (*t)(0,18)  = 0.900;  (*t)(2,18)  = -0.072;  (*t)(2,18)  =   0.072;
+      (*t)(0,19)  = 0.950;  (*t)(2,19)  = -0.072;  (*t)(2,19)  =   0.072;
+      (*t)(0,20)  = 1.000;  (*t)(2,20)  = -0.074;  (*t)(2,20)  =   0.074;
+      (*t)(0,21)  = 1.100;  (*t)(2,21)  = -0.032;  (*t)(2,21)  =   0.032;
+      (*t)(0,22)  = 1.200;  (*t)(2,22)  = -0.026;  (*t)(2,22)  =   0.026;
+      (*t)(0,23)  = 1.300;  (*t)(2,23)  = -0.026;  (*t)(2,23)  =   0.026;
+      (*t)(0,24)  = 1.400;  (*t)(2,24)  = -0.024;  (*t)(2,24)  =   0.024;
+      (*t)(0,25)  = 1.500;  (*t)(2,25)  = -0.024;  (*t)(2,25)  =   0.024;
+      (*t)(0,26)  = 1.600;  (*t)(2,26)  = -0.026;  (*t)(2,26)  =   0.026;
+      (*t)(0,27)  = 1.700;  (*t)(2,27)  = -0.026;  (*t)(2,27)  =   0.026;
+      (*t)(0,28)  = 1.800;  (*t)(2,28)  = -0.026;  (*t)(2,28)  =   0.026;
+      (*t)(0,29)  = 1.900;  (*t)(2,29)  = -0.026;  (*t)(2,29)  =   0.026;
+      (*t)(0,30)  = 2.000;  (*t)(2,30)  = -0.026;  (*t)(2,30)  =   0.026;
+      (*t)(0,31)  = 2.100;  (*t)(2,31)  = -0.026;  (*t)(2,31)  =   0.026;
+      (*t)(0,32)  = 2.200;  (*t)(2,32)  = -0.026;  (*t)(2,32)  =   0.024;
+      (*t)(0,33)  = 2.300;  (*t)(2,33)  = -0.028;  (*t)(2,33)  =   0.022;
+      (*t)(0,34)  = 2.400;  (*t)(2,34)  = -0.028;  (*t)(2,34)  =   0.020;
+      (*t)(0,35)  = 2.500;  (*t)(2,35)  = -0.028;  (*t)(2,35)  =   0.018;
+      (*t)(0,36)  = 2.600;  (*t)(2,36)  = -0.028;  (*t)(2,36)  =   0.016;
+      (*t)(0,37)  = 2.700;  (*t)(2,37)  = -0.028;  (*t)(2,37)  =   0.016;
+      (*t)(0,38)  = 2.800;  (*t)(2,38)  = -0.030;  (*t)(2,38)  =   0.014;
+      (*t)(0,39)  = 2.900;  (*t)(2,39)  = -0.030;  (*t)(2,39)  =   0.012;
+      (*t)(0,40)  = 3.000;  (*t)(2,40)  = -0.030;  (*t)(2,40)  =   0.012;
+      (*t)(0,41)  = 3.100;  (*t)(2,41)  = -0.030;  (*t)(2,41)  =   0.010;
+      (*t)(0,42)  = 3.200;  (*t)(2,42)  = -0.030;  (*t)(2,42)  =   0.010;
+      (*t)(0,43)  = 3.300;  (*t)(2,43)  = -0.030;  (*t)(2,43)  =   0.010;
+      (*t)(0,44)  = 3.400;  (*t)(2,44)  = -0.030;  (*t)(2,44)  =   0.008;
+      (*t)(0,45)  = 3.500;  (*t)(2,45)  = -0.030;  (*t)(2,45)  =   0.008;
+      (*t)(0,46)  = 3.600;  (*t)(2,46)  = -0.030;  (*t)(2,46)  =   0.008;
+      (*t)(0,47)  = 3.700;  (*t)(2,47)  = -0.030;  (*t)(2,47)  =   0.006;
+      (*t)(0,48)  = 3.800;  (*t)(2,48)  = -0.030;  (*t)(2,48)  =   0.006;
+      (*t)(0,49)  = 3.900;  (*t)(2,49)  = -0.030;  (*t)(2,49)  =   0.006;
+      (*t)(0,50)  = 4.000;  (*t)(2,50)  = -0.028;  (*t)(2,50)  =   0.004;
+      (*t)(0,51)  = 4.100;  (*t)(2,51)  = -0.030;  (*t)(2,51)  =   0.004;
+      (*t)(0,52)  = 4.200;  (*t)(2,52)  = -0.030;  (*t)(2,52)  =   0.004;
+      (*t)(0,53)  = 4.300;  (*t)(2,53)  = -0.028;  (*t)(2,53)  =   0.002;
+      (*t)(0,54)  = 4.400;  (*t)(2,54)  = -0.030;  (*t)(2,54)  =   0.002;
+      (*t)(0,55)  = 4.500;  (*t)(2,55)  = -0.028;  (*t)(2,55)  =   0.002;
+      (*t)(0,56)  = 4.600;  (*t)(2,56)  = -0.028;  (*t)(2,56)  =   0.002;
+      (*t)(0,57)  = 4.700;  (*t)(2,57)  = -0.028;  (*t)(2,57)  =   0.000;
+      (*t)(0,58)  = 4.800;  (*t)(2,58)  = -0.028;  (*t)(2,58)  =   0.002;
+      (*t)(0,59)  = 4.900;  (*t)(2,59)  = 0.000;  (*t)(2,59)  =   0.000;
+      (*t)(0,60)  = 5.900;  (*t)(2,60)  = 0.000;  (*t)(2,60)  =   0.000; 
     }
     else
     if (fAliPID==AliPID::kKaon)
     {
-      t = new TMatrixF(3,26);
-      (*t)(0,0)  = 0.3;   (*t)(1,0)  =    0;  (*t)(2,0)  =    0;
-      (*t)(0,1)  = 0.35;  (*t)(1,1)  =    0;  (*t)(2,1)  =    0;
-      (*t)(0,2)  = 0.40;  (*t)(1,2)  = -800;  (*t)(2,2)  =  600;
-      (*t)(0,3)  = 0.45;  (*t)(1,3)  = -800;  (*t)(2,3)  =  600;
-      (*t)(0,4)  = 0.50;  (*t)(1,4)  = -800;  (*t)(2,4)  =  600;
-      (*t)(0,5)  = 0.55;  (*t)(1,5)  = -800;  (*t)(2,5)  =  600;
-      (*t)(0,6)  = 0.60;  (*t)(1,6)  = -800;  (*t)(2,6)  =  600;
-      (*t)(0,7)  = 0.65;  (*t)(1,7)  = -700;  (*t)(2,7)  =  600;
-      (*t)(0,8)  = 0.70;  (*t)(1,8)  = -600;  (*t)(2,8)  =  600;
-      (*t)(0,9)  = 0.75;  (*t)(1,9)  = -600;  (*t)(2,9)  =  500;
-      (*t)(0,10) = 0.80;  (*t)(1,10) = -500;  (*t)(2,10) =  500;
-      (*t)(0,11) = 0.85;  (*t)(1,11) = -500;  (*t)(2,11) =  500;
-      (*t)(0,12) = 0.90;  (*t)(1,12) = -400;  (*t)(2,12) =  500;
-      (*t)(0,13) = 0.95;  (*t)(1,13) = -400;  (*t)(2,13) =  500;
-      (*t)(0,14) = 1.00;  (*t)(1,14) = -400;  (*t)(2,14) =  500;
-      (*t)(0,15) = 1.10;  (*t)(1,15) = -350;  (*t)(2,15) =  450;
-      (*t)(0,16) = 1.20;  (*t)(1,16) = -300;  (*t)(2,16) =  400;
-      (*t)(0,17) = 1.30;  (*t)(1,17) = -300;  (*t)(2,17) =  400;
-      (*t)(0,18) = 1.40;  (*t)(1,18) = -250;  (*t)(2,18) =  400;
-      (*t)(0,19) = 1.50;  (*t)(1,19) = -200;  (*t)(2,19) =  400;
-      (*t)(0,20) = 1.60;  (*t)(1,20) = -150;  (*t)(2,20) =  400;
-      (*t)(0,21) = 1.70;  (*t)(1,21) = -100;  (*t)(2,21) =  400;
-      (*t)(0,22) = 1.80;  (*t)(1,22) =  -50;  (*t)(2,22) =  400;
-      (*t)(0,23) = 1.90;  (*t)(1,22) =    0;  (*t)(2,22) =  400;
-      (*t)(0,24) = 2.00;  (*t)(1,22) =   50;  (*t)(2,22) =  400;
-      (*t)(0,25) = 2.10;  (*t)(1,22) =    0;  (*t)(2,22) =    0;
+      //TOF kaons, 0.9 purity
+      t = new TMatrixF(3,61);
+      (*t)(0,0)  = 0.000;  (*t)(2,0)  = 0.000;  (*t)(2,0)  =   0.000;
+      (*t)(0,1)  = 0.050;  (*t)(2,1)  = 0.000;  (*t)(2,1)  =   0.000;
+      (*t)(0,2)  = 0.100;  (*t)(2,2)  = 0.000;  (*t)(2,2)  =   0.000;
+      (*t)(0,3)  = 0.150;  (*t)(2,3)  = 0.000;  (*t)(2,3)  =   0.000;
+      (*t)(0,4)  = 0.200;  (*t)(2,4)  = 0.000;  (*t)(2,4)  =   0.000;
+      (*t)(0,5)  = 0.250;  (*t)(2,5)  = 0.000;  (*t)(2,5)  =   0.000;
+      (*t)(0,6)  = 0.300;  (*t)(2,6)  = 0.000;  (*t)(2,6)  =   0.000;
+      (*t)(0,7)  = 0.350;  (*t)(2,7)  = 0.000;  (*t)(2,7)  =   0.000;
+      (*t)(0,8)  = 0.400;  (*t)(2,8)  = 0.000;  (*t)(2,8)  =   0.000;
+      (*t)(0,9)  = 0.450;  (*t)(2,9)  = 0.000;  (*t)(2,9)  =   0.000;
+      (*t)(0,10)  = 0.500;  (*t)(2,10)  = 0.000;  (*t)(2,10)  =   0.000;
+      (*t)(0,11)  = 0.550;  (*t)(2,11)  = -0.026;  (*t)(2,11)  =   0.026;
+      (*t)(0,12)  = 0.600;  (*t)(2,12)  = -0.026;  (*t)(2,12)  =   0.026;
+      (*t)(0,13)  = 0.650;  (*t)(2,13)  = -0.026;  (*t)(2,13)  =   0.026;
+      (*t)(0,14)  = 0.700;  (*t)(2,14)  = -0.026;  (*t)(2,14)  =   0.026;
+      (*t)(0,15)  = 0.750;  (*t)(2,15)  = -0.026;  (*t)(2,15)  =   0.026;
+      (*t)(0,16)  = 0.800;  (*t)(2,16)  = -0.026;  (*t)(2,16)  =   0.026;
+      (*t)(0,17)  = 0.850;  (*t)(2,17)  = -0.024;  (*t)(2,17)  =   0.024;
+      (*t)(0,18)  = 0.900;  (*t)(2,18)  = -0.024;  (*t)(2,18)  =   0.024;
+      (*t)(0,19)  = 0.950;  (*t)(2,19)  = -0.024;  (*t)(2,19)  =   0.024;
+      (*t)(0,20)  = 1.000;  (*t)(2,20)  = -0.024;  (*t)(2,20)  =   0.024;
+      (*t)(0,21)  = 1.100;  (*t)(2,21)  = -0.024;  (*t)(2,21)  =   0.024;
+      (*t)(0,22)  = 1.200;  (*t)(2,22)  = -0.024;  (*t)(2,22)  =   0.022;
+      (*t)(0,23)  = 1.300;  (*t)(2,23)  = -0.024;  (*t)(2,23)  =   0.020;
+      (*t)(0,24)  = 1.400;  (*t)(2,24)  = -0.026;  (*t)(2,24)  =   0.016;
+      (*t)(0,25)  = 1.500;  (*t)(2,25)  = -0.028;  (*t)(2,25)  =   0.014;
+      (*t)(0,26)  = 1.600;  (*t)(2,26)  = -0.028;  (*t)(2,26)  =   0.012;
+      (*t)(0,27)  = 1.700;  (*t)(2,27)  = -0.028;  (*t)(2,27)  =   0.010;
+      (*t)(0,28)  = 1.800;  (*t)(2,28)  = -0.028;  (*t)(2,28)  =   0.010;
+      (*t)(0,29)  = 1.900;  (*t)(2,29)  = -0.028;  (*t)(2,29)  =   0.008;
+      (*t)(0,30)  = 2.000;  (*t)(2,30)  = -0.028;  (*t)(2,30)  =   0.006;
+      (*t)(0,31)  = 2.100;  (*t)(2,31)  = -0.026;  (*t)(2,31)  =   0.006;
+      (*t)(0,32)  = 2.200;  (*t)(2,32)  = -0.024;  (*t)(2,32)  =   0.004;
+      (*t)(0,33)  = 2.300;  (*t)(2,33)  = -0.020;  (*t)(2,33)  =   0.002;
+      (*t)(0,34)  = 2.400;  (*t)(2,34)  = -0.020;  (*t)(2,34)  =   0.002;
+      (*t)(0,35)  = 2.500;  (*t)(2,35)  = -0.018;  (*t)(2,35)  =   0.000;
+      (*t)(0,36)  = 2.600;  (*t)(2,36)  = -0.016;  (*t)(2,36)  =   0.000;
+      (*t)(0,37)  = 2.700;  (*t)(2,37)  = -0.014;  (*t)(2,37)  =   -0.002;
+      (*t)(0,38)  = 2.800;  (*t)(2,38)  = -0.014;  (*t)(2,38)  =   -0.004;
+      (*t)(0,39)  = 2.900;  (*t)(2,39)  = -0.012;  (*t)(2,39)  =   -0.004;
+      (*t)(0,40)  = 3.000;  (*t)(2,40)  = -0.010;  (*t)(2,40)  =   -0.006;
+      (*t)(0,41)  = 3.100;  (*t)(2,41)  = 0.000;  (*t)(2,41)  =   0.000;
+      (*t)(0,42)  = 3.200;  (*t)(2,42)  = 0.000;  (*t)(2,42)  =   0.000;
+      (*t)(0,43)  = 3.300;  (*t)(2,43)  = 0.000;  (*t)(2,43)  =   0.000;
+      (*t)(0,44)  = 3.400;  (*t)(2,44)  = 0.000;  (*t)(2,44)  =   0.000;
+      (*t)(0,45)  = 3.500;  (*t)(2,45)  = 0.000;  (*t)(2,45)  =   0.000;
+      (*t)(0,46)  = 3.600;  (*t)(2,46)  = 0.000;  (*t)(2,46)  =   0.000;
+      (*t)(0,47)  = 3.700;  (*t)(2,47)  = 0.000;  (*t)(2,47)  =   0.000;
+      (*t)(0,48)  = 3.800;  (*t)(2,48)  = 0.000;  (*t)(2,48)  =   0.000;
+      (*t)(0,49)  = 3.900;  (*t)(2,49)  = 0.000;  (*t)(2,49)  =   0.000;
+      (*t)(0,50)  = 4.000;  (*t)(2,50)  = 0.000;  (*t)(2,50)  =   0.000;
+      (*t)(0,51)  = 4.100;  (*t)(2,51)  = 0.000;  (*t)(2,51)  =   0.000;
+      (*t)(0,52)  = 4.200;  (*t)(2,52)  = 0.000;  (*t)(2,52)  =   0.000;
+      (*t)(0,53)  = 4.300;  (*t)(2,53)  = 0.000;  (*t)(2,53)  =   0.000;
+      (*t)(0,54)  = 4.400;  (*t)(2,54)  = 0.000;  (*t)(2,54)  =   0.000;
+      (*t)(0,55)  = 4.500;  (*t)(2,55)  = 0.000;  (*t)(2,55)  =   0.000;
+      (*t)(0,56)  = 4.600;  (*t)(2,56)  = 0.000;  (*t)(2,56)  =   0.000;
+      (*t)(0,57)  = 4.700;  (*t)(2,57)  = 0.000;  (*t)(2,57)  =   0.000;
+      (*t)(0,58)  = 4.800;  (*t)(2,58)  = 0.000;  (*t)(2,58)  =   0.000;
+      (*t)(0,59)  = 4.900;  (*t)(2,59)  = 0.000;  (*t)(2,59)  =   0.000;
+      (*t)(0,60)  = 5.900;  (*t)(2,60)  = 0.000;  (*t)(2,60)  =   0.000;
     }
     fTOFpidCuts=t;
   }
index ec8cdb8..99c909f 100644 (file)
@@ -37,8 +37,12 @@ class AliFlowTrackCuts : public AliFlowTrackSimpleCuts {
   virtual ~AliFlowTrackCuts();
 
   static AliFlowTrackCuts* GetStandardTPCOnlyTrackCuts();
+  static AliFlowTrackCuts* GetStandardTPCOnlyTrackCuts2010();
+  static AliFlowTrackCuts* GetStandardGlobalTrackCuts2010();
   static AliFlowTrackCuts* GetStandardITSTPCTrackCuts2009(Bool_t selPrimaries=kTRUE);
 
+  Int_t Count(AliVEvent* event=NULL);
+
   enum trackParameterType { kMC, kGlobal, kESD_TPConly, kESD_SPDtracklet };
   enum trackParameterMix  { kPure, kTrackWithMCkine, kTrackWithMCPID, kTrackWithMCpt, kTrackWithPtFromFirstMother };
   enum PIDsource {kTPCpid, kTOFpid, kTPCTOFpid, kTOFbayesian};