Fix MC efficiencies more
authorrbailhac <rbailhac@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 2 Dec 2013 14:27:22 +0000 (14:27 +0000)
committerrbailhac <rbailhac@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 2 Dec 2013 14:27:22 +0000 (14:27 +0000)
PWGHF/hfe/AliHFEextraCuts.cxx
PWGHF/hfe/macros/AddTaskHFEnpePbPb.C
PWGHF/hfe/macros/configs/PbPb/ConfigHFEnpePbPb.C

index 8d5e284..8671fca 100644 (file)
@@ -1180,8 +1180,8 @@ Bool_t AliHFEextraCuts::MatchTOFlabel(const AliVTrack *const track) const {
     trklabel = esdtrk->GetLabel(); 
     esdtrk->GetTOFLabel(toflabel); 
   } else if((aodtrk = dynamic_cast<const AliAODTrack *>(track))){
-    trklabel = esdtrk->GetLabel(); 
-    esdtrk->GetTOFLabel(toflabel); 
+    trklabel = aodtrk->GetLabel(); 
+    aodtrk->GetTOFLabel(toflabel); 
   } else return kFALSE;
   if(TMath::Abs(trklabel) == TMath::Abs(toflabel[0])) return kTRUE;
   return kFALSE;
index a7dfbe4..31aac44 100755 (executable)
@@ -1,7 +1,8 @@
 AliAnalysisTask *AddTaskHFEnpePbPb(Bool_t MCthere, \r
                                    Bool_t isAOD,\r
                                    Bool_t kNPERef = kTRUE,\r
-                                   Bool_t kNPEkAny = kTRUE)\r
+                                   Bool_t kNPEkAny = kTRUE,\r
+                                  Bool_t kNPERefMCf = kTRUE)\r
 {\r
   // Default settings (TOF-TPC PbPb)\r
   const int    kDefTPCcl       = 130;\r
@@ -55,7 +56,7 @@ AliAnalysisTask *AddTaskHFEnpePbPb(Bool_t MCthere,
     //\r
     // **************************************************************\r
     RegisterTaskNPEPbPb( MCthere, isAOD, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1, dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kDefITSchi2percluster, kDefTPCclshared, etacorrection, multicorrection, kDefEtaIncMin, kDefEtaIncMax,\r
-                    kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kFALSE);\r
+                        kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kFALSE,kFALSE);\r
   }\r
 \r
   if(kNPEkAny){\r
@@ -65,7 +66,16 @@ AliAnalysisTask *AddTaskHFEnpePbPb(Bool_t MCthere,
     //\r
     // **************************************************************\r
     RegisterTaskNPEPbPb( MCthere, isAOD, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1, dEdxhm, kDefTOFs, AliHFEextraCuts::kAny, kDefITSchi2percluster, kDefTPCclshared, etacorrection, multicorrection, kDefEtaIncMin, kDefEtaIncMax,\r
-                    kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kFALSE);\r
+                        kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kFALSE,kFALSE);\r
+  }\r
+  if(kNPERefMCf){\r
+    // **************************************************************\r
+    // \r
+    // Reference task + MC fake rejected\r
+    //\r
+    // **************************************************************\r
+    RegisterTaskNPEPbPb( MCthere, isAOD, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1, dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kDefITSchi2percluster, kDefTPCclshared, etacorrection, multicorrection, kDefEtaIncMin, kDefEtaIncMax,\r
+                        kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kFALSE, kTRUE);\r
   }\r
 \r
   return NULL;\r
@@ -83,7 +93,7 @@ AliAnalysisTask *RegisterTaskNPEPbPb(Bool_t useMC, Bool_t isAOD,
                Double_t assETAm=-0.8, Double_t assETAp=0.8, Int_t assITS=2, Int_t assTPCcl=100,\r
                Int_t assTPCPIDcl=80, Double_t assDCAr=1.0, Double_t assDCAz=2.0,\r
                Double_t *assTPCSminus = NULL, Double_t *assTPCSplus=NULL,\r
-               Bool_t useCat1Tracks = kTRUE, Bool_t useCat2Tracks = kTRUE)\r
+                                    Bool_t useCat1Tracks = kTRUE, Bool_t useCat2Tracks = kTRUE, Bool_t rejectMCFake = kFALSE)\r
 {\r
 \r
   //\r
@@ -105,8 +115,9 @@ AliAnalysisTask *RegisterTaskNPEPbPb(Bool_t useMC, Bool_t isAOD,
   Int_t iassTPCSplus  = assTPCSplus ? (Int_t)(assTPCSplus[0]*1000) : 0;\r
   Int_t icat1 = useCat1Tracks ? 1 : 0;\r
   Int_t icat2 = useCat2Tracks ? 1 : 0;\r
+  Int_t irejectMCFake = rejectMCFake ? 1 : 0;\r
 \r
-  TString appendix(TString::Format("SPD%d_incTPCc%dTPCp%dITS%dDCAr%dz%dTPCs%dTOFs%dm%d_photTPCc%dTPCp%dITS%dDCAr%dDCAz%dTPCs%d",ipixelany,tpcCls,tpcClsPID,itsCls,idcaxy,idcaz,tpclow,itofs,imult,assTPCcl,assTPCPIDcl,assITS,iassDCAr,iassDCAz,iassTPCSplus));\r
+  TString appendix(TString::Format("SPD%d_incTPCc%dTPCp%dITS%dDCAr%dz%dTPCs%dTOFs%dm%d_photTPCc%dTPCp%dITS%dDCAr%dDCAz%dTPCs%dMCf%d",ipixelany,tpcCls,tpcClsPID,itsCls,idcaxy,idcaz,tpclow,itofs,imult,assTPCcl,assTPCPIDcl,assITS,iassDCAr,iassDCAz,iassTPCSplus,irejectMCFake));\r
 \r
   printf("Add macro appendix %s\n", appendix.Data());\r
 \r
@@ -115,7 +126,7 @@ AliAnalysisTask *RegisterTaskNPEPbPb(Bool_t useMC, Bool_t isAOD,
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r
   AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();\r
   AliAnalysisTaskHFE *task = ConfigHFEnpePbPb(useMC, isAOD, appendix, tpcCls, tpcClsPID, itsCls, dcaxy, dcaz, tpcdEdxcutlow, tpcdEdxcuthigh, tofs, 0, itshitpixel, itschi2percluster, tpcsharedcluster, etacorr, multicorr, etaIncMin, etaIncMax,\r
-                                            assETAm, assETAp, assITS, assTPCcl, assTPCPIDcl, assDCAr, assDCAz, assTPCSminus, assTPCSplus, useCat1Tracks, useCat2Tracks);\r
+                                             assETAm, assETAp, assITS, assTPCcl, assTPCPIDcl, assDCAr, assDCAz, assTPCSminus, assTPCSplus, useCat1Tracks, useCat2Tracks,rejectMCFake);\r
   if(isAOD)\r
     task->SetAODAnalysis();\r
   else\r
index ede3142..66a9e5f 100755 (executable)
@@ -54,7 +54,8 @@ AliAnalysisTaskHFE* ConfigHFEnpePbPb(Bool_t useMC, Bool_t isAOD, TString appendi
                 Int_t assTPCcl=100, Int_t assTPCPIDcl=80, 
                 Double_t assDCAr=1.0, Double_t assDCAz=2.0, 
                 Double_t *assTPCSminus=NULL, Double_t *assTPCSplus=NULL, 
-                Bool_t useCat1Tracks = kTRUE, Bool_t useCat2Tracks = kTRUE)
+               Bool_t useCat1Tracks = kTRUE, Bool_t useCat2Tracks = kTRUE,
+                Bool_t rejectMCFake = kFALSE)
 {
   Bool_t kAnalyseTaggedTracks = kFALSE;
   Bool_t kApplyPreselection = kTRUE;
@@ -93,7 +94,7 @@ AliAnalysisTaskHFE* ConfigHFEnpePbPb(Bool_t useMC, Bool_t isAOD, TString appendi
     usetof = 1;
     printf("CONFIGURATION FILE: TOF is used \n");
     hfecuts->SetTOFPIDStep(kTRUE);
-    hfecuts->SetMatchTOFLabel(kTRUE);
+    if(useMC) hfecuts->SetMatchTOFLabel(kTRUE);
     printf("CONFIGURATION FILE: TOF PID step is requested !!!! \n");
     if (TOFmis>0){
       kTOFmis = kTRUE;
@@ -112,6 +113,7 @@ AliAnalysisTaskHFE* ConfigHFEnpePbPb(Bool_t useMC, Bool_t isAOD, TString appendi
   task->SetHFECuts(hfecuts);
   task->SetRejectKinkMother(kFALSE);
   task->GetPIDQAManager()->SetHighResolutionHistos();
+  if(useMC && rejectMCFake) task->SetRejectMCFakeTracks(kTRUE); // MC label negative
 
   // Determine the centrality estimator
   task->SetCentralityEstimator("V0M");