From 8d95aff1bfd9b73a8ca9e12af3c5fe6804b4110a Mon Sep 17 00:00:00 2001 From: mverweij Date: Mon, 21 Jul 2014 17:47:35 -0400 Subject: [PATCH] Add jet mass to tagged jet correlation add mass plot vs pt jet 2 add tagged jet mass to response matrix fix warning --- .../AliAnalysisTaskEmcalJetTagger.cxx | 31 ++++++++++++++-- .../UserTasks/AliAnalysisTaskEmcalJetTagger.h | 5 ++- .../AliAnalysisTaskJetShapeConst.cxx | 35 +++++++++++++------ .../AliAnalysisTaskJetShapeDeriv.cxx | 30 +++++++++++----- .../UserTasks/AliAnalysisTaskJetShapeGR.cxx | 2 +- 5 files changed, 81 insertions(+), 22 deletions(-) diff --git a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTagger.cxx b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTagger.cxx index a1ba217e2d4..5bbe6b16a80 100644 --- a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTagger.cxx +++ b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTagger.cxx @@ -54,7 +54,9 @@ AliAnalysisTaskEmcalJetTagger::AliAnalysisTaskEmcalJetTagger() : fh2PtJet1VsPtJet2(0), fh3PtJetDEtaDPhiConst(0), fh2PtJetDRConst(0), - fh3PtJetAreaDRConst(0) + fh3PtJetAreaDRConst(0), + fh3PtJet1VsMassJet1MassJet2(0), + fh3PtJet2VsMassJet1MassJet2(0) { // Default constructor. @@ -64,6 +66,8 @@ AliAnalysisTaskEmcalJetTagger::AliAnalysisTaskEmcalJetTagger() : fh2PtJet1VsLeadPtAllSel = new TH2F*[fNcentBins]; fh2PtJet1VsLeadPtTagged = new TH2F*[fNcentBins]; fh2PtJet1VsPtJet2 = new TH2F*[fNcentBins]; + fh3PtJet1VsMassJet1MassJet2 = new TH3F*[fNcentBins]; + fh3PtJet2VsMassJet1MassJet2 = new TH3F*[fNcentBins]; for (Int_t i = 0; i < fNcentBins; i++) { fh3PtJet1VsDeltaEtaDeltaPhi[i] = 0; @@ -72,6 +76,8 @@ AliAnalysisTaskEmcalJetTagger::AliAnalysisTaskEmcalJetTagger() : fh2PtJet1VsLeadPtAllSel[i] = 0; fh2PtJet1VsLeadPtTagged[i] = 0; fh2PtJet1VsPtJet2[i] = 0; + fh3PtJet1VsMassJet1MassJet2[i] = 0; + fh3PtJet2VsMassJet1MassJet2[i] = 0; } SetMakeGeneralHistograms(kTRUE); @@ -95,7 +101,9 @@ AliAnalysisTaskEmcalJetTagger::AliAnalysisTaskEmcalJetTagger(const char *name) : fh2PtJet1VsPtJet2(0), fh3PtJetDEtaDPhiConst(0), fh2PtJetDRConst(0), - fh3PtJetAreaDRConst(0) + fh3PtJetAreaDRConst(0), + fh3PtJet1VsMassJet1MassJet2(0), + fh3PtJet2VsMassJet1MassJet2(0) { // Standard constructor. @@ -105,6 +113,8 @@ AliAnalysisTaskEmcalJetTagger::AliAnalysisTaskEmcalJetTagger(const char *name) : fh2PtJet1VsLeadPtAllSel = new TH2F*[fNcentBins]; fh2PtJet1VsLeadPtTagged = new TH2F*[fNcentBins]; fh2PtJet1VsPtJet2 = new TH2F*[fNcentBins]; + fh3PtJet1VsMassJet1MassJet2 = new TH3F*[fNcentBins]; + fh3PtJet2VsMassJet1MassJet2 = new TH3F*[fNcentBins]; for (Int_t i = 0; i < fNcentBins; i++) { fh3PtJet1VsDeltaEtaDeltaPhi[i] = 0; @@ -113,6 +123,8 @@ AliAnalysisTaskEmcalJetTagger::AliAnalysisTaskEmcalJetTagger(const char *name) : fh2PtJet1VsLeadPtAllSel[i] = 0; fh2PtJet1VsLeadPtTagged[i] = 0; fh2PtJet1VsPtJet2[i] = 0; + fh3PtJet1VsMassJet1MassJet2[i] = 0; + fh3PtJet2VsMassJet1MassJet2[i] = 0; } SetMakeGeneralHistograms(kTRUE); @@ -139,6 +151,7 @@ void AliAnalysisTaskEmcalJetTagger::UserCreateOutputObjects() const Int_t nBinsDEta = 100; const Int_t nBinsDR = 50; const Int_t nBinsFraction = 101; + const Int_t nBinsM = 150; const Double_t minPt = -50.; const Double_t maxPt = 200.; @@ -150,6 +163,8 @@ void AliAnalysisTaskEmcalJetTagger::UserCreateOutputObjects() const Double_t maxDR = 0.5; const Double_t minFraction = -0.005; const Double_t maxFraction = 1.005; + const Double_t minM = -20.; + const Double_t maxM = 130.; TString histName = ""; TString histTitle = ""; @@ -185,6 +200,15 @@ void AliAnalysisTaskEmcalJetTagger::UserCreateOutputObjects() fh2PtJet1VsPtJet2[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsPt,minPt,maxPt); fOutput->Add(fh2PtJet1VsPtJet2[i]); + histName = TString::Format("fh3PtJet1VsMassJet1MassJet2_%d",i); + histTitle = TString::Format("%s;#it{p}_{T,jet1};#it{M}_{jet1};#it{M}_{jet2}",histName.Data()); + fh3PtJet1VsMassJet1MassJet2[i] = new TH3F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsM,minM,maxM,nBinsM,minM,maxM); + fOutput->Add(fh3PtJet1VsMassJet1MassJet2[i]); + + histName = TString::Format("fh3PtJet2VsMassJet1MassJet2_%d",i); + histTitle = TString::Format("%s;#it{p}_{T,jet1};#it{M}_{jet1};#it{M}_{jet2}",histName.Data()); + fh3PtJet2VsMassJet1MassJet2[i] = new TH3F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsM,minM,maxM,nBinsM,minM,maxM); + fOutput->Add(fh3PtJet2VsMassJet1MassJet2[i]); } fh3PtJetDEtaDPhiConst = new TH3F("fh3PtJetDEtaDPhiConst","fh3PtJetDEtaDPhiConst;pT;#Delta #eta;#Delta #varphi",nBinsPt,minPt,maxPt,nBinsDEta,-1.,1.,nBinsDPhi,-1.,1.); @@ -278,6 +302,9 @@ Bool_t AliAnalysisTaskEmcalJetTagger::FillHistograms() fh3PtJet1VsDeltaEtaDeltaPhi[fCentBin]->Fill(ptJet1,jet1->Eta()-jet2->Eta(),dPhi); fh2PtJet1VsDeltaR[fCentBin]->Fill(ptJet1,GetDeltaR(jet1,jet2)); + //fill histo with pt jet 1 vs mass jet 1 vs mass jet 2 + fh3PtJet1VsMassJet1MassJet2[fCentBin]->Fill(ptJet1,jet1->M(),jet2->M()); + fh3PtJet2VsMassJet1MassJet2[fCentBin]->Fill(ptJet2,jet1->M(),jet2->M()); } return kTRUE; } diff --git a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTagger.h b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTagger.h index 316ca5863dc..de174991d4f 100644 --- a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTagger.h +++ b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTagger.h @@ -79,10 +79,13 @@ class AliAnalysisTaskEmcalJetTagger : public AliAnalysisTaskEmcalJet { TH2F *fh2PtJetDRConst; //!pt jet vs delta R of constituents TH3F *fh3PtJetAreaDRConst; //!pt jet vs Area vs delta R of constituents + TH3F **fh3PtJet1VsMassJet1MassJet2; //!pt jet 1 vs mass jet1 vs mass jet2 + TH3F **fh3PtJet2VsMassJet1MassJet2; //!pt jet 2 vs mass jet1 vs mass jet2 + AliAnalysisTaskEmcalJetTagger(const AliAnalysisTaskEmcalJetTagger&); // not implemented AliAnalysisTaskEmcalJetTagger &operator=(const AliAnalysisTaskEmcalJetTagger&); // not implemented - ClassDef(AliAnalysisTaskEmcalJetTagger, 3) + ClassDef(AliAnalysisTaskEmcalJetTagger, 4) }; #endif diff --git a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskJetShapeConst.cxx b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskJetShapeConst.cxx index d735b7f5d9e..3fb881ec20e 100644 --- a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskJetShapeConst.cxx +++ b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskJetShapeConst.cxx @@ -168,11 +168,15 @@ void AliAnalysisTaskJetShapeConst::UserCreateOutputObjects() const Double_t minM = -50.; const Double_t maxM = 100.; + const Int_t nBinsMT = 50; + const Double_t minMT = 0.; + const Double_t maxMT = 50.; + //Binning for THnSparse - const Int_t nBinsSparse0 = 4; - const Int_t nBins0[nBinsSparse0] = {nBinsM,nBinsM,nBinsPt,nBinsPt}; - const Double_t xmin0[nBinsSparse0] = { minM, minM, minPt, minPt}; - const Double_t xmax0[nBinsSparse0] = { maxM, maxM, maxPt, maxPt}; + const Int_t nBinsSparse0 = 5; + const Int_t nBins0[nBinsSparse0] = {nBinsM,nBinsM,nBinsPt,nBinsPt,nBinsMT}; + const Double_t xmin0[nBinsSparse0] = { minM, minM, minPt, minPt, minMT}; + const Double_t xmax0[nBinsSparse0] = { maxM, maxM, maxPt, maxPt, maxMT}; TString histName = ""; TString histTitle = ""; @@ -213,7 +217,7 @@ void AliAnalysisTaskJetShapeConst::UserCreateOutputObjects() fOutput->Add(fh2PtTrueDeltaMRel[i]); histName = Form("fhnMassResponse_%d",i); - histTitle = Form("fhnMassResponse_%d;#it{M}_{sub};#it{M}_{true};#it{p}_{T,sub};#it{p}_{T,true}",i); + histTitle = Form("fhnMassResponse_%d;#it{M}_{sub};#it{M}_{true};#it{p}_{T,sub};#it{p}_{T,true};#it{M}_{sub}^{tagged}",i); fhnMassResponse[i] = new THnSparseF(histName.Data(),histTitle.Data(),nBinsSparse0,nBins0,xmin0,xmax0); fOutput->Add(fhnMassResponse[i]); } @@ -262,16 +266,23 @@ Bool_t AliAnalysisTaskJetShapeConst::FillHistograms() { // Fill histograms. - AliEmcalJet* jet1 = NULL; - AliEmcalJet *jet2 = NULL; - AliEmcalJet *jetS = NULL; + AliEmcalJet* jet1 = NULL; //AA jet + AliEmcalJet *jet2 = NULL; //Embedded Pythia jet + AliEmcalJet *jet1T = NULL; //tagged AA jet + // AliEmcalJet *jet2T = NULL; //tagged Pythia jet + AliEmcalJet *jetS = NULL; //subtracted jet AliJetContainer *jetCont = GetJetContainer(fContainerBase); AliJetContainer *jetContS = GetJetContainer(fContainerSub); AliDebug(11,Form("NJets Incl: %d Csub: %d",jetCont->GetNJets(),jetContS->GetNJets())); if(jetCont) { jetCont->ResetCurrentID(); while((jet1 = jetCont->GetNextAcceptJet())) { - + jet2 = NULL; + jet1T = NULL; + // jet2T = NULL; + jetS = NULL; + if(jet1->GetTagStatus()>0) jet1T = jet1->GetTaggedJet(); + //Get constituent subtacted version of jet Int_t ifound = 0; Int_t ilab = -1; @@ -312,6 +323,8 @@ Bool_t AliAnalysisTaskJetShapeConst::FillHistograms() } } + // if(fMatch==1 && jet2->GetTagStatus()>0) jet2T = jet2->GetTaggedJet(); + //Fill histograms for matched jets fh2MSubMatch[fCentBin]->Fill(jetS->M(),fMatch); if(fMatch==1) { @@ -321,7 +334,9 @@ Bool_t AliAnalysisTaskJetShapeConst::FillHistograms() fh2MTruePtTrue[fCentBin]->Fill(jet2->M(),jet2->Pt()); fh2PtTrueDeltaM[fCentBin]->Fill(jet2->Pt(),jetS->M()-jet2->M()); if(jet2->M()>0.) fh2PtTrueDeltaMRel[fCentBin]->Fill(jet2->Pt(),(jetS->M()-jet2->M())/jet2->M()); - Double_t var[4] = {jetS->M(),jet2->M(),jet1->Pt()-jetCont->GetRhoVal()*jet1->Area(),jet2->Pt()}; + Double_t mJet1Tagged = -1.; + if(jet1T) mJet1Tagged = jet1T->M(); + Double_t var[5] = {jetS->M(),jet2->M(),jet1->Pt()-jetCont->GetRhoVal()*jet1->Area(),jet2->Pt(),mJet1Tagged}; fhnMassResponse[fCentBin]->Fill(var); } } diff --git a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskJetShapeDeriv.cxx b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskJetShapeDeriv.cxx index 2246ff553dc..98eb2dcef99 100644 --- a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskJetShapeDeriv.cxx +++ b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskJetShapeDeriv.cxx @@ -220,6 +220,10 @@ void AliAnalysisTaskJetShapeDeriv::UserCreateOutputObjects() const Double_t minM = -50.; const Double_t maxM = 100.; + const Int_t nBinsMT = 50; + const Double_t minMT = 0.; + const Double_t maxMT = 50.; + const Int_t nBinsV1 = 60; const Double_t minV1 = -60.; const Double_t maxV1 = 0.; @@ -229,10 +233,10 @@ void AliAnalysisTaskJetShapeDeriv::UserCreateOutputObjects() const Double_t maxV2 = 0.; //Binning for THnSparse - const Int_t nBinsSparse0 = 4; - const Int_t nBins0[nBinsSparse0] = {nBinsM,nBinsM,nBinsPt,nBinsPt}; - const Double_t xmin0[nBinsSparse0] = { minM, minM, minPt, minPt}; - const Double_t xmax0[nBinsSparse0] = { maxM, maxM, maxPt, maxPt}; + const Int_t nBinsSparse0 = 5; + const Int_t nBins0[nBinsSparse0] = {nBinsM,nBinsM,nBinsPt,nBinsPt,nBinsMT}; + const Double_t xmin0[nBinsSparse0] = { minM, minM, minPt, minPt, minMT}; + const Double_t xmax0[nBinsSparse0] = { maxM, maxM, maxPt, maxPt, maxMT}; TString histName = ""; TString histTitle = ""; @@ -274,7 +278,7 @@ void AliAnalysisTaskJetShapeDeriv::UserCreateOutputObjects() fOutput->Add(fh2PtTrueDeltaMRel[i]); histName = Form("fhnMassResponse_%d",i); - histTitle = Form("fhnMassResponse_%d;#it{M}_{sub};#it{M}_{true};#it{p}_{T,sub};#it{p}_{T,true}",i); + histTitle = Form("fhnMassResponse_%d;#it{M}_{sub};#it{M}_{true};#it{p}_{T,sub};#it{p}_{T,true};#it{M}_{sub}^{tagged}",i); fhnMassResponse[i] = new THnSparseF(histName.Data(),histTitle.Data(),nBinsSparse0,nBins0,xmin0,xmax0); fOutput->Add(fhnMassResponse[i]); @@ -361,14 +365,20 @@ Bool_t AliAnalysisTaskJetShapeDeriv::FillHistograms() { // Fill histograms. - AliEmcalJet* jet1 = NULL; - AliEmcalJet *jet2 = NULL; + AliEmcalJet* jet1 = NULL; //AA jet + AliEmcalJet *jet2 = NULL; //Embedded Pythia jet + AliEmcalJet *jet1T = NULL; //tagged AA jet + // AliEmcalJet *jet2T = NULL; //tagged Pythia jet AliJetContainer *jetCont = GetJetContainer(fContainerBase); fRho = (Float_t)jetCont->GetRhoVal(); fRhoM = (Float_t)jetCont->GetRhoMassVal(); if(jetCont) { jetCont->ResetCurrentID(); while((jet1 = jetCont->GetNextAcceptJet())) { + jet2 = NULL; + jet1T = NULL; + // jet2T = NULL; + if(jet1->GetTagStatus()>0) jet1T = jet1->GetTaggedJet(); //Fill histograms for all AA jets fh2MSubPtRawAll[fCentBin]->Fill(jet1->GetSecondOrderSubtracted(),jet1->Pt()-jetCont->GetRhoVal()*jet1->Area()); fh2PtRawSubFacV1[fCentBin]->Fill(jet1->Pt(),-1.*(fRho+fRhoM)*jet1->GetFirstDerivative()); @@ -400,6 +410,8 @@ Bool_t AliAnalysisTaskJetShapeDeriv::FillHistograms() } } + // if(fMatch==1 && jet2->GetTagStatus()>0) jet2T = jet2->GetTaggedJet(); + //Fill histograms for matched jets fh2MSubMatch[fCentBin]->Fill(jet1->GetSecondOrderSubtracted(),fMatch); if(fMatch==1) { @@ -409,7 +421,9 @@ Bool_t AliAnalysisTaskJetShapeDeriv::FillHistograms() fh2MTruePtTrue[fCentBin]->Fill(jet2->M(),jet2->Pt()); fh2PtTrueDeltaM[fCentBin]->Fill(jet2->Pt(),jet1->GetSecondOrderSubtracted()-jet2->M()); if(jet2->M()>0.) fh2PtTrueDeltaMRel[fCentBin]->Fill(jet2->Pt(),(jet1->GetSecondOrderSubtracted()-jet2->M())/jet2->M()); - Double_t var[4] = {jet1->GetSecondOrderSubtracted(),jet2->M(),jet1->Pt()-jetCont->GetRhoVal()*jet1->Area(),jet2->Pt()}; + Double_t mJet1Tagged = -1.; + if(jet1T) mJet1Tagged = jet1T->M(); + Double_t var[5] = {jet1->GetSecondOrderSubtracted(),jet2->M(),jet1->Pt()-jetCont->GetRhoVal()*jet1->Area(),jet2->Pt(),mJet1Tagged}; fhnMassResponse[fCentBin]->Fill(var); } } diff --git a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskJetShapeGR.cxx b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskJetShapeGR.cxx index 7626e009f59..9d8a641673f 100644 --- a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskJetShapeGR.cxx +++ b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskJetShapeGR.cxx @@ -594,7 +594,7 @@ Bool_t AliAnalysisTaskJetShapeGR::FillTrueJets() { while((jet1 = jetCont->GetNextAcceptJet())) { fh1PtTrue[fCentBin]->Fill(jet1->Pt()); - Double_t dev = CalcDeltaGR(jet1,fContainerTrue,fNum,fDen);//num,den); + //Double_t dev = CalcDeltaGR(jet1,fContainerTrue,fNum,fDen);//num,den); for(Int_t i = 0; iFill(fNum->At(i),r,jet1->Pt()); -- 2.43.0