]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGHF/vertexingHF/AliAnalysisTaskSEDplus.cxx
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / AliAnalysisTaskSEDplus.cxx
index 44500b5ee05f30026238b0973021e4b0caafb665..43be4f5e36d1ec98a608c888869188c1681084e0 100644 (file)
@@ -57,6 +57,8 @@ AliAnalysisTaskSE(),
   fYVsPtTC(0),
   fYVsPtSig(0),
   fYVsPtSigTC(0),
+  fPhiEtaCand(0),
+  fPhiEtaCandSigReg(0),
   fSPDMult(0),
   fNtupleDplus(0),
   fUpmasslimit(1.965),
@@ -73,9 +75,10 @@ AliAnalysisTaskSE(),
   fCutsDistr(kFALSE),
   fDoImpPar(kFALSE),
   fNImpParBins(400),
-  fLowerImpPar(-2000.),
-  fHigherImpPar(2000.),
+  fLowerImpPar(-1000.),
+  fHigherImpPar(1000.),
   fDoLS(0),
+  fEtaSelection(0),
   fSystem(0)
 {
   // Default constructor
@@ -135,6 +138,8 @@ AliAnalysisTaskSEDplus::AliAnalysisTaskSEDplus(const char *name,AliRDHFCutsDplus
   fYVsPtTC(0),
   fYVsPtSig(0),
   fYVsPtSigTC(0),
+  fPhiEtaCand(0),
+  fPhiEtaCandSigReg(0),
   fSPDMult(0),
   fNtupleDplus(0),
   fUpmasslimit(1.965),
@@ -151,9 +156,10 @@ AliAnalysisTaskSEDplus::AliAnalysisTaskSEDplus(const char *name,AliRDHFCutsDplus
   fCutsDistr(kFALSE),
   fDoImpPar(kFALSE),
   fNImpParBins(400),
-  fLowerImpPar(-2000.),
-  fHigherImpPar(2000.),
+  fLowerImpPar(-1000.),
+  fHigherImpPar(1000.),
   fDoLS(0),
+  fEtaSelection(0),
   fSystem(0)
 {
   // 
@@ -398,6 +404,7 @@ void AliAnalysisTaskSEDplus::Init(){
   
   //PostData(2,fRDCutsloose);//we should then put those cuts in a tlist if we have more than 1
   fListCuts=new TList();
+  fListCuts->SetOwner();
   AliRDHFCutsDplustoKpipi *analysis = new AliRDHFCutsDplustoKpipi(*fRDCutsAnalysis);
   analysis->SetName("AnalysisCuts");
   
@@ -422,9 +429,9 @@ void AliAnalysisTaskSEDplus::UserCreateOutputObjects()
   TString hisname;
   Int_t index=0;
   Int_t nbins=GetNBinsHistos();
-  fHistCentrality[0]=new TH1F("centrality","centrality",100,0.5,30000.5);
-  fHistCentrality[1]=new TH1F("centrality(selectedCent)","centrality(selectedCent)",100,0.5,30000.5);
-  fHistCentrality[2]=new TH1F("centrality(OutofCent)","centrality(OutofCent)",100,0.5,30000.5);
+  fHistCentrality[0]=new TH2F("hCentrMult","centrality",100,0.5,30000.5,40,0.,100.);
+  fHistCentrality[1]=new TH2F("hCentrMult(selectedCent)","centrality(selectedCent)",100,0.5,30000.5,40,0.,100.);
+  fHistCentrality[2]=new TH2F("hCentrMult(OutofCent)","centrality(OutofCent)",100,0.5,30000.5,40,0.,100.);
   for(Int_t i=0;i<3;i++){
     fHistCentrality[i]->Sumw2();
     fOutput->Add(fHistCentrality[i]);
@@ -437,44 +444,44 @@ void AliAnalysisTaskSEDplus::UserCreateOutputObjects()
     fMassHist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,fLowmasslimit,fUpmasslimit);
     fMassHist[index]->Sumw2();
     hisname.Form("hCosPAllPt%d",i);
-    fCosPHist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.5,1.);
+    fCosPHist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.5,1.);
     fCosPHist[index]->Sumw2();
     hisname.Form("hDLenAllPt%d",i);
-    fDLenHist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.,0.5);
+    fDLenHist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,0.5);
     fDLenHist[index]->Sumw2();
     hisname.Form("hSumd02AllPt%d",i);
-    fSumd02Hist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.,1.);
+    fSumd02Hist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,1.);
     fSumd02Hist[index]->Sumw2();
     hisname.Form("hSigVertAllPt%d",i);
-    fSigVertHist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.,0.1);
+    fSigVertHist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,0.1);
     fSigVertHist[index]->Sumw2();
     hisname.Form("hPtMaxAllPt%d",i);
-    fPtMaxHist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.5,5.);
+    fPtMaxHist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.5,5.);
     fPtMaxHist[index]->Sumw2();
     hisname.Form("hPtKPt%d",i);
-    fPtKHist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.5,5.);
+    fPtKHist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
     fPtKHist[index]->Sumw2();
     hisname.Form("hPtpi1Pt%d",i);
-    fPtpi1Hist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.5,5.);
+    fPtpi1Hist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
     fPtpi1Hist[index]->Sumw2();
     hisname.Form("hPtpi2Pt%d",i);
-    fPtpi2Hist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.5,5.);
+    fPtpi2Hist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
     fPtpi2Hist[index]->Sumw2();
     hisname.Form("hDCAAllPt%d",i);
-    fDCAHist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.,0.1);
+    fDCAHist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,0.1);
     fDCAHist[index]->Sumw2();
 
     hisname.Form("hDLxyPt%d",i);
-    fDLxy[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.,10.);
+    fDLxy[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,10.);
     fDLxy[index]->Sumw2();
     hisname.Form("hCosxyPt%d",i);
-    fCosxy[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.85,1.);
+    fCosxy[index]=new TH1F(hisname.Data(),hisname.Data(),100,-1,1.);
     fCosxy[index]->Sumw2();
     hisname.Form("hDLxyPt%dTC",i);
-    fDLxyTC[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.,10.);
+    fDLxyTC[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,10.);
     fDLxyTC[index]->Sumw2();
     hisname.Form("hCosxyPt%dTC",i);
-    fCosxyTC[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.85,1.);
+    fCosxyTC[index]=new TH1F(hisname.Data(),hisname.Data(),100,-1,1.);
     fCosxyTC[index]->Sumw2();
    
     hisname.Form("hMassPt%dTC",i);
@@ -494,45 +501,45 @@ void AliAnalysisTaskSEDplus::UserCreateOutputObjects()
     fMassHist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,fLowmasslimit,fUpmasslimit);
     fMassHist[index]->Sumw2();
     hisname.Form("hCosPSigPt%d",i);
-    fCosPHist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.5,1.);
+    fCosPHist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.5,1.);
     fCosPHist[index]->Sumw2();
     hisname.Form("hDLenSigPt%d",i);
-    fDLenHist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.,0.5);
+    fDLenHist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,0.5);
     fDLenHist[index]->Sumw2();
     hisname.Form("hSumd02SigPt%d",i);
-    fSumd02Hist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.,1.);
+    fSumd02Hist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,1.);
     fSumd02Hist[index]->Sumw2();
     hisname.Form("hSigVertSigPt%d",i);
-    fSigVertHist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.,0.1);
+    fSigVertHist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,0.1);
     fSigVertHist[index]->Sumw2();
     hisname.Form("hPtMaxSigPt%d",i);
-    fPtMaxHist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.5,5.);
+    fPtMaxHist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.5,5.);
     fPtMaxHist[index]->Sumw2();  
     hisname.Form("hPtKSigPt%d",i);  
-    fPtKHist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.5,5.);
+    fPtKHist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
     fPtKHist[index]->Sumw2();
     hisname.Form("hPtpi1SigPt%d",i);
-    fPtpi1Hist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.5,5.);
+    fPtpi1Hist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
     fPtpi1Hist[index]->Sumw2();
     hisname.Form("hPtpi2SigPt%d",i);
-    fPtpi2Hist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.5,5.);
+    fPtpi2Hist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
     fPtpi2Hist[index]->Sumw2();
 
     hisname.Form("hDCASigPt%d",i);
-    fDCAHist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.,0.1);
+    fDCAHist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,0.1);
     fDCAHist[index]->Sumw2();    
 
     hisname.Form("hDLxySigPt%d",i);
-    fDLxy[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.,10.);
+    fDLxy[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,10.);
     fDLxy[index]->Sumw2();
     hisname.Form("hCosxySigPt%d",i);
-    fCosxy[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.85,1.);
+    fCosxy[index]=new TH1F(hisname.Data(),hisname.Data(),100,-1,1.);
     fCosxy[index]->Sumw2();
     hisname.Form("hDLxySigPt%dTC",i);
-    fDLxyTC[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.,10.);
+    fDLxyTC[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,10.);
     fDLxyTC[index]->Sumw2();
     hisname.Form("hCosxySigPt%dTC",i);
-    fCosxyTC[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.85,1.);
+    fCosxyTC[index]=new TH1F(hisname.Data(),hisname.Data(),100,-1,1.);
     fCosxyTC[index]->Sumw2();
     hisname.Form("hSigPt%dTC",i);
     fMassHistTC[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,fLowmasslimit,fUpmasslimit);
@@ -550,44 +557,44 @@ void AliAnalysisTaskSEDplus::UserCreateOutputObjects()
     fMassHist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,fLowmasslimit,fUpmasslimit);
     fMassHist[index]->Sumw2();
     hisname.Form("hCosPBkgPt%d",i);
-    fCosPHist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.5,1.);
+    fCosPHist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.5,1.);
     fCosPHist[index]->Sumw2();
     hisname.Form("hDLenBkgPt%d",i);
-    fDLenHist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.,0.5);
+    fDLenHist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,0.5);
     fDLenHist[index]->Sumw2();
     hisname.Form("hSumd02BkgPt%d",i);
-    fSumd02Hist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.,1.);
+    fSumd02Hist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,1.);
     fSumd02Hist[index]->Sumw2();
     hisname.Form("hSigVertBkgPt%d",i);
-    fSigVertHist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.,0.1);
+    fSigVertHist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,0.1);
     fSigVertHist[index]->Sumw2();
     hisname.Form("hPtMaxBkgPt%d",i);
-    fPtMaxHist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.5,5.);
+    fPtMaxHist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.5,5.);
     fPtMaxHist[index]->Sumw2();
     hisname.Form("hPtKBkgPt%d",i);  
-    fPtKHist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.5,5.);
+    fPtKHist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
     fPtKHist[index]->Sumw2();
     hisname.Form("hPtpi1BkgPt%d",i);
-    fPtpi1Hist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.5,5.);
+    fPtpi1Hist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
     fPtpi1Hist[index]->Sumw2();
     hisname.Form("hPtpi2BkgPt%d",i);
-    fPtpi2Hist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.5,5.);
+    fPtpi2Hist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,5.);
     fPtpi2Hist[index]->Sumw2();
     hisname.Form("hDCABkgPt%d",i);
-    fDCAHist[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.,0.1);
+    fDCAHist[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,0.1);
     fDCAHist[index]->Sumw2();
 
     hisname.Form("hDLxyBkgPt%d",i);
-    fDLxy[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.,10.);
+    fDLxy[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,10.);
     fDLxy[index]->Sumw2();
     hisname.Form("hCosxyBkgPt%d",i);
-    fCosxy[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.85,1.);
+    fCosxy[index]=new TH1F(hisname.Data(),hisname.Data(),100,-1,1.);
     fCosxy[index]->Sumw2();
     hisname.Form("hDLxyBkgPt%dTC",i);
-    fDLxyTC[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.,10.);
+    fDLxyTC[index]=new TH1F(hisname.Data(),hisname.Data(),100,0.,10.);
     fDLxyTC[index]->Sumw2();
     hisname.Form("hCosxyBkgPt%dTC",i);
-    fCosxyTC[index]=new TH1F(hisname.Data(),hisname.Data(),nbins,0.85,1.);
+    fCosxyTC[index]=new TH1F(hisname.Data(),hisname.Data(),100,-1,1.);
     fCosxyTC[index]->Sumw2();
   
 
@@ -656,10 +663,12 @@ void AliAnalysisTaskSEDplus::UserCreateOutputObjects()
 
   fPtVsMass=new TH2F("hPtVsMass","PtVsMass (prod. cuts)",nbins,fLowmasslimit,fUpmasslimit,200,0.,20.);
   fPtVsMassTC=new TH2F("hPtVsMassTC","PtVsMass (analysis cuts)",nbins,fLowmasslimit,fUpmasslimit,200,0.,20.);  
-  fYVsPt=new TH2F("hYVsPt","YvsPt (prod. cuts)",40,0.,20.,80,-2.,2.);
-  fYVsPtTC=new TH2F("hYVsPtTC","YvsPt (analysis cuts)",40,0.,20.,80,-2.,2.);
+  fYVsPt=new TH3F("hYVsPt","YvsPt (prod. cuts)",40,0.,20.,80,-2.,2.,nbins,fLowmasslimit,fUpmasslimit);
+  fYVsPtTC=new TH3F("hYVsPtTC","YvsPt (analysis cuts)",40,0.,20.,80,-2.,2.,nbins,fLowmasslimit,fUpmasslimit);
   fYVsPtSig=new TH2F("hYVsPtSig","YvsPt (MC, only sig., prod. cuts)",40,0.,20.,80,-2.,2.);
   fYVsPtSigTC=new TH2F("hYVsPtSigTC","YvsPt (MC, only Sig, analysis cuts)",40,0.,20.,80,-2.,2.);
+  fPhiEtaCand=new TH2F("hPhiEtaCand","phi vs. eta candidates",20,-1.,1.,50,0.,2*TMath::Pi());
+  fPhiEtaCandSigReg=new TH2F("hPhiEtaCandSigReg","phi vs. eta candidates",20,-1.,1.,50,0.,2*TMath::Pi());
   fSPDMult = new TH1F("hSPDMult", "Tracklets multiplicity; Tracklets ; Entries",200,0.,200.); 
   fOutput->Add(fPtVsMass);
   fOutput->Add(fPtVsMassTC);
@@ -667,6 +676,8 @@ void AliAnalysisTaskSEDplus::UserCreateOutputObjects()
   fOutput->Add(fYVsPtTC);
   fOutput->Add(fYVsPtSig);
   fOutput->Add(fYVsPtSigTC);
+  fOutput->Add(fPhiEtaCand);
+  fOutput->Add(fPhiEtaCandSigReg);
   fOutput->Add(fSPDMult);
 
 
@@ -684,7 +695,7 @@ void AliAnalysisTaskSEDplus::UserCreateOutputObjects()
     OpenFile(4); // 4 is the slot number of the ntuple
    
     
-    fNtupleDplus = new TNtuple("fNtupleDplus","D +","pdg:Px:Py:Pz:Pt:piddau0:piddau1:piddau2:Ptpi:PtK:Ptpi2:mompi:momK:mompi2:cosp:cospxy:DecLen:NormDecLen:DecLenXY:NormDecLenXY:InvMass:sigvert:d0Pi:d0K:d0Pi2:maxdca:ntracks:centr:RunNumber");
+    fNtupleDplus = new TNtuple("fNtupleDplus","D +","pdg:Px:Py:Pz:Pt:charge:piddau0:piddau1:piddau2:Ptpi:PtK:Ptpi2:mompi:momK:mompi2:cosp:cospxy:DecLen:NormDecLen:DecLenXY:NormDecLenXY:InvMass:sigvert:d0Pi:d0K:d0Pi2:maxdca:ntracks:centr:RunNumber:BadDau");
 
   }
   
@@ -741,11 +752,13 @@ void AliAnalysisTaskSEDplus::UserExec(Option_t */*option*/)
 
   //Event selection
   Bool_t isEvSel=fRDCutsAnalysis->IsEventSelected(aod);
-  Float_t ntracks=aod->GetNTracks();//fRDCutsAnalysis->GetCentrality(aod);
-  fHistCentrality[0]->Fill(ntracks);
+  Float_t ntracks=aod->GetNTracks();
+  Float_t evCentr=0;
+  if(fRDCutsAnalysis->GetUseCentrality()>0) evCentr=fRDCutsAnalysis->GetCentrality(aod);
+  fHistCentrality[0]->Fill(ntracks,evCentr);
   if(fRDCutsAnalysis->GetWhyRejection()==5) fHistNEvents->Fill(2);
   if(fRDCutsAnalysis->GetWhyRejection()==1) fHistNEvents->Fill(3); 
-  if(fRDCutsAnalysis->GetWhyRejection()==2){fHistNEvents->Fill(4);fHistCentrality[2]->Fill(ntracks);}
+  if(fRDCutsAnalysis->GetWhyRejection()==2){fHistNEvents->Fill(4);fHistCentrality[2]->Fill(ntracks,evCentr);}
   if(fRDCutsAnalysis->GetWhyRejection()==6)fHistNEvents->Fill(5);
   if(fRDCutsAnalysis->GetWhyRejection()==7)fHistNEvents->Fill(6);
 
@@ -758,7 +771,7 @@ void AliAnalysisTaskSEDplus::UserExec(Option_t */*option*/)
   // printf("ntracklet===%d\n",tracklets);
   fSPDMult->Fill(tracklets);
 
-  fHistCentrality[1]->Fill(ntracks);
+  fHistCentrality[1]->Fill(ntracks,evCentr);
   fHistNEvents->Fill(1);
 
   TClonesArray *arrayMC=0;
@@ -811,14 +824,23 @@ void AliAnalysisTaskSEDplus::UserExec(Option_t */*option*/)
        fHistNEvents->Fill(8);
        continue;
       }
+    
+      Int_t passTightCuts=fRDCutsAnalysis->IsSelected(d,AliRDHFCuts::kAll,aod);
+
+      if(!fRDCutsAnalysis->GetIsSelectedCuts()) continue;
+
+      Double_t etaD=d->Eta();
+      Double_t phiD=d->Phi();
+      if(fEtaSelection!=0){
+       if(fEtaSelection==1 && etaD<0) continue;
+       if(fEtaSelection==-1 && etaD>0) continue;
+      }
+
       Bool_t unsetvtx=kFALSE;
       if(!d->GetOwnPrimaryVtx()){
        d->SetOwnPrimaryVtx(vtx1);
        unsetvtx=kTRUE;
       }
-    
-      Int_t passTightCuts=fRDCutsAnalysis->IsSelected(d,AliRDHFCuts::kAll,aod);
-      if(!fRDCutsAnalysis->GetIsSelectedCuts())continue;//filling loose cuts histos with no-pid informations
 
       Double_t ptCand = d->Pt();
       Int_t iPtBin = fRDCutsAnalysis->PtBin(ptCand);     
@@ -851,12 +873,16 @@ void AliAnalysisTaskSEDplus::UserExec(Option_t */*option*/)
 
       Double_t invMass=d->InvMassDplus();
       Double_t rapid=d->YDplus();
-      fYVsPt->Fill(ptCand,rapid);
-      if(passTightCuts) {fYVsPtTC->Fill(ptCand,rapid);nOS++;}
+      fYVsPt->Fill(ptCand,rapid,invMass);
+      if(passTightCuts) {fYVsPtTC->Fill(ptCand,rapid,invMass);nOS++;}
       Bool_t isFidAcc=fRDCutsAnalysis->IsInFiducialAcceptance(ptCand,rapid);
       if(isFidAcc){
        fPtVsMass->Fill(invMass,ptCand);
-       if(passTightCuts) fPtVsMassTC->Fill(invMass,ptCand);
+       if(passTightCuts){
+         fPtVsMassTC->Fill(invMass,ptCand);
+         fPhiEtaCand->Fill(etaD,phiD);
+         if(TMath::Abs(invMass-1.8696)<0.05) fPhiEtaCandSigReg->Fill(etaD,phiD);
+       }
       }
 
 
@@ -876,42 +902,45 @@ void AliAnalysisTaskSEDplus::UserExec(Option_t */*option*/)
        cxy=d->CosPointingAngleXY();
       }
       Double_t impparXY=d->ImpParXY()*10000.;
-      Double_t arrayForSparse[6]={invMass,ptCand,impparXY,cosp,dlen,tracklets};
-      Double_t arrayForSparseTrue[6]={invMass,ptCand,trueImpParXY,cosp,dlen,tracklets};
+      Double_t arrayForSparse[6]={invMass,ptCand,impparXY,cosp,dlen,static_cast<Double_t>(tracklets)};
+      Double_t arrayForSparseTrue[6]={invMass,ptCand,trueImpParXY,cosp,dlen,static_cast<Double_t>(tracklets)};
 
       //Ntuple
-      Float_t tmp[29];
+      Float_t tmp[31];
       if(fFillNtuple){
        tmp[0]=pdgCode;
+       if(!isPrimary) tmp[0]+=5000.;
        tmp[1]=d->Px();
        tmp[2]=d->Py();
        tmp[3]=d->Pz();
        tmp[4]=d->Pt();
+       tmp[5]=d->GetCharge();
        //      tmp[5]=fRDCutsAnalysis->GetPIDBitMask(d);         
-       tmp[5]=fRDCutsAnalysis->GetPIDTrackTPCTOFBitMap((AliAODTrack*)d->GetDaughter(0));
-       tmp[6]=fRDCutsAnalysis->GetPIDTrackTPCTOFBitMap((AliAODTrack*)d->GetDaughter(1));
-       tmp[7]=fRDCutsAnalysis->GetPIDTrackTPCTOFBitMap((AliAODTrack*)d->GetDaughter(2));
-       tmp[8]=d->PtProng(0);
-       tmp[9]=d->PtProng(1);
-       tmp[10]=d->PtProng(2);
-       tmp[11]=d->PProng(0);
-       tmp[12]=d->PProng(1);
-       tmp[13]=d->PProng(2);
-       tmp[14]=cosp;
-       tmp[15]=cxy;
-       tmp[16]=dlen;
-       tmp[17]=d->NormalizedDecayLength();
-       tmp[18]=d->DecayLengthXY();
-       tmp[19]=dlxy;
-       tmp[20]=d->InvMassDplus();
-       tmp[21]=sigvert;
-       tmp[22]=d->Getd0Prong(0);
-       tmp[23]=d->Getd0Prong(1);
-       tmp[24]=d->Getd0Prong(2);
-       tmp[25]=maxdca;
-       tmp[26]=ntracks;
-       tmp[27]=fRDCutsAnalysis->GetCentrality(aod);
-       tmp[28]=runNumber;
+       tmp[6]=fRDCutsAnalysis->GetPIDTrackTPCTOFBitMap((AliAODTrack*)d->GetDaughter(0));
+       tmp[7]=fRDCutsAnalysis->GetPIDTrackTPCTOFBitMap((AliAODTrack*)d->GetDaughter(1));
+       tmp[8]=fRDCutsAnalysis->GetPIDTrackTPCTOFBitMap((AliAODTrack*)d->GetDaughter(2));
+       tmp[9]=d->PtProng(0);
+       tmp[10]=d->PtProng(1);
+       tmp[11]=d->PtProng(2);
+       tmp[12]=d->PProng(0);
+       tmp[13]=d->PProng(1);
+       tmp[14]=d->PProng(2);
+       tmp[15]=cosp;
+       tmp[16]=cxy;
+       tmp[17]=dlen;
+       tmp[18]=d->NormalizedDecayLength();
+       tmp[19]=d->DecayLengthXY();
+       tmp[20]=dlxy;
+       tmp[21]=d->InvMassDplus();
+       tmp[22]=sigvert;
+       tmp[23]=d->Getd0Prong(0);
+       tmp[24]=d->Getd0Prong(1);
+       tmp[25]=d->Getd0Prong(2);
+       tmp[26]=maxdca;
+       tmp[27]=ntracks;
+       tmp[28]=fRDCutsAnalysis->GetCentrality(aod);
+       tmp[29]=runNumber;
+       tmp[30]=d->HasBadDaughters();
        fNtupleDplus->Fill(tmp);
        PostData(4,fNtupleDplus);
       }
@@ -975,7 +1004,7 @@ void AliAnalysisTaskSEDplus::UserExec(Option_t */*option*/)
          fMassHist[index]->Fill(invMass);
          if(fCutsDistr){
            Float_t fact=1.;
-           Float_t factor[3];
+           Float_t factor[3]={1.,1.,1.};
            if(fUseStrangeness) fact=GetStrangenessWeights(d,arrayMC,factor);
            fCosPHist[index]->Fill(cosp,fact);
            fDLenHist[index]->Fill(dlen,fact);
@@ -1004,8 +1033,8 @@ void AliAnalysisTaskSEDplus::UserExec(Option_t */*option*/)
          }
        }else{//outside fidAcc
          if(labDp>=0){
-           fYVsPtSig->Fill(ptCand,rapid);
-           if(passTightCuts)fYVsPtSigTC->Fill(ptCand,rapid);
+           fYVsPtSig->Fill(ptCand,rapid, invMass);
+           if(passTightCuts)fYVsPtSigTC->Fill(ptCand,rapid, invMass);
          }
        }
       }//readmc
@@ -1198,25 +1227,15 @@ void AliAnalysisTaskSEDplus::Terminate(Option_t */*option*/)
     printf("ERROR: fOutput not available\n");
     return;
   }
-  fHistNEvents = dynamic_cast<TH1F*>(fOutput->FindObject("fHistNEvents"));
 
-  TString hisname;
-  Int_t index=0;
+  fHistNEvents = dynamic_cast<TH1F*>(fOutput->FindObject("fHistNEvents"));
+  if(fHistNEvents){
+    printf("Number of analyzed events = %d\n",(Int_t)fHistNEvents->GetBinContent(2));
+  }else{
+    printf("ERROR: fHistNEvents not available\n");
+    return;
+  }
 
-  for(Int_t i=0;i<fNPtBins;i++){
-    index=GetHistoIndex(i);
-    
-    hisname.Form("hMassPt%dTC",i);
-    fMassHistTC[index]=dynamic_cast<TH1F*>(fOutput->FindObject(hisname.Data()));
-  } 
-    
-  TCanvas *c1=new TCanvas("c1","D+ invariant mass distribution",500,500);
-  c1->cd();
-  TH1F *hMassPt=(TH1F*)fOutput->FindObject("hMassPt3TC");
-  hMassPt->SetLineColor(kBlue);
-  hMassPt->SetXTitle("M[GeV/c^{2}]"); 
-  hMassPt->Draw();
   return;
 }
 //_________________________________________________________________________________________________