From 9e5eee5d22963885772475b96f8524f0b12b183a Mon Sep 17 00:00:00 2001 From: loizides Date: Sun, 8 Sep 2013 21:04:53 +0000 Subject: [PATCH] From Marta and Redmer: - possibility to cut on NEF in AliJetContainer - JetTriggerQA now compatible with Dev classes - updates to DiJet analysis classes so that they are compatible with new framework - small bug fix in AddTask macro of rho sparse task - setters for z leading and NEF cuts in base class --- .../AliAnalysisTaskEmcalJetDev.cxx | 16 ++ .../AliAnalysisTaskEmcalJetDev.h | 2 + .../EMCALJetTasks/AliAnalysisTaskLocalRho.cxx | 131 +++---------- PWGJE/EMCALJetTasks/AliAnalysisTaskLocalRho.h | 20 +- PWGJE/EMCALJetTasks/AliJetContainer.cxx | 33 ++++ PWGJE/EMCALJetTasks/AliJetContainer.h | 13 +- .../AliAnalysisTaskEmcalJetTriggerQA.cxx | 177 +++++------------ .../AliAnalysisTaskEmcalJetTriggerQA.h | 31 +-- .../AliAnalysisTaskRhoVnModulation.cxx | 184 +++++------------- .../AliAnalysisTaskRhoVnModulation.h | 30 ++- .../macros/AddTaskEmcalDiJetAna.C | 20 +- .../macros/AddTaskEmcalDiJetResponse.C | 4 +- .../macros/AddTaskEmcalJetTriggerQA.C | 49 ++--- PWGJE/EMCALJetTasks/macros/AddTaskRhoSparse.C | 39 ++-- 14 files changed, 267 insertions(+), 482 deletions(-) diff --git a/PWGJE/EMCALJetTasks/AliAnalysisTaskEmcalJetDev.cxx b/PWGJE/EMCALJetTasks/AliAnalysisTaskEmcalJetDev.cxx index 674ce04a53f..ffe5ba51ea5 100644 --- a/PWGJE/EMCALJetTasks/AliAnalysisTaskEmcalJetDev.cxx +++ b/PWGJE/EMCALJetTasks/AliAnalysisTaskEmcalJetDev.cxx @@ -383,6 +383,22 @@ void AliAnalysisTaskEmcalJetDev::SetPercAreaCut(Float_t p, Int_t c) else AliError(Form("%s in SetPercAreaCut(...): container %d not found",GetName(),c)); } +//________________________________________________________________________ +void AliAnalysisTaskEmcalJetDev::SetZLeadingCut(Float_t zemc, Float_t zch, Int_t c) +{ + AliJetContainer *cont = GetJetContainer(c); + if (cont) cont->SetZLeadingCut(zemc,zch); + else AliError(Form("%s in SetZLeadingCut(...): container %d not found",GetName(),c)); +} + +//________________________________________________________________________ +void AliAnalysisTaskEmcalJetDev::SetNEFCut(Float_t min, Float_t max, Int_t c) +{ + AliJetContainer *cont = GetJetContainer(c); + if (cont) cont->SetNEFCut(min,max); + else AliError(Form("%s in SetNEFCut(...): container %d not found",GetName(),c)); +} + //________________________________________________________________________ void AliAnalysisTaskEmcalJetDev::SetAreaEmcCut(Double_t a, Int_t c) { diff --git a/PWGJE/EMCALJetTasks/AliAnalysisTaskEmcalJetDev.h b/PWGJE/EMCALJetTasks/AliAnalysisTaskEmcalJetDev.h index eb348814283..865b6816eb4 100644 --- a/PWGJE/EMCALJetTasks/AliAnalysisTaskEmcalJetDev.h +++ b/PWGJE/EMCALJetTasks/AliAnalysisTaskEmcalJetDev.h @@ -29,6 +29,8 @@ class AliAnalysisTaskEmcalJetDev : public AliAnalysisTaskEmcalDev { void SetJetPhiLimits(Float_t min, Float_t max, Int_t c = 0); void SetJetAreaCut(Float_t cut, Int_t c = 0); void SetPercAreaCut(Float_t p, Int_t c = 0); + void SetZLeadingCut(Float_t zemc, Float_t zch, Int_t c = 0); + void SetNEFCut(Float_t min, Float_t max, Int_t c = 0); void SetAreaEmcCut(Double_t a = 0.99, Int_t c = 0); void SetJetPtCut(Float_t cut, Int_t c = 0); void SetJetRadius(Float_t r, Int_t c = 0); diff --git a/PWGJE/EMCALJetTasks/AliAnalysisTaskLocalRho.cxx b/PWGJE/EMCALJetTasks/AliAnalysisTaskLocalRho.cxx index b76785dc569..e27ec7f5cf2 100644 --- a/PWGJE/EMCALJetTasks/AliAnalysisTaskLocalRho.cxx +++ b/PWGJE/EMCALJetTasks/AliAnalysisTaskLocalRho.cxx @@ -44,7 +44,7 @@ using namespace std; ClassImp(AliAnalysisTaskLocalRho) -AliAnalysisTaskLocalRho::AliAnalysisTaskLocalRho() : AliAnalysisTaskEmcalJet("AliAnalysisTaskLocalRho", kTRUE), +AliAnalysisTaskLocalRho::AliAnalysisTaskLocalRho() : AliAnalysisTaskEmcalJetDev("AliAnalysisTaskLocalRho", kTRUE), fDebug(0), fInitialized(0), fAttachToEvent(kTRUE), fFillHistograms(kFALSE), fNoEventWeightsForQC(kTRUE), fUseScaledRho(0), fCentralityClasses(0), fUserSuppliedV2(0), fUserSuppliedV3(0), fUserSuppliedR2(0), fUserSuppliedR3(0), fNAcceptedTracks(0), fNAcceptedTracksQCn(0), fInCentralitySelection(-1), fFitModulationType(kNoFit), fQCRecovery(kTryFit), fUsePtWeight(kTRUE), fDetectorType(kTPC), fFitModulationOptions("WLQI"), fRunModeType(kGrid), fFitModulation(0), fMinPvalue(0.01), fMaxPvalue(1), fLocalJetMinEta(-10), fLocalJetMaxEta(-10), fLocalJetMinPhi(-10), fLocalJetMaxPhi(-10), fSoftTrackMinPt(0.15), fSoftTrackMaxPt(5.), fHistPvalueCDF(0), fAbsVnHarmonics(kTRUE), fExcludeLeadingJetsFromFit(1.), fRebinSwapHistoOnTheFly(kTRUE), fPercentageOfFits(10.), fUseV0EventPlaneFromHeader(kTRUE), fOutputList(0), fOutputListGood(0), fOutputListBad(0), fHistSwap(0), fHistAnalysisSummary(0), fProfV2(0), fProfV2Cumulant(0), fProfV3(0), fProfV3Cumulant(0) { for(Int_t i(0); i < 10; i++) { fHistPsi2[i] = 0; @@ -53,7 +53,7 @@ AliAnalysisTaskLocalRho::AliAnalysisTaskLocalRho() : AliAnalysisTaskEmcalJet("Al // default constructor } //_____________________________________________________________________________ -AliAnalysisTaskLocalRho::AliAnalysisTaskLocalRho(const char* name, runModeType type) : AliAnalysisTaskEmcalJet(name, kTRUE), +AliAnalysisTaskLocalRho::AliAnalysisTaskLocalRho(const char* name, runModeType type) : AliAnalysisTaskEmcalJetDev(name, kTRUE), fDebug(0), fInitialized(0), fAttachToEvent(kTRUE), fFillHistograms(kFALSE), fNoEventWeightsForQC(kTRUE), fUseScaledRho(0), fCentralityClasses(0), fUserSuppliedV2(0), fUserSuppliedV3(0), fUserSuppliedR2(0), fUserSuppliedR3(0), fNAcceptedTracks(0), fNAcceptedTracksQCn(0), fInCentralitySelection(-1), fFitModulationType(kNoFit), fQCRecovery(kTryFit), fUsePtWeight(kTRUE), fDetectorType(kTPC), fFitModulationOptions("WLQI"), fRunModeType(type), fFitModulation(0), fMinPvalue(0.01), fMaxPvalue(1), fLocalJetMinEta(-10), fLocalJetMaxEta(-10), fLocalJetMinPhi(-10), fLocalJetMaxPhi(-10), fSoftTrackMinPt(0.15), fSoftTrackMaxPt(5.), fHistPvalueCDF(0), fAbsVnHarmonics(kTRUE), fExcludeLeadingJetsFromFit(1.), fRebinSwapHistoOnTheFly(kTRUE), fPercentageOfFits(10.), fUseV0EventPlaneFromHeader(kTRUE), fOutputList(0), fOutputListGood(0), fOutputListBad(0), fHistSwap(0), fHistAnalysisSummary(0), fProfV2(0), fProfV2Cumulant(0), fProfV3(0), fProfV3Cumulant(0) { for(Int_t i(0); i < 10; i++) { fHistPsi2[i] = 0; @@ -95,7 +95,7 @@ void AliAnalysisTaskLocalRho::ExecOnce() AliFatal(Form("%s: Container with same name %s already present. Aborting", GetName(), fLocalRho->GetName())); } } - AliAnalysisTaskEmcalJet::ExecOnce(); // init the base clas + AliAnalysisTaskEmcalJetDev::ExecOnce(); // init the base clas if(fUseScaledRho) { // unscaled rho has been retrieved by the parent class, now we retrieve rho scaled fRho = dynamic_cast(InputEvent()->FindListObject(Form("%s_Scaled", fRho->GetName()))); @@ -103,6 +103,7 @@ void AliAnalysisTaskLocalRho::ExecOnce() AliFatal(Form("%s: Couldn't find container for scaled rho. Aborting !", GetName())); } } + if(!GetJetContainer()) AliFatal(Form("%s: Couldn't get jet container. Aborting !", GetName())); } //_____________________________________________________________________________ Bool_t AliAnalysisTaskLocalRho::InitializeAnalysis() @@ -428,33 +429,23 @@ void AliAnalysisTaskLocalRho::CalculateEventPlaneVZERO(Double_t vzero[2][2]) con void AliAnalysisTaskLocalRho::CalculateEventPlaneTPC(Double_t* tpc) { // grab the TPC event plane. if parameter fExcludeLeadingJetsFromFit is larger than 0, - // strip in eta of width fExcludeLeadingJetsFromFit * fJetRadius around the leading jet (before + // strip in eta of width fExcludeLeadingJetsFromFit * GetJetContainer()->GetJetRadius() around the leading jet (before // subtraction of rho) will be exluded from the event plane estimate if(fDebug > 0) printf("__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__); fNAcceptedTracks = 0; // reset the track counter Double_t qx2(0), qy2(0); // for psi2 Double_t qx3(0), qy3(0); // for psi3 if(fTracks) { - Float_t excludeInEta[] = {-999, -999}; + Float_t excludeInEta = -999; if(fExcludeLeadingJetsFromFit > 0 ) { // remove the leading jet from ep estimate - AliEmcalJet* leadingJet[] = {0x0, 0x0}; - static Int_t lJets[9999] = {-1}; - GetSortedArray(lJets, fJets); - for(Int_t i(0); i < fJets->GetEntriesFast(); i++) { // get the two leading jets - if (1 + i > fJets->GetEntriesFast()) break; - leadingJet[0] = static_cast(fJets->At(lJets[i])); - leadingJet[1] = static_cast(fJets->At(lJets[i+1])); - if(PassesCuts(leadingJet[0]) && PassesCuts(leadingJet[1])) break; - } - if(leadingJet[0] && leadingJet[1]) { - for(Int_t i(0); i < 2; i++) excludeInEta[i] = leadingJet[i]->Eta(); - } + AliEmcalJet* leadingJet(GetJetContainer()->GetLeadingJet()); + if(leadingJet) leadingJet->Eta(); } Int_t iTracks(fTracks->GetEntriesFast()); for(Int_t iTPC(0); iTPC < iTracks; iTPC++) { AliVTrack* track = static_cast(fTracks->At(iTPC)); if(!PassesCuts(track) || track->Pt() < fSoftTrackMinPt || track->Pt() > fSoftTrackMaxPt) continue; - if(fExcludeLeadingJetsFromFit > 0 &&( (TMath::Abs(track->Eta() - excludeInEta[0]) < fJetRadius*fExcludeLeadingJetsFromFit ) || (TMath::Abs(track->Eta()) - fJetRadius - fJetMaxEta ) > 0 )) continue; + if(fExcludeLeadingJetsFromFit > 0 &&( (TMath::Abs(track->Eta() - excludeInEta) < GetJetContainer()->GetJetRadius()*fExcludeLeadingJetsFromFit ) || (TMath::Abs(track->Eta()) - GetJetContainer()->GetJetRadius() - GetJetContainer()->GetJetEtaMax() ) > 0 )) continue; fNAcceptedTracks++; qx2+= TMath::Cos(2.*track->Phi()); qy2+= TMath::Sin(2.*track->Phi()); @@ -741,26 +732,16 @@ Bool_t AliAnalysisTaskLocalRho::CorrectRho(Double_t psi2, Double_t psi3) default: break; } Int_t iTracks(fTracks->GetEntriesFast()); - Double_t excludeInEta[] = {-999, -999}; - Double_t excludeInPhi[] = {-999, -999}; - Double_t excludeInPt[] = {-999, -999}; + Double_t excludeInEta = -999; + Double_t excludeInPhi = -999; + Double_t excludeInPt = -999; if(iTracks <= 0 || fLocalRho->GetVal() <= 0 ) return kFALSE; // no use fitting an empty event ... if(fExcludeLeadingJetsFromFit > 0 ) { - AliEmcalJet* leadingJet[] = {0x0, 0x0}; - static Int_t lJets[9999] = {-1}; - GetSortedArray(lJets, fJets); - for(Int_t i(0); i < fJets->GetEntriesFast(); i++) { // get the two leading jets - if (1 + i > fJets->GetEntriesFast()) break; - leadingJet[0] = static_cast(fJets->At(lJets[i])); - leadingJet[1] = static_cast(fJets->At(lJets[i+1])); - if(PassesCuts(leadingJet[0]) && PassesCuts(leadingJet[1])) break; - } - if(leadingJet[0] && leadingJet[1]) { - for(Int_t i(0); i < 2; i++) { - excludeInEta[i] = leadingJet[i]->Eta(); - excludeInPhi[i] = leadingJet[i]->Phi(); - excludeInPt[i] = leadingJet[i]->Pt(); - } + AliEmcalJet* leadingJet = GetJetContainer()->GetLeadingJet(); + if(PassesCuts(leadingJet)) { + excludeInEta = leadingJet->Eta(); + excludeInPhi = leadingJet->Phi(); + excludeInPt = leadingJet->Pt(); } } fHistSwap->Reset(); // clear the histogram @@ -773,7 +754,7 @@ Bool_t AliAnalysisTaskLocalRho::CorrectRho(Double_t psi2, Double_t psi3) else _tempSwap = *fHistSwap; // now _tempSwap holds the desired histo for(Int_t i(0); i < iTracks; i++) { AliVTrack* track = static_cast(fTracks->At(i)); - if(fExcludeLeadingJetsFromFit > 0 &&( (TMath::Abs(track->Eta() - excludeInEta[0]) < fJetRadius*fExcludeLeadingJetsFromFit ) || (TMath::Abs(track->Eta()) - fJetRadius - fJetMaxEta ) > 0 )) continue; + if(fExcludeLeadingJetsFromFit > 0 &&( (TMath::Abs(track->Eta() - excludeInEta) < GetJetContainer()->GetJetRadius()*fExcludeLeadingJetsFromFit ) || (TMath::Abs(track->Eta()) - GetJetContainer()->GetJetRadius() - GetJetContainer()->GetJetEtaMax() ) > 0 )) continue; if(!PassesCuts(track) || track->Pt() > fSoftTrackMaxPt || track->Pt() < fSoftTrackMinPt) continue; if(fUsePtWeight) _tempSwap.Fill(track->Phi(), track->Pt()); else _tempSwap.Fill(track->Phi()); @@ -840,12 +821,8 @@ Bool_t AliAnalysisTaskLocalRho::CorrectRho(Double_t psi2, Double_t psi3) } if(fExcludeLeadingJetsFromFit) { // visualize the excluded region TF2 *f2 = new TF2(Form("%s_LJ", didacticSurface->GetName()),"[0]*TMath::Gaus(x,[1],[2])*TMath::Gaus(y,[3],[4])", 0, TMath::TwoPi(), -1, 1); - f2->SetParameters(excludeInPt[0]/3.,excludeInPhi[0],.1,excludeInEta[0],.1); + f2->SetParameters(excludeInPt/3.,excludeInPhi,.1,excludeInEta,.1); didacticSurface->GetListOfFunctions()->Add(f2); - TF2 *f3 = new TF2(Form("%s_NLJ", didacticSurface->GetName()),"[0]*TMath::Gaus(x,[1],[2])*TMath::Gaus(y,[3],[4])", 0, TMath::TwoPi(), -1, 1); - f3->SetParameters(excludeInPt[1]/3.,excludeInPhi[1],.1,excludeInEta[1],.1); - f3->SetLineColor(kGreen); - didacticSurface->GetListOfFunctions()->Add(f3); } fOutputListGood->Add(didacticSurface); } break; @@ -882,66 +859,16 @@ void AliAnalysisTaskLocalRho::FillAnalysisSummaryHistogram() const { // fill the analysis summary histrogram, saves all relevant analysis settigns if(fDebug > 0) printf("__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(1, "fJetRadius"); - fHistAnalysisSummary->SetBinContent(1, fJetRadius); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(2, "fPtBiasJetTrack"); - fHistAnalysisSummary->SetBinContent(2, fPtBiasJetTrack); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(3, "fPtBiasJetClus"); - fHistAnalysisSummary->SetBinContent(3, fPtBiasJetClus); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(4, "fJetPtCut"); - fHistAnalysisSummary->SetBinContent(4, fJetPtCut); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(5, "fJetAreaCut"); - fHistAnalysisSummary->SetBinContent(5, fJetAreaCut); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(6, "fPercAreaCut"); - fHistAnalysisSummary->SetBinContent(6, fPercAreaCut); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(7, "fAreaEmcCut"); - fHistAnalysisSummary->SetBinContent(7, fAreaEmcCut); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(8, "fJetMinEta"); - fHistAnalysisSummary->SetBinContent(8, fJetMinEta); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(9, "fJetMaxEta"); - fHistAnalysisSummary->SetBinContent(9, fJetMaxEta); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(10, "fJetMinPhi"); - fHistAnalysisSummary->SetBinContent(10, fJetMinPhi); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(11, "fJetMaxPhi"); - fHistAnalysisSummary->SetBinContent(11, fJetMaxPhi); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(12, "fMaxClusterPt"); - fHistAnalysisSummary->SetBinContent(12, fMaxClusterPt); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(13, "fMaxTrackPt"); - fHistAnalysisSummary->SetBinContent(13, fMaxTrackPt); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(14, "fLeadingHadronType"); - fHistAnalysisSummary->SetBinContent(14, fLeadingHadronType); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(15, "fAnaType"); - fHistAnalysisSummary->SetBinContent(15, fAnaType); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(16, "fForceBeamType"); - fHistAnalysisSummary->SetBinContent(16, fForceBeamType); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(19, "fMinVz"); - fHistAnalysisSummary->SetBinContent(19, fMinVz); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(20, "fMaxVz"); - fHistAnalysisSummary->SetBinContent(20, fMaxVz); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(21, "fOffTrigger"); - fHistAnalysisSummary->SetBinContent(21, fOffTrigger); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(22, "fClusPtCut"); - fHistAnalysisSummary->SetBinContent(22, fClusPtCut); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(23, "fTrackPtCut"); - fHistAnalysisSummary->SetBinContent(23, fTrackPtCut); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(24, "fTrackMinEta"); - fHistAnalysisSummary->SetBinContent(24, fTrackMinEta); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(25, "fTrackMaxEta"); - fHistAnalysisSummary->SetBinContent(25, fTrackMaxEta); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(26, "fTrackMinPhi"); - fHistAnalysisSummary->SetBinContent(26, fTrackMinPhi); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(27, "fTrackMaxPhi"); - fHistAnalysisSummary->SetBinContent(27, fTrackMaxPhi); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(28, "fClusTimeCutLow"); - fHistAnalysisSummary->SetBinContent(28, fClusTimeCutLow); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(29, "fClusTimeCutUp"); - fHistAnalysisSummary->SetBinContent(29, fClusTimeCutUp); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(30, "fMinPtTrackInEmcal"); - fHistAnalysisSummary->SetBinContent(30, fMinPtTrackInEmcal); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(31, "fEventPlaneVsEmcal"); - fHistAnalysisSummary->SetBinContent(31, fEventPlaneVsEmcal); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(32, "fMinEventPlane"); - fHistAnalysisSummary->SetBinContent(32, fMaxEventPlane); + fHistAnalysisSummary->GetXaxis()->SetBinLabel(2, "fJetRadius"); + fHistAnalysisSummary->SetBinContent(2, GetJetContainer()->GetJetRadius()); + fHistAnalysisSummary->GetXaxis()->SetBinLabel(3, "fJetEtaMin"); + fHistAnalysisSummary->SetBinContent(3, GetJetContainer()->GetJetEtaMin()); + fHistAnalysisSummary->GetXaxis()->SetBinLabel(4, "fJetEtaMax"); + fHistAnalysisSummary->SetBinContent(4, GetJetContainer()->GetJetEtaMax()); + fHistAnalysisSummary->GetXaxis()->SetBinLabel(5, "fJetPhiMin"); + fHistAnalysisSummary->SetBinContent(5, GetJetContainer()->GetJetPhiMin()); + fHistAnalysisSummary->GetXaxis()->SetBinLabel(6, "fJetPhiMax"); + fHistAnalysisSummary->SetBinContent(6, GetJetContainer()->GetJetPhiMin()); fHistAnalysisSummary->GetXaxis()->SetBinLabel(34, "fitModulationType"); fHistAnalysisSummary->SetBinContent(34, (int)fFitModulationType); fHistAnalysisSummary->GetXaxis()->SetBinLabel(35, "runModeType"); diff --git a/PWGJE/EMCALJetTasks/AliAnalysisTaskLocalRho.h b/PWGJE/EMCALJetTasks/AliAnalysisTaskLocalRho.h index c4ab92ee63b..aa7c2efd734 100644 --- a/PWGJE/EMCALJetTasks/AliAnalysisTaskLocalRho.h +++ b/PWGJE/EMCALJetTasks/AliAnalysisTaskLocalRho.h @@ -3,7 +3,7 @@ // $Id$ -#include +#include #include #include #include @@ -11,6 +11,8 @@ #include #include #include +#include +#include class TF1; class THF1; @@ -18,8 +20,7 @@ class THF2; class TProfile; class AliLocalRhoParameter; -class AliAnalysisTaskLocalRho : public AliAnalysisTaskEmcalJet -{ +class AliAnalysisTaskLocalRho : public AliAnalysisTaskEmcalJetDev { public: // enumerators enum fitModulationType { kNoFit, kV2, kV3, kCombined, kFourierSeries, kIntegratedFlow, kQC2, kQC4 }; // fit type @@ -53,7 +54,7 @@ class AliAnalysisTaskLocalRho : public AliAnalysisTaskEmcalJet Double_t n(ndf/2.), denom(TMath::Power(2, n)*TMath::Gamma(n)); if (denom!=0) return ((1./denom)*TMath::Power(x, n-1)*TMath::Exp(-x/2.)); return -999; } - // note that the cdf of the chisquare distribution is the normalized lower incomplete gamma function + // the cdf of the chisquare distribution is the normalized lower incomplete gamma function /* inline */ Double_t ChiSquareCDF(Int_t ndf, Double_t x) const { return TMath::Gamma(ndf/2., x/2.); } // setters - setup how to run void SetDebugMode(Int_t d) {fDebug = d;} @@ -101,13 +102,8 @@ class AliAnalysisTaskLocalRho : public AliAnalysisTaskEmcalJet void FillEventPlaneHistograms(Double_t psi2, Double_t psi3) const; void FillAnalysisSummaryHistogram() const; // track selection - /* inline */ Bool_t PassesCuts(const AliVTrack* track) const { - if(!track) return kFALSE; - return (track->Pt() < fTrackPtCut || track->Eta() < fTrackMinEta || track->Eta() > fTrackMaxEta || track->Phi() < fTrackMinPhi || track->Phi() > fTrackMaxPhi) ? kFALSE : kTRUE; } - /* inline */ Bool_t PassesCuts(AliEmcalJet* jet) const { - if(!jet || fJetRadius <= 0) return kFALSE; - return (jet->Pt() < fJetPtCut || jet->Area()/(fJetRadius*fJetRadius*TMath::Pi()) < fPercAreaCut || jet->Eta() < fJetMinEta || jet->Eta() > fJetMaxEta || jet->Phi() < fJetMinPhi || jet->Phi() > fJetMaxPhi) ? kFALSE : kTRUE; } - // filling histograms + /* inline */ Bool_t PassesCuts(AliVTrack* track) const { return AcceptTrack(track, 0);} + /* inline */ Bool_t PassesCuts(AliEmcalJet* jet) { return AcceptJet(jet, 0);} virtual void Terminate(Option_t* option); private: @@ -165,7 +161,7 @@ class AliAnalysisTaskLocalRho : public AliAnalysisTaskEmcalJet AliAnalysisTaskLocalRho(const AliAnalysisTaskLocalRho&); // not implemented AliAnalysisTaskLocalRho& operator=(const AliAnalysisTaskLocalRho&); // not implemented - ClassDef(AliAnalysisTaskLocalRho, 3); + ClassDef(AliAnalysisTaskLocalRho, 4); }; #endif diff --git a/PWGJE/EMCALJetTasks/AliJetContainer.cxx b/PWGJE/EMCALJetTasks/AliJetContainer.cxx index 2ea48930150..3293723d302 100644 --- a/PWGJE/EMCALJetTasks/AliJetContainer.cxx +++ b/PWGJE/EMCALJetTasks/AliJetContainer.cxx @@ -11,6 +11,7 @@ #include "AliEMCALGeometry.h" #include "AliParticleContainer.h" #include "AliClusterContainer.h" +#include "AliLocalRhoParameter.h" #include "AliJetContainer.h" @@ -22,6 +23,7 @@ AliJetContainer::AliJetContainer(): fJetAcceptanceType(kUser), fJetRadius(0), fRhoName(), + fLocalRhoName(), fPtBiasJetTrack(0), fPtBiasJetClus(0), fJetPtCut(1), @@ -35,6 +37,8 @@ AliJetContainer::AliJetContainer(): fMaxTrackPt(100), fZLeadingEmcCut(10.), fZLeadingChCut(10.), + fNEFMinCut(-10.), + fNEFMaxCut(10.), fLeadingHadronType(0), fNLeadingJets(1), fJetBitMap(0), @@ -42,6 +46,7 @@ AliJetContainer::AliJetContainer(): fParticleContainer(0), fClusterContainer(0), fRho(0), + fLocalRho(0), fGeom(0), fRunNumber(0) { @@ -56,6 +61,7 @@ AliJetContainer::AliJetContainer(const char *name): fJetAcceptanceType(kUser), fJetRadius(0), fRhoName(), + fLocalRhoName(), fPtBiasJetTrack(0), fPtBiasJetClus(0), fJetPtCut(1), @@ -69,6 +75,8 @@ AliJetContainer::AliJetContainer(const char *name): fMaxTrackPt(100), fZLeadingEmcCut(10.), fZLeadingChCut(10.), + fNEFMinCut(-10.), + fNEFMaxCut(10.), fLeadingHadronType(0), fNLeadingJets(1), fJetBitMap(0), @@ -76,6 +84,7 @@ AliJetContainer::AliJetContainer(const char *name): fParticleContainer(0), fClusterContainer(0), fRho(0), + fLocalRho(0), fGeom(0), fRunNumber(0) { @@ -125,6 +134,20 @@ void AliJetContainer::LoadRho(AliVEvent *event) } } +//________________________________________________________________________ +void AliJetContainer::LoadLocalRho(AliVEvent *event) +{ + // Load local rho + + if (!fLocalRhoName.IsNull() && !fLocalRho) { + fLocalRho = dynamic_cast(event->FindListObject(fLocalRhoName)); + if (!fLocalRho) { + AliError(Form("%s: Could not retrieve rho %s!", GetName(), fLocalRhoName.Data())); + return; + } + } +} + //________________________________________________________________________ AliEmcalJet* AliJetContainer::GetLeadingJet(const char* opt) { @@ -235,6 +258,13 @@ Double_t AliJetContainer::GetJetPtCorr(Int_t i) const { return jet->Pt() - fRho->GetVal()*jet->Area(); } +//________________________________________________________________________ +Double_t AliJetContainer::GetJetPtCorrLocal(Int_t i) const { + AliEmcalJet *jet = GetJet(i); + + return jet->Pt() - fLocalRho->GetLocalVal(jet->Phi(), fJetRadius)*jet->Area(); +} + //________________________________________________________________________ void AliJetContainer::GetMomentum(TLorentzVector &mom, Int_t i) const { @@ -286,6 +316,9 @@ Bool_t AliJetContainer::AcceptJet(AliEmcalJet *jet) const if( GetZLeadingCharged(jet)>fZLeadingChCut || GetZLeadingEmc(jet)>fZLeadingEmcCut) return kFALSE; + if(jet->NEF()NEF()>fNEFMaxCut) + return kFALSE; + if (!AcceptBiasJet(jet)) return kFALSE; diff --git a/PWGJE/EMCALJetTasks/AliJetContainer.h b/PWGJE/EMCALJetTasks/AliJetContainer.h index 1001730d0c7..dc4626f8bda 100644 --- a/PWGJE/EMCALJetTasks/AliJetContainer.h +++ b/PWGJE/EMCALJetTasks/AliJetContainer.h @@ -13,6 +13,7 @@ class AliEmcalJet; class AliVEvent; class AliParticleContainer; class AliClusterContainer; +class AliLocalRhoParameter; #include "AliRhoParameter.h" @@ -35,6 +36,7 @@ class AliJetContainer : public AliEmcalContainer { void SetEMCALGeometry(); void SetEMCALGeometry(AliEMCALGeometry *p) {fGeom = p;} void LoadRho(AliVEvent *event); + void LoadLocalRho(AliVEvent *event); void SetJetAcceptanceType(JetAcceptanceType type) { fJetAcceptanceType = type ; } @@ -49,11 +51,13 @@ class AliJetContainer : public AliEmcalContainer { void SetJetAreaCut(Float_t cut) { fJetAreaCut = cut ; } void SetPercAreaCut(Float_t p) { if(fJetRadius==0.) AliWarning("JetRadius not set. Area cut will be 0"); fJetAreaCut = p*TMath::Pi()*fJetRadius*fJetRadius; } void SetZLeadingCut(Float_t zemc, Float_t zch) { fZLeadingEmcCut = zemc; fZLeadingChCut = zch ; } + void SetNEFCut(Float_t min = 0., Float_t max = 1.) { fNEFMinCut = min; fNEFMaxCut = max; } void SetAreaEmcCut(Double_t a = 0.99) { fAreaEmcCut = a ; } void SetJetPtCut(Float_t cut) { fJetPtCut = cut ; } void SetJetRadius(Float_t r) { fJetRadius = r ; } virtual void SetRhoName(const char *n) { fRhoName = n ; } + virtual void SetLocalRhoName(const char *n) { fLocalRhoName = n ; } void SetMaxClusterPt(Float_t b) { fMaxClusterPt = b ; } void SetMaxTrackPt(Float_t b) { fMaxTrackPt = b ; } void SetPtBiasJetClus(Float_t b) { fPtBiasJetClus = b ; } @@ -86,7 +90,10 @@ class AliJetContainer : public AliEmcalContainer { AliRhoParameter *GetRhoParameter() {return fRho;} Double_t GetRhoVal() const { if (fRho) return fRho->GetVal(); else return 0;} const TString& GetRhoName() const {return fRhoName;} + AliLocalRhoParameter *GetLocalRhoParameter() const {return fLocalRho;} + const TString& GetLocalRhoName() const {return fLocalRhoName;} Double_t GetJetPtCorr(Int_t i) const; + Double_t GetJetPtCorrLocal(Int_t i) const; Float_t GetJetRadius() const {return fJetRadius;} Float_t GetJetEtaMin() const {return fJetMinEta;} Float_t GetJetEtaMax() const {return fJetMaxEta;} @@ -101,6 +108,7 @@ class AliJetContainer : public AliEmcalContainer { JetAcceptanceType fJetAcceptanceType; // acceptance type Float_t fJetRadius; // jet radius TString fRhoName; // Name of rho object + TString fLocalRhoName; // Name of local rho object Float_t fPtBiasJetTrack; // select jets with a minimum pt track Float_t fPtBiasJetClus; // select jets with a minimum pt cluster Float_t fJetPtCut; // cut on jet pt @@ -114,6 +122,8 @@ class AliJetContainer : public AliEmcalContainer { Float_t fMaxTrackPt; // maximum track constituent pt to accept the jet Float_t fZLeadingEmcCut; // maximum z,leading neutral Float_t fZLeadingChCut; // maximum z,leading charged + Float_t fNEFMinCut; // minimum NEF in a jet + Float_t fNEFMaxCut; // maximum NEF in a jet Int_t fLeadingHadronType; // 0 = charged, 1 = neutral, 2 = both Int_t fNLeadingJets; // how many jets are to be considered the leading jet(s) UInt_t fJetBitMap; // bit map of accepted jets @@ -122,6 +132,7 @@ class AliJetContainer : public AliEmcalContainer { AliClusterContainer *fClusterContainer; // cluster container (jet constituents) AliRhoParameter *fRho; //! event rho for these jets + AliLocalRhoParameter *fLocalRho; //! event local rho for these jets AliEMCALGeometry *fGeom; //! emcal geometry Int_t fRunNumber; //! run number @@ -129,7 +140,7 @@ class AliJetContainer : public AliEmcalContainer { AliJetContainer(const AliJetContainer& obj); // copy constructor AliJetContainer& operator=(const AliJetContainer& other); // assignment - ClassDef(AliJetContainer,4); + ClassDef(AliJetContainer,5); }; diff --git a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTriggerQA.cxx b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTriggerQA.cxx index d8ace1ada2c..b50cfcbc0c1 100644 --- a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTriggerQA.cxx +++ b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTriggerQA.cxx @@ -21,7 +21,8 @@ #include "AliAODCaloTrigger.h" #include "AliEMCALGeometry.h" #include "AliVCaloCells.h" - +#include "AliJetContainer.h" +#include "AliClusterContainer.h" #include "AliAnalysisTaskEmcalJetTriggerQA.h" @@ -29,23 +30,15 @@ ClassImp(AliAnalysisTaskEmcalJetTriggerQA) //________________________________________________________________________ AliAnalysisTaskEmcalJetTriggerQA::AliAnalysisTaskEmcalJetTriggerQA() : - AliAnalysisTaskEmcalJet("AliAnalysisTaskEmcalJetTriggerQA", kTRUE), + AliAnalysisTaskEmcalJetDev("AliAnalysisTaskEmcalJetTriggerQA", kTRUE), fDebug(kFALSE), fUseAnaUtils(kTRUE), fAnalysisUtils(0), - fJetsName2("Jet_AKTChargedR040_PicoTracks_pT0150_caloClustersCorr_ET0300"), - fJets2(0), - fEtaMinJet2(0.5), - fEtaMaxJet2(0.5), - fPhiMinJet2(-10.), - fPhiMaxJet2(10.), - fMaxTrackPtJet2(100.), - fRhoChName(""), - fRhoCh(0), - fRhoChVal(0), fTriggerClass(""), fBitJ1((1<<8)), fBitJ2((1<<11)), + fContainerFull(0), + fContainerCharged(1), fMaxPatchEnergy(0), fTriggerType(-1), fNFastOR(16), @@ -77,23 +70,15 @@ AliAnalysisTaskEmcalJetTriggerQA::AliAnalysisTaskEmcalJetTriggerQA() : //________________________________________________________________________ AliAnalysisTaskEmcalJetTriggerQA::AliAnalysisTaskEmcalJetTriggerQA(const char *name) : - AliAnalysisTaskEmcalJet(name, kTRUE), + AliAnalysisTaskEmcalJetDev(name, kTRUE), fDebug(kFALSE), fUseAnaUtils(kTRUE), fAnalysisUtils(0), - fJetsName2("Jet_AKTChargedR040_PicoTracks_pT0150_caloClustersCorr_ET0300"), - fJets2(0), - fEtaMinJet2(0.5), - fEtaMaxJet2(0.5), - fPhiMinJet2(-10.), - fPhiMaxJet2(10.), - fMaxTrackPtJet2(100.), - fRhoChName(""), - fRhoCh(0), - fRhoChVal(0), fTriggerClass(""), fBitJ1((1<<8)), fBitJ2((1<<11)), + fContainerFull(0), + fContainerCharged(1), fMaxPatchEnergy(0), fTriggerType(-1), fNFastOR(16), @@ -300,70 +285,9 @@ void AliAnalysisTaskEmcalJetTriggerQA::FindTriggerPatch() { //________________________________________________________________________ void AliAnalysisTaskEmcalJetTriggerQA::LoadExtraBranches() { // - // get charged jets + // load extra brances // - if (!fJetsName2.IsNull() && !fJets2) { - fJets2 = dynamic_cast(InputEvent()->FindListObject(fJetsName2.Data())); - if (!fJets2) { - AliError(Form("%s: Could not retrieve charged jets %s!", GetName(), fJetsName2.Data())); - return; - } - else if (!fJets2->GetClass()->GetBaseClass("AliEmcalJet")) { - AliError(Form("%s: Collection %s does not contain AliEmcalJet objects!", GetName(), fJetsName2.Data())); - fJets2 = 0; - return; - } - } - - //Get Charged Rho - if (!fRhoChName.IsNull() && !fRhoCh) { - fRhoCh = dynamic_cast(InputEvent()->FindListObject(fRhoChName.Data())); - if (!fRhoCh) { - AliError(Form("%s: Could not retrieve charged rho %s!", GetName(), fRhoChName.Data())); - return; - } - else - fRhoChVal = 0.; - } - if (fRhoChName.IsNull() ) { - if(fDebug>10) AliInfo(Form("%s: fRhoChName empty %s",GetName(),fRhoChName.Data())); - fRhoChVal = 0.; - } - else if(!fRhoChName.IsNull() && fRhoCh) //do not use rho if rhoType==0 - fRhoChVal = fRhoCh->GetVal(); - -} - -//________________________________________________________________________ -Bool_t AliAnalysisTaskEmcalJetTriggerQA::AcceptJet2(const AliEmcalJet *jet) const { - - // Accept jet in 2nd branch - - Bool_t accept = kFALSE; - - if(jet->Pt()<0.15) //reject ghost jets - return accept; - - //do area cut - if(jet->Area()Eta(); - Double_t phi = jet->Phi(); - - if(etafEtaMaxJet2) - return accept; - - if(phifPhiMaxJet2) - return accept; - - if (jet->MaxTrackPt() > fMaxTrackPtJet2) - return kFALSE; - - return kTRUE; - } //________________________________________________________________________ @@ -373,7 +297,7 @@ void AliAnalysisTaskEmcalJetTriggerQA::UserCreateOutputObjects() InitOnce(); - AliAnalysisTaskEmcalJet::UserCreateOutputObjects(); + AliAnalysisTaskEmcalJetDev::UserCreateOutputObjects(); Bool_t oldStatus = TH1::AddDirectoryStatus(); TH1::AddDirectory(kFALSE); @@ -499,19 +423,21 @@ void AliAnalysisTaskEmcalJetTriggerQA::UserCreateOutputObjects() Bool_t AliAnalysisTaskEmcalJetTriggerQA::FillHistograms() { // Fill histograms. - - if (fCaloClusters) { - const Int_t nclusters = fCaloClusters->GetEntriesFast(); - + AliClusterContainer *clusCont = GetClusterContainer(0); + + if (clusCont) { + Int_t nclusters = clusCont->GetNClusters(); for (Int_t ic = 0; ic < nclusters; ic++) { - AliVCluster *cluster = static_cast(fCaloClusters->At(ic)); + AliVCluster *cluster = static_cast(clusCont->GetCluster(ic)); if (!cluster) { AliError(Form("Could not receive cluster %d", ic)); continue; } - if (!cluster->IsEMCAL()) - continue; + if (!cluster->IsEMCAL()) { + AliDebug(11,Form("%s: Cluster is not emcal",GetName())); + continue; + } TLorentzVector lp; cluster->GetMomentum(lp, const_cast(fVertex)); @@ -543,19 +469,14 @@ Bool_t AliAnalysisTaskEmcalJetTriggerQA::FillHistograms() nJetsArr->Reset(0); nJetsArr->Set(fh2NJetsPtFull->GetNbinsY()+1); - if (fJets) { - const Int_t njets = fJets->GetEntriesFast(); + if (GetJetContainer(fContainerFull)) { + const Int_t njets = GetNJets(fContainerFull); for (Int_t ij = 0; ij < njets; ij++) { - AliEmcalJet* jet = static_cast(fJets->At(ij)); - if (!jet) { - AliError(Form("Could not receive jet %d", ij)); - continue; - } - - if (!AcceptJet(jet)) - continue; - + AliEmcalJet* jet = GetAcceptJetFromArray(ij,fContainerFull); + if (!jet) + continue; //jet not selected + Double_t jetPt = jet->Pt(); if(jetPt>ptLeadJet1) ptLeadJet1=jetPt; fh3PtEtaPhiJetFull->Fill(jetPt,jet->Eta(),jet->Phi()); @@ -588,20 +509,20 @@ Bool_t AliAnalysisTaskEmcalJetTriggerQA::FillHistograms() AliVCluster *vc = 0x0; Double_t sumPtNe = 0.; - for(Int_t icc=0; iccGetNumberOfClusters(); icc++) { - vc = static_cast(jet->ClusterAt(icc, fCaloClusters)); - if(!vc) continue; - - TLorentzVector lp; - vc->GetMomentum(lp, const_cast(fVertex)); - - sumPtNe+=lp.Pt(); + if (clusCont) { + for(Int_t icc=0; iccGetNumberOfClusters(); icc++) { + vc = static_cast(clusCont->GetCluster(icc)); + if(!vc) continue; + + TLorentzVector lp; + vc->GetMomentum(lp, const_cast(fVertex)); + sumPtNe+=lp.Pt(); + + } + if(jet->GetNumberOfClusters()>0) + fh2PtMeanPtConstituentsNeutral->Fill(jetPt,sumPtNe/(double)(jet->GetNumberOfClusters()) ); } - - if(jet->GetNumberOfClusters()>0) - fh2PtMeanPtConstituentsNeutral->Fill(jetPt,sumPtNe/(double)(jet->GetNumberOfClusters()) ); - } //full jet loop for(Int_t i=1; i<=fh2NJetsPtFull->GetNbinsY(); i++) { @@ -615,19 +536,14 @@ Bool_t AliAnalysisTaskEmcalJetTriggerQA::FillHistograms() nJetsArr->Reset(0); //Loop over charged jets - if (fJets2) { - const Int_t njetsCh = fJets2->GetEntriesFast(); - for (Int_t ij = 0; ij < njetsCh; ij++) { + if (GetJetContainer(fContainerCharged)) { + const Int_t njets = GetNJets(fContainerCharged); + for (Int_t ij = 0; ij < njets; ij++) { - AliEmcalJet* jet = static_cast(fJets2->At(ij)); - if (!jet) { - AliError(Form("Could not receive charged jet %d", ij)); - continue; - } + AliEmcalJet* jet = GetAcceptJetFromArray(ij,fContainerCharged); + if (!jet) + continue; //jet not selected - if(!AcceptJet2(jet)) - continue; - Double_t jetPt = jet->Pt(); if(jetPt>ptLeadJet2) ptLeadJet2=jetPt; fh3PtEtaPhiJetCharged->Fill(jetPt,jet->Eta(),jet->Phi()); @@ -645,7 +561,7 @@ Bool_t AliAnalysisTaskEmcalJetTriggerQA::FillHistograms() } } - if(fJets && fJets2) { + if(GetJetContainer(fContainerFull) && GetJetContainer(fContainerCharged)) { fh2PtLeadJet1VsLeadJet2->Fill(ptLeadJet1,ptLeadJet2); } @@ -668,11 +584,6 @@ Bool_t AliAnalysisTaskEmcalJetTriggerQA::Run() LoadExtraBranches(); - if(fRhoChName.IsNull()) - fRhoChVal = 0.; - else - fRhoChVal = fRhoCh->GetVal(); - if(!fTriggerClass.IsNull()) FindTriggerPatch(); diff --git a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTriggerQA.h b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTriggerQA.h index 2f69349cd43..fb84ec6abbb 100644 --- a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTriggerQA.h +++ b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTriggerQA.h @@ -12,9 +12,9 @@ class AliAnalysisUtils; #include #include -#include "AliAnalysisTaskEmcalJet.h" +#include "AliAnalysisTaskEmcalJetDev.h" -class AliAnalysisTaskEmcalJetTriggerQA : public AliAnalysisTaskEmcalJet { +class AliAnalysisTaskEmcalJetTriggerQA : public AliAnalysisTaskEmcalJetDev { public: AliAnalysisTaskEmcalJetTriggerQA(); @@ -30,19 +30,14 @@ class AliAnalysisTaskEmcalJetTriggerQA : public AliAnalysisTaskEmcalJet { Bool_t SelectEvent(); //decides if event is used for analysis void FindTriggerPatch(); - Bool_t AcceptJet2(const AliEmcalJet *jet) const; - //Setters void SetDebug(Int_t d) { fDebug = d;} void SetTriggerClass(const char *n) { fTriggerClass = n; } void SetNFastorPatch(Int_t i) { fNFastOR = i;} - void SetJetsName2(const char *n) { fJetsName2 = n; } - void SetRhoChName(const char *n) { fRhoChName = n; } - void SetMinEtaJets2(Double_t p) { fEtaMinJet2 = p;} - void SetMaxEtaJets2(Double_t p) { fEtaMaxJet2 = p;} - void SetMinPhiJets2(Double_t p) { fPhiMinJet2 = p;} - void SetMaxPhiJets2(Double_t p) { fPhiMaxJet2 = p;} + void SetContainerFull(Int_t c) { fContainerFull = c;} + void SetContainerCharged(Int_t c) { fContainerCharged = c;} + Double_t GetZ(const AliVParticle *trk, const AliEmcalJet *jet) const; Double_t GetZ(const Double_t trkPx, const Double_t trkPy, const Double_t trkPz, const Double_t jetPx, const Double_t jetPy, const Double_t jetPz) const; @@ -59,21 +54,11 @@ class AliAnalysisTaskEmcalJetTriggerQA : public AliAnalysisTaskEmcalJet { Bool_t fDebug; // debug level Bool_t fUseAnaUtils; // used for LHC13* data AliAnalysisUtils *fAnalysisUtils; //! vertex selection - TString fJetsName2; // name of charged jet collection - TClonesArray *fJets2; //! list with charged jets - Double_t fEtaMinJet2; // min eta of jet axis, jets in 2nd branch - Double_t fEtaMaxJet2; // max eta of jet axis, jets in 2nd branch - Double_t fPhiMinJet2; // min phi of jet axis, jets in 2nd branch - Double_t fPhiMaxJet2; // max phi of jet axis, jets in 2nd branch - Double_t fMaxTrackPtJet2; // maximum track pT in jet - - TString fRhoChName; // name of charged rho branch - AliRhoParameter *fRhoCh; //! event rho charged - Double_t fRhoChVal; // charged rho value - TString fTriggerClass; // trigger class to analyze EJ1 or EJ2 UInt_t fBitJ1; // trigger bit of EJE1 UInt_t fBitJ2; // trigger bit of EJE2 + Int_t fContainerFull; // number of container with full jets DET + Int_t fContainerCharged; // number of container with charged jets DET Double_t fMaxPatchEnergy; // energy of patch with largest energy Int_t fTriggerType; // trigger type Int_t fNFastOR; // size of trigger patch fNFastORxfNFastOR @@ -102,6 +87,6 @@ class AliAnalysisTaskEmcalJetTriggerQA : public AliAnalysisTaskEmcalJet { AliAnalysisTaskEmcalJetTriggerQA(const AliAnalysisTaskEmcalJetTriggerQA&); // not implemented AliAnalysisTaskEmcalJetTriggerQA &operator=(const AliAnalysisTaskEmcalJetTriggerQA&); // not implemented - ClassDef(AliAnalysisTaskEmcalJetTriggerQA, 1) // jet sample analysis task + ClassDef(AliAnalysisTaskEmcalJetTriggerQA, 2) }; #endif diff --git a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskRhoVnModulation.cxx b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskRhoVnModulation.cxx index 100e196cc78..37adc9984f6 100644 --- a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskRhoVnModulation.cxx +++ b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskRhoVnModulation.cxx @@ -60,7 +60,7 @@ using namespace std; ClassImp(AliAnalysisTaskRhoVnModulation) -AliAnalysisTaskRhoVnModulation::AliAnalysisTaskRhoVnModulation() : AliAnalysisTaskEmcalJet("AliAnalysisTaskRhoVnModulation", kTRUE), +AliAnalysisTaskRhoVnModulation::AliAnalysisTaskRhoVnModulation() : AliAnalysisTaskEmcalJetDev("AliAnalysisTaskRhoVnModulation", kTRUE), fDebug(0), fLocalInit(0), fAttachToEvent(kTRUE), fFillHistograms(kTRUE), fFillQAHistograms(kTRUE), fReduceBinsXByFactor(-1.), fReduceBinsYByFactor(-1.), fNoEventWeightsForQC(kTRUE), fCentralityClasses(0), fPtBinsHybrids(0), fPtBinsJets(0), fUserSuppliedV2(0), fUserSuppliedV3(0), fUserSuppliedR2(0), fUserSuppliedR3(0), fUseScaledRho(0), fNAcceptedTracks(0), fNAcceptedTracksQCn(0), fFitModulationType(kNoFit), fQCRecovery(kTryFit), fUsePtWeight(kTRUE), fDetectorType(kTPC), fFitModulationOptions("QWLI"), fRunModeType(kGrid), fDataType(kESD), fRandom(0), fMappedRunNumber(0), fInCentralitySelection(-1), fFitModulation(0), fMinPvalue(0.01), fMaxPvalue(1), fNameJetClones(0), fNamePicoTrackClones(0), fNameRho(0), fLocalJetMinEta(-10), fLocalJetMaxEta(-10), fLocalJetMinPhi(-10), fLocalJetMaxPhi(-10), fSoftTrackMinPt(0.15), fSoftTrackMaxPt(5.), fAbsVertexZ(10), fHistCentrality(0), fHistVertexz(0), fHistRunnumbersPhi(0), fHistRunnumbersEta(0), fHistPvaluePDF(0), fHistPvalueCDF(0), fMinDisanceRCtoLJ(0), fRandomConeRadius(-1.), fMaxCones(-1), fAbsVnHarmonics(kTRUE), fExcludeLeadingJetsFromFit(1.), fRebinSwapHistoOnTheFly(kTRUE), fPercentageOfFits(10.), fUseV0EventPlaneFromHeader(kTRUE), fExplicitOutlierCut(-1), fMinLeadingHadronPt(0), fSubtractJetPt(kFALSE), fOutputList(0), fOutputListGood(0), fOutputListBad(0), fHistAnalysisSummary(0), fHistSwap(0), fProfV2(0), fProfV2Cumulant(0), fProfV3(0), fProfV3Cumulant(0), fHistPsiControl(0), fHistPsiSpread(0), fHistPsiVZEROA(0), fHistPsiVZEROC(0), fHistPsiVZERO(0), fHistPsiTPC(0), fHistRhoVsMult(0), fHistRhoVsCent(0), fHistRhoAVsMult(0), fHistRhoAVsCent(0) { for(Int_t i(0); i < 10; i++) { fProfV2Resolution[i] = 0; @@ -105,7 +105,7 @@ AliAnalysisTaskRhoVnModulation::AliAnalysisTaskRhoVnModulation() : AliAnalysisTa // default constructor } //_____________________________________________________________________________ -AliAnalysisTaskRhoVnModulation::AliAnalysisTaskRhoVnModulation(const char* name, runModeType type) : AliAnalysisTaskEmcalJet(name, kTRUE), +AliAnalysisTaskRhoVnModulation::AliAnalysisTaskRhoVnModulation(const char* name, runModeType type) : AliAnalysisTaskEmcalJetDev(name, kTRUE), fDebug(0), fLocalInit(0), fAttachToEvent(kTRUE), fFillHistograms(kTRUE), fFillQAHistograms(kTRUE), fReduceBinsXByFactor(-1.), fReduceBinsYByFactor(-1.), fNoEventWeightsForQC(kTRUE), fCentralityClasses(0), fPtBinsHybrids(0), fPtBinsJets(0), fUserSuppliedV2(0), fUserSuppliedV3(0), fUserSuppliedR2(0), fUserSuppliedR3(0), fUseScaledRho(0), fNAcceptedTracks(0), fNAcceptedTracksQCn(0), fFitModulationType(kNoFit), fQCRecovery(kTryFit), fUsePtWeight(kTRUE), fDetectorType(kTPC), fFitModulationOptions("QWLI"), fRunModeType(type), fDataType(kESD), fRandom(0), fMappedRunNumber(0), fInCentralitySelection(-1), fFitModulation(0), fMinPvalue(0.01), fMaxPvalue(1), fNameJetClones(0), fNamePicoTrackClones(0), fNameRho(0), fLocalJetMinEta(-10), fLocalJetMaxEta(-10), fLocalJetMinPhi(-10), fLocalJetMaxPhi(-10), fSoftTrackMinPt(0.15), fSoftTrackMaxPt(5.), fAbsVertexZ(10), fHistCentrality(0), fHistVertexz(0), fHistRunnumbersPhi(0), fHistRunnumbersEta(0), fHistPvaluePDF(0), fHistPvalueCDF(0), fMinDisanceRCtoLJ(0), fRandomConeRadius(-1.), fMaxCones(-1), fAbsVnHarmonics(kTRUE), fExcludeLeadingJetsFromFit(1.), fRebinSwapHistoOnTheFly(kTRUE), fPercentageOfFits(10.), fUseV0EventPlaneFromHeader(kTRUE), fExplicitOutlierCut(-1), fMinLeadingHadronPt(0), fSubtractJetPt(kFALSE), fOutputList(0), fOutputListGood(0), fOutputListBad(0), fHistAnalysisSummary(0), fHistSwap(0), fProfV2(0), fProfV2Cumulant(0), fProfV3(0), fProfV3Cumulant(0), fHistPsiControl(0), fHistPsiSpread(0), fHistPsiVZEROA(0), fHistPsiVZEROC(0), fHistPsiVZERO(0), fHistPsiTPC(0), fHistRhoVsMult(0), fHistRhoVsCent(0), fHistRhoAVsMult(0), fHistRhoAVsCent(0) { for(Int_t i(0); i < 10; i++) { fProfV2Resolution[i] = 0; @@ -183,7 +183,7 @@ void AliAnalysisTaskRhoVnModulation::ExecOnce() AliFatal(Form("%s: Container with name %s already present. Aborting", GetName(), fLocalRho->GetName())); } } - AliAnalysisTaskEmcalJet::ExecOnce(); // init the base class + AliAnalysisTaskEmcalJetDev::ExecOnce(); // init the base class if(fUseScaledRho) { // unscaled rho has been retrieved by the parent class, now we retrieve rho scaled fRho = dynamic_cast(InputEvent()->FindListObject(Form("%s_Scaled", fRho->GetName()))); @@ -191,17 +191,18 @@ void AliAnalysisTaskRhoVnModulation::ExecOnce() AliFatal(Form("%s: Couldn't find container for scaled rho. Aborting !", GetName())); } } + if(!GetJetContainer()) AliFatal(Form("%s: Couldn't find jet container. Aborting !", GetName())); } //_____________________________________________________________________________ Bool_t AliAnalysisTaskRhoVnModulation::InitializeAnalysis() { // initialize the anaysis if(fDebug > 0) printf("__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__); - if(fRandomConeRadius <= 0) fRandomConeRadius = fJetRadius; + if(fRandomConeRadius <= 0) fRandomConeRadius = GetJetContainer()->GetJetRadius(); if(fMaxCones <= 0) fMaxCones = TMath::Nint(1.8*TMath::TwoPi()/(TMath::Pi()*fRandomConeRadius*fRandomConeRadius)); - if(fLocalJetMinEta > -10 && fLocalJetMaxEta > -10) SetJetEtaLimits(fLocalJetMinEta, fLocalJetMaxEta); - if(fLocalJetMinPhi > -10 && fLocalJetMaxPhi > -10) SetJetPhiLimits(fLocalJetMinPhi, fLocalJetMaxPhi); - if(fMinDisanceRCtoLJ==0) fMinDisanceRCtoLJ = .5*fJetRadius; + if(fLocalJetMinEta > -10 && fLocalJetMaxEta > -10) GetJetContainer()->SetJetEtaLimits(fLocalJetMinEta, fLocalJetMaxEta); + if(fLocalJetMinPhi > -10 && fLocalJetMaxPhi > -10) GetJetContainer()->SetJetPhiLimits(fLocalJetMinPhi, fLocalJetMaxPhi); + if(fMinDisanceRCtoLJ==0) fMinDisanceRCtoLJ = .5*GetJetRadius(); if(dynamic_cast(InputEvent())) fDataType = kAOD; // determine the datatype else if(dynamic_cast(InputEvent())) fDataType = kESD; fHistAnalysisSummary->SetBinContent(36, (int)fDataType); @@ -641,26 +642,16 @@ void AliAnalysisTaskRhoVnModulation::CalculateEventPlaneTPC(Double_t* tpc) Double_t qx2(0), qy2(0); // for psi2 Double_t qx3(0), qy3(0); // for psi3 if(fTracks) { - Float_t excludeInEta[] = {-999, -999}; + Float_t excludeInEta = -999; if(fExcludeLeadingJetsFromFit > 0 ) { // remove the leading jet from ep estimate - AliEmcalJet* leadingJet[] = {0x0, 0x0}; - static Int_t lJets[9999] = {-1}; - GetSortedArray(lJets, fJets); - for(Int_t i(0); i < fJets->GetEntriesFast(); i++) { // get the two leading jets - if (1 + i > fJets->GetEntriesFast()) break; - leadingJet[0] = static_cast(fJets->At(lJets[i])); - leadingJet[1] = static_cast(fJets->At(lJets[i+1])); - if(PassesCuts(leadingJet[0]) && PassesCuts(leadingJet[1])) break; - } - if(leadingJet[0] && leadingJet[1]) { - for(Int_t i(0); i < 2; i++) excludeInEta[i] = leadingJet[i]->Eta(); - } + AliEmcalJet* leadingJet(GetJetContainer()->GetLeadingJet()); + if(leadingJet) excludeInEta = leadingJet->Eta(); } Int_t iTracks(fTracks->GetEntriesFast()); for(Int_t iTPC(0); iTPC < iTracks; iTPC++) { AliVTrack* track = static_cast(fTracks->At(iTPC)); if(!PassesCuts(track) || track->Pt() < fSoftTrackMinPt || track->Pt() > fSoftTrackMaxPt) continue; - if(fExcludeLeadingJetsFromFit > 0 &&( (TMath::Abs(track->Eta() - excludeInEta[0]) < fJetRadius*fExcludeLeadingJetsFromFit ) || (TMath::Abs(track->Eta()) - fJetRadius - fJetMaxEta ) > 0 )) continue; + if(fExcludeLeadingJetsFromFit > 0 &&( (TMath::Abs(track->Eta() - excludeInEta) < GetJetContainer()->GetJetRadius()*fExcludeLeadingJetsFromFit ) || (TMath::Abs(track->Eta()) - GetJetContainer()->GetJetRadius() - GetJetContainer()->GetJetEtaMax() ) > 0 )) continue; fNAcceptedTracks++; qx2+= TMath::Cos(2.*track->Phi()); qy2+= TMath::Sin(2.*track->Phi()); @@ -759,7 +750,7 @@ Double_t AliAnalysisTaskRhoVnModulation::CalculateEventPlaneChi(Double_t resEP) } //_____________________________________________________________________________ void AliAnalysisTaskRhoVnModulation::CalculateRandomCone(Float_t &pt, Float_t &eta, Float_t &phi, - AliEmcalJet* jet, Bool_t randomize) const + AliEmcalJet* jet) const { // get a random cone if(fDebug > 1) printf("__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__); @@ -770,15 +761,15 @@ void AliAnalysisTaskRhoVnModulation::CalculateRandomCone(Float_t &pt, Float_t &e phiJet = jet->Phi(); } // force the random cones to at least be within detector acceptance - Float_t minPhi(fJetMinPhi), maxPhi(fJetMaxPhi); + Float_t minPhi(GetJetContainer()->GetJetPhiMin()), maxPhi(GetJetContainer()->GetJetPhiMax()); if(maxPhi > TMath::TwoPi()) maxPhi = TMath::TwoPi(); if(minPhi < 0 ) minPhi = 0; - Float_t diffRcRJR(TMath::Abs(fRandomConeRadius-fJetRadius)); + Float_t diffRcRJR(TMath::Abs(fRandomConeRadius-GetJetContainer()->GetJetRadius())); // construct a random cone and see if it's far away enough from the leading jet Int_t attempts(1000); while(kTRUE) { attempts--; - eta = gRandom->Uniform(fJetMinEta+diffRcRJR, fJetMaxEta-diffRcRJR); + eta = gRandom->Uniform(GetJetContainer()->GetJetEtaMin()+diffRcRJR, GetJetContainer()->GetJetEtaMax()-diffRcRJR); phi = gRandom->Uniform(minPhi, maxPhi); dJet = TMath::Sqrt((etaJet-eta)*(etaJet-eta)+(phiJet-phi)*(phiJet-phi)); @@ -794,11 +785,6 @@ void AliAnalysisTaskRhoVnModulation::CalculateRandomCone(Float_t &pt, Float_t &e AliVTrack* track = static_cast(fTracks->At(i)); if(!PassesCuts(track)) continue; Float_t etaTrack(track->Eta()), phiTrack(track->Phi()), ptTrack(track->Pt()); - // if requested, randomize eta and phi to destroy any correlated fluctuations - if(randomize) { - etaTrack = gRandom->Uniform(fTrackMinEta, fTrackMaxEta); - phiTrack = gRandom->Uniform(minPhi, maxPhi); - } // get distance from cone if(TMath::Abs(phiTrack-phi) > TMath::Abs(phiTrack - phi + TMath::TwoPi())) phiTrack+=TMath::TwoPi(); if(TMath::Abs(phiTrack-phi) > TMath::Abs(phiTrack - phi - TMath::TwoPi())) phiTrack-=TMath::TwoPi(); @@ -901,7 +887,7 @@ void AliAnalysisTaskRhoVnModulation::QCnDiffentialFlowVectors( for(Int_t ptBin(0); ptBin < ptBins->GetSize()-1; ptBin++) { AliEmcalJet* poi = static_cast(pois->At(i)); if(PassesCuts(poi)) { - Double_t pt(poi->Pt()-poi->Area()*fLocalRho->GetLocalVal(poi->Phi(), fJetRadius, fLocalRho->GetVal())); + Double_t pt(poi->Pt()-poi->Area()*fLocalRho->GetLocalVal(poi->Phi(), GetJetContainer()->GetJetRadius(), fLocalRho->GetVal())); if(pt >= ptBins->At(ptBin) && pt < ptBins->At(ptBin+1)) { repn[ptBin]+=TMath::Cos(((double)n)*poi->Phi()); impn[ptBin]+=TMath::Sin(((double)n)*poi->Phi()); @@ -1084,26 +1070,16 @@ Bool_t AliAnalysisTaskRhoVnModulation::CorrectRho(Double_t psi2, Double_t psi3) default: break; } Int_t iTracks(fTracks->GetEntriesFast()); - Double_t excludeInEta[] = {-999, -999}; - Double_t excludeInPhi[] = {-999, -999}; - Double_t excludeInPt[] = {-999, -999}; + Double_t excludeInEta = -999; + Double_t excludeInPhi = -999; + Double_t excludeInPt = -999; if(iTracks <= 0 || fLocalRho->GetVal() <= 0 ) return kFALSE; // no use fitting an empty event ... if(fExcludeLeadingJetsFromFit > 0 ) { - AliEmcalJet* leadingJet[] = {0x0, 0x0}; - static Int_t lJets[9999] = {-1}; - GetSortedArray(lJets, fJets); - for(Int_t i(0); i < fJets->GetEntriesFast(); i++) { // get the two leading jets - if (1 + i > fJets->GetEntriesFast()) break; - leadingJet[0] = static_cast(fJets->At(lJets[i])); - leadingJet[1] = static_cast(fJets->At(lJets[i+1])); - if(PassesCuts(leadingJet[0]) && PassesCuts(leadingJet[1])) break; - } - if(leadingJet[0] && leadingJet[1]) { - for(Int_t i(0); i < 2; i++) { - excludeInEta[i] = leadingJet[i]->Eta(); - excludeInPhi[i] = leadingJet[i]->Phi(); - excludeInPt[i] = leadingJet[i]->Pt(); - } + AliEmcalJet* leadingJet(GetJetContainer()->GetLeadingJet()); + if(leadingJet) { + excludeInEta = leadingJet->Eta(); + excludeInPhi = leadingJet->Phi(); + excludeInPt = leadingJet->Pt(); } } fHistSwap->Reset(); // clear the histogram @@ -1116,7 +1092,7 @@ Bool_t AliAnalysisTaskRhoVnModulation::CorrectRho(Double_t psi2, Double_t psi3) else _tempSwap = *fHistSwap; // now _tempSwap holds the desired histo for(Int_t i(0); i < iTracks; i++) { AliVTrack* track = static_cast(fTracks->At(i)); - if(fExcludeLeadingJetsFromFit > 0 &&( (TMath::Abs(track->Eta() - excludeInEta[0]) < fJetRadius*fExcludeLeadingJetsFromFit ) || (TMath::Abs(track->Eta()) - fJetRadius - fJetMaxEta ) > 0 )) continue; + if(fExcludeLeadingJetsFromFit > 0 &&( (TMath::Abs(track->Eta() - excludeInEta) < GetJetContainer()->GetJetRadius()*fExcludeLeadingJetsFromFit ) || (TMath::Abs(track->Eta()) - GetJetContainer()->GetJetRadius() - GetJetContainer()->GetJetEtaMax() ) > 0 )) continue; if(!PassesCuts(track) || track->Pt() > fSoftTrackMaxPt || track->Pt() < fSoftTrackMinPt) continue; if(fUsePtWeight) _tempSwap.Fill(track->Phi(), track->Pt()); else _tempSwap.Fill(track->Phi()); @@ -1183,12 +1159,8 @@ Bool_t AliAnalysisTaskRhoVnModulation::CorrectRho(Double_t psi2, Double_t psi3) } if(fExcludeLeadingJetsFromFit) { // visualize the excluded region TF2 *f2 = new TF2(Form("%s_LJ", didacticSurface->GetName()),"[0]*TMath::Gaus(x,[1],[2])*TMath::Gaus(y,[3],[4])", 0, TMath::TwoPi(), -1, 1); - f2->SetParameters(excludeInPt[0]/3.,excludeInPhi[0],.1,excludeInEta[0],.1); + f2->SetParameters(excludeInPt/3.,excludeInPhi,.1,excludeInEta,.1); didacticSurface->GetListOfFunctions()->Add(f2); - TF2 *f3 = new TF2(Form("%s_NLJ", didacticSurface->GetName()),"[0]*TMath::Gaus(x,[1],[2])*TMath::Gaus(y,[3],[4])", 0, TMath::TwoPi(), -1, 1); - f3->SetParameters(excludeInPt[1]/3.,excludeInPhi[1],.1,excludeInEta[1],.1); - f3->SetLineColor(kGreen); - didacticSurface->GetListOfFunctions()->Add(f3); } fOutputListGood->Add(didacticSurface); } break; @@ -1225,7 +1197,7 @@ Bool_t AliAnalysisTaskRhoVnModulation::PassesCuts(AliVEvent* event) { // event cuts if(fDebug > 0) printf("__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__); - if(!event || !AliAnalysisTaskEmcal::IsEventSelected()) return kFALSE; + if(!event || !AliAnalysisTaskEmcalDev::IsEventSelected()) return kFALSE; if(TMath::Abs(InputEvent()->GetPrimaryVertex()->GetZ()) > 10.) return kFALSE; // aod and esd specific checks switch (fDataType) { @@ -1284,7 +1256,7 @@ Bool_t AliAnalysisTaskRhoVnModulation::PassesCuts(const AliVCluster* cluster) co return kTRUE; } //_____________________________________________________________________________ -void AliAnalysisTaskRhoVnModulation::FillHistogramsAfterSubtraction(Double_t psi2, Double_t psi3, Double_t vzero[2][2], Double_t* vzeroComb, Double_t* tpc) const +void AliAnalysisTaskRhoVnModulation::FillHistogramsAfterSubtraction(Double_t psi2, Double_t psi3, Double_t vzero[2][2], Double_t* vzeroComb, Double_t* tpc) { // fill histograms if(fDebug > 0) printf("__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__); @@ -1354,7 +1326,7 @@ void AliAnalysisTaskRhoVnModulation::FillEventPlaneHistograms(Double_t vzero[2][ fHistPsiSpread->Fill(2.5, TMath::Abs(vzero[1][0]-tpc[0])); } //_____________________________________________________________________________ -void AliAnalysisTaskRhoVnModulation::FillRhoHistograms() const +void AliAnalysisTaskRhoVnModulation::FillRhoHistograms() { // fill rho histograms if(fDebug > 0) printf("__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__); @@ -1379,14 +1351,7 @@ void AliAnalysisTaskRhoVnModulation::FillDeltaPtHistograms(Double_t psi2, Double // fill delta pt histograms if(fDebug > 0) printf("__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__); Int_t i(0); - AliEmcalJet* leadingJet(0x0); - static Int_t sJets[9999] = {-1}; - GetSortedArray(sJets, fJets); - do { // get the leading jet - leadingJet = static_cast(fJets->At(sJets[i])); - i++; - } - while (!PassesCuts(leadingJet)&&iGetEntriesFast()); + AliEmcalJet* leadingJet(GetJetContainer()->GetLeadingJet()); if(!leadingJet && fDebug > 0) printf(" > failed to retrieve leading jet ! < \n"); const Float_t areaRC = fRandomConeRadius*fRandomConeRadius*TMath::Pi(); // we're retrieved the leading jet, now get a random cone @@ -1396,33 +1361,24 @@ void AliAnalysisTaskRhoVnModulation::FillDeltaPtHistograms(Double_t psi2, Double CalculateRandomCone(pt, eta, phi, 0x0); if(pt > 0) { if(fFillQAHistograms) fHistRCPhiEta[fInCentralitySelection]->Fill(phi, eta); - fHistRhoVsRCPt[fInCentralitySelection]->Fill(pt, fLocalRho->GetLocalVal(phi, fJetRadius, fLocalRho->GetVal())*areaRC); + fHistRhoVsRCPt[fInCentralitySelection]->Fill(pt, fLocalRho->GetLocalVal(phi, GetJetContainer()->GetJetRadius(), fLocalRho->GetVal())*areaRC); fHistRCPt[fInCentralitySelection]->Fill(pt); - fHistDeltaPtDeltaPhi2[fInCentralitySelection]->Fill(PhaseShift(phi-psi2, 2.), pt - areaRC*fLocalRho->GetLocalVal(phi, fJetRadius, fLocalRho->GetVal())); - fHistDeltaPtDeltaPhi3[fInCentralitySelection]->Fill(PhaseShift(phi-psi3, 3.), pt - areaRC*fLocalRho->GetLocalVal(phi, fJetRadius, fLocalRho->GetVal())); + fHistDeltaPtDeltaPhi2[fInCentralitySelection]->Fill(PhaseShift(phi-psi2, 2.), pt - areaRC*fLocalRho->GetLocalVal(phi, GetJetContainer()->GetJetRadius(), fLocalRho->GetVal())); + fHistDeltaPtDeltaPhi3[fInCentralitySelection]->Fill(PhaseShift(phi-psi3, 3.), pt - areaRC*fLocalRho->GetLocalVal(phi, GetJetContainer()->GetJetRadius(), fLocalRho->GetVal())); } // get a random cone excluding leading jet area CalculateRandomCone(pt, eta, phi, leadingJet); if(pt > 0) { if(fFillQAHistograms) fHistRCPhiEtaExLJ[fInCentralitySelection]->Fill(phi, eta); - fHistRhoVsRCPtExLJ[fInCentralitySelection]->Fill(pt, fLocalRho->GetLocalVal(phi, fJetRadius, fRho->GetVal())*areaRC); + fHistRhoVsRCPtExLJ[fInCentralitySelection]->Fill(pt, fLocalRho->GetLocalVal(phi, GetJetContainer()->GetJetRadius(), fRho->GetVal())*areaRC); fHistRCPtExLJ[fInCentralitySelection]->Fill(pt); - fHistDeltaPtDeltaPhi2ExLJ[fInCentralitySelection]->Fill(PhaseShift(phi-psi2, 2.), pt - areaRC*fLocalRho->GetLocalVal(phi, fJetRadius, fLocalRho->GetVal())); - fHistDeltaPtDeltaPhi3ExLJ[fInCentralitySelection]->Fill(PhaseShift(phi-psi3, 3.), pt - areaRC*fLocalRho->GetLocalVal(phi, fJetRadius, fLocalRho->GetVal())); + fHistDeltaPtDeltaPhi2ExLJ[fInCentralitySelection]->Fill(PhaseShift(phi-psi2, 2.), pt - areaRC*fLocalRho->GetLocalVal(phi, GetJetContainer()->GetJetRadius(), fLocalRho->GetVal())); + fHistDeltaPtDeltaPhi3ExLJ[fInCentralitySelection]->Fill(PhaseShift(phi-psi3, 3.), pt - areaRC*fLocalRho->GetLocalVal(phi, GetJetContainer()->GetJetRadius(), fLocalRho->GetVal())); } - // get a random cone in an event with randomized phi and eta - /* CalculateRandomCone(pt, eta, phi, 0x0, kTRUE); - if( pt > 0) { - fHistRCPhiEtaRand[fInCentralitySelection]->Fill(phi, eta); - fHistRhoVsRCPtRand[fInCentralitySelection]->Fill(pt, RhoVal(phi, fJetRadius, fRho->GetVal())*areaRC); - fHistRCPtRand[fInCentralitySelection]->Fill(pt); - fHistDeltaPtDeltaPhi2Rand[fInCentralitySelection]->Fill(PhaseShift(phi-psi2, 2.), pt - areaRC*RhoVal(phi, fJetRadius, fRho->GetVal())); - fHistDeltaPtDeltaPhi3Rand[fInCentralitySelection]->Fill(PhaseShift(phi-psi3, 3.), pt - areaRC*RhoVal(phi, fJetRadius, fRho->GetVal())); - } */ } } //_____________________________________________________________________________ -void AliAnalysisTaskRhoVnModulation::FillJetHistograms(Double_t psi2, Double_t psi3) const +void AliAnalysisTaskRhoVnModulation::FillJetHistograms(Double_t psi2, Double_t psi3) { // fill jet histograms if(fDebug > 0) printf("__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__); @@ -1431,7 +1387,7 @@ void AliAnalysisTaskRhoVnModulation::FillJetHistograms(Double_t psi2, Double_t p AliEmcalJet* jet = static_cast(fJets->At(i)); if(PassesCuts(jet)) { Double_t pt(jet->Pt()), area(jet->Area()), eta(jet->Eta()), phi(jet->Phi()); - Double_t rho(fLocalRho->GetLocalVal(phi, fJetRadius, fLocalRho->GetVal())); + Double_t rho(fLocalRho->GetLocalVal(phi, GetJetContainer()->GetJetRadius(), fLocalRho->GetVal())); fHistJetPtRaw[fInCentralitySelection]->Fill(pt); fHistJetPt[fInCentralitySelection]->Fill(pt-area*rho); if(fFillQAHistograms) fHistJetEtaPhi[fInCentralitySelection]->Fill(eta, phi); @@ -1484,36 +1440,16 @@ void AliAnalysisTaskRhoVnModulation::FillAnalysisSummaryHistogram() const { // fill the analysis summary histrogram, saves all relevant analysis settigns if(fDebug > 0) printf("__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(1, "fJetRadius"); - fHistAnalysisSummary->SetBinContent(1, fJetRadius); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(2, "fPtBiasJetTrack"); - fHistAnalysisSummary->SetBinContent(2, fPtBiasJetTrack); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(3, "fPtBiasJetClus"); - fHistAnalysisSummary->SetBinContent(3, fPtBiasJetClus); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(4, "fJetPtCut"); - fHistAnalysisSummary->SetBinContent(4, fJetPtCut); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(5, "fJetAreaCut"); - fHistAnalysisSummary->SetBinContent(5, fJetAreaCut); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(6, "fPercAreaCut"); - fHistAnalysisSummary->SetBinContent(6, fPercAreaCut); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(7, "fAreaEmcCut"); - fHistAnalysisSummary->SetBinContent(7, fAreaEmcCut); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(8, "fJetMinEta"); - fHistAnalysisSummary->SetBinContent(8, fJetMinEta); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(9, "fJetMaxEta"); - fHistAnalysisSummary->SetBinContent(9, fJetMaxEta); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(10, "fJetMinPhi"); - fHistAnalysisSummary->SetBinContent(10, fJetMinPhi); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(11, "fJetMaxPhi"); - fHistAnalysisSummary->SetBinContent(11, fJetMaxPhi); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(12, "fMaxClusterPt"); - fHistAnalysisSummary->SetBinContent(12, fMaxClusterPt); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(13, "fMaxTrackPt"); - fHistAnalysisSummary->SetBinContent(13, fMaxTrackPt); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(14, "fLeadingHadronType"); - fHistAnalysisSummary->SetBinContent(14, fLeadingHadronType); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(15, "fAnaType"); - fHistAnalysisSummary->SetBinContent(15, fAnaType); + fHistAnalysisSummary->GetXaxis()->SetBinLabel(2, "fJetRadius"); + fHistAnalysisSummary->SetBinContent(2, GetJetContainer()->GetJetRadius()); + fHistAnalysisSummary->GetXaxis()->SetBinLabel(3, "fJetEtaMin"); + fHistAnalysisSummary->SetBinContent(3, GetJetContainer()->GetJetEtaMin()); + fHistAnalysisSummary->GetXaxis()->SetBinLabel(4, "fJetEtaMax"); + fHistAnalysisSummary->SetBinContent(4, GetJetContainer()->GetJetEtaMax()); + fHistAnalysisSummary->GetXaxis()->SetBinLabel(5, "fJetPhiMin"); + fHistAnalysisSummary->SetBinContent(5, GetJetContainer()->GetJetPhiMin()); + fHistAnalysisSummary->GetXaxis()->SetBinLabel(6, "fJetPhiMax"); + fHistAnalysisSummary->SetBinContent(6, GetJetContainer()->GetJetPhiMin()); fHistAnalysisSummary->GetXaxis()->SetBinLabel(16, "fForceBeamType"); fHistAnalysisSummary->SetBinContent(16, fForceBeamType); fHistAnalysisSummary->GetXaxis()->SetBinLabel(17, "fMinCent"); @@ -1526,28 +1462,6 @@ void AliAnalysisTaskRhoVnModulation::FillAnalysisSummaryHistogram() const fHistAnalysisSummary->SetBinContent(20, fMaxVz); fHistAnalysisSummary->GetXaxis()->SetBinLabel(21, "fOffTrigger"); fHistAnalysisSummary->SetBinContent(21, fOffTrigger); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(22, "fClusPtCut"); - fHistAnalysisSummary->SetBinContent(22, fClusPtCut); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(23, "fTrackPtCut"); - fHistAnalysisSummary->SetBinContent(23, fTrackPtCut); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(24, "fTrackMinEta"); - fHistAnalysisSummary->SetBinContent(24, fTrackMinEta); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(25, "fTrackMaxEta"); - fHistAnalysisSummary->SetBinContent(25, fTrackMaxEta); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(26, "fTrackMinPhi"); - fHistAnalysisSummary->SetBinContent(26, fTrackMinPhi); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(27, "fTrackMaxPhi"); - fHistAnalysisSummary->SetBinContent(27, fTrackMaxPhi); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(28, "fClusTimeCutLow"); - fHistAnalysisSummary->SetBinContent(28, fClusTimeCutLow); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(29, "fClusTimeCutUp"); - fHistAnalysisSummary->SetBinContent(29, fClusTimeCutUp); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(30, "fMinPtTrackInEmcal"); - fHistAnalysisSummary->SetBinContent(30, fMinPtTrackInEmcal); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(31, "fEventPlaneVsEmcal"); - fHistAnalysisSummary->SetBinContent(31, fEventPlaneVsEmcal); - fHistAnalysisSummary->GetXaxis()->SetBinLabel(32, "fMinEventPlane"); - fHistAnalysisSummary->SetBinContent(32, fMaxEventPlane); fHistAnalysisSummary->GetXaxis()->SetBinLabel(33, "fRandomConeRadius"); fHistAnalysisSummary->SetBinContent(33, fRandomConeRadius); fHistAnalysisSummary->GetXaxis()->SetBinLabel(34, "fitModulationType"); diff --git a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskRhoVnModulation.h b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskRhoVnModulation.h index 97364d69e79..b2271872c40 100644 --- a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskRhoVnModulation.h +++ b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskRhoVnModulation.h @@ -5,7 +5,7 @@ #ifndef ALIANALYSISTASKRHOVNMODULATION_H #define ALIANALYSISTASKRHOVNMODULATION_H -#include +#include #include #include #include @@ -13,6 +13,7 @@ #include #include #include +#include class TF1; class THF1; @@ -20,8 +21,7 @@ class THF2; class TProfile; class AliLocalRhoParameter; -class AliAnalysisTaskRhoVnModulation : public AliAnalysisTaskEmcalJet -{ +class AliAnalysisTaskRhoVnModulation : public AliAnalysisTaskEmcalJetDev { public: // enumerators enum fitModulationType { kNoFit, kV2, kV3, kCombined, kFourierSeries, kIntegratedFlow, kQC2, kQC4 }; // fit type @@ -99,8 +99,8 @@ class AliAnalysisTaskRhoVnModulation : public AliAnalysisTaskEmcalJet void SetUseV0EventPlaneFromHeader(Bool_t h) {fUseV0EventPlaneFromHeader = h;} void SetExplicitOutlierCutForYear(Int_t y) {fExplicitOutlierCut = y;} // getters - these are used as well by AliAnalyisTaskJetFlow, so be careful when changing them - TString GetJetsName() const {return fJetsName; } - TString GetTracksName() const {return fTracksName; } + TString GetJetsName() const {return GetJetContainer()->GetArrayName(); } + TString GetTracksName() const {return fTracks->GetName(); } TString GetLocalRhoName() const {return fLocalRhoName; } TArrayI* GetCentralityClasses() const {return fCentralityClasses;} TArrayD* GetPtBinsHybrids() const {return fPtBinsHybrids; } @@ -108,7 +108,7 @@ class AliAnalysisTaskRhoVnModulation : public AliAnalysisTaskEmcalJet TProfile* GetResolutionParameters(Int_t h, Int_t c) const {return (h==2) ? fProfV2Resolution[c] : fProfV3Resolution[c];} TList* GetOutputList() const {return fOutputList;} AliLocalRhoParameter* GetLocalRhoParameter() const {return fLocalRho;} - Double_t GetJetRadius() const {return fJetRadius;} + Double_t GetJetRadius() const {return GetJetContainer()->GetJetRadius();} void ExecMe() {ExecOnce();} AliAnalysisTaskRhoVnModulation* ReturnMe() {return this;} // local cuts @@ -122,7 +122,7 @@ class AliAnalysisTaskRhoVnModulation : public AliAnalysisTaskEmcalJet void CalculateEventPlaneCombinedVZERO(Double_t* comb) const; void CalculateEventPlaneResolution(Double_t vzero[2][2], Double_t* vzeroComb, Double_t* tpc); Double_t CalculateEventPlaneChi(Double_t resEP) const; - void CalculateRandomCone(Float_t &pt, Float_t &eta, Float_t &phi, AliEmcalJet* jet = 0x0, Bool_t randomize = 0) const; + void CalculateRandomCone(Float_t &pt, Float_t &eta, Float_t &phi, AliEmcalJet* jet = 0x0) const; Double_t CalculateQC2(Int_t harm); Double_t CalculateQC4(Int_t harm); // helper calculations for the q-cumulant analysis, also used by AliAnalyisTaskJetFlow @@ -138,24 +138,20 @@ class AliAnalysisTaskRhoVnModulation : public AliAnalysisTaskEmcalJet // analysis details Bool_t CorrectRho(Double_t psi2, Double_t psi3); // event and track selection, also used by AliAnalyisTaskJetFlow - /* inline */ Bool_t PassesCuts(const AliVTrack* track) const { - if(!track) return kFALSE; - return (track->Pt() < fTrackPtCut || track->Eta() < fTrackMinEta || track->Eta() > fTrackMaxEta || track->Phi() < fTrackMinPhi || track->Phi() > fTrackMaxPhi) ? kFALSE : kTRUE; } - /* inline */ Bool_t PassesCuts(AliEmcalJet* jet) const { - if(!jet || fJetRadius <= 0) return kFALSE; - return (GetLeadingHadronPt(jet) < fMinLeadingHadronPt || jet->Pt() < fJetPtCut || jet->Area()/(fJetRadius*fJetRadius*TMath::Pi()) < fPercAreaCut || jet->Eta() < fJetMinEta || jet->Eta() > fJetMaxEta || jet->Phi() < fJetMinPhi || jet->Phi() > fJetMaxPhi) ? kFALSE : kTRUE; } + /* inline */ Bool_t PassesCuts(AliVTrack* track) const { return AcceptTrack(track, 0); } + /* inline */ Bool_t PassesCuts(AliEmcalJet* jet) { return AcceptJet(jet, 0); } Bool_t PassesCuts(AliVEvent* event); Bool_t PassesCuts(Int_t year); Bool_t PassesCuts(const AliVCluster* track) const; // filling histograms - void FillHistogramsAfterSubtraction(Double_t psi2, Double_t psi3, Double_t vzero[2][2], Double_t* vzeroComb, Double_t* tpc) const; + void FillHistogramsAfterSubtraction(Double_t psi2, Double_t psi3, Double_t vzero[2][2], Double_t* vzeroComb, Double_t* tpc); void FillTrackHistograms() const; void FillClusterHistograms() const; void FillCorrectedClusterHistograms() const; void FillEventPlaneHistograms(Double_t vzero[2][2], Double_t* vzeroComb, Double_t* tpc) const; - void FillRhoHistograms() const; + void FillRhoHistograms(); void FillDeltaPtHistograms(Double_t psi2, Double_t psi3) const; - void FillJetHistograms(Double_t psi2, Double_t psi3) const; + void FillJetHistograms(Double_t psi2, Double_t psi3); void FillQAHistograms(AliVTrack* vtrack) const; void FillQAHistograms(AliVEvent* vevent); void FillAnalysisSummaryHistogram() const; @@ -301,7 +297,7 @@ class AliAnalysisTaskRhoVnModulation : public AliAnalysisTaskEmcalJet AliAnalysisTaskRhoVnModulation(const AliAnalysisTaskRhoVnModulation&); // not implemented AliAnalysisTaskRhoVnModulation& operator=(const AliAnalysisTaskRhoVnModulation&); // not implemented - ClassDef(AliAnalysisTaskRhoVnModulation, 15); + ClassDef(AliAnalysisTaskRhoVnModulation, 16); }; #endif diff --git a/PWGJE/EMCALJetTasks/macros/AddTaskEmcalDiJetAna.C b/PWGJE/EMCALJetTasks/macros/AddTaskEmcalDiJetAna.C index c5e4b2ed175..8cd620b027e 100644 --- a/PWGJE/EMCALJetTasks/macros/AddTaskEmcalDiJetAna.C +++ b/PWGJE/EMCALJetTasks/macros/AddTaskEmcalDiJetAna.C @@ -71,21 +71,21 @@ AliAnalysisTaskEmcalDiJetAna* AddTaskEmcalDiJetAna(TString kTracksName TF1 *fScale = new TF1("fit",fitf,0,100,5); fScale->SetParameters(60.,1.41363e+00,7.95329e-01,1.95281e-02,-1.55196e-04); */ - rhoTask = AddTaskRhoSparse( - jetFinderKt->GetName(), + TString rhoSparseName = Form("RhoSparseR%03d",(int)(100*R)); + rhoTask = AddTaskRhoSparse(jetFinderKt->GetName(), jetFinderAKt->GetName(), - kTracksName, - kClusName, - Form("RhoSparseR%03d",(int)(100*R)), + kTracksName.Data(), + kClusName.Data(), + rhoSparseName.Data(), R, - AliAnalysisTaskEmcal::kTPC, + "TPC", 0.01, 0.15, 0, fScale, 0, kTRUE, - Form("RhoSparseR%03d",(int)(100*R)), + rhoSparseName.Data(), kTRUE ); rhoTask->SetCentralityEstimator(CentEst); @@ -118,6 +118,8 @@ AliAnalysisTaskEmcalDiJetAna* AddTaskEmcalDiJetAna(TString kTracksName taskDiJet->AddJetContainer(strJetsFull.Data(),"EMCAL",R); taskDiJet->AddJetContainer(strJetsCh.Data(),"TPC",R); + taskDiJet->SetZLeadingCut(0.98,0.98,0); + for(Int_t i=0; i<2; i++) { taskDiJet->SetPercAreaCut(0.6, i); taskDiJet->SetPtBiasJetTrack(ptTrackBias,i); @@ -125,8 +127,8 @@ AliAnalysisTaskEmcalDiJetAna* AddTaskEmcalDiJetAna(TString kTracksName taskDiJet->SetRhoType(rhoType); if(rhoType==1) { - taskDiJet->SetRhoName(rhoTask->GetRhoScaledName(),0); - taskDiJet->SetRhoName(rhoTask->GetRhoName(),1); + taskDiJet->SetRhoName(rhoTask->GetOutRhoScaledName(),0); + taskDiJet->SetRhoName(rhoTask->GetOutRhoName(),1); } taskDiJet->SetCentralityEstimator(CentEst); diff --git a/PWGJE/EMCALJetTasks/macros/AddTaskEmcalDiJetResponse.C b/PWGJE/EMCALJetTasks/macros/AddTaskEmcalDiJetResponse.C index 204f04a7a0a..7542ff31724 100644 --- a/PWGJE/EMCALJetTasks/macros/AddTaskEmcalDiJetResponse.C +++ b/PWGJE/EMCALJetTasks/macros/AddTaskEmcalDiJetResponse.C @@ -70,12 +70,14 @@ AliAnalysisTaskEmcalDiJetResponse* AddTaskEmcalDiJetResponse(TString kTracks taskDiJet->AddParticleContainer(kTracksName.Data()); taskDiJet->AddClusterContainer(kClusName.Data()); - // taskDiJet->SetAnaType(AliAnalysisTaskEmcalDev::kEMCAL); taskDiJet->AddJetContainer(strJetsFull.Data(),"EMCAL",R); taskDiJet->AddJetContainer(strJetsCh.Data(),"TPC",R); taskDiJet->AddJetContainer(strJetsFullMC.Data(),"EMCAL",R); taskDiJet->AddJetContainer(strJetsChMC.Data(),"TPC",R); + taskDiJet->SetZLeadingCut(0.98,0.98,0); + taskDiJet->SetZLeadingCut(0.98,0.98,2); + for(Int_t i=0; i<4; i++) { taskDiJet->SetPercAreaCut(0.6, i); taskDiJet->SetPtBiasJetTrack(ptTrackBias,i); diff --git a/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJetTriggerQA.C b/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJetTriggerQA.C index 3edc03e9cc8..1d1738373e2 100644 --- a/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJetTriggerQA.C +++ b/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJetTriggerQA.C @@ -4,7 +4,6 @@ AliAnalysisTaskEmcalJetTriggerQA* AddTaskEmcalJetTriggerQA(TString kTracksNa Double_t ptminTrack = 0.15, Double_t etminClus = 0.3, Int_t rhoType = 0, - UInt_t type = AliAnalysisTaskEmcal::kEMCAL, TString trigClass = "", TString kEmcalCellsName = "", const char *CentEst = "V0A", @@ -70,7 +69,7 @@ AliAnalysisTaskEmcalJetTriggerQA* AddTaskEmcalJetTriggerQA(TString kTracksNa kClusName, Form("RhoSparseR%03d",(int)(100*R)), R, - AliAnalysisTaskEmcal::kTPC, + "TPC", 0.01, 0.15, 0, @@ -88,36 +87,28 @@ AliAnalysisTaskEmcalJetTriggerQA* AddTaskEmcalJetTriggerQA(TString kTracksNa //Configure TriggerQA task AliAnalysisTaskEmcalJetTriggerQA *task = new AliAnalysisTaskEmcalJetTriggerQA(wagonName); - task->SetTracksName(kTracksName.Data()); - task->SetClusName(kClusName.Data()); - task->SetJetsName(strJets1.Data()); - task->SetJetRadius(R); - task->SetJetPtCut(0.15); - task->SetPercAreaCut(0.6); - task->SetTrackPtCut(ptminTrack); - task->SetClusPtCut(etminClus); - task->SetAnaType(type); - task->SetTriggerClass(trigClass.Data()); - task->SetCaloCellsName(kEmcalCellsName.Data()); - - task->SetJetsName2(strJets2.Data()); - if(strJets2.Contains("Charged")) { - task->SetMinEtaJets2(-0.9+R); - task->SetMaxEtaJets2(0.9-R); - task->SetMinPhiJets2(-10.); - task->SetMaxPhiJets2(10.); - } - else { - task->SetMinEtaJets2(-0.7+R); - task->SetMaxEtaJets2(0.7-R); - task->SetMinPhiJets2(1.4+R); - task->SetMaxPhiJets2(TMath::Pi()-R); + AliParticleContainer *trackCont = task->AddParticleContainer(kTracksName.Data()); + AliClusterContainer *clusterCont = task->AddClusterContainer(kClusName.Data()); + + task->SetContainerFull(0); + task->SetContainerCharged(1); + AliJetContainer *jetCont0 = task->AddJetContainer(strJets1.Data(),"EMCAL",R); + AliJetContainer *jetCont1 = NULL; + if(strJets2.Contains("Charged")) jetCont1 = task->AddJetContainer(strJets2.Data(),"TPC",R); + else { + jetCont1 = task->AddJetContainer(strJets2.Data(),"EMCAL",R); + task->SetZLeadingCut(0.98,0.98,1); } - if(rhoType==1) { - task->SetRhoName(rhoTask->GetRhoScaledName()); - task->SetRhoChName(rhoTask->GetRhoName()); + task->SetZLeadingCut(0.98,0.98,0); + + for(Int_t i=0; i<2; i++) { + task->SetPercAreaCut(0.6, i); } + + task->SetTriggerClass(trigClass.Data()); + task->SetCaloCellsName(kEmcalCellsName.Data()); + task->SetCentralityEstimator(CentEst); task->SelectCollisionCandidates(pSel); diff --git a/PWGJE/EMCALJetTasks/macros/AddTaskRhoSparse.C b/PWGJE/EMCALJetTasks/macros/AddTaskRhoSparse.C index 987f81aa9a4..e0b3de4c08b 100644 --- a/PWGJE/EMCALJetTasks/macros/AddTaskRhoSparse.C +++ b/PWGJE/EMCALJetTasks/macros/AddTaskRhoSparse.C @@ -1,23 +1,24 @@ // $Id$ AliAnalysisTaskRhoSparse* AddTaskRhoSparse( - const char *nJetsBkg = "JetsBkg", - const char *nJetsSig = "JetsSig", - const char *nTracks = "PicoTracks", - const char *nClusters = "CaloClusters", - const char *nRho = "Rho", - Double_t jetradius = 0.2, - const char *cutType = "TPC", - Double_t jetareacut = 0.01, - Double_t jetptcut = 0.0, - Double_t emcareacut = 0, - TF1 *sfunc = 0, - const UInt_t exclJets = 2, - const Bool_t histo = kFALSE, - const char *taskname = "Rho", - const Bool_t fRhoCMS = kTRUE -) + const char *nJetsBkg = "JetsBkg", + const char *nJetsSig = "JetsSig", + const char *nTracks = "PicoTracks", + const char *nClusters = "CaloClusters", + const char *nRho = "Rho", + Double_t jetradius = 0.2, + const char *cutType = "TPC", + Double_t jetareacut = 0.01, + Double_t jetptcut = 0.0, + Double_t emcareacut = 0, + TF1 *sfunc = 0x0, + const UInt_t exclJets = 2, + const Bool_t histo = kFALSE, + const char *taskname = "Rho", + const Bool_t fRhoCMS = kTRUE + ) { + // Get the pointer to the existing analysis manager via the static access method. //============================================================================== AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); @@ -57,18 +58,16 @@ AliAnalysisTaskRhoSparse* AddTaskRhoSparse( if (bkgJetCont) { bkgJetCont->SetJetAreaCut(jetareacut); bkgJetCont->SetAreaEmcCut(emcareacut); - bkgJetCont->SetJetPtCut(0); + bkgJetCont->SetJetPtCut(0.); bkgJetCont->ConnectParticleContainer(trackCont); bkgJetCont->ConnectClusterContainer(clusterCont); } AliJetContainer *sigJetCont = rhotask->AddJetContainer(nJetsSig,cutType,jetradius); if (sigJetCont) { - // are these cuts correct for signal jets? sigJetCont->SetJetAreaCut(jetareacut); sigJetCont->SetAreaEmcCut(emcareacut); - sigJetCont->SetJetPtCut(0); - + sigJetCont->SetJetPtCut(jetptcut); sigJetCont->ConnectParticleContainer(trackCont); sigJetCont->ConnectClusterContainer(clusterCont); } -- 2.43.5