]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGPP/pid/doeffKa.C
PWGPP-3, ATO-19 - Reduce size of the space points for alignment (Laser calibration...
[u/mrichter/AliRoot.git] / PWGPP / pid / doeffKa.C
index 919015e53b8b9e2878b8a2fcddf38a33d03c5593..136c519e3e293444f97e4fc15a18e44012a7af78 100644 (file)
@@ -58,6 +58,8 @@ Bool_t kTOFmatch = kFALSE; // for combined PID requires TOF matching
 Bool_t kOverAll = kFALSE;
 Bool_t kOverAllTOFmatch = kFALSE;
 Bool_t kOverAll2Sigma = kFALSE;
+Bool_t kPid2Sigma = kFALSE;
+Bool_t kPid3Sigma = kFALSE;
 
 TH2F *hmatched;
 TH2F *htracked;
@@ -173,7 +175,7 @@ void doeffKa(Int_t pos,Float_t prob,Float_t etaminkp,Float_t etamaxkp){
     maxptbin = xmax[3];
   }
 
-  if(prob > 0.1999){
+  if(prob > 0.1999|| kPid3Sigma ||kPid2Sigma){
     kGoodMatch = kFALSE;
     kSigma2vs3 = kFALSE;
 //    if(! kOverAll) require5sigma = kTRUE;
@@ -294,6 +296,9 @@ void doeffKa(Int_t pos,Float_t prob,Float_t etaminkp,Float_t etamaxkp){
 
     b[i][0] = b[i][0]-b2[i][0]*weightS;
 
+    if(b[i][0] < 0.5) b[i][0] = 0.5;
+    if(b2[i][0] < 0.5) b2[i][0] = 0.5;
+
 
     efferr[i] = TMath::Abs(b[i][1]*b[i][1]/b[i][0]/b[i][0] + b2[i][1]*b2[i][1]/b2[i][0]/b2[i][0])*(b2[i][0]+b2[i][1])*(1+weightS*(b2[i][0]-b2[i][1])/b[i][0])/b[i][0];//*(1-eff[i]);//der2*der2*(b[i][1]*b[i][1] - b2[i][1]*b2[i][1]));
     efferr[i] = TMath::Sqrt(efferr[i]);
@@ -336,6 +341,11 @@ void doeffKa(Int_t pos,Float_t prob,Float_t etaminkp,Float_t etamaxkp){
   if(kOverAll2Sigma)
     sprintf(flag2,"OverAll2sigma"); 
 
+  if(kPid3Sigma)
+    sprintf(flag2,"pid3sigma");
+  if(kPid2Sigma)
+    sprintf(flag2,"pid2sigma");
+
   if(pos){
     if(prob >=0.2) sprintf(name,"kaonPos%sP%iEff%i_%i%s%s.root",etarange,Int_t(prob*100),(cmin-1)*10,cmax*10,flag,flag2);
     else{
@@ -359,7 +369,7 @@ void doeffKa(Int_t pos,Float_t prob,Float_t etaminkp,Float_t etamaxkp){
 
 TH2F *GetHistoKap(Float_t pt,Float_t ptM,Float_t pMinkp,Float_t pMinkn,Float_t etaminkp,Float_t etamaxkp){
 
-  Float_t x[] = {xmin[0]+0.001,etaminkp+0.001,pt+0.001,xmin[3]+0.001,pMinkp+0.001,pMinkn+0.001,(pMinkp>0.09)+0.001,kTOFmatch+0.001,selectTrue,xmin[9],xmin[10],xmin[11],xmin[12],xmin[13]};
+  Float_t x[] = {xmin[0]+0.001,etaminkp+0.001,pt+0.001,xmin[3]+0.001,pMinkp+0.001,pMinkn+0.001,(pMinkp>0.09 || kPid3Sigma||kPid2Sigma)+0.001,kTOFmatch+0.001,selectTrue,xmin[9],xmin[10],xmin[11],xmin[12],xmin[13]};
   Float_t x2[] = {xmax[0],etamaxkp-0.001,ptM-0.001,xmax[3],xmax[4],xmax[5],xmax[6],xmax[7],keepTrue,xmax[9],xmax[10],xmax[11],xmax[12],xmax[13]};
 
   if(kOverAll){
@@ -409,6 +419,8 @@ TH2F *GetHistoKap(Float_t pt,Float_t ptM,Float_t pMinkp,Float_t pMinkn,Float_t e
   }
 
   if(require5sigma) x2[9] = 4.9;
+  if(kPid3Sigma && pMinkp>0.09) x2[9] = 2.9;
+  if(kPid2Sigma && pMinkp>0.09) x2[9] = 1.9;
 
   AliPIDperfContainer *tmp = (AliPIDperfContainer *) fContPid1;
 
@@ -422,7 +434,7 @@ TH2F *GetHistoKap(Float_t pt,Float_t ptM,Float_t pMinkp,Float_t pMinkn,Float_t e
 
 TH2F *GetHistoKan(Float_t pt,Float_t ptM,Float_t pMinkn,Float_t pMinkp,Float_t etaminkp,Float_t etamaxkp){
 
-  Float_t x[] = {xmin[0]+0.001,etaminkp+0.001,xmin[2]+0.001,pt+0.001,pMinkp+0.001,pMinkn+0.001,kTOFmatch+0.001,(pMinkn>0.09)+0.001,selectTrue,xmin[9],xmin[10],xmin[11],xmin[12],xmin[13]};
+  Float_t x[] = {xmin[0]+0.001,etaminkp+0.001,xmin[2]+0.001,pt+0.001,pMinkp+0.001,pMinkn+0.001,kTOFmatch+0.001,(pMinkn>0.09 || kPid3Sigma||kPid2Sigma)+0.001,selectTrue,xmin[9],xmin[10],xmin[11],xmin[12],xmin[13]};
   Float_t x2[] = {xmax[0],etamaxkp-0.001,xmax[2],ptM-0.001,xmax[4],xmax[5],xmax[6],xmax[7],keepTrue,xmax[9],xmax[10],xmax[11],xmax[12],xmax[13]};
 
  if(kOverAll){
@@ -470,6 +482,8 @@ TH2F *GetHistoKan(Float_t pt,Float_t ptM,Float_t pMinkn,Float_t pMinkp,Float_t e
   }
 
   if(require5sigma) x2[10] = 4.9;
+  if(kPid3Sigma && pMinkn>0.09) x2[10] = 2.9;
+  if(kPid2Sigma && pMinkn>0.09) x2[10] = 1.9;
 
   AliPIDperfContainer *tmp = (AliPIDperfContainer *) fContPid2;
 
@@ -563,7 +577,7 @@ void fit(TH1D *h,Float_t *a,char *opt,char *opt2,Float_t pt){
  Float_t sigma = 0.0044;//TMath::Abs(ftmp->GetParameter(2));
 
  Float_t signI = ftmp2->Integral(mean-10*sigma,mean+10*sigma)/h->GetBinWidth(1);
- if(signI < 1) signI = 1;
+ if(signI < 0.1) signI = 0.1;
 
  Float_t backI = ftmp3->Integral(mean-3*sigma,mean+3*sigma)/h->GetBinWidth(1);
  if(backI < 1) backI = 1;