fNProngs(),
fPDGdaughters(),
fBranchName(),
-fmyOutput(0),
fCuts(0),
fMinMass(),
fMaxMass(),
fNProngs(),
fPDGdaughters(),
fBranchName(),
-fmyOutput(0),
fCuts(0),
fMinMass(),
fMaxMass(),
Info("~AliAnalysisTaskFlavourJetCorrelations","Calling Destructor");
- delete fmyOutput;
delete fCuts;
}
void AliAnalysisTaskFlavourJetCorrelations::UserCreateOutputObjects() {
// output
Info("UserCreateOutputObjects","CreateOutputObjects of task %s\n", GetName());
- fmyOutput = new TList();
- fmyOutput->SetOwner();
- fmyOutput->SetName("pippo");
+ AliAnalysisTaskEmcal::UserCreateOutputObjects();
// define histograms
+ // the TList fOutput is already defined in AliAnalysisTaskEmcal::UserCreateOutputObjects()
DefineHistoForAnalysis();
- PostData(1,fmyOutput);
+ PostData(1,fOutput);
return;
}
Bool_t AliAnalysisTaskFlavourJetCorrelations::Run()
{
- // user exec
- if (!fInitialized){
- AliAnalysisTaskEmcalJet::ExecOnce();
- }
-
+ // user exec from AliAnalysisTaskEmcal is used
+
// Load the event
AliAODEvent* aodEvent = dynamic_cast<AliAODEvent*>(fInputEvent);
//Printf("ncandidates found %d",fCandidateArray->GetEntriesFast());
//Histograms
- TH1I* hstat=(TH1I*)fmyOutput->FindObject("hstat");
- TH1F* hPtJetTrks=(TH1F*)fmyOutput->FindObject("hPtJetTrks");
- TH1F* hPhiJetTrks=(TH1F*)fmyOutput->FindObject("hPhiJetTrks");
- TH1F* hEtaJetTrks=(TH1F*)fmyOutput->FindObject("hEtaJetTrks");
- TH1F* hEjetTrks=(TH1F*)fmyOutput->FindObject("hEjetTrks");
- TH1F* hPtJet=(TH1F*)fmyOutput->FindObject("hPtJet");
- TH1F* hPhiJet=(TH1F*)fmyOutput->FindObject("hPhiJet");
- TH1F* hEtaJet=(TH1F*)fmyOutput->FindObject("hEtaJet");
- TH1F* hEjet=(TH1F*)fmyOutput->FindObject("hEjet");
- TH1F* hNtrArr=(TH1F*)fmyOutput->FindObject("hNtrArr");
- TH1F* hNJetPerEv=(TH1F*)fmyOutput->FindObject("hNJetPerEv");
- TH1F* hdeltaRJetTracks=(TH1F*)fmyOutput->FindObject("hdeltaRJetTracks");
- TH1F* hNDPerEvNoJet=(TH1F*)fmyOutput->FindObject("hNDPerEvNoJet");
- TH1F* hptDPerEvNoJet=(TH1F*)fmyOutput->FindObject("hptDPerEvNoJet");
- TH1F* hNJetPerEvNoD=(TH1F*)fmyOutput->FindObject("hNJetPerEvNoD");
- TH1F* hPtJetPerEvNoD=(TH1F*)fmyOutput->FindObject("hPtJetPerEvNoD");
- THnSparseF* hnspDstandalone=(THnSparseF*)fmyOutput->FindObject("hsDstandalone");
+ TH1I* hstat=(TH1I*)fOutput->FindObject("hstat");
+ TH1F* hPtJetTrks=(TH1F*)fOutput->FindObject("hPtJetTrks");
+ TH1F* hPhiJetTrks=(TH1F*)fOutput->FindObject("hPhiJetTrks");
+ TH1F* hEtaJetTrks=(TH1F*)fOutput->FindObject("hEtaJetTrks");
+ TH1F* hEjetTrks=(TH1F*)fOutput->FindObject("hEjetTrks");
+ TH1F* hPtJet=(TH1F*)fOutput->FindObject("hPtJet");
+ TH1F* hPhiJet=(TH1F*)fOutput->FindObject("hPhiJet");
+ TH1F* hEtaJet=(TH1F*)fOutput->FindObject("hEtaJet");
+ TH1F* hEjet=(TH1F*)fOutput->FindObject("hEjet");
+ TH1F* hNtrArr=(TH1F*)fOutput->FindObject("hNtrArr");
+ TH1F* hNJetPerEv=(TH1F*)fOutput->FindObject("hNJetPerEv");
+ TH1F* hdeltaRJetTracks=(TH1F*)fOutput->FindObject("hdeltaRJetTracks");
+ TH1F* hNDPerEvNoJet=(TH1F*)fOutput->FindObject("hNDPerEvNoJet");
+ TH1F* hptDPerEvNoJet=(TH1F*)fOutput->FindObject("hptDPerEvNoJet");
+ TH1F* hNJetPerEvNoD=(TH1F*)fOutput->FindObject("hNJetPerEvNoD");
+ TH1F* hPtJetPerEvNoD=(TH1F*)fOutput->FindObject("hPtJetPerEvNoD");
+ THnSparseF* hnspDstandalone=(THnSparseF*)fOutput->FindObject("hsDstandalone");
hstat->Fill(0);
Double_t candsparse[4]={charm->Eta(), charm->Phi(), charm->Pt(), 0};
if(fCandidateType==kDstartoKpipi) {
- Printf("IsA %s", (dstar->IsA())->GetName());
if(fUseReco){
Double_t deltamass= dstar->DeltaInvMass();
candsparse[3]=deltamass;
hNJetPerEv->Fill(cntjet);
if(candidates==0) hNJetPerEvNoD->Fill(cntjet);
- PostData(1,fmyOutput);
+ PostData(1,fOutput);
return kTRUE;
}
Info("Terminate"," terminate");
AliAnalysisTaskSE::Terminate();
- fmyOutput = dynamic_cast<TList*> (GetOutputData(1));
- if (!fmyOutput) {
- printf("ERROR: fmyOutput not available\n");
+ fOutput = dynamic_cast<TList*> (GetOutputData(1));
+ if (!fOutput) {
+ printf("ERROR: fOutput not available\n");
return;
}
}
hstat->GetXaxis()->SetBinLabel(7,"N cand sel & !jet");
hstat->GetXaxis()->SetBinLabel(8,"N jets & !D");
hstat->SetNdivisions(1);
- fmyOutput->Add(hstat);
+ fOutput->Add(hstat);
const Int_t nbinsmass=200;
const Int_t nbinsptjet=500;
hDiffSideBand->GetXaxis()->SetTitle("M(kpipi)-M(Kpi) GeV");
hDiffSideBand->GetYaxis()->SetTitle("p_{t}^{D} (GeV/c)");
hDiffSideBand->Sumw2();
- fmyOutput->Add(hDiffSideBand);
+ fOutput->Add(hDiffSideBand);
TH1F* hPtPion = new TH1F("hPtPion","Primary pions candidates pt ",500,0,10);
hPtPion->GetXaxis()->SetTitle("GeV/c");
hPtPion->GetYaxis()->SetTitle("Entries");
hPtPion->Sumw2();
- fmyOutput->Add(hPtPion);
+ fOutput->Add(hPtPion);
}
// D related histograms
TH1F *hNDPerEvNoJet=new TH1F("hNDPerEvNoJet","Number of candidates per event with no jets; N candidate/ev with no jet", 20, 0., 20.);
hNDPerEvNoJet->Sumw2();
- fmyOutput->Add(hNDPerEvNoJet);
+ fOutput->Add(hNDPerEvNoJet);
TH1F *hptDPerEvNoJet=new TH1F("hptDPerEvNoJet","pt distribution of candidates per events with no jets; p_{t}^{D} (GeV/c)",nbinsptD, ptDlims[0],ptDlims[1]);
hptDPerEvNoJet->Sumw2();
- fmyOutput->Add(hptDPerEvNoJet);
+ fOutput->Add(hptDPerEvNoJet);
const Int_t nAxisD=4;
const Int_t nbinsSparseD[nAxisD]={nbinseta,nbinsphi,nbinsptD,nbinsmass};
THnSparseF *hsDstandalone=new THnSparseF("hsDstandalone","#phi, #eta, p_{T}^{D}, and mass", nAxisD, nbinsSparseD, minSparseD, maxSparseD);
hsDstandalone->Sumw2();
- fmyOutput->Add(hsDstandalone);
+ fOutput->Add(hsDstandalone);
// jet related fistograms
TH1F *hPtJetPerEvNoD=new TH1F("hPtJetPerEvNoD","pt distribution of jets per event with no D; p_{T}^{jet} (GeV/c)",nbinsptjet,ptjetlims[0],ptjetlims[1]);
hPtJetPerEvNoD->Sumw2();
- fmyOutput->Add(hEjetTrks);
- fmyOutput->Add(hPhiJetTrks);
- fmyOutput->Add(hEtaJetTrks);
- fmyOutput->Add(hPtJetTrks);
- fmyOutput->Add(hEjet);
- fmyOutput->Add(hPhiJet);
- fmyOutput->Add(hEtaJet);
- fmyOutput->Add(hPtJet);
- fmyOutput->Add(hPtJetWithD);
- fmyOutput->Add(hPtJetWithDsb);
- fmyOutput->Add(hdeltaRJetTracks);
- fmyOutput->Add(hNtrArr);
- fmyOutput->Add(hNJetPerEv);
- fmyOutput->Add(hNJetPerEvNoD);
- fmyOutput->Add(hPtJetPerEvNoD);
+ fOutput->Add(hEjetTrks);
+ fOutput->Add(hPhiJetTrks);
+ fOutput->Add(hEtaJetTrks);
+ fOutput->Add(hPtJetTrks);
+ fOutput->Add(hEjet);
+ fOutput->Add(hPhiJet);
+ fOutput->Add(hEtaJet);
+ fOutput->Add(hPtJet);
+ fOutput->Add(hPtJetWithD);
+ fOutput->Add(hPtJetWithDsb);
+ fOutput->Add(hdeltaRJetTracks);
+ fOutput->Add(hNtrArr);
+ fOutput->Add(hNJetPerEv);
+ fOutput->Add(hNJetPerEvNoD);
+ fOutput->Add(hPtJetPerEvNoD);
TH1F* hDeltaRD=new TH1F("hDeltaRD","#Delta R distribution of D candidates selected;#Delta R",200, 0.,10.);
hDeltaRD->Sumw2();
- fmyOutput->Add(hDeltaRD);
+ fOutput->Add(hDeltaRD);
//background (side bands for the Dstar and like sign for D0)
fJetRadius=GetJetContainer(0)->GetJetRadius();
hInvMassptD->GetYaxis()->SetTitle("p_{t}^{D} (GeV/c)");
hInvMassptD->Sumw2();
- fmyOutput->Add(hInvMassptD);
+ fOutput->Add(hInvMassptD);
if(fUseMCInfo){
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]);
hInvMassptDbg->GetXaxis()->SetTitle(Form("%s (GeV)",(fCandidateType==kDstartoKpipi) ? "M(Kpipi)" : "M(Kpi)"));
hInvMassptDbg->GetYaxis()->SetTitle("p_{t}^{D} (GeV/c)");
hInvMassptDbg->Sumw2();
- fmyOutput->Add(hInvMassptDbg);
+ fOutput->Add(hInvMassptDbg);
}
Double_t pi=TMath::Pi(), philims2[2];
THnSparseF *hsDphiz=new THnSparseF("hsDphiz","Z and #Delta#phi vs p_{T}^{jet}, p_{T}^{D}, mass. For SB or not and within the jet cone or not", nAxis, nbinsSparse, minSparse, maxSparse);
hsDphiz->Sumw2();
- fmyOutput->Add(hsDphiz);
+ fOutput->Add(hsDphiz);
- PostData(1, fmyOutput);
+ PostData(1, fOutput);
return kTRUE;
}
if(deltaphi>(3*(TMath::Pi()))/2) deltaphi = deltaphi-2*(TMath::Pi());
Double_t z=Z(candidate,jet);
- TH1F* hDeltaRD=(TH1F*)fmyOutput->FindObject("hDeltaRD");
+ TH1F* hDeltaRD=(TH1F*)fOutput->FindObject("hDeltaRD");
hDeltaRD->Fill(deltaR);
if(fUseReco){
if(fCandidateType==kD0toKpi) {
masses[0]=candidate->InvMass(fNProngs,(UInt_t*)pdgdaughtersD0); //D0
masses[1]=candidate->InvMass(fNProngs,(UInt_t*)pdgdaughtersD0bar); //D0bar
- TH3F* hPtJetWithD=(TH3F*)fmyOutput->FindObject("hPtJetWithD");
- THnSparseF* hsDphiz=(THnSparseF*)fmyOutput->FindObject("hsDphiz");
+ TH3F* hPtJetWithD=(TH3F*)fOutput->FindObject("hPtJetWithD");
+ THnSparseF* hsDphiz=(THnSparseF*)fOutput->FindObject("hsDphiz");
Double_t point[7]={z,dPhi,ptj,ptD,masses[0],0, deltaR<fJetRadius ? 1 : 0};
Printf("Candidate in FillHistogramsD0JetCorr IsA %s", (candidate->IsA())->GetName());
Int_t isselected=fCuts->IsSelected(candidate,AliRDHFCuts::kAll,aodEvent);
//Double_t massD0= dstar->InvMassD0();
- TH1F* hPtPion=(TH1F*)fmyOutput->FindObject("hPtPion");
+ TH1F* hPtPion=(TH1F*)fOutput->FindObject("hPtPion");
hPtPion->Fill(softpi->Pt());
- TH3F* hPtJetWithD=(TH3F*)fmyOutput->FindObject("hPtJetWithD");
- THnSparseF* hsDphiz=(THnSparseF*)fmyOutput->FindObject("hsDphiz");
+ TH3F* hPtJetWithD=(TH3F*)fOutput->FindObject("hPtJetWithD");
+ THnSparseF* hsDphiz=(THnSparseF*)fOutput->FindObject("hsDphiz");
Int_t isSB=0;//IsDzeroSideBand(dstar);
Double_t point[7]={z,dPhi,ptj,ptD,deltamass,isSB, deltaR<fJetRadius ? 1 : 0};
void AliAnalysisTaskFlavourJetCorrelations::FillHistogramsMCGenDJetCorr(Double_t dPhi,Double_t z,Double_t ptD,Double_t ptjet,Double_t deltaR){
Double_t pdgmass=0;
- TH3F* hPtJetWithD=(TH3F*)fmyOutput->FindObject("hPtJetWithD");
- THnSparseF* hsDphiz=(THnSparseF*)fmyOutput->FindObject("hsDphiz");
+ TH3F* hPtJetWithD=(TH3F*)fOutput->FindObject("hPtJetWithD");
+ THnSparseF* hsDphiz=(THnSparseF*)fOutput->FindObject("hsDphiz");
Double_t point[7]={z,dPhi,ptjet,ptD,pdgmass,0, deltaR<fJetRadius ? 1 : 0};
if(fCandidateType==kD0toKpi) pdgmass=TDatabasePDG::Instance()->GetParticle(421)->Mass();
void AliAnalysisTaskFlavourJetCorrelations::FillMassHistograms(Double_t mass,Double_t ptD, Double_t deltaR){
if(deltaR<fJetRadius) {
- TH2F* hInvMassptD=(TH2F*)fmyOutput->FindObject("hInvMassptD");
+ TH2F* hInvMassptD=(TH2F*)fOutput->FindObject("hInvMassptD");
hInvMassptD->Fill(mass,ptD);
}
}
// D* side band background method. Two side bands, in M(Kpi) are taken at ~6 sigmas
// (expected detector resolution) on the left and right frm the D0 mass. Each band
// has a width of ~5 sigmas. Two band needed for opening angle considerations
- TH2F* hDiffSideBand=(TH2F*)fmyOutput->FindObject("hDiffSideBand");
- TH3F* hPtJetWithDsb=(TH3F*)fmyOutput->FindObject("hPtJetWithDsb");
- THnSparseF* hsDphiz=(THnSparseF*)fmyOutput->FindObject("hsDphiz");
+ TH2F* hDiffSideBand=(TH2F*)fOutput->FindObject("hDiffSideBand");
+ TH3F* hPtJetWithDsb=(TH3F*)fOutput->FindObject("hPtJetWithDsb");
+ THnSparseF* hsDphiz=(THnSparseF*)fOutput->FindObject("hsDphiz");
Double_t deltaM=candDstar->DeltaInvMass();
//Printf("Inv mass = %f between %f and %f or %f and %f?",invM, sixSigmal,fourSigmal,fourSigmar,sixSigmar);
Double_t ptjet=jet->Pt();
Double_t deltaR=DeltaR(candbg,jet);
- TH2F* hInvMassptDbg=(TH2F*)fmyOutput->FindObject("hInvMassptDbg");
- TH3F* hPtJetWithDsb=(TH3F*)fmyOutput->FindObject("hPtJetWithDsb");
+ TH2F* hInvMassptDbg=(TH2F*)fOutput->FindObject("hInvMassptDbg");
+ TH3F* hPtJetWithDsb=(TH3F*)fOutput->FindObject("hPtJetWithDsb");
if(fCandidateType==kDstartoKpipi){