30 #include <TDatabasePDG.h> 31 #include <TParticle.h> 33 #include <THnSparse.h> 35 #include <TObjectTable.h> 36 #include "AliMultSelection.h" 39 #include "AliAODHandler.h" 40 #include "AliAnalysisManager.h" 43 #include "AliAODRecoDecay.h" 46 #include "AliAODMCParticle.h" 79 fUseCandArray(kFALSE),
111 fCorrelationMethod(),
121 fAnalyseDBkg(kFALSE),
123 fUseCandArray(kFALSE),
144 Info(
"AliAnalysisTaskFlavourJetCorrelations",
"Calling Constructor");
148 Float_t defaultSigmaD013[20]={0.012, 0.012, 0.012, 0.015, 0.015,0.018,0.018,0.020,0.020,0.030,0.030,0.037,0.040,0.040,0.040,0.040,0.040,0.040,0.040,0.040};
172 AliFatal(Form(
"Default sigma D0 not enough for %d pt bins, use SetSigmaD0ForDStar to set them",nptbins));
183 if(
fUseSBArray) DefineInput(2, TClonesArray::Class());
185 DefineOutput(1,TList::Class());
186 DefineOutput(2,AliRDHFCuts::Class());
197 Info(
"~AliAnalysisTaskFlavourJetCorrelations",
"Calling Destructor");
210 if(fDebug > 1) printf(
"AnalysisTaskRecoJetCorrelations::Init() \n");
216 copyfCuts->SetName(
"AnalysisCutsDzero");
218 PostData(2,copyfCuts);
224 copyfCuts->SetName(
"AnalysisCutsDStar");
226 PostData(2,copyfCuts);
240 Info(
"UserCreateOutputObjects",
"CreateOutputObjects of task %s\n", GetName());
261 if (matchingAODdeltaAODlevel<=0) {
266 TClonesArray *arrayDStartoD0pi=0;
268 if (!aodEvent && AODEvent() && IsStandardAOD()) {
272 aodEvent =
dynamic_cast<AliAODEvent*
> (AODEvent());
276 AliAODHandler* aodHandler = (AliAODHandler*)
277 ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
278 if(aodHandler->GetExtensions()) {
279 AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(
"AliAOD.VertexingHF.root");
281 arrayDStartoD0pi=(TClonesArray*)aodFromExt->GetList()->FindObject(
fBranchName.Data());
284 arrayDStartoD0pi=(TClonesArray*)aodEvent->GetList()->FindObject(
fBranchName.Data());
287 if (!arrayDStartoD0pi) {
288 AliInfo(Form(
"Could not find array %s, skipping the event",
fBranchName.Data()));
290 }
else AliDebug(2, Form(
"Found %d vertices",arrayDStartoD0pi->GetEntriesFast()));
292 TClonesArray* mcArray = 0x0;
294 mcArray =
dynamic_cast<TClonesArray*
>(aodEvent->FindListObject(AliAODMCParticle::StdBranchName()));
296 printf(
"AliAnalysisTaskSEDStarSpectra::UserExec: MC particles not found!\n");
321 if(!aodEvent->GetPrimaryVertex() || TMath::Abs(aodEvent->GetMagneticField())<0.001)
return kFALSE;
326 if(!iseventselected)
return kFALSE;
329 if(aodEvent->GetRunNumber()>200000)
332 AliMultSelection *MultSelection = 0x0;
333 MultSelection = (AliMultSelection*)aodEvent->FindListObject(
"MultSelection");
336 AliWarning(
"AliMultSelection object not found!");
338 lPercentile = MultSelection->GetMultiplicityPercentile(
"V0M");
352 if(!mcjets)
return kFALSE;
356 mcjets->ResetCurrentID();
361 UInt_t rejectionReason = 0;
375 for(
Int_t itrk=0;itrk<ntrjet;itrk++)
377 AliAODMCParticle* jetTrk=(AliAODMCParticle*)jet->
TrackAt(itrk,MCParticlesCont->GetArray());
378 if (!jetTrk)
continue;
389 if(!MCjet)
return kFALSE;
407 if(!JetCont)
return kFALSE;
415 if(!JetContSB)
return kFALSE;
421 for(
Int_t i=0;i<ntrarr;i++)
423 AliVParticle* jetTrk= ParticlesCont->
GetParticle(i);
424 if (!jetTrk)
continue;
426 if (emcpart) jetTrk = emcpart->
GetTrack();
432 JetCont->ResetCurrentID();
437 UInt_t rejectionReason = 0;
446 JetPtCorr = jet->
Pt();
513 for(
Int_t icand = 0; icand<ncand; icand++)
515 AliVParticle* charm=0x0;
523 JetCont->ResetCurrentID();
527 UInt_t rejectionReason = 0;
557 if(!jet) AliDebug(2,
"No Reconstructed Level Jet Found!");
558 else if(!MCjet) AliDebug(2,
"No Generated Level Jet Found!");
570 AliAODMCParticle* DTrk=(AliAODMCParticle*)Dgen;
573 Int_t pdgMeson = 413;
579 DYRec = dzero->Y(pdgMeson);
585 DYRec = dstar->Y(pdgMeson);
589 Double_t fillRM[10] = {zRec,JetPtRec,Drec->Pt(),DYRec,etaRec,zGen,MCjet->
Pt(),Dgen->Pt(),DYGen,etaGen};
598 if(!MCjet) AliDebug(2,
"No Generated Level Jet Found!");
605 AliAODMCParticle* DTrk = (AliAODMCParticle*)Dgen;
629 if(rho>0) zRec =
Z(Drec,jet,rho);
630 else zRec =
Z(Drec,jet);
631 JetPtRec = jet->
Pt() - rho*jet->
Area();
632 JetEtaRec = jet->
Eta();
635 Int_t pdgMeson = 413;
641 DYRec = dzero->Y(pdgMeson);
647 DYRec = dstar->Y(pdgMeson);
668 Double_t fillRM[10] = {zRec,JetPtRec,DPtRec,DYRec,JetEtaRec,zGen,JetPtGen,DPtGen,DYGen,JetEtaGen};
682 if(rho>0) z =
Z(Dmeson,jet,rho);
683 else z =
Z(Dmeson,jet);
693 FillHistogramsD0JetCorr(dzero,z,Dmeson->Pt(),JetPtCorr,JetEtaRec,IsBkg,bDInEMCalAcc,bJetInEMCalAcc,aodEvent,-999);
715 JetCont->ResetCurrentID();
718 UInt_t rejectionReason = 0;
723 TString recoDecayClassName(
"AliAODRecoDecayHF2Prong");
727 recoDecayClassName =
"AliAODRecoCascadeHF";
731 for(
Int_t itrk=0;itrk<ntrjet;itrk++)
733 AliVParticle* jetTrk=jet->
TrackAt(itrk,ParticlesCont->GetArray());
734 if(!jetTrk)
continue;
736 if(emcpart) jetTrk = emcpart->
GetTrack();
737 if(strcmp(jetTrk->ClassName(),recoDecayClassName)==0)
748 if(!JetIsHF) jet = 0;
763 mcjets->ResetCurrentID();
773 for(
Int_t itrk=0;itrk<ntrjet;itrk++)
775 AliAODMCParticle* jetTrk=(AliAODMCParticle*)mcjet->
TrackAt(itrk,ParticlesCont->GetArray());
777 if(TMath::Abs(jetTrk->GetPdgCode())==
fPDGmother)
784 if(HFMCjet==kTRUE)
break;
787 if(!HFMCjet) mcjet=0;
798 Info(
"Terminate",
" terminate");
799 AliAnalysisTaskSE::Terminate();
803 printf(
"ERROR: fOutput not available\n");
812 Int_t abspdg=TMath::Abs(pdg);
814 mass=TDatabasePDG::Instance()->GetParticle(abspdg)->Mass();
818 mass1=TDatabasePDG::Instance()->GetParticle(421)->Mass();
838 printf(
"Error! Lower limit larger than upper limit!\n");
848 AliInfo(
"Maximum number of bins allowed is 30!");
851 if(!width)
return kFALSE;
861 Bool_t okpp=part->PxPyPz(p);
866 printf(
"Problems getting momenta\n");
873 pj[0] = jet->
Px() - jet->
Area()*(rho*TMath::Cos(jet->
AreaPhi()));
874 pj[1] = jet->
Py() - jet->
Area()*(rho*TMath::Sin(jet->
AreaPhi()));
875 pj[2] = jet->
Pz() - jet->
Area()*(rho*TMath::SinH(jet->
AreaEta()));
884 Bool_t okpp=part->PxPyPz(p);
889 printf(
"Problems getting momenta\n");
898 Double_t pjet2=pj[0]*pj[0]+pj[1]*pj[1]+pj[2]*pj[2];
899 Double_t z=(p[0]*pj[0]+p[1]*pj[1]+p[2]*pj[2])/(pjet2);
907 Double_t pjet2=pj[0]*pj[0]+pj[1]*pj[1];
908 Double_t z=(p[0]*pj[0]+p[1]*pj[1])/(pjet2);
920 fhstat=
new TH1I(
"hstat",
"Statistics",nbins,-0.5,nbins-0.5);
921 fhstat->GetXaxis()->SetBinLabel(1,
"N ev anal");
922 fhstat->GetXaxis()->SetBinLabel(2,
"N ev sel");
923 fhstat->GetXaxis()->SetBinLabel(3,
"N cand sel");
924 fhstat->GetXaxis()->SetBinLabel(4,
"N jets");
925 fhstat->GetXaxis()->SetBinLabel(5,
"N cand in jet");
926 fhstat->GetXaxis()->SetBinLabel(6,
"N jet rej");
927 fhstat->GetXaxis()->SetBinLabel(7,
"N cand sel & !jet");
928 fhstat->GetXaxis()->SetBinLabel(8,
"N jets & cand");
930 fhstat->GetXaxis()->SetBinLabel(3,
"N Signal sel & jet");
931 fhstat->GetXaxis()->SetBinLabel(5,
"N Signal in jet");
932 fhstat->GetXaxis()->SetBinLabel(9,
"N Bkg sel & jet");
933 fhstat->GetXaxis()->SetBinLabel(10,
"N Bkg in jet");
938 fhCentDjet=
new TH1F(
"hCentDjet",
"Centrality",100,0,100);
941 const Int_t nbinsmass=300;
942 const Int_t nbinspttrack=500;
943 const Int_t nbinsptjet=200;
944 const Int_t nbinsptD=100;
945 const Int_t nbinsphi=200;
946 const Int_t nbinseta=100;
949 const Int_t nbinsSpsmass=120;
950 const Int_t nbinsSpsptjet=200;
951 const Int_t nbinsSpsptD=100;
952 const Int_t nbinsSpsz=160;
953 const Int_t nbinsSpsy=150;
955 const Float_t pttracklims[2]={0.,200.};
956 const Float_t ptjetlims[2]={-50.,150.};
957 const Float_t ptDlims[2]={0.,50.};
958 const Float_t zlims[2]={-1.2,2};
959 const Float_t philims[2]={0.,6.3};
960 const Float_t etalims[2]={-1.5,1.5};
964 fhPhiJetTrks =
new TH1F(
"hPhiJetTrks",
"Jet tracks #phi distribution; #phi (rad)", nbinsphi,philims[0],philims[1]);
966 fhEtaJetTrks =
new TH1F(
"hEtaJetTrks",
"Jet tracks #eta distribution; #eta", nbinseta,etalims[0],etalims[1]);
968 fhPtJetTrks =
new TH1F(
"hPtJetTrks",
"Jet tracks Pt distribution; p_{T} (GeV/c)",nbinspttrack,pttracklims[0],pttracklims[1]);
971 fhPhiJet =
new TH1F(
"hPhiJet",
"Jet #phi distribution; #phi (rad)", nbinsphi,philims[0],philims[1]);
973 fhEtaJet =
new TH1F(
"hEtaJet",
"Jet #eta distribution; #eta", nbinseta,etalims[0],etalims[1]);
975 fhPtJet =
new TH1F(
"hPtJet",
"Jet Pt distribution; p_{T} (GeV/c)",nbinsptjet,ptjetlims[0],ptjetlims[1]);
996 fhPtPion =
new TH1F(
"hPtPion",
"Primary pions candidates pt ",500,0,10);
998 fhPtPion->GetXaxis()->SetTitle(
"GeV/c");
999 fhPtPion->GetYaxis()->SetTitle(
"Entries");
1006 fhInvMassptD =
new TH2F(
"hInvMassptD",
"D (Delta R < Rjet) invariant mass distribution p_{T}^{j} > threshold",nbinsmass,
fMinMass,
fMaxMass,nbinsptD,ptDlims[0],ptDlims[1]);
1009 fhInvMassptD->GetYaxis()->SetTitle(
"#it{p}_{t}^{D} (GeV/c)");
1015 fhInvMassptDbg =
new TH2F(
"hInvMassptDbg",
"Background D (Delta R < Rjet) invariant mass distribution p_{T}^{j} > threshold",nbinsmass,
fMinMass,
fMaxMass,nbinsptD,ptDlims[0],ptDlims[1]);
1027 AliInfo(
"Creating a 11 axes container (MB background candidates)");
1028 const Int_t nAxis=11;
1029 const Int_t nbinsSparse[nAxis]={nbinsSpsz,nbinsSpsptjet,nbinsSpsptD,nbinsSpsmass,nbinsSpsy,nbinsSpsy,nbinsSpsmass,nbinsSpsmass, 2, 2, 2};
1030 const Double_t minSparse[nAxis]={zlims[0],ptjetlims[0],ptDlims[0],
fMinMass,etalims[0],etalims[0],
fMinMass,
fMinMass, -0.5,-0.5,-0.5};
1031 const Double_t maxSparse[nAxis]={zlims[1],ptjetlims[1],ptDlims[1],
fMaxMass,etalims[1],etalims[1],
fMaxMass,
fMaxMass, 1.5, 1.5 , 1.5};
1033 fhsDphiz=
new THnSparseF(
"hsDphiz",
"Z, p_{T}^{jet}, p_{T}^{D}, mass., y^{D}, #eta^{jet}, mass_{true}, mass_{refl}, Bkg?, D in EMCal acc?, jet in EMCal acc?", nAxis, nbinsSparse, minSparse, maxSparse);
1037 AliInfo(
"Creating a 9 axes container (MB background candidates)");
1038 const Int_t nAxis=9;
1039 const Int_t nbinsSparse[nAxis]={nbinsSpsz,nbinsSpsptjet,nbinsSpsptD,nbinsSpsmass,nbinsSpsy,nbinsSpsy, 2, 2, 2};
1040 const Double_t minSparse[nAxis]={zlims[0],ptjetlims[0],ptDlims[0],
fMinMass,etalims[0],etalims[0], -0.5,-0.5,-0.5};
1041 const Double_t maxSparse[nAxis]={zlims[1],ptjetlims[1],ptDlims[1],
fMaxMass,etalims[1],etalims[1], 1.5, 1.5 , 1.5};
1043 fhsDphiz=
new THnSparseF(
"hsDphiz",
"Z, p_{T}^{jet}, p_{T}^{D}, mass., y^{D}, #eta^{jet}, Bkg?, D in EMCal acc?, jet in EMCal acc?", nAxis, nbinsSparse, minSparse, maxSparse);
1047 AliInfo(
"Creating a 6 axes container");
1048 const Int_t nAxis=6;
1049 const Int_t nbinsSparse[nAxis]={nbinsSpsz,nbinsSpsptjet,nbinsSpsptD,nbinsSpsmass,nbinsSpsy,nbinsSpsy};
1050 const Double_t minSparse[nAxis]={zlims[0],ptjetlims[0],ptDlims[0],
fMinMass,etalims[0],etalims[0]};
1051 const Double_t maxSparse[nAxis]={zlims[1],ptjetlims[1],ptDlims[1],
fMaxMass,etalims[1],etalims[1]};
1053 fhsDphiz=
new THnSparseF(
"hsDphiz",
"Z, p_{T}^{jet}, p_{T}^{D}, mass., y^{D}, #eta^{jet}", nAxis, nbinsSparse, minSparse, maxSparse);
1056 if(!
fhsDphiz) AliFatal(
"No THnSparse created");
1063 const Int_t nRMAxis=10;
1064 const Int_t RMnbins[nRMAxis] = {nbinsSpsz,nbinsSpsptjet,nbinsSpsptD,nbinsSpsy,nbinsSpsy,nbinsSpsz,nbinsSpsptjet,nbinsSpsptD,nbinsSpsy,nbinsSpsy};
1065 const Double_t RMmin[nRMAxis]={zlims[0],ptjetlims[0],ptDlims[0],etalims[0],etalims[0],zlims[0],ptjetlims[0],ptDlims[0],etalims[0],etalims[0]};
1066 const Double_t RMmax[nRMAxis]={zlims[1],ptjetlims[1],ptDlims[1],etalims[1],etalims[1],zlims[1],ptjetlims[1],ptDlims[1],etalims[1],etalims[1]};
1067 fResponseMatrix =
new THnSparseF(
"ResponseMatrix",
"z, p_{T}^{jet}, p_{T}^{D}, y^{D}, #eta^{jet}: Rec and Gen",nRMAxis,RMnbins,RMmin,RMmax);
1083 Int_t pdgdaughtersD0[2]={211,321};
1084 Int_t pdgdaughtersD0bar[2]={321,211};
1085 Int_t pdgMeson = 413;
1089 masses[1]=candidate->InvMass(
fNProngs,(
UInt_t*)pdgdaughtersD0bar);
1100 point[4]=candidate->Y(pdgMeson);
1110 point[4]=candidate->Y(pdgMeson);
1114 point[8]=
static_cast<Double_t>(IsBkg ? 1 : 0);
1115 point[9]=
static_cast<Double_t>(bDInEMCalAcc ? 1 : 0);
1116 point[10]=
static_cast<Double_t>(bJetInEMCalAcc ? 1 : 0);
1122 if(isselected==1 || isselected==3)
1136 if(isselected==1 || isselected==3)
1144 else if(isselected==3 && pdgTrue==421){
1148 else if(isselected==3 && pdgTrue==-421){
1173 AliAODTrack *softpi = (AliAODTrack*)dstar->
GetBachelor();
1175 Int_t pdgMeson = 413;
1188 point[4]=dstar->Y(pdgMeson);
1198 point[4]=dstar->Y(pdgMeson);
1200 point[6]=
static_cast<Double_t>(IsBkg ? 1 : 0);
1201 point[7]=
static_cast<Double_t>(bDInEMCalAcc ? 1 : 0);
1202 point[8]=
static_cast<Double_t>(bJetInEMCalAcc ? 1 : 0);
1206 AliError(Form(
"Numer of THnSparse entries %d not valid",
fNAxesBigSparse));
1222 if(
fCandidateType==
kDstartoKpipi) pdgmass=TDatabasePDG::Instance()->GetParticle(413)->Mass()-TDatabasePDG::Instance()->GetParticle(421)->Mass();
1244 point[7]=
static_cast<Double_t>(bDInEMCalAcc ? 1 : 0);
1245 point[8]=
static_cast<Double_t>(bJetInEMCalAcc ? 1 : 0);
1249 AliError(Form(
"Numer of THnSparse entries %d not valid",
fNAxesBigSparse));
1265 if(!p1 || !p2)
return -1;
1274 printf(
"Problems getting momenta\n");
1277 pj[0] = p1->
Px() - p1->
Area()*(rho*TMath::Cos(p1->
AreaPhi()));
1278 pj[1] = p1->
Py() - p1->
Area()*(rho*TMath::Sin(p1->
AreaPhi()));
1279 pj[2] = p1->
Pz() - p1->
Area()*(rho*TMath::SinH(p1->
AreaEta()));
1283 phi1 = TMath::ACos(pj[0]/TMath::Sqrt(pj[0]*pj[0]+pj[1]*pj[1]));
1284 if(pj[1]<0) phi1 = 2*TMath::Pi() - phi1;
1285 eta1 = TMath::ASinH(pj[2]/TMath::Sqrt(pj[0]*pj[0]+pj[1]*pj[1]));
1288 Double_t phi2 = p2->Phi(),eta2 = p2->Eta() ;
1290 Double_t dPhi=TMath::Abs(phi1-phi2);
1291 if(dPhi>TMath::Pi()) dPhi = (2*TMath::Pi())-dPhi;
1295 Double_t deltaR=TMath::Sqrt(dEta*dEta + dPhi*dPhi );
1302 if(!p1 || !p2)
return -1;
1306 Double_t phi2 = p2->Phi(),eta2 = p2->Eta() ;
1308 Double_t dPhi=TMath::Abs(phi1-phi2);
1309 if(dPhi>TMath::Pi()) dPhi = (2*TMath::Pi())-dPhi;
1313 Double_t deltaR=TMath::Sqrt(dEta*dEta + dPhi*dPhi );
1331 Double_t mPDGD0=TDatabasePDG::Instance()->GetParticle(421)->Mass();
1336 if((invM>=sixSigmal && invM<fourSigmal) || (invM>fourSigmar && invM<=sixSigmar))
return 1;
1346 Double_t phiEMCal[2]={1.405,3.135},etaEMCal[2]={-0.7,0.7};
1348 Double_t phi=vpart->Phi(), eta=vpart->Eta();
1349 if(phi<phiEMCal[0] || phi>phiEMCal[1]) binEMCal=kFALSE;
1350 if(eta<etaEMCal[0] || eta>etaEMCal[1]) binEMCal=kFALSE;
void AddFlavourTag(Int_t tag)
Double_t GetRhoVal() const
const TString & GetRhoName() const
Double_t DeltaInvMass() const
Jet is tagged to contain a D* meson.
AliJetContainer * GetJetContainer(Int_t i=0) const
TH1I * fhstat
Use D meson SB array.
Double_t Z(AliVParticle *part, AliEmcalJet *jet, Double_t rho) const
Int_t GetNParticles() const
Double_t GetLocalVal(Double_t phi, Double_t r, Double_t n) const
static Int_t CheckMatchingAODdeltaAODevents()
void FillHistogramsMCGenDJetCorr(Double_t z, Double_t ptD, Double_t ptjet, Double_t yD, Double_t jetEta, Bool_t bDInEMCalAcc, Bool_t bJetInEMCalAcc)
virtual Bool_t AcceptJet(Int_t i, UInt_t &rejectionReason) const
void SetMassLimits(Double_t range, Int_t pdg)
virtual void Terminate(Option_t *)
AliVTrack * GetTrack() const
void FillHistogramsDstarJetCorr(AliAODRecoCascadeHF *dstar, Double_t z, Double_t ptD, Double_t ptj, Double_t jetEta, Bool_t IsBkg, Bool_t bDInEMCalAcc, Bool_t bJetInEMCalAcc)
void AngularCorrelationMethod(Bool_t IsBkg, AliAODEvent *aodEvent)
AliVParticle * GetFlavourTrack(Int_t i=0) const
Container for particles within the EMCAL framework.
THnSparse * fResponseMatrix
Int_t TrackAt(Int_t idx) const
UShort_t GetNumberOfTracks() const
void CreateResponseMatrix(AliEmcalJet *jet)
void FillHistogramsD0JetCorr(AliAODRecoDecayHF *candidate, Double_t z, Double_t ptD, Double_t ptj, Double_t jetEta, Bool_t IsBkg, Bool_t bDInEMCalAcc, Bool_t bJetInEMCalAcc, AliAODEvent *aodEvent, Int_t pdg)
AliParticleContainer * GetParticleContainer() const
Double_t ZT(Double_t *p, Double_t *pj) const
Bool_t DefineHistoForAnalysis()
void FillDJetHistograms(AliEmcalJet *jet, Double_t rho, Bool_t IsBkg, AliAODEvent *aodEvent)
Int_t IsDzeroSideBand(AliAODRecoCascadeHF *candDstar)
Bool_t fUseSBArray
Use D meson candidates array.
void AddFlavourTrack(AliVParticle *hftrack)
virtual AliVParticle * GetParticle(Int_t i=-1) const
virtual Bool_t Run()
Run function. This is the core function of the analysis and contains the user code. Therefore users have to implement this function.
AliAODTrack * GetBachelor() const
void FindMCJet(AliEmcalJet *&mcjet)
Double_t fCent
!event centrality
virtual void UserCreateOutputObjects()
AliLocalRhoParameter * fLocalRho
! local event rho
Float_t CheckDeltaR(AliEmcalJet *p1, AliVParticle *p2) const
AliEmcalJet * GetNextAcceptJet()
Enhanced TList-derived class that implements correct merging for pt_hard binned production.
Bool_t InEMCalAcceptance(AliVParticle *vpart)
void GetHFJet(AliEmcalJet *&jet, Bool_t IsBkg)
AliEmcalJet * GetNextJet()
Bool_t IsEventSelected(AliVEvent *event)
Jet is tagged to contain a D0 meson.
Float_t GetJetRadius() const
AliEmcalList * fOutput
!output list
void ConstituentCorrelationMethod(Bool_t IsBkg, AliAODEvent *aodEvent)
void CreateMCResponseMatrix(AliEmcalJet *MCjet, AliAODEvent *aodEvent)
TClonesArray * fCandidateArray
AliAnalysisTaskFlavourJetCorrelations()
Bool_t IsSelected(TObject *obj)
Base task in the EMCAL jet framework.
Represent a jet reconstructed using the EMCal jet framework.
Bool_t PxPyPz(Double_t p[3]) const
Bool_t SetD0WidthForDStar(Int_t nptbins, Float_t *width)
Double_t InvMassD0() const
void UserCreateOutputObjects()
Main initialization function on the worker.
virtual ~AliAnalysisTaskFlavourJetCorrelations()
Int_t PtBin(Double_t pt) const
Float_t DeltaR(AliEmcalJet *p1, AliVParticle *p2, Double_t rho) const
Container for jet within the EMCAL jet framework.
TClonesArray * fSideBandArray
contains candidates selected by AliRDHFCuts
Bool_t fAnalyseDBkg
contains candidates selected by AliRDHFCuts::IsSelected(kTracks), to be used for side bands (DStar ca...