//_______________________________________________________________________________
AliAnalysisTaskFlavourJetCorrelations::AliAnalysisTaskFlavourJetCorrelations() :
-AliAnalysisTaskEmcalJet("",kFALSE),
+AliAnalysisTaskEmcalJet("",kTRUE),
fUseMCInfo(kTRUE),
fUseReco(kTRUE),
fCandidateType(),
fLeadingJetOnly(kFALSE),
fJetRadius(0),
fCandidateArray(0),
-fSideBandArray(0)
+fSideBandArray(0),
+fJetOnlyMode(0)
{
//
// Default ctor
//_______________________________________________________________________________
AliAnalysisTaskFlavourJetCorrelations::AliAnalysisTaskFlavourJetCorrelations(const Char_t* name, AliRDHFCuts* cuts,ECandidateType candtype) :
-AliAnalysisTaskEmcalJet(name,kFALSE),
+AliAnalysisTaskEmcalJet(name,kTRUE),
fUseMCInfo(kTRUE),
fUseReco(kTRUE),
fCandidateType(),
fLeadingJetOnly(kFALSE),
fJetRadius(0),
fCandidateArray(0),
-fSideBandArray(0)
+fSideBandArray(0),
+fJetOnlyMode(0)
{
//
// Constructor. Initialization of Inputs and Outputs
if(fCandidateType==kD0toKpi)SetMassLimits(0.15,fPDGmother);
if(fCandidateType==kDstartoKpipi) SetMassLimits(0.015, fPDGmother);
- DefineInput(1, TClonesArray::Class());
- DefineInput(2, TClonesArray::Class());
-
- DefineOutput(1,TList::Class()); // histos
- DefineOutput(2,AliRDHFCuts::Class()); // my cuts
-
+ if(fJetOnlyMode){
+ DefineOutput(1,TList::Class()); //histos with jet info
+ DefineOutput(2,AliRDHFCuts::Class()); // my cuts
+ }
+ else{
+ DefineInput(1, TClonesArray::Class());
+ DefineInput(2, TClonesArray::Class());
+
+ DefineOutput(1,TList::Class()); // histos
+ DefineOutput(2,AliRDHFCuts::Class()); // my cuts
+ }
}
//_______________________________________________________________________________
//
if(fDebug > 1) printf("AnalysisTaskRecoJetCorrelations::Init() \n");
+
switch(fCandidateType){
case 0:
{
TH1F* hNJetPerEvNoD=(TH1F*)fOutput->FindObject("hNJetPerEvNoD");
TH1F* hPtJetPerEvNoD=(TH1F*)fOutput->FindObject("hPtJetPerEvNoD");
THnSparseF* hnspDstandalone=(THnSparseF*)fOutput->FindObject("hsDstandalone");
-
+ THnSparseF* hsJet=(THnSparseF*)fOutput->FindObject("hsJet");
+
hstat->Fill(0);
// fix for temporary bug in ESDfilter
hstat->Fill(1);
//retrieve charm candidates selected
- Int_t candidates = fCandidateArray->GetEntriesFast();
-
- //trigger on jets
-
+ Int_t candidates = 0;
Int_t njets=GetJetContainer()->GetNJets();
+
+ if(!fJetOnlyMode) {
+ candidates = fCandidateArray->GetEntriesFast();
+
+ //trigger on jets
if(njets == 0) {
hstat->Fill(6, candidates);
hNDPerEvNoJet->Fill(candidates);
}
}
}
-
+ }
+
// we start with jets
Double_t ejet = 0;
Double_t phiJet = 0;
Double_t etaJet = 0;
Double_t ptjet = 0;
Double_t leadingJet =0;
+ Double_t pointJ[6];
Int_t ntrarr=trackArr->GetEntriesFast();
hNtrArr->Fill(ntrarr);
phiJet = jet->Phi();
etaJet = jet->Eta();
ptjet = jet->Pt();
+ pointJ[0] = phiJet;
+ pointJ[1] = etaJet;
+ pointJ[2] = ptjet;
+ pointJ[3] = ejet;
+ pointJ[4] = jet->GetNumberOfConstituents();
+ pointJ[5] = jet->Area();
// choose the leading jet
if(fLeadingJetOnly && (ejet<leadingJet)) continue;
hPhiJet ->Fill(phiJet);
hEtaJet ->Fill(etaJet);
hPtJet ->Fill(ptjet);
-
+ if(fJetOnlyMode) hsJet->Fill(pointJ,1);
//loop on jet particles
Int_t ntrjet= jet->GetNumberOfTracks();
for(Int_t itrk=0;itrk<ntrjet;itrk++){
hstat->Fill(7);
hPtJetPerEvNoD->Fill(jet->Pt());
}
-
+ if(!fJetOnlyMode) {
//Printf("N candidates %d ", candidates);
for(Int_t ic = 0; ic < candidates; ic++) {
MCBackground(charmbg,jet);
}
}
+ }
} // end of jet loop
hNJetPerEv->Fill(cntjet);
const Int_t nbinsz=100;
const Int_t nbinsphi=200;
const Int_t nbinseta=100;
-
+ const Int_t nbinsContrib=100;
+ const Int_t nbinsA=100;
+
const Float_t ptjetlims[2]={0.,200.};
const Float_t ptDlims[2]={0.,50.};
const Float_t zlims[2]={0.,1.2};
const Float_t philims[2]={0.,6.3};
const Float_t etalims[2]={-1.5,1.5};
-
- if(fCandidateType==kDstartoKpipi)
- {
-
- TH2F* hDiffSideBand = new TH2F("hDiffSideBand","M(kpipi)-M(kpi) Side Band Background",nbinsmass,fMinMass,fMaxMass,nbinsptD, ptDlims[0],ptDlims[1]);
- hDiffSideBand->SetStats(kTRUE);
- hDiffSideBand->GetXaxis()->SetTitle("M(kpipi)-M(Kpi) GeV");
- hDiffSideBand->GetYaxis()->SetTitle("p_{t}^{D} (GeV/c)");
- hDiffSideBand->Sumw2();
- fOutput->Add(hDiffSideBand);
-
-
- TH1F* hPtPion = new TH1F("hPtPion","Primary pions candidates pt ",500,0,10);
- hPtPion->SetStats(kTRUE);
- hPtPion->GetXaxis()->SetTitle("GeV/c");
- hPtPion->GetYaxis()->SetTitle("Entries");
- hPtPion->Sumw2();
- 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();
- 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();
- fOutput->Add(hptDPerEvNoJet);
-
- const Int_t nAxisD=4;
- const Int_t nbinsSparseD[nAxisD]={nbinseta,nbinsphi,nbinsptD,nbinsmass};
- const Double_t minSparseD[nAxisD] ={etalims[0],philims[0],ptDlims[0],fMinMass};
- const Double_t maxSparseD[nAxisD] ={etalims[1],philims[1],ptDlims[1],fMaxMass};
- THnSparseF *hsDstandalone=new THnSparseF("hsDstandalone","#phi, #eta, p_{T}^{D}, and mass", nAxisD, nbinsSparseD, minSparseD, maxSparseD);
- hsDstandalone->Sumw2();
-
- fOutput->Add(hsDstandalone);
+ const Int_t nContriblims[2]={0,100};
+ const Float_t arealims[2]={0.,2};
// jet related fistograms
TH1F* hPtJet = new TH1F("hPtJet", "Jet Pt distribution; p_{T} (GeV/c)",nbinsptjet,ptjetlims[0],ptjetlims[1]);
hPtJet->Sumw2();
- 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]);
- hPtJetWithD->Sumw2();
- //for the MC this histogram is filled with the real background
- 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]);
- hPtJetWithDsb->Sumw2();
-
TH1F* hdeltaRJetTracks=new TH1F("hdeltaRJetTracks","Delta R of tracks in the jets",200, 0.,10.);
hdeltaRJetTracks->Sumw2();
TH1F *hNJetPerEv=new TH1F("hNJetPerEv","Number of jets used per event; number of jets/ev",10,-0.5,9.5);
hNJetPerEv->Sumw2();
- TH1F *hNJetPerEvNoD=new TH1F("hNJetPerEvNoD","Number of jets per event with no D; number of jets/ev with no D",10,-0.5,9.5);
- hNJetPerEvNoD->Sumw2();
- 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();
-
fOutput->Add(hEjetTrks);
fOutput->Add(hPhiJetTrks);
fOutput->Add(hEtaJetTrks);
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();
- fOutput->Add(hDeltaRD);
-
- //background (side bands for the Dstar and like sign for D0)
- fJetRadius=GetJetContainer(0)->GetJetRadius();
- 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]);
- hInvMassptD->SetStats(kTRUE);
- hInvMassptD->GetXaxis()->SetTitle("mass (GeV)");
- hInvMassptD->GetYaxis()->SetTitle("p_{t}^{D} (GeV/c)");
- hInvMassptD->Sumw2();
-
- 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();
- fOutput->Add(hInvMassptDbg);
+ if(fJetOnlyMode){
+ //thnsparse for jets
+ const Int_t nAxis=6;
+ const Int_t nbinsSparse[nAxis]={nbinsphi,nbinseta, nbinsptjet, nbinsptjet,nbinsContrib, nbinsA};
+ const Double_t minSparse[nAxis]={philims[0],etalims[0],ptjetlims[0],ptjetlims[0],nContriblims[0],arealims[0]};
+ const Double_t
+ maxSparse[nAxis]={philims[1],etalims[1],ptjetlims[1],ptjetlims[1],nContriblims[1],arealims[1]};
+ THnSparseF *hsJet=new THnSparseF("hsJet","#phi, #eta, p_{T}^{jet}, E^{jet}, N contrib, Area", nAxis, nbinsSparse, minSparse, maxSparse);
+ hsJet->Sumw2();
+ fOutput->Add(hsJet);
+
}
- Double_t pi=TMath::Pi(), philims2[2];
- philims2[0]=-pi*1./2.;
- philims2[1]=pi*3./2.;
- const Int_t nAxis=7;
- const Int_t nbinsSparse[nAxis]={nbinsz,nbinsphi,nbinsptjet,nbinsptD,nbinsmass,2, 2};
- const Double_t minSparse[nAxis]={zlims[0],philims2[0],ptjetlims[0],ptDlims[0],fMinMass,-0.5, -0.5};
- const Double_t maxSparse[nAxis]={zlims[1],philims2[1],ptjetlims[1],ptDlims[1],fMaxMass, 1.5, 1.5};
- 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();
-
- fOutput->Add(hsDphiz);
+ if(!fJetOnlyMode){
+ if(fCandidateType==kDstartoKpipi)
+ {
+
+ TH2F* hDiffSideBand = new TH2F("hDiffSideBand","M(kpipi)-M(kpi) Side Band Background",nbinsmass,fMinMass,fMaxMass,nbinsptD, ptDlims[0],ptDlims[1]);
+ hDiffSideBand->SetStats(kTRUE);
+ hDiffSideBand->GetXaxis()->SetTitle("M(kpipi)-M(Kpi) GeV");
+ hDiffSideBand->GetYaxis()->SetTitle("p_{t}^{D} (GeV/c)");
+ hDiffSideBand->Sumw2();
+ fOutput->Add(hDiffSideBand);
+
+
+ TH1F* hPtPion = new TH1F("hPtPion","Primary pions candidates pt ",500,0,10);
+ hPtPion->SetStats(kTRUE);
+ hPtPion->GetXaxis()->SetTitle("GeV/c");
+ hPtPion->GetYaxis()->SetTitle("Entries");
+ hPtPion->Sumw2();
+ 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();
+ 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();
+ fOutput->Add(hptDPerEvNoJet);
+
+ const Int_t nAxisD=4;
+ const Int_t nbinsSparseD[nAxisD]={nbinseta,nbinsphi,nbinsptD,nbinsmass};
+ const Double_t minSparseD[nAxisD] ={etalims[0],philims[0],ptDlims[0],fMinMass};
+ const Double_t maxSparseD[nAxisD] ={etalims[1],philims[1],ptDlims[1],fMaxMass};
+ THnSparseF *hsDstandalone=new THnSparseF("hsDstandalone","#phi, #eta, p_{T}^{D}, and mass", nAxisD, nbinsSparseD, minSparseD, maxSparseD);
+ hsDstandalone->Sumw2();
+
+ fOutput->Add(hsDstandalone);
+
+ 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]);
+ hPtJetWithD->Sumw2();
+ //for the MC this histogram is filled with the real background
+ 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]);
+ hPtJetWithDsb->Sumw2();
+
+ TH1F *hNJetPerEvNoD=new TH1F("hNJetPerEvNoD","Number of jets per event with no D; number of jets/ev with no D",10,-0.5,9.5);
+ hNJetPerEvNoD->Sumw2();
+
+ 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();
+
+ fOutput->Add(hPtJetWithD);
+ fOutput->Add(hPtJetWithDsb);
+ 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();
+ fOutput->Add(hDeltaRD);
+
+ //background (side bands for the Dstar and like sign for D0)
+ fJetRadius=GetJetContainer(0)->GetJetRadius();
+ 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]);
+ hInvMassptD->SetStats(kTRUE);
+ hInvMassptD->GetXaxis()->SetTitle("mass (GeV)");
+ hInvMassptD->GetYaxis()->SetTitle("p_{t}^{D} (GeV/c)");
+ hInvMassptD->Sumw2();
+
+ 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();
+ fOutput->Add(hInvMassptDbg);
+
+ }
+ Double_t pi=TMath::Pi(), philims2[2];
+ philims2[0]=-pi*1./2.;
+ philims2[1]=pi*3./2.;
+ const Int_t nAxis=7;
+ const Int_t nbinsSparse[nAxis]={nbinsz,nbinsphi,nbinsptjet,nbinsptD,nbinsmass,2, 2};
+ const Double_t minSparse[nAxis]={zlims[0],philims2[0],ptjetlims[0],ptDlims[0],fMinMass,-0.5, -0.5};
+ const Double_t maxSparse[nAxis]={zlims[1],philims2[1],ptjetlims[1],ptDlims[1],fMaxMass, 1.5, 1.5};
+ 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();
+
+ fOutput->Add(hsDphiz);
+ }
PostData(1, fOutput);
return kTRUE;
AliAnalysisTaskFlavourJetCorrelations *AddTaskFlavourJetCorrelations(
- AliAnalysisTaskFlavourJetCorrelations::ECandidateType cand = AliAnalysisTaskFlavourJetCorrelations::kDstartoKpipi,
- TString filename = "DStartoKpipiCuts.root",
Bool_t theMCon = kFALSE,
Bool_t reco = kTRUE /*must be true if theMCon is false*/,
TString jetArrname = "",
+ UInt_t pSel=AliVEvent::kAny,
+ TString trigClass="",
TString suffix = "",
Bool_t triggerOnLeadingJet = kFALSE,
Int_t leadingHadType = 0 /*0 = charged, 1 = neutral, 2 = both*/,
Float_t R = 0.4,
Float_t jptcut = 10.,
const char *cutType = "TPC",
- Double_t percjetareacut = 1.)
+ Double_t percjetareacut = 1.,
+ Bool_t bJetOnly=kTRUE
+ )
{
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if (!mgr) {
- ::Error("AddTaskFlavourJetCorrelations::AddTaskFlavourJetCorrelations", "No analysis manager to connect to.");
- return NULL;
+ ::Error("AddTaskFlavourJetCorrelations::AddTaskFlavourJetCorrelations", "No analysis manager to connect to.");
+ return NULL;
}
+ if(bJetOnly){//only jet histograms, no correlation with D mesons
+
+ //used for event selection
+ AliRDHFCuts *dummyDcut=new AliRDHFCutsD0toKpi("dummy");
+ dummyDcut->SetTriggerMask(pSel);
+ dummyDcut->SetTriggerClass(trigClass);
+ AliAODPidHF *pidHF=new AliAODPidHF();
+ dummyDcut->SetPidHF(pidHF);
+
+ Int_t dummycand=AliAnalysisTaskFlavourJetCorrelations::kD0toKpi;
+
+ // create the task
+ AliAnalysisTaskFlavourJetCorrelations *task = new AliAnalysisTaskFlavourJetCorrelations("AnaTaskFlavourJetCorrelations",
+ dummyDcut, dummycand);
+ task->SetJetsName(jetArrname);
+ task->SetMC(theMCon);
+ task->SetUseReco(reco);
+ task->SetTriggerOnLeadingJet(triggerOnLeadingJet);
+ task->SetJetAcceptanceType(cutType);
+ task->SetJetPtCut(jptcut);
+ task->SetPercAreaCut(percjetareacut);
+ task->SetJetOnlyMode();
+ mgr->AddTask(task);
- Bool_t useStdC = kFALSE;
- TFile* filecuts=TFile::Open(filename);
- if (!filecuts || (filecuts && !filecuts->IsOpen())) {
- cout<<"Input file not found: use std cuts"<<endl;
- useStdC = kTRUE;
- }
-
- AliRDHFCuts *analysiscuts = 0x0;
- switch (cand) {
- case 0 :
- if (useStdC) {
- analysiscuts = new AliRDHFCutsD0toKpi();
- analysiscuts->SetStandardCutsPP2010();
- } else
- analysiscuts = (AliRDHFCutsD0toKpi*)filecuts->Get("D0toKpiCuts");
- break;
- case 1 :
- if(useStdC) {
- analysiscuts = new AliRDHFCutsDStartoKpipi();
- analysiscuts->SetStandardCutsPP2010();
- } else
- analysiscuts = (AliRDHFCutsDStartoKpipi*)filecuts->Get("DStartoKpipiCuts");
- analysiscuts->SetName("DStartoKpipiCuts");
- break;
- }
-
- if (!analysiscuts) { // mm let's see if everything is ok
- AliFatal("Specific AliRDHFCuts not found");
- return;
- }
-
- printf("CREATE TASK\n"); //CREATE THE TASK
+ if(theMCon) {
+ suffix+="MC";
+ if(reco) suffix+="rec";
+ }
+
+ // Create and connect containers for input/output
+ TString outputfile = AliAnalysisManager::GetCommonFileName();
+ outputfile += ":PWGJE_HF_DEmcalJet";
+ outputfile += jetArrname;
+ outputfile += trigClass;
+ TString nameContainer1="listJets";
+ TString nameContainer2="evselCut";
+ //nameContainer1 += candname;
+
+ nameContainer1 += suffix;
+ nameContainer2 += suffix;
+
+ // ------ input data ------
+ AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
+
+ // ----- output data -----
+ AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(nameContainer1, TList::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
+ AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(nameContainer2, AliRDHFCuts::Class(),AliAnalysisManager::kOutputContainer, outputfile.Data());
- // create the task
- AliAnalysisTaskFlavourJetCorrelations *task = new AliAnalysisTaskFlavourJetCorrelations("AnaTaskFlavourJetCorrelations",
- analysiscuts, cand);
- task->SetJetsName(jetArrname);
- task->SetMC(theMCon);
- task->SetUseReco(reco);
- task->SetTriggerOnLeadingJet(triggerOnLeadingJet);
- task->SetJetAcceptanceType(cutType);
- task->SetJetPtCut(jptcut);
- task->SetPercAreaCut(percjetareacut);
-
- mgr->AddTask(task);
+ mgr->ConnectInput(task,0,mgr->GetCommonInputContainer());
+ mgr->ConnectOutput(task,1,coutput1);
+ mgr->ConnectOutput(task,2,coutput2);
- if(theMCon) {
- suffix+="MC";
- if(reco) suffix+="rec";
+
+ } else{
+ AliFatal("ERROR: Use AddTaskDFilterAndCorrelations instead");
+
}
- // Create and connect containers for input/output
- TString outputfile = AliAnalysisManager::GetCommonFileName();
- outputfile += ":PWG3_D2H_DEmcalJet";
- outputfile += suffix;
-
- TString candname="DStar";
- if(cand==0) candname="D0";
-
- TString nameContainer1="hCor";
- TString nameContainer2="cutsJ";
-
- nameContainer1 += candname;
- nameContainer2 += candname;
-
- nameContainer1 += suffix;
- nameContainer2 += suffix;
- // ------ input data ------
- AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
-
- // ----- output data -----
- AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(nameContainer1, TList::Class(),AliAnalysisManager::kOutputContainer,outputfile.Data());
- AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(nameContainer2, AliRDHFCuts::Class(),AliAnalysisManager::kOutputContainer, outputfile.Data());
-
- mgr->ConnectInput(task,0,mgr->GetCommonInputContainer());
- mgr->ConnectOutput(task,1,coutput1);
- mgr->ConnectOutput(task,2,coutput2);
-
-
Printf("Input and Output connected to the manager");
return task ;
}