]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
up from Chiara
authorloizides <loizides@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 14 Nov 2013 15:19:48 +0000 (15:19 +0000)
committerloizides <loizides@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 14 Nov 2013 15:19:48 +0000 (15:19 +0000)
PWGJE/FlavourJetTasks/AliAnalysisTaskFlavourJetCorrelations.cxx
PWGJE/FlavourJetTasks/AliAnalysisTaskFlavourJetCorrelations.h

index 906c9205391da07f769d52ddac3c48a7469e735a..1a32cf92fbfce4c090baf62200b5ee31b99a26c0 100644 (file)
@@ -29,6 +29,7 @@
 #include <TParticle.h>\r
 #include "TROOT.h"\r
 #include <TH3F.h>\r
+#include <THnSparse.h>\r
 \r
 #include "AliAnalysisTaskFlavourJetCorrelations.h"\r
 #include "AliAODMCHeader.h"\r
@@ -532,15 +533,24 @@ Bool_t  AliAnalysisTaskFlavourJetCorrelations::DefineHistoForAnalysis(){
    fmyOutput->Add(hstat);\r
    \r
    const Int_t nbinsmass=200;\r
+   const Int_t nbinsptjet=500;\r
+   const Int_t nbinsptD=100;\r
+   const Int_t nbinsz=100;\r
+   const Int_t nbinsphi=200;\r
    \r
+   const Float_t ptjetlims[2]={0.,200.};\r
+   const Float_t ptDlims[2]={0.,50.};\r
+   const Float_t zlims[2]={0.,1.2};\r
+   const Float_t philims[2]={0.,6.3};\r
    \r
    if(fCandidateType==kDstartoKpipi) \r
    {\r
       \r
-      TH2F* hDiffSideBand = new TH2F("hDiffSideBand","M(kpipi)-M(kpi) Side Band Background",nbinsmass,fMinMass,fMaxMass,100, 0.,30.);\r
+      TH2F* hDiffSideBand = new TH2F("hDiffSideBand","M(kpipi)-M(kpi) Side Band Background",nbinsmass,fMinMass,fMaxMass,nbinsptD, ptDlims[0],ptDlims[1]);\r
       hDiffSideBand->SetStats(kTRUE);\r
       hDiffSideBand->GetXaxis()->SetTitle("M(kpipi)-M(Kpi) GeV");\r
       hDiffSideBand->GetYaxis()->SetTitle("p_{t}^{D} (GeV/c)");\r
+      hDiffSideBand->Sumw2();\r
       fmyOutput->Add(hDiffSideBand); \r
       \r
       \r
@@ -548,6 +558,7 @@ Bool_t  AliAnalysisTaskFlavourJetCorrelations::DefineHistoForAnalysis(){
       hPtPion->SetStats(kTRUE);\r
       hPtPion->GetXaxis()->SetTitle("GeV/c");\r
       hPtPion->GetYaxis()->SetTitle("Entries");\r
+      hPtPion->Sumw2();\r
       fmyOutput->Add(hPtPion);\r
       \r
    }\r
@@ -555,23 +566,36 @@ Bool_t  AliAnalysisTaskFlavourJetCorrelations::DefineHistoForAnalysis(){
    // jet related fistograms\r
    \r
    TH1F* hEjetTrks      = new TH1F("hEjetTrks",  "Jet tracks energy distribution;Energy (GeV)",500,0,200);\r
-   TH1F* hPhiJetTrks    = new TH1F("hPhiJetTrks","Jet tracks #phi distribution; #phi (rad)",  200,0,6.30);\r
+   hEjetTrks->Sumw2();\r
+   TH1F* hPhiJetTrks    = new TH1F("hPhiJetTrks","Jet tracks #phi distribution; #phi (rad)",  nbinsphi,philims[0],philims[1]);\r
+   hPhiJetTrks->Sumw2();\r
    TH1F* hEtaJetTrks    = new TH1F("hEtaJetTrks","Jet tracks #eta distribution; #eta",  100,-1.5,1.5);\r
-   TH1F* hPtJetTrks     = new TH1F("hPtJetTrks",  "Jet tracks Pt distribution; p_{T} (GeV/c)",500,0,200);\r
+   hEtaJetTrks->Sumw2();\r
+   TH1F* hPtJetTrks     = new TH1F("hPtJetTrks",  "Jet tracks Pt distribution; p_{T} (GeV/c)",nbinsptjet,ptjetlims[0],ptjetlims[1]);\r
+   hPtJetTrks->Sumw2();\r
    \r
    TH1F* hEjet      = new TH1F("hEjet",  "Jet energy distribution;Energy (GeV)",500,0,200);\r
-   TH1F* hPhiJet    = new TH1F("hPhiJet","Jet #phi distribution; #phi (rad)",  200,0,6.30);\r
+   hEjet->Sumw2();\r
+   TH1F* hPhiJet    = new TH1F("hPhiJet","Jet #phi distribution; #phi (rad)",  nbinsphi,philims[0],philims[1]);\r
+   hPhiJet->Sumw2();\r
    TH1F* hEtaJet    = new TH1F("hEtaJet","Jet #eta distribution; #eta",  100,-1.5,1.5);\r
-   TH1F* hPtJet      = new TH1F("hPtJet",  "Jet Pt distribution; p_{T} (GeV/c)",500,0,200);\r
+   hEtaJet->Sumw2();\r
+   TH1F* hPtJet      = new TH1F("hPtJet",  "Jet Pt distribution; p_{T} (GeV/c)",nbinsptjet,ptjetlims[0],ptjetlims[1]);\r
+   hPtJet->Sumw2();\r
    \r
-   TH3F* hPtJetWithD=new TH3F("hPtJetWithD","D-Jet Pt distribution; p_{T} (GeV/c);delta mass (GeV/c^{2})",500,0,200,nbinsmass,fMinMass,fMaxMass,100, 0.,30.);\r
+   TH3F* hPtJetWithD=new TH3F("hPtJetWithD","D-Jet Pt distribution; p_{T} (GeV/c);delta mass (GeV/c^{2})",nbinsptjet,ptjetlims[0],ptjetlims[1],nbinsmass,fMinMass,fMaxMass,nbinsptD, ptDlims[0],ptDlims[1]);\r
+   hPtJetWithD->Sumw2();\r
    //for the MC this histogram is filled with the real background\r
-   TH3F* hPtJetWithDsb=new TH3F("hPtJetWithDsb","D(background)-Jet Pt distribution; p_{T} (GeV/c);delta mass (GeV/c^{2});p_{T}^{D} (GeV/c)",500,0,200,nbinsmass,fMinMass,fMaxMass,100, 0.,30.);\r
+   TH3F* hPtJetWithDsb=new TH3F("hPtJetWithDsb","D(background)-Jet Pt distribution; p_{T} (GeV/c);delta mass (GeV/c^{2});p_{T}^{D} (GeV/c)",nbinsptjet,ptjetlims[0],ptjetlims[1],nbinsmass,fMinMass,fMaxMass,nbinsptD, ptDlims[0],ptDlims[1]);\r
+   hPtJetWithDsb->Sumw2();\r
    \r
    TH1F* hdeltaRJetTracks=new TH1F("hdeltaRJetTracks","Delta R of tracks in the jets",200, 0.,10.);\r
+   hdeltaRJetTracks->Sumw2();\r
    \r
    TH1F* hNtrArr= new TH1F("hNtrArr", "Number of tracks in the array of jets; number of tracks",500,0,1000);\r
+   hNtrArr->Sumw2();\r
    TH1F *hNJetPerEv=new TH1F("hNJetPerEv","Number of jets used per event; number of jets/ev",10,-0.5,9.5);\r
+   hNJetPerEv->Sumw2();\r
    \r
    fmyOutput->Add(hEjetTrks);\r
    fmyOutput->Add(hPhiJetTrks);\r
@@ -588,23 +612,35 @@ Bool_t  AliAnalysisTaskFlavourJetCorrelations::DefineHistoForAnalysis(){
    fmyOutput->Add(hNJetPerEv);\r
    \r
    TH1F* hDeltaRD=new TH1F("hDeltaRD","#Delta R distribution of D candidates selected;#Delta R",200, 0.,10.);\r
+   hDeltaRD->Sumw2();\r
    fmyOutput->Add(hDeltaRD);\r
    \r
    //background (side bands for the Dstar and like sign for D0)\r
-   TH2F* hInvMassptD = new TH2F("hInvMassptD",Form("D (Delta R < %.1f) invariant mass distribution p_{T}^{j} > threshold",fJetRadius),nbinsmass,fMinMass,fMaxMass,100,0.,50.);\r
+   TH2F* hInvMassptD = new TH2F("hInvMassptD",Form("D (Delta R < %.1f) invariant mass distribution p_{T}^{j} > threshold",fJetRadius),nbinsmass,fMinMass,fMaxMass,nbinsptD,ptDlims[0],ptDlims[1]);\r
    hInvMassptD->SetStats(kTRUE);\r
    hInvMassptD->GetXaxis()->SetTitle("mass (GeV)");\r
    hInvMassptD->GetYaxis()->SetTitle("p_{t}^{D} (GeV/c)");\r
+   hInvMassptD->Sumw2();\r
    \r
    fmyOutput->Add(hInvMassptD);\r
    \r
    if(fUseMCInfo){\r
-      TH2F* hInvMassptDbg = new TH2F("hInvMassptDbg",Form("Background D (Delta R < %.1f) invariant mass distribution p_{T}^{j} > threshold",fJetRadius),nbinsmass,fMinMass,fMaxMass,100,0.,50.);\r
+      TH2F* hInvMassptDbg = new TH2F("hInvMassptDbg",Form("Background D (Delta R < %.1f) invariant mass distribution p_{T}^{j} > threshold",fJetRadius),nbinsmass,fMinMass,fMaxMass,nbinsptD,ptDlims[0],ptDlims[1]);\r
       hInvMassptDbg->GetXaxis()->SetTitle(Form("%s (GeV)",(fCandidateType==kDstartoKpipi) ? "M(Kpipi)" : "M(Kpi)"));\r
       hInvMassptDbg->GetYaxis()->SetTitle("p_{t}^{D} (GeV/c)");\r
+      hInvMassptDbg->Sumw2();\r
       fmyOutput->Add(hInvMassptDbg);\r
       \r
    }\r
+   const Int_t nAxis=5;\r
+   const Int_t nbinsSparse[nAxis]={nbinsz,nbinsphi,nbinsptjet,nbinsptD,nbinsmass};\r
+   const Double_t minSparse[nAxis]={zlims[0],philims[0],ptjetlims[0],ptDlims[0],fMinMass};\r
+   const Double_t maxSparse[nAxis]={zlims[1],philims[1],ptjetlims[1],ptDlims[1],fMinMass};\r
+   THnSparseF *hsDphiz=new THnSparseF("hsDphiz","Z and #Delta#phi vs p_{T}^{jet}, p_{T}^{D}, and mass", nAxis, nbinsSparse, minSparse, maxSparse);\r
+   hsDphiz->Sumw2();\r
+   \r
+   fmyOutput->Add(hsDphiz);\r
+\r
    PostData(1, fmyOutput);\r
    \r
    return kTRUE; \r
@@ -638,7 +674,7 @@ void AliAnalysisTaskFlavourJetCorrelations::FillHistogramsRecoJetCorr(AliVPartic
       }\r
    } else{ //generated level\r
       //AliInfo("Non reco");\r
-      FillHistogramsMCGenDJetCorr(ptD,ptjet,deltaR);\r
+      FillHistogramsMCGenDJetCorr(deltaphi,z,ptD,ptjet,deltaR);\r
    }\r
 }\r
 \r
@@ -656,6 +692,8 @@ void AliAnalysisTaskFlavourJetCorrelations::FillHistogramsD0JetCorr(AliAODRecoDe
    masses[1]=candidate->InvMass(fNProngs,(UInt_t*)pdgdaughtersD0bar); //D0bar\r
    \r
    TH3F* hPtJetWithD=(TH3F*)fmyOutput->FindObject("hPtJetWithD");\r
+   THnSparseF* hsDphiz=(THnSparseF*)fmyOutput->FindObject("hsDphiz");\r
+   Double_t point[5]={z,dPhi,ptj,ptD,masses[0]};\r
    \r
    Int_t isselected=fCuts->IsSelected(candidate,AliRDHFCuts::kAll,aodEvent);\r
    if(isselected==1 || isselected==3) {\r
@@ -663,11 +701,14 @@ void AliAnalysisTaskFlavourJetCorrelations::FillHistogramsD0JetCorr(AliAODRecoDe
       if(deltaR<fJetRadius) hPtJetWithD->Fill(ptj,masses[0],ptD);\r
       \r
       FillMassHistograms(masses[0], ptD, deltaR);\r
+      hsDphiz->Fill(point,1.);\r
    }\r
    if(isselected>=2) {\r
       if(deltaR<fJetRadius) hPtJetWithD->Fill(ptj,masses[1],ptD);\r
       \r
       FillMassHistograms(masses[1], ptD, deltaR);\r
+      point[4]=masses[1];\r
+      hsDphiz->Fill(point,1.);\r
    }\r
    \r
 }\r
@@ -686,22 +727,33 @@ void AliAnalysisTaskFlavourJetCorrelations::FillHistogramsDstarJetCorr(AliAODRec
    hPtPion->Fill(softpi->Pt());\r
    \r
    TH3F* hPtJetWithD=(TH3F*)fmyOutput->FindObject("hPtJetWithD");\r
+   THnSparseF* hsDphiz=(THnSparseF*)fmyOutput->FindObject("hsDphiz");\r
+   Double_t point[5]={z,dPhi,ptj,ptD,deltamass};\r
+\r
    if(deltaR<fJetRadius) hPtJetWithD->Fill(ptj,deltamass,ptD);\r
    \r
    FillMassHistograms(deltamass, ptD, deltaR);\r
+   hsDphiz->Fill(point,1.);\r
    \r
 }\r
 \r
 //_______________________________________________________________________________\r
 \r
-void AliAnalysisTaskFlavourJetCorrelations::FillHistogramsMCGenDJetCorr(Double_t ptD,Double_t ptjet,Double_t deltaR){\r
+void AliAnalysisTaskFlavourJetCorrelations::FillHistogramsMCGenDJetCorr(Double_t dPhi,Double_t z,Double_t ptD,Double_t ptjet,Double_t deltaR){\r
    \r
    Double_t pdgmass=0;\r
    TH3F* hPtJetWithD=(TH3F*)fmyOutput->FindObject("hPtJetWithD");\r
+   THnSparseF* hsDphiz=(THnSparseF*)fmyOutput->FindObject("hsDphiz");\r
+   Double_t point[5]={z,dPhi,ptjet,ptD,pdgmass};\r
+\r
    if(fCandidateType==kD0toKpi) pdgmass=TDatabasePDG::Instance()->GetParticle(421)->Mass();\r
    if(fCandidateType==kDstartoKpipi) pdgmass=TDatabasePDG::Instance()->GetParticle(413)->Mass()-TDatabasePDG::Instance()->GetParticle(421)->Mass();\r
-   \r
-   if(deltaR<fJetRadius) hPtJetWithD->Fill(ptjet,pdgmass,ptD); // candidates within a jet\r
+   point[4]=pdgmass;\r
+\r
+   if(deltaR<fJetRadius) {\r
+     hPtJetWithD->Fill(ptjet,pdgmass,ptD); // candidates within a jet\r
+     hsDphiz->Fill(point,1.);\r
+   }\r
    \r
 }\r
 \r
@@ -827,5 +879,3 @@ Float_t AliAnalysisTaskFlavourJetCorrelations::DeltaR(AliVParticle *p1, AliVPart
    return deltaR;\r
    \r
 }\r
-\r
-\r
index 00cb42938de9f0bf44b633b65b043f8515957509..3eb2404d182b9b224024e12ccb1cb6c7cf245c49 100644 (file)
@@ -86,7 +86,7 @@ class AliAnalysisTaskFlavourJetCorrelations : public AliAnalysisTaskEmcalJet
   void FillHistogramsD0JetCorr(AliAODRecoDecayHF* candidate, Double_t dPhi, Double_t z, Double_t ptD, Double_t ptj, Double_t deltaR, AliAODEvent* aodEvent);\r
 \r
   void FillHistogramsDstarJetCorr(AliAODRecoCascadeHF* dstar, Double_t dPhi, Double_t z, Double_t ptD, Double_t ptj,Double_t deltaR);\r
-  void FillHistogramsMCGenDJetCorr(Double_t ptD,Double_t ptjet,Double_t deltaR);\r
+  void FillHistogramsMCGenDJetCorr(Double_t dPhi, Double_t z,Double_t ptD,Double_t ptjet,Double_t deltaR);\r
   void SideBandBackground(AliAODRecoCascadeHF *candDstar, AliEmcalJet *jet);\r
   void MCBackground(AliAODRecoDecayHF *candbg, AliEmcalJet *jet);\r
   void FillMassHistograms(Double_t mass,Double_t ptD, Double_t deltaR);\r