added nsigma analysis
authorfnoferin <fnoferin@cern.ch>
Mon, 3 Feb 2014 15:16:05 +0000 (16:16 +0100)
committerfnoferin <fnoferin@cern.ch>
Mon, 3 Feb 2014 15:16:05 +0000 (16:16 +0100)
PWGPP/pid/doeffAllSpecies.C
PWGPP/pid/doeffKa.C
PWGPP/pid/doeffPi.C
PWGPP/pid/doeffPr.C

index 1eaf489..539db73 100644 (file)
@@ -42,9 +42,20 @@ performAllPi(){
   isMC = kFALSE;
   selectTrue = kTRUE;
   keepTrue = kFALSE;
-  
+  kPid2Sigma = kFALSE;
+  kPid3Sigma = kFALSE;
   if(! LoadLib()) return;
-  
+
+  kPid2Sigma = kTRUE;
+  doeffPi(1,0.,etamin,etamax);
+  doeffPi(0,0.,etamin,etamax);
+  kPid2Sigma = kFALSE;
+  kPid3Sigma = kTRUE;
+  doeffPi(1,0.,etamin,etamax);
+  doeffPi(0,0.,etamin,etamax);
+  kPid3Sigma = kFALSE;
+
   // matching and PID eff.
   doeffPi(1,0.1,etamin,etamax);
   doeffPi(0,0.1,etamin,etamax);
@@ -139,8 +150,19 @@ performAllPr(){
   isMC = kFALSE;
   selectTrue = kTRUE;
   keepTrue = kFALSE;
-  
+  kPid2Sigma = kFALSE;
+  kPid3Sigma = kFALSE;
   if(! LoadLib()) return;
+
+  kPid2Sigma = kTRUE;
+  doeffPr(1,0.,etamin,etamax);
+  doeffPr(0,0.,etamin,etamax);
+  kPid2Sigma = kFALSE;
+  kPid3Sigma = kTRUE;
+  doeffPr(1,0.,etamin,etamax);
+  doeffPr(0,0.,etamin,etamax);
+  kPid3Sigma = kFALSE;
   
   // matching and PID eff.
   doeffPr(1,0.1,etamin,etamax);
@@ -236,15 +258,26 @@ performAllKa(){
   isMC = kFALSE;
   selectTrue = kTRUE;
   keepTrue = kFALSE;
-
+  kPid2Sigma = kFALSE;
+  kPid3Sigma = kFALSE;
   if(! LoadLib()) return;
 
+  kPid2Sigma = kTRUE;
+  doeffKa(1,0.,etamin,etamax);
+  doeffKa(0,0.,etamin,etamax);
+  kPid2Sigma = kFALSE;
+  kPid3Sigma = kTRUE;
+  doeffKa(1,0.,etamin,etamax);
+  doeffKa(0,0.,etamin,etamax);
+  kPid3Sigma = kFALSE;
+
   // matching and PID eff.
   doeffKa(1,0.1,etamin,etamax);
   doeffKa(0,0.1,etamin,etamax);
   doeffKa(1,0.2,etamin,etamax);
   doeffKa(1,0.4,etamin,etamax);
- doeffKa(1,0.6,etamin,etamax);
+  doeffKa(1,0.6,etamin,etamax);
   doeffKa(1,0.8,etamin,etamax);
   doeffKa(0,0.2,etamin,etamax);
   doeffKa(0,0.4,etamin,etamax);
index 919015e..fd6a22a 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;
@@ -336,6 +338,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 +366,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 +416,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 +431,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 +479,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;
 
index c99d4e8..c6a060d 100644 (file)
@@ -50,7 +50,7 @@ Bool_t kGoodMatch = kFALSE; // to check good matching
 
 Bool_t kSigma2vs3 = kFALSE; // to check good matching
 
-Bool_t require5sigma = kFALSE; // don't touch this flag
+Bool_t require5sigma = kTRUE; // don't touch this flag
 
 Bool_t bayesVsigma = kFALSE; // only to do checks
 
@@ -60,6 +60,9 @@ Bool_t kOverAll = kFALSE;
 Bool_t kOverAllTOFmatch = kFALSE;
 Bool_t kOverAll2Sigma = kFALSE;
 
+Bool_t kPid2Sigma = kFALSE;
+Bool_t kPid3Sigma = kFALSE;
+
 TH2F *hmatched;
 TH2F *htracked;
 
@@ -162,7 +165,7 @@ void doeffPi(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;
@@ -323,6 +326,12 @@ void doeffPi(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,"pionPos%sP%iEff%i_%i%s%s.root",etarange,Int_t(prob*100),(cmin-1)*10,cmax*10,flag,flag2);
     else{
@@ -346,7 +355,7 @@ void doeffPi(Int_t pos,Float_t prob,Float_t etaminkp,Float_t etamaxkp){
 
 TH2F *GetHistoPip(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){
@@ -396,6 +405,8 @@ TH2F *GetHistoPip(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;
 
@@ -409,7 +420,7 @@ TH2F *GetHistoPip(Float_t pt,Float_t ptM,Float_t pMinkp,Float_t pMinkn,Float_t e
 
 TH2F *GetHistoPin(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){
@@ -458,6 +469,9 @@ TH2F *GetHistoPin(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;
 
   TH2F *h = tmp->GetQA(0, x, x2);
index 9674730..65a7277 100644 (file)
@@ -59,6 +59,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;
@@ -162,7 +164,7 @@ void doeffPr(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;
@@ -323,6 +325,11 @@ void doeffPr(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,"protonPos%sP%iEff%i_%i%s%s.root",etarange,Int_t(prob*100),(cmin-1)*10,cmax*10,flag,flag2);
     else{
@@ -346,7 +353,7 @@ void doeffPr(Int_t pos,Float_t prob,Float_t etaminkp,Float_t etamaxkp){
 
 TH2F *GetHistoPrp(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){
@@ -396,6 +403,8 @@ TH2F *GetHistoPrp(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;
 
@@ -409,7 +418,7 @@ TH2F *GetHistoPrp(Float_t pt,Float_t ptM,Float_t pMinkp,Float_t pMinkn,Float_t e
 
 TH2F *GetHistoPrn(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){
@@ -457,6 +466,8 @@ TH2F *GetHistoPrn(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;