X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PWGJE%2FEMCALJetTasks%2FUserTasks%2FAliAnalysisTaskEmcalJetMassBkg.cxx;h=9583e9b61cb0f4bebd24a29cda76de70fab8963b;hb=e3ed0600776caaa7ea59784fbbb3a56a1d4aaaaa;hp=a29db4cb8eaccda4802cf76e0b2e7bb40d2b90c3;hpb=9f4cfa2cfc7f56b76a18bfc284c0f69795a9eb79;p=u%2Fmrichter%2FAliRoot.git diff --git a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetMassBkg.cxx b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetMassBkg.cxx index a29db4cb8ea..9583e9b61cb 100644 --- a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetMassBkg.cxx +++ b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetMassBkg.cxx @@ -51,13 +51,21 @@ AliAnalysisTaskEmcalJetMassBkg::AliAnalysisTaskEmcalJetMassBkg() : fTracksCont(0), fCaloClustersCont(0), fh2PtVsMassRC(0), - fpPtVsMassRC(0), fh2PtVsMassRCExLJDPhi(0), - fpPtVsMassRCExLJ(0), fh2PtVsMassPerpConeLJ(0), - fpPtVsMassPerpConeLJ(0), fh2PtVsMassPerpConeTJ(0), + fh2PtVsERC(0), + fh2PtVsERCExLJDPhi(0), + fh2PtVsEPerpConeLJ(0), + fh2PtVsEPerpConeTJ(0), + fpPtVsMassRC(0), + fpPtVsMassRCExLJ(0), + fpPtVsMassPerpConeLJ(0), fpPtVsMassPerpConeTJ(0), + fh2EtaVsMassRC(0), + fh2EtaVsMassRCExLJ(0), + fh2EtaVsMassPerpConeLJ(0), + fh2EtaVsMassPerpConeTJ(0), fh2CentVsMassRC(0), fh2CentVsMassRCExLJ(0), fh2CentVsMassPerpConeLJ(0), @@ -82,23 +90,45 @@ AliAnalysisTaskEmcalJetMassBkg::AliAnalysisTaskEmcalJetMassBkg() : // Default constructor. fh2PtVsMassRC = new TH2F*[fNcentBins]; - fpPtVsMassRC = new TProfile*[fNcentBins]; fh2PtVsMassRCExLJDPhi = new TH3F*[fNcentBins]; - fpPtVsMassRCExLJ = new TProfile*[fNcentBins]; fh2PtVsMassPerpConeLJ = new TH2F*[fNcentBins]; - fpPtVsMassPerpConeLJ = new TProfile*[fNcentBins]; fh2PtVsMassPerpConeTJ = new TH2F*[fNcentBins]; + + fh2PtVsERC = new TH2F*[fNcentBins]; + fh2PtVsERCExLJDPhi = new TH3F*[fNcentBins]; + fh2PtVsEPerpConeLJ = new TH2F*[fNcentBins]; + fh2PtVsEPerpConeTJ = new TH2F*[fNcentBins]; + + fpPtVsMassRC = new TProfile*[fNcentBins]; + fpPtVsMassRCExLJ = new TProfile*[fNcentBins]; + fpPtVsMassPerpConeLJ = new TProfile*[fNcentBins]; fpPtVsMassPerpConeTJ = new TProfile*[fNcentBins]; + fh2EtaVsMassRC = new TH2F*[fNcentBins]; + fh2EtaVsMassRCExLJ = new TH2F*[fNcentBins]; + fh2EtaVsMassPerpConeLJ = new TH2F*[fNcentBins]; + fh2EtaVsMassPerpConeTJ = new TH2F*[fNcentBins]; + for (Int_t i = 0; i < fNcentBins; i++) { fh2PtVsMassRC[i] = 0; - fpPtVsMassRC[i] = 0; fh2PtVsMassRCExLJDPhi[i] = 0; - fpPtVsMassRCExLJ[i] = 0; fh2PtVsMassPerpConeLJ[i] = 0; - fpPtVsMassPerpConeLJ[i] = 0; fh2PtVsMassPerpConeTJ[i] = 0; + + fh2PtVsERC[i] = 0; + fh2PtVsERCExLJDPhi[i] = 0; + fh2PtVsEPerpConeLJ[i] = 0; + fh2PtVsEPerpConeTJ[i] = 0; + + fpPtVsMassRC[i] = 0; + fpPtVsMassRCExLJ[i] = 0; + fpPtVsMassPerpConeLJ[i] = 0; fpPtVsMassPerpConeTJ[i] = 0; + + fh2EtaVsMassRC[i] = 0; + fh2EtaVsMassRCExLJ[i] = 0; + fh2EtaVsMassPerpConeLJ[i] = 0; + fh2EtaVsMassPerpConeTJ[i] = 0; } SetMakeGeneralHistograms(kTRUE); @@ -120,13 +150,21 @@ AliAnalysisTaskEmcalJetMassBkg::AliAnalysisTaskEmcalJetMassBkg(const char *name) fTracksCont(0), fCaloClustersCont(0), fh2PtVsMassRC(0), - fpPtVsMassRC(0), fh2PtVsMassRCExLJDPhi(0), - fpPtVsMassRCExLJ(0), fh2PtVsMassPerpConeLJ(0), - fpPtVsMassPerpConeLJ(0), fh2PtVsMassPerpConeTJ(0), + fh2PtVsERC(0), + fh2PtVsERCExLJDPhi(0), + fh2PtVsEPerpConeLJ(0), + fh2PtVsEPerpConeTJ(0), + fpPtVsMassRC(0), + fpPtVsMassRCExLJ(0), + fpPtVsMassPerpConeLJ(0), fpPtVsMassPerpConeTJ(0), + fh2EtaVsMassRC(0), + fh2EtaVsMassRCExLJ(0), + fh2EtaVsMassPerpConeLJ(0), + fh2EtaVsMassPerpConeTJ(0), fh2CentVsMassRC(0), fh2CentVsMassRCExLJ(0), fh2CentVsMassPerpConeLJ(0), @@ -151,23 +189,45 @@ AliAnalysisTaskEmcalJetMassBkg::AliAnalysisTaskEmcalJetMassBkg(const char *name) // Standard constructor. fh2PtVsMassRC = new TH2F*[fNcentBins]; - fpPtVsMassRC = new TProfile*[fNcentBins]; fh2PtVsMassRCExLJDPhi = new TH3F*[fNcentBins]; - fpPtVsMassRCExLJ = new TProfile*[fNcentBins]; fh2PtVsMassPerpConeLJ = new TH2F*[fNcentBins]; - fpPtVsMassPerpConeLJ = new TProfile*[fNcentBins]; fh2PtVsMassPerpConeTJ = new TH2F*[fNcentBins]; + + fh2PtVsERC = new TH2F*[fNcentBins]; + fh2PtVsERCExLJDPhi = new TH3F*[fNcentBins]; + fh2PtVsEPerpConeLJ = new TH2F*[fNcentBins]; + fh2PtVsEPerpConeTJ = new TH2F*[fNcentBins]; + + fpPtVsMassRC = new TProfile*[fNcentBins]; + fpPtVsMassRCExLJ = new TProfile*[fNcentBins]; + fpPtVsMassPerpConeLJ = new TProfile*[fNcentBins]; fpPtVsMassPerpConeTJ = new TProfile*[fNcentBins]; + fh2EtaVsMassRC = new TH2F*[fNcentBins]; + fh2EtaVsMassRCExLJ = new TH2F*[fNcentBins]; + fh2EtaVsMassPerpConeLJ = new TH2F*[fNcentBins]; + fh2EtaVsMassPerpConeTJ = new TH2F*[fNcentBins]; + for (Int_t i = 0; i < fNcentBins; i++) { - fh2PtVsMassRC[i] = 0; - fpPtVsMassRC[i] = 0; - fh2PtVsMassRCExLJDPhi[i] = 0; - fpPtVsMassRCExLJ[i] = 0; - fh2PtVsMassPerpConeLJ[i] = 0; - fpPtVsMassPerpConeLJ[i] = 0; - fh2PtVsMassPerpConeTJ[i] = 0; - fpPtVsMassPerpConeTJ[i] = 0; + fh2PtVsMassRC[i] = 0; + fh2PtVsMassRCExLJDPhi[i] = 0; + fh2PtVsMassPerpConeLJ[i] = 0; + fh2PtVsMassPerpConeTJ[i] = 0; + + fh2PtVsERC[i] = 0; + fh2PtVsERCExLJDPhi[i] = 0; + fh2PtVsEPerpConeLJ[i] = 0; + fh2PtVsEPerpConeTJ[i] = 0; + + fpPtVsMassRC[i] = 0; + fpPtVsMassRCExLJ[i] = 0; + fpPtVsMassPerpConeLJ[i] = 0; + fpPtVsMassPerpConeTJ[i] = 0; + + fh2EtaVsMassRC[i] = 0; + fh2EtaVsMassRCExLJ[i] = 0; + fh2EtaVsMassPerpConeLJ[i] = 0; + fh2EtaVsMassPerpConeTJ[i] = 0; } SetMakeGeneralHistograms(kTRUE); @@ -197,6 +257,18 @@ void AliAnalysisTaskEmcalJetMassBkg::UserCreateOutputObjects() const Double_t minPt = -50.; const Double_t maxPt = 200.; + const Int_t nBinsE = 250; + const Double_t minE = -50.; + const Double_t maxE = 200.; + + const Int_t nBinsM = 150; + const Double_t minM = -50.; + const Double_t maxM = 100.; + + const Int_t nBinsEta = 100; + const Double_t minEta = -1.; + const Double_t maxEta = 1.; + const Int_t nBinsCent = 100; const Double_t minCent = 0.; const Double_t maxCent = 100.; @@ -205,64 +277,64 @@ void AliAnalysisTaskEmcalJetMassBkg::UserCreateOutputObjects() const Double_t minMult = 0.; const Double_t maxMult = 4000.; - fh2CentVsMassRC = new TH2F("fh2CentVsMassRC","fh2CentVsMassRC;cent;#it{M}_{RC}",nBinsCent,minCent,maxCent,nBinsPt,minPt,maxPt); + fh2CentVsMassRC = new TH2F("fh2CentVsMassRC","fh2CentVsMassRC;cent;#it{M}_{RC}",nBinsCent,minCent,maxCent,nBinsM,minM,maxM); fOutput->Add(fh2CentVsMassRC); - fh2CentVsMassRCExLJ = new TH2F("fh2CentVsMassRCExLJ","fh2CentVsMassRCExLJ;cent;#it{M}_{RC}",nBinsCent,minCent,maxCent,nBinsPt,minPt,maxPt); + fh2CentVsMassRCExLJ = new TH2F("fh2CentVsMassRCExLJ","fh2CentVsMassRCExLJ;cent;#it{M}_{RC}",nBinsCent,minCent,maxCent,nBinsM,minM,maxM); fOutput->Add(fh2CentVsMassRCExLJ); - fh2CentVsMassPerpConeLJ = new TH2F("fh2CentVsMassPerpConeLJ","fh2CentVsMassPerpConeLJ;cent;#it{M}_{RC}",nBinsCent,minCent,maxCent,nBinsPt,minPt,maxPt); + fh2CentVsMassPerpConeLJ = new TH2F("fh2CentVsMassPerpConeLJ","fh2CentVsMassPerpConeLJ;cent;#it{M}_{RC}",nBinsCent,minCent,maxCent,nBinsM,minM,maxM); fOutput->Add(fh2CentVsMassPerpConeLJ); - fh2CentVsMassPerpConeTJ = new TH2F("fh2CentVsMassPerpConeTJ","fh2CentVsMassPerpConeTJ;cent;#it{M}_{RC}",nBinsCent,minCent,maxCent,nBinsPt,minPt,maxPt); + fh2CentVsMassPerpConeTJ = new TH2F("fh2CentVsMassPerpConeTJ","fh2CentVsMassPerpConeTJ;cent;#it{M}_{RC}",nBinsCent,minCent,maxCent,nBinsM,minM,maxM); fOutput->Add(fh2CentVsMassPerpConeTJ); - fh2MultVsMassRC = new TH2F("fh2MultVsMassRC","fh2MultVsMassRC;#it{N}_{track};#it{M}_{RC}",nBinsMult,minMult,maxMult,nBinsPt,minPt,maxPt); + fh2MultVsMassRC = new TH2F("fh2MultVsMassRC","fh2MultVsMassRC;#it{N}_{track};#it{M}_{RC}",nBinsMult,minMult,maxMult,nBinsM,minM,maxM); fOutput->Add(fh2MultVsMassRC); - fh2MultVsMassRCExLJ = new TH2F("fh2MultVsMassRCExLJ","fh2MultVsMassRCExLJ;#it{N}_{track};#it{M}_{RC}",nBinsMult,minMult,maxMult,nBinsPt,minPt,maxPt); + fh2MultVsMassRCExLJ = new TH2F("fh2MultVsMassRCExLJ","fh2MultVsMassRCExLJ;#it{N}_{track};#it{M}_{RC}",nBinsMult,minMult,maxMult,nBinsM,minM,maxM); fOutput->Add(fh2MultVsMassRCExLJ); - fh2MultVsMassPerpConeLJ = new TH2F("fh2MultVsMassPerpConeLJ","fh2MultVsMassPerpConeLJ;#it{N}_{track};#it{M}_{RC}",nBinsMult,minMult,maxMult,nBinsPt,minPt,maxPt); + fh2MultVsMassPerpConeLJ = new TH2F("fh2MultVsMassPerpConeLJ","fh2MultVsMassPerpConeLJ;#it{N}_{track};#it{M}_{RC}",nBinsMult,minMult,maxMult,nBinsM,minM,maxM); fOutput->Add(fh2MultVsMassPerpConeLJ); - fh2MultVsMassPerpConeTJ = new TH2F("fh2MultVsMassPerpConeTJ","fh2MultVsMassPerpConeTJ;#it{N}_{track};#it{M}_{RC}",nBinsMult,minMult,maxMult,nBinsPt,minPt,maxPt); + fh2MultVsMassPerpConeTJ = new TH2F("fh2MultVsMassPerpConeTJ","fh2MultVsMassPerpConeTJ;#it{N}_{track};#it{M}_{RC}",nBinsMult,minMult,maxMult,nBinsM,minM,maxM); fOutput->Add(fh2MultVsMassPerpConeTJ); - fh2CentVsMedianMassRC = new TH2F("fh2CentVsMedianMassRC","fh2CentVsMedianMassRC;cent;#it{M}_{RC}",nBinsCent,minCent,maxCent,nBinsPt,minPt,maxPt); + fh2CentVsMedianMassRC = new TH2F("fh2CentVsMedianMassRC","fh2CentVsMedianMassRC;cent;#it{M}_{RC}",nBinsCent,minCent,maxCent,nBinsM,minM,maxM); fOutput->Add(fh2CentVsMedianMassRC); - fh2CentVsMedianMassRCExLJ = new TH2F("fh2CentVsMedianMassRCExLJ","fh2CentVsMedianMassRCExLJ;cent;#it{M}_{RC}",nBinsCent,minCent,maxCent,nBinsPt,minPt,maxPt); + fh2CentVsMedianMassRCExLJ = new TH2F("fh2CentVsMedianMassRCExLJ","fh2CentVsMedianMassRCExLJ;cent;#it{M}_{RC}",nBinsCent,minCent,maxCent,nBinsM,minM,maxM); fOutput->Add(fh2CentVsMedianMassRCExLJ); - fh2MultVsMedianMassRC = new TH2F("fh2MultVsMedianMassRC","fh2MultVsMedianMassRC;#it{N}_{track};#it{M}_{RC}",nBinsMult,minMult,maxMult,nBinsPt,minPt,maxPt); + fh2MultVsMedianMassRC = new TH2F("fh2MultVsMedianMassRC","fh2MultVsMedianMassRC;#it{N}_{track};#it{M}_{RC}",nBinsMult,minMult,maxMult,nBinsM,minM,maxM); fOutput->Add(fh2MultVsMedianMassRC); - fh2MultVsMedianMassRCExLJ = new TH2F("fh2MultVsMedianMassRCExLJ","fh2MultVsMedianMassRCExLJ;#it{N}_{track};#it{M}_{RC}",nBinsMult,minMult,maxMult,nBinsPt,minPt,maxPt); + fh2MultVsMedianMassRCExLJ = new TH2F("fh2MultVsMedianMassRCExLJ","fh2MultVsMedianMassRCExLJ;#it{N}_{track};#it{M}_{RC}",nBinsMult,minMult,maxMult,nBinsM,minM,maxM); fOutput->Add(fh2MultVsMedianMassRCExLJ); - fh2CentVsMeanMassRC = new TH2F("fh2CentVsMeanMassRC","fh2CentVsMeanMassRC;cent;#it{M}_{RC}",nBinsCent,minCent,maxCent,nBinsPt,minPt,maxPt); + fh2CentVsMeanMassRC = new TH2F("fh2CentVsMeanMassRC","fh2CentVsMeanMassRC;cent;#it{M}_{RC}",nBinsCent,minCent,maxCent,nBinsM,minM,maxM); fOutput->Add(fh2CentVsMeanMassRC); - fh2CentVsMeanMassRCExLJ = new TH2F("fh2CentVsMeanMassRCExLJ","fh2CentVsMeanMassRCExLJ;cent;#it{M}_{RC}",nBinsCent,minCent,maxCent,nBinsPt,minPt,maxPt); + fh2CentVsMeanMassRCExLJ = new TH2F("fh2CentVsMeanMassRCExLJ","fh2CentVsMeanMassRCExLJ;cent;#it{M}_{RC}",nBinsCent,minCent,maxCent,nBinsM,minM,maxM); fOutput->Add(fh2CentVsMeanMassRCExLJ); - fh2MultVsMeanMassRC = new TH2F("fh2MultVsMeanMassRC","fh2MultVsMeanMassRC;#it{N}_{track};#it{M}_{RC}",nBinsMult,minMult,maxMult,nBinsPt,minPt,maxPt); + fh2MultVsMeanMassRC = new TH2F("fh2MultVsMeanMassRC","fh2MultVsMeanMassRC;#it{N}_{track};#it{M}_{RC}",nBinsMult,minMult,maxMult,nBinsM,minM,maxM); fOutput->Add(fh2MultVsMeanMassRC); - fh2MultVsMeanMassRCExLJ = new TH2F("fh2MultVsMeanMassRCExLJ","fh2MultVsMeanMassRCExLJ;#it{N}_{track};#it{M}_{RC}",nBinsMult,minMult,maxMult,nBinsPt,minPt,maxPt); + fh2MultVsMeanMassRCExLJ = new TH2F("fh2MultVsMeanMassRCExLJ","fh2MultVsMeanMassRCExLJ;#it{N}_{track};#it{M}_{RC}",nBinsMult,minMult,maxMult,nBinsM,minM,maxM); fOutput->Add(fh2MultVsMeanMassRCExLJ); - fh2CentVsMedianMassPerAreaRC = new TH2F("fh2CentVsMedianMassPerAreaRC","fh2CentVsMedianMassPerAreaRC;cent;#it{M}_{RC}/A",nBinsCent,minCent,maxCent,nBinsPt,minPt,maxPt); + fh2CentVsMedianMassPerAreaRC = new TH2F("fh2CentVsMedianMassPerAreaRC","fh2CentVsMedianMassPerAreaRC;cent;#it{M}_{RC}/A",nBinsCent,minCent,maxCent,nBinsM,minM,maxM); fOutput->Add(fh2CentVsMedianMassPerAreaRC); - fh2CentVsMedianMassPerAreaRCExLJ = new TH2F("fh2CentVsMedianMassPerAreaRCExLJ","fh2CentVsMedianMassPerAreaRCExLJ;cent;#it{M}_{RC}/A",nBinsCent,minCent,maxCent,nBinsPt,minPt,maxPt); + fh2CentVsMedianMassPerAreaRCExLJ = new TH2F("fh2CentVsMedianMassPerAreaRCExLJ","fh2CentVsMedianMassPerAreaRCExLJ;cent;#it{M}_{RC}/A",nBinsCent,minCent,maxCent,nBinsM,minM,maxM); fOutput->Add(fh2CentVsMedianMassPerAreaRCExLJ); - fh2MultVsMedianMassPerAreaRC = new TH2F("fh2MultVsMedianMassPerAreaRC","fh2MultVsMedianMassPerAreaRC;#it{N}_{track};#it{M}_{RC}/A",nBinsMult,minMult,maxMult,nBinsPt,minPt,maxPt); + fh2MultVsMedianMassPerAreaRC = new TH2F("fh2MultVsMedianMassPerAreaRC","fh2MultVsMedianMassPerAreaRC;#it{N}_{track};#it{M}_{RC}/A",nBinsMult,minMult,maxMult,nBinsM,minM,maxM); fOutput->Add(fh2MultVsMedianMassPerAreaRC); - fh2MultVsMedianMassPerAreaRCExLJ = new TH2F("fh2MultVsMedianMassPerAreaRCExLJ","fh2MultVsMedianMassPerAreaRCExLJ;#it{N}_{track};#it{M}_{RC}/A",nBinsMult,minMult,maxMult,nBinsPt,minPt,maxPt); + fh2MultVsMedianMassPerAreaRCExLJ = new TH2F("fh2MultVsMedianMassPerAreaRCExLJ","fh2MultVsMedianMassPerAreaRCExLJ;#it{N}_{track};#it{M}_{RC}/A",nBinsMult,minMult,maxMult,nBinsM,minM,maxM); fOutput->Add(fh2MultVsMedianMassPerAreaRCExLJ); TString histName = ""; @@ -270,39 +342,79 @@ void AliAnalysisTaskEmcalJetMassBkg::UserCreateOutputObjects() for (Int_t i = 0; i < fNcentBins; i++) { histName = TString::Format("fh2PtVsMassRC_%d",i); histTitle = TString::Format("%s;#it{p}_{T,RC};#it{M}_{RC}",histName.Data()); - fh2PtVsMassRC[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsPt,minPt,maxPt); + fh2PtVsMassRC[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsM,minM,maxM); fOutput->Add(fh2PtVsMassRC[i]); - histName = TString::Format("fpPtVsMassRC_%d",i); - histTitle = TString::Format("%s;#it{p}_{T,RC};Avg #it{M}_{RC}",histName.Data()); - fpPtVsMassRC[i] = new TProfile(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt); - fOutput->Add(fpPtVsMassRC[i]); - histName = TString::Format("fh2PtVsMassRCExLJDPhi_%d",i); histTitle = TString::Format("%s;#it{p}_{T,RC};#it{M}_{RC}",histName.Data()); fh2PtVsMassRCExLJDPhi[i] = new TH3F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsPt,minPt,maxPt,72,-0.5*TMath::Pi(),1.5*TMath::Pi()); fOutput->Add(fh2PtVsMassRCExLJDPhi[i]); + histName = TString::Format("fh2PtVsMassPerpConeLJ_%d",i); + histTitle = TString::Format("%s;#it{p}_{T,PerpConeLJ};#it{M}_{PerpConeLJ}",histName.Data()); + fh2PtVsMassPerpConeLJ[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsM,minM,maxM); + fOutput->Add(fh2PtVsMassPerpConeLJ[i]); + + histName = TString::Format("fh2PtVsMassPerpConeTJ_%d",i); + histTitle = TString::Format("%s;#it{p}_{T,PerpConeTJ};#it{M}_{PerpConeTJ}",histName.Data()); + fh2PtVsMassPerpConeTJ[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsM,minM,maxM); + fOutput->Add(fh2PtVsMassPerpConeTJ[i]); + // + histName = TString::Format("fh2PtVsERC_%d",i); + histTitle = TString::Format("%s;#it{p}_{T,RC};#it{M}_{RC}",histName.Data()); + fh2PtVsERC[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsE,minE,maxE); + fOutput->Add(fh2PtVsERC[i]); + + histName = TString::Format("fh2PtVsERCExLJDPhi_%d",i); + histTitle = TString::Format("%s;#it{p}_{T,RC};#it{M}_{RC}",histName.Data()); + fh2PtVsERCExLJDPhi[i] = new TH3F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsPt,minPt,maxPt,72,-0.5*TMath::Pi(),1.5*TMath::Pi()); + fOutput->Add(fh2PtVsERCExLJDPhi[i]); + + histName = TString::Format("fh2PtVsEPerpConeLJ_%d",i); + histTitle = TString::Format("%s;#it{p}_{T,PerpConeLJ};#it{M}_{PerpConeLJ}",histName.Data()); + fh2PtVsEPerpConeLJ[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsE,minE,maxE); + fOutput->Add(fh2PtVsEPerpConeLJ[i]); + + histName = TString::Format("fh2PtVsEPerpConeTJ_%d",i); + histTitle = TString::Format("%s;#it{p}_{T,PerpConeTJ};#it{M}_{PerpConeTJ}",histName.Data()); + fh2PtVsEPerpConeTJ[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsE,minE,maxE); + fOutput->Add(fh2PtVsEPerpConeTJ[i]); + // + histName = TString::Format("fh2EtaVsMassRC_%d",i); + histTitle = TString::Format("%s;#eta_{RC};#it{M}_{RC}",histName.Data()); + fh2EtaVsMassRC[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsEta,minEta,maxEta,nBinsM,minM,maxM); + fOutput->Add(fh2EtaVsMassRC[i]); + + histName = TString::Format("fh2EtaVsMassRCExLJ_%d",i); + histTitle = TString::Format("%s;#eta_{RC};#it{M}_{RC}",histName.Data()); + fh2EtaVsMassRCExLJ[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsEta,minEta,maxEta,nBinsM,minM,maxM); + fOutput->Add(fh2EtaVsMassRCExLJ[i]); + + histName = TString::Format("fh2EtaVsMassPerpConeLJ_%d",i); + histTitle = TString::Format("%s;#eta_{PerpConeLJ};#it{M}_{PerpConeLJ}",histName.Data()); + fh2EtaVsMassPerpConeLJ[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsEta,minEta,maxEta,nBinsM,minM,maxM); + fOutput->Add(fh2EtaVsMassPerpConeLJ[i]); + + histName = TString::Format("fh2EtaVsMassPerpConeTJ_%d",i); + histTitle = TString::Format("%s;#eta_{PerpConeTJ};#it{M}_{PerpConeTJ}",histName.Data()); + fh2EtaVsMassPerpConeTJ[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsEta,minEta,maxEta,nBinsM,minM,maxM); + fOutput->Add(fh2EtaVsMassPerpConeTJ[i]); + + histName = TString::Format("fpPtVsMassRC_%d",i); + histTitle = TString::Format("%s;#it{p}_{T,RC};Avg #it{M}_{RC}",histName.Data()); + fpPtVsMassRC[i] = new TProfile(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt); + fOutput->Add(fpPtVsMassRC[i]); + histName = TString::Format("fpPtVsMassRCExLJ_%d",i); histTitle = TString::Format("%s;#it{p}_{T,RC};Avg #it{M}_{RC}",histName.Data()); fpPtVsMassRCExLJ[i] = new TProfile(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt); fOutput->Add(fpPtVsMassRCExLJ[i]); - histName = TString::Format("fh2PtVsMassPerpConeLJ_%d",i); - histTitle = TString::Format("%s;#it{p}_{T,PerpConeLJ};#it{M}_{PerpConeLJ}",histName.Data()); - fh2PtVsMassPerpConeLJ[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsPt,minPt,maxPt); - fOutput->Add(fh2PtVsMassPerpConeLJ[i]); - histName = TString::Format("fpPtVsMassPerpConeLJ_%d",i); histTitle = TString::Format("%s;#it{p}_{T,RC};Avg #it{M}_{RC}",histName.Data()); fpPtVsMassPerpConeLJ[i] = new TProfile(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt); fOutput->Add(fpPtVsMassPerpConeLJ[i]); - histName = TString::Format("fh2PtVsMassPerpConeTJ_%d",i); - histTitle = TString::Format("%s;#it{p}_{T,PerpConeTJ};#it{M}_{PerpConeTJ}",histName.Data()); - fh2PtVsMassPerpConeTJ[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsPt,minPt,maxPt); - fOutput->Add(fh2PtVsMassPerpConeTJ[i]); - histName = TString::Format("fpPtVsMassPerpConeTJ_%d",i); histTitle = TString::Format("%s;#it{p}_{T,RC};Avg #it{M}_{RC}",histName.Data()); fpPtVsMassPerpConeTJ[i] = new TProfile(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt); @@ -350,10 +462,10 @@ Bool_t AliAnalysisTaskEmcalJetMassBkg::FillHistograms() jet = fJetsCont->GetLeadingJet("rho"); TLorentzVector lvRC(0.,0.,0.,0.); + TLorentzVector lvRCS(0.,0.,0.,0.); Float_t RCpt = 0; Float_t RCeta = 0; Float_t RCphi = 0; - Float_t RCmass = 0.; static Double_t massvecRC[999]; static Double_t massPerAreavecRC[999]; @@ -371,15 +483,17 @@ Bool_t AliAnalysisTaskEmcalJetMassBkg::FillHistograms() RCeta = 0; RCphi = 0; GetRandomCone(lvRC,RCpt, RCeta, RCphi, fTracksCont, fCaloClustersCont, 0); - RCmass = lvRC.M(); if (RCpt > 0) { - fh2PtVsMassRC[fCentBin]->Fill(RCpt - rho*rcArea,RCmass); - fpPtVsMassRC[fCentBin]->Fill(RCpt - rho*rcArea,RCmass); - fh2CentVsMassRC->Fill(fCent,RCmass); - fh2MultVsMassRC->Fill(trackMult,RCmass); - - massvecRC[nRCAcc] = RCmass; - massPerAreavecRC[nRCAcc] = RCmass/rcArea; + lvRCS = GetSubtractedVector(lvRC.Pt(),lvRC.Eta(),lvRC.Phi(),lvRC.E()); + fh2PtVsMassRC[fCentBin]->Fill(RCpt-rho*rcArea,lvRCS.M()); + fh2PtVsERC[fCentBin]->Fill(RCpt-rho*rcArea,lvRCS.E()); + fpPtVsMassRC[fCentBin]->Fill(RCpt-rho*rcArea,lvRCS.M()); + fh2EtaVsMassRC[fCentBin]->Fill(lvRCS.Eta(),lvRCS.M()); + fh2CentVsMassRC->Fill(fCent,lvRCS.M()); + fh2MultVsMassRC->Fill(trackMult,lvRCS.M()); + + massvecRC[nRCAcc] = lvRCS.M(); + massPerAreavecRC[nRCAcc] = massvecRC[nRCAcc]/rcArea; ++nRCAcc; } @@ -390,18 +504,20 @@ Bool_t AliAnalysisTaskEmcalJetMassBkg::FillHistograms() RCeta = 0; RCphi = 0; GetRandomCone(lvRC,RCpt, RCeta, RCphi, fTracksCont, fCaloClustersCont, jet); - RCmass = lvRC.M(); if (RCpt > 0 && jet) { + lvRCS = GetSubtractedVector(lvRC.Pt(),lvRC.Eta(),lvRC.Phi(),lvRC.E()); Float_t dphi = RCphi - jet->Phi(); if (dphi > 1.5*TMath::Pi()) dphi -= TMath::Pi() * 2; if (dphi < -0.5*TMath::Pi()) dphi += TMath::Pi() * 2; - fh2PtVsMassRCExLJDPhi[fCentBin]->Fill(RCpt - rho*rcArea,RCmass,dphi); - fpPtVsMassRCExLJ[fCentBin]->Fill(RCpt - rho*rcArea,RCmass); - fh2CentVsMassRCExLJ->Fill(fCent,RCmass); - fh2MultVsMassRCExLJ->Fill(trackMult,RCmass); - - massvecRCExLJ[nRCExLJAcc] = RCmass; - massPerAreavecRCExLJ[nRCExLJAcc] = RCmass/rcArea; + fh2PtVsMassRCExLJDPhi[fCentBin]->Fill(RCpt-rho*rcArea,lvRCS.M(),dphi); + fh2PtVsERCExLJDPhi[fCentBin]->Fill(RCpt-rho*rcArea,lvRCS.E(),dphi); + fpPtVsMassRCExLJ[fCentBin]->Fill(RCpt-rho*rcArea,lvRCS.M()); + fh2EtaVsMassRCExLJ[fCentBin]->Fill(lvRCS.Eta(),lvRCS.M()); + fh2CentVsMassRCExLJ->Fill(fCent,lvRCS.M()); + fh2MultVsMassRCExLJ->Fill(trackMult,lvRCS.M()); + + massvecRCExLJ[nRCExLJAcc] = lvRCS.M(); + massPerAreavecRCExLJ[nRCExLJAcc] = lvRCS.M()/rcArea; ++nRCExLJAcc; } } @@ -441,18 +557,20 @@ Bool_t AliAnalysisTaskEmcalJetMassBkg::FillHistograms() if(fJetsCont && jet) { //cone perpendicular to leading jet TLorentzVector lvPC(0.,0.,0.,0.); + TLorentzVector lvPCS(0.,0.,0.,0.); Float_t PCpt = 0; Float_t PCeta = 0; Float_t PCphi = 0; - Float_t PCmass = 0.; if(jet) { GetPerpCone(lvPC,PCpt, PCeta, PCphi, fTracksCont, fCaloClustersCont, jet); - PCmass = lvPC.M(); if(PCpt>0.) { - fh2PtVsMassPerpConeLJ[fCentBin]->Fill(PCpt-rho*rcArea,PCmass); - fpPtVsMassPerpConeLJ[fCentBin]->Fill(PCpt-rho*rcArea,PCmass); - fh2CentVsMassPerpConeLJ->Fill(fCent,PCmass); - fh2MultVsMassPerpConeLJ->Fill(trackMult,PCmass); + lvPCS = GetSubtractedVector(lvPC.Pt(),lvPC.Eta(),lvPC.Phi(),lvPC.E()); + fh2PtVsMassPerpConeLJ[fCentBin]->Fill(PCpt-rho*rcArea,lvPCS.M()); + fh2PtVsEPerpConeLJ[fCentBin]->Fill(PCpt-rho*rcArea,lvPCS.E()); + fpPtVsMassPerpConeLJ[fCentBin]->Fill(PCpt-rho*rcArea,lvPCS.M()); + fh2EtaVsMassPerpConeLJ[fCentBin]->Fill(lvPCS.Eta(),lvPCS.M()); + fh2CentVsMassPerpConeLJ->Fill(fCent,lvPCS.M()); + fh2MultVsMassPerpConeLJ->Fill(trackMult,lvPCS.M()); } } //cone perpendicular to all tagged jets @@ -468,12 +586,14 @@ Bool_t AliAnalysisTaskEmcalJetMassBkg::FillHistograms() PCeta = 0; PCphi = 0; GetPerpCone(lvPC,PCpt, PCeta, PCphi, fTracksCont, fCaloClustersCont, jet); - PCmass = lvPC.M(); if(PCpt>0.) { - fh2PtVsMassPerpConeTJ[fCentBin]->Fill(PCpt-rho*rcArea,PCmass); - fpPtVsMassPerpConeTJ[fCentBin]->Fill(PCpt-rho*rcArea,PCmass); - fh2CentVsMassPerpConeTJ->Fill(fCent,PCmass); - fh2MultVsMassPerpConeTJ->Fill(trackMult,PCmass); + lvPCS = GetSubtractedVector(lvPC.Pt(),lvPC.Eta(),lvPC.Phi(),lvPC.E()); + fh2PtVsMassPerpConeTJ[fCentBin]->Fill(PCpt-rho*rcArea,lvPCS.M()); + fh2PtVsEPerpConeTJ[fCentBin]->Fill(PCpt-rho*rcArea,lvPCS.E()); + fpPtVsMassPerpConeTJ[fCentBin]->Fill(PCpt-rho*rcArea,lvPCS.M()); + fh2EtaVsMassPerpConeTJ[fCentBin]->Fill(lvPCS.Eta(),lvPCS.M()); + fh2CentVsMassPerpConeTJ->Fill(fCent,lvPCS.M()); + fh2MultVsMassPerpConeTJ->Fill(trackMult,lvPCS.M()); } }//jet loop } @@ -662,6 +782,28 @@ void AliAnalysisTaskEmcalJetMassBkg::ExecOnce() { } + //________________________________________________________________________ +TLorentzVector AliAnalysisTaskEmcalJetMassBkg::GetBkgVector(Double_t eta, Double_t phi, AliJetContainer *cont) { + //get background vector + + Double_t rho = cont->GetRhoVal(); + Double_t rhom = cont->GetRhoMassVal(); + TLorentzVector vpB(0.,0.,0.,0.); + Double_t aRC = TMath::Pi()*fConeRadius*fConeRadius; + vpB.SetPxPyPzE(rho*TMath::Cos(phi)*aRC,rho*TMath::Sin(phi)*aRC,(rho+rhom)*TMath::SinH(eta)*aRC,(rho+rhom)*TMath::CosH(eta)*aRC); + return vpB; +} + +//________________________________________________________________________ +TLorentzVector AliAnalysisTaskEmcalJetMassBkg::GetSubtractedVector(Double_t pt, Double_t eta, Double_t phi, Double_t e) { + //get subtracted vector + TLorentzVector vpS; + AliJetContainer *jetCont = GetJetContainer(fContainerBase); + TLorentzVector vpBkg = GetBkgVector(eta,phi,jetCont); + vpS.SetPxPyPzE(pt*TMath::Cos(phi)-vpBkg.Px(),pt*TMath::Sin(phi)-vpBkg.Py(),pt*TMath::SinH(eta)-vpBkg.Pz(),e-vpBkg.E()); + return vpS; +} + //________________________________________________________________________ Bool_t AliAnalysisTaskEmcalJetMassBkg::RetrieveEventObjects() { //