Skip to content

Commit ce2e258

Browse files
authored
Merge branch 'AliceO2Group:master' into master
2 parents e27c90a + cde8c99 commit ce2e258

File tree

64 files changed

+1221
-1275
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+1221
-1275
lines changed

Common/TableProducer/PID/pidTOFMerge.cxx

Lines changed: 110 additions & 402 deletions
Large diffs are not rendered by default.

Common/TableProducer/eventSelection.cxx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1201,10 +1201,12 @@ struct LumiTask {
12011201
histos.add("hCounterTCE", "", kTH1D, {{1, 0., 1.}});
12021202
histos.add("hCounterZEM", "", kTH1D, {{1, 0., 1.}});
12031203
histos.add("hCounterZNC", "", kTH1D, {{1, 0., 1.}});
1204+
histos.add("hCounterTVXZDC", "", kTH1D, {{1, 0., 1.}});
12041205
histos.add("hCounterTVXafterBCcuts", "", kTH1D, {{1, 0., 1.}});
12051206
histos.add("hCounterTCEafterBCcuts", "", kTH1D, {{1, 0., 1.}});
12061207
histos.add("hCounterZEMafterBCcuts", "", kTH1D, {{1, 0., 1.}});
12071208
histos.add("hCounterZNCafterBCcuts", "", kTH1D, {{1, 0., 1.}});
1209+
histos.add("hCounterTVXZDCafterBCcuts", "", kTH1D, {{1, 0., 1.}});
12081210
histos.add("hLumiTVX", ";;Luminosity, 1/#mub", kTH1D, {{1, 0., 1.}});
12091211
histos.add("hLumiTCE", ";;Luminosity, 1/#mub", kTH1D, {{1, 0., 1.}});
12101212
histos.add("hLumiZEM", ";;Luminosity, 1/#mub", kTH1D, {{1, 0., 1.}});
@@ -1428,9 +1430,15 @@ struct LumiTask {
14281430
if (isTriggerTVX) {
14291431
histos.get<TH1>(HIST("hCounterTVX"))->Fill(srun, 1);
14301432
histos.get<TH1>(HIST("hLumiTVX"))->Fill(srun, lumiTVX);
1433+
if (isTriggerZNA && isTriggerZNC) {
1434+
histos.get<TH1>(HIST("hCounterTVXZDC"))->Fill(srun, 1);
1435+
}
14311436
if (noBorder) {
14321437
histos.get<TH1>(HIST("hCounterTVXafterBCcuts"))->Fill(srun, 1);
14331438
histos.get<TH1>(HIST("hLumiTVXafterBCcuts"))->Fill(srun, lumiTVX);
1439+
if (isTriggerZNA && isTriggerZNC) {
1440+
histos.get<TH1>(HIST("hCounterTVXZDCafterBCcuts"))->Fill(srun, 1);
1441+
}
14341442
for (size_t i = 0; i < mRCTFlagsCheckers.size(); i++) {
14351443
if (mRCTFlagsCheckers[i](bc))
14361444
histos.get<TH2>(HIST("hLumiTVXafterBCcutsRCT"))->Fill(srun, i, lumiTVX);

Common/Tools/EventSelectionModule.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1553,10 +1553,12 @@ class LumiModule
15531553
histos.add("luminosity/hCounterTCE", "", framework::kTH1D, {{1, 0., 1.}});
15541554
histos.add("luminosity/hCounterZEM", "", framework::kTH1D, {{1, 0., 1.}});
15551555
histos.add("luminosity/hCounterZNC", "", framework::kTH1D, {{1, 0., 1.}});
1556+
histos.add("luminosity/hCounterTVXZDC", "", framework::kTH1D, {{1, 0., 1.}});
15561557
histos.add("luminosity/hCounterTVXafterBCcuts", "", framework::kTH1D, {{1, 0., 1.}});
15571558
histos.add("luminosity/hCounterTCEafterBCcuts", "", framework::kTH1D, {{1, 0., 1.}});
15581559
histos.add("luminosity/hCounterZEMafterBCcuts", "", framework::kTH1D, {{1, 0., 1.}});
15591560
histos.add("luminosity/hCounterZNCafterBCcuts", "", framework::kTH1D, {{1, 0., 1.}});
1561+
histos.add("luminosity/hCounterTVXZDCafterBCcuts", "", framework::kTH1D, {{1, 0., 1.}});
15601562
histos.add("luminosity/hLumiTVX", ";;Luminosity, 1/#mub", framework::kTH1D, {{1, 0., 1.}});
15611563
histos.add("luminosity/hLumiTCE", ";;Luminosity, 1/#mub", framework::kTH1D, {{1, 0., 1.}});
15621564
histos.add("luminosity/hLumiZEM", ";;Luminosity, 1/#mub", framework::kTH1D, {{1, 0., 1.}});
@@ -1799,9 +1801,15 @@ class LumiModule
17991801
if (isTriggerTVX) {
18001802
histos.template get<TH1>(HIST("luminosity/hCounterTVX"))->Fill(srun, 1);
18011803
histos.template get<TH1>(HIST("luminosity/hLumiTVX"))->Fill(srun, lumiTVX);
1804+
if (isTriggerZNA && isTriggerZNC) {
1805+
histos.template get<TH1>(HIST("luminosity/hCounterTVXZDC"))->Fill(srun, 1);
1806+
}
18021807
if (noBorder) {
18031808
histos.template get<TH1>(HIST("luminosity/hCounterTVXafterBCcuts"))->Fill(srun, 1);
18041809
histos.template get<TH1>(HIST("luminosity/hLumiTVXafterBCcuts"))->Fill(srun, lumiTVX);
1810+
if (isTriggerZNA && isTriggerZNC) {
1811+
histos.template get<TH1>(HIST("luminosity/hCounterTVXZDCafterBCcuts"))->Fill(srun, 1);
1812+
}
18051813
for (size_t i = 0; i < mRCTFlagsCheckers.size(); i++) {
18061814
if ((rct & mRCTFlagsCheckers[i].value()) == 0)
18071815
histos.template get<TH2>(HIST("luminosity/hLumiTVXafterBCcutsRCT"))->Fill(srun, i, lumiTVX);

EventFiltering/PWGJE/jetFilter.cxx

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -11,32 +11,33 @@
1111

1212
// Author: Filip Krizek
1313

14-
#include <TMath.h>
15-
#include <cmath>
16-
#include <string>
17-
#include <vector>
14+
#include "../filterTables.h"
1815

19-
#include "Framework/ASoA.h"
20-
#include "Framework/ASoAHelpers.h"
21-
#include "Framework/AnalysisDataModel.h"
22-
#include "Framework/AnalysisTask.h"
23-
#include "Framework/runDataProcessing.h"
24-
#include "ReconstructionDataFormats/Track.h"
16+
#include "PWGJE/Core/FastJetUtilities.h"
17+
#include "PWGJE/Core/JetBkgSubUtils.h"
18+
#include "PWGJE/Core/JetDerivedDataUtilities.h"
19+
#include "PWGJE/Core/JetFinder.h"
20+
#include "PWGJE/DataModel/EMCALClusters.h"
21+
#include "PWGJE/DataModel/Jet.h"
2522

2623
#include "Common/Core/TrackSelection.h"
2724
#include "Common/Core/TrackSelectionDefaults.h"
2825
#include "Common/DataModel/EventSelection.h"
2926
#include "Common/DataModel/TrackSelectionTables.h"
3027

31-
#include "PWGJE/Core/JetFinder.h"
32-
#include "PWGJE/Core/FastJetUtilities.h"
33-
#include "PWGJE/Core/JetBkgSubUtils.h"
34-
#include "PWGJE/DataModel/EMCALClusters.h"
35-
#include "PWGJE/DataModel/Jet.h"
28+
#include "Framework/ASoA.h"
29+
#include "Framework/ASoAHelpers.h"
30+
#include "Framework/AnalysisDataModel.h"
31+
#include "Framework/AnalysisTask.h"
32+
#include "Framework/HistogramRegistry.h"
33+
#include "Framework/runDataProcessing.h"
34+
#include "ReconstructionDataFormats/Track.h"
3635

37-
#include "../filterTables.h"
36+
#include <TMath.h>
3837

39-
#include "Framework/HistogramRegistry.h"
38+
#include <cmath>
39+
#include <string>
40+
#include <vector>
4041

4142
using namespace o2;
4243
using namespace o2::framework;
@@ -189,7 +190,7 @@ struct jetFilter {
189190

190191
// collision process loop
191192
bool keepEvent[kTriggerObjects]{false, false, false, false};
192-
if (!collision.selection_bit(aod::evsel::kNoTimeFrameBorder)) {
193+
if (!jetderiveddatautilities::selectCollision(collision, jetderiveddatautilities::initialiseEventSelectionBits(static_cast<std::string>("NoTimeFrameBorder")))) {
193194
tags(keepEvent[kJetChLowPt], keepEvent[kJetChHighPt], keepEvent[kTrackLowPt], keepEvent[kTrackHighPt]);
194195
return;
195196
}
@@ -287,13 +288,13 @@ struct jetFilter {
287288
tags(keepEvent[kJetChLowPt], keepEvent[kJetChHighPt], keepEvent[kTrackLowPt], keepEvent[kTrackHighPt]);
288289
}
289290

290-
void processWithoutRho(soa::Join<aod::JetCollisions, aod::EvSels>::iterator const& collision, o2::aod::ChargedJets const& jets, soa::Filtered<aod::JetTracks> const& tracks)
291+
void processWithoutRho(aod::JetCollision const& collision, o2::aod::ChargedJets const& jets, soa::Filtered<aod::JetTracks> const& tracks)
291292
{
292293
doTriggering<false>(collision, jets, tracks);
293294
}
294295
PROCESS_SWITCH(jetFilter, processWithoutRho, "Do charged jet triggering without background estimation for filling histograms", true);
295296

296-
void processWithRho(soa::Join<aod::JetCollisions, aod::BkgChargedRhos, aod::EvSels>::iterator const& collision, o2::aod::ChargedJets const& jets, soa::Filtered<aod::JetTracks> const& tracks)
297+
void processWithRho(soa::Join<aod::JetCollisions, aod::BkgChargedRhos>::iterator const& collision, o2::aod::ChargedJets const& jets, soa::Filtered<aod::JetTracks> const& tracks)
297298
{
298299
doTriggering<true>(collision, jets, tracks);
299300
}

PWGCF/DataModel/SPTableZDC.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
// or submit itself to any jurisdiction.
1111

1212
/// \file SPTableZDC.h
13+
/// \author Noor Koster
14+
/// \since 11/2024
15+
/// \brief Table to hold Q-vectors and neccesary information for the ZDC q-vector calibration.
1316

1417
#ifndef PWGCF_DATAMODEL_SPTABLEZDC_H_
1518
#define PWGCF_DATAMODEL_SPTABLEZDC_H_

PWGCF/Flow/TableProducer/zdcQVectors.cxx

Lines changed: 41 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ using namespace o2::framework::expressions;
6464
using namespace o2::aod::track;
6565
using namespace o2::aod::evsel;
6666
using namespace o2::aod::rctsel;
67+
using namespace o2::constants::math;
6768

6869
namespace o2::analysis::qvectortask
6970
{
@@ -217,8 +218,8 @@ struct ZdcQVectors {
217218
std::vector<const char*> sides = {"A", "C"};
218219
std::vector<const char*> capCOORDS = {"X", "Y"};
219220

220-
AxisSpec axisPsiA = {100, -M_PI, M_PI, "#Psi_{1} ZNA"};
221-
AxisSpec axisPsiC = {100, -M_PI, M_PI, "#Psi_{1} ZNC"};
221+
AxisSpec axisPsiA = {100, -PI, PI, "#Psi_{1} ZNA"};
222+
AxisSpec axisPsiC = {100, -PI, PI, "#Psi_{1} ZNC"};
222223

223224
// This is the only histogram that is AL~WA~YS filled.
224225
registry.add("hEventCount", "Number of Event; Cut; #Events Passed Cut", {HistType::kTH1D, {{nEventSelections, 0, nEventSelections}}});
@@ -258,7 +259,7 @@ struct ZdcQVectors {
258259
if (cfgFillHistRegistry) {
259260
registry.add<TH2>(Form("QA/before/hSPplaneA"), "hSPplaneA", kTH2D, {axisPsiA, axisCent10});
260261
registry.add<TH2>(Form("QA/before/hSPplaneC"), "hSPplaneC", kTH2D, {axisPsiC, axisCent10});
261-
registry.add<TH2>(Form("QA/before/hSPplaneFull"), "hSPplaneFull", kTH2D, {{100, -M_PI, M_PI}, axisCent10});
262+
registry.add<TH2>(Form("QA/before/hSPplaneFull"), "hSPplaneFull", kTH2D, {{100, -PI, PI}, axisCent10});
262263
for (const auto& side : sides) {
263264
registry.add<TH2>(Form("QA/before/hZN%s_Qx_vs_Qy", side), Form("hZN%s_Qx_vs_Qy", side), kTH2F, {axisQ, axisQ});
264265
}
@@ -375,30 +376,6 @@ struct ZdcQVectors {
375376
{
376377
registry.fill(HIST("hEventCount"), evSel);
377378
// FT0C is the default centrality estimator
378-
auto cent = collision.centFT0C();
379-
cents.push_back(collision.centFT0C());
380-
381-
if (cfgFT0Cvariant1) {
382-
if (cfgUseSecondCent)
383-
cent = collision.centFT0CVariant1();
384-
cents.push_back(collision.centFT0CVariant1());
385-
}
386-
if (cfgFT0M) {
387-
if (cfgUseSecondCent)
388-
cent = collision.centFT0M();
389-
cents.push_back(collision.centFT0M());
390-
}
391-
if (cfgFV0A) {
392-
if (cfgUseSecondCent)
393-
cent = collision.centFV0A();
394-
cents.push_back(collision.centFV0A());
395-
}
396-
if (cfgNGlobal) {
397-
if (cfgUseSecondCent)
398-
cent = collision.centNGlobal();
399-
cents.push_back(collision.centNGlobal());
400-
}
401-
centrality = cent;
402379

403380
if (!cfgFillCutAnalysis || cfgFillNothing)
404381
return;
@@ -407,16 +384,16 @@ struct ZdcQVectors {
407384
registry.get<TProfile2D>(HIST("CutAnalysis/hvertex_vy"))->Fill(Form("%d", runnumber), evSel, collision.posY());
408385
registry.get<TProfile2D>(HIST("CutAnalysis/hvertex_vz"))->Fill(Form("%d", runnumber), evSel, collision.posZ());
409386

410-
registry.get<TProfile2D>(HIST("CutAnalysis/hZNA_mean_t0_cent"))->Fill(cent, evSel, zdcBC.energyCommonZNA(), 1);
411-
registry.get<TProfile2D>(HIST("CutAnalysis/hZNA_mean_t1_cent"))->Fill(cent, evSel, zdcBC.energySectorZNA()[0], 1);
412-
registry.get<TProfile2D>(HIST("CutAnalysis/hZNA_mean_t2_cent"))->Fill(cent, evSel, zdcBC.energySectorZNA()[1], 1);
413-
registry.get<TProfile2D>(HIST("CutAnalysis/hZNA_mean_t3_cent"))->Fill(cent, evSel, zdcBC.energySectorZNA()[2], 1);
414-
registry.get<TProfile2D>(HIST("CutAnalysis/hZNA_mean_t4_cent"))->Fill(cent, evSel, zdcBC.energySectorZNA()[3], 1);
415-
registry.get<TProfile2D>(HIST("CutAnalysis/hZNC_mean_t0_cent"))->Fill(cent, evSel, zdcBC.energyCommonZNC(), 1);
416-
registry.get<TProfile2D>(HIST("CutAnalysis/hZNC_mean_t1_cent"))->Fill(cent, evSel, zdcBC.energySectorZNC()[0], 1);
417-
registry.get<TProfile2D>(HIST("CutAnalysis/hZNC_mean_t2_cent"))->Fill(cent, evSel, zdcBC.energySectorZNC()[1], 1);
418-
registry.get<TProfile2D>(HIST("CutAnalysis/hZNC_mean_t3_cent"))->Fill(cent, evSel, zdcBC.energySectorZNC()[2], 1);
419-
registry.get<TProfile2D>(HIST("CutAnalysis/hZNC_mean_t4_cent"))->Fill(cent, evSel, zdcBC.energySectorZNC()[3], 1);
387+
registry.get<TProfile2D>(HIST("CutAnalysis/hZNA_mean_t0_cent"))->Fill(centrality, evSel, zdcBC.energyCommonZNA(), 1);
388+
registry.get<TProfile2D>(HIST("CutAnalysis/hZNA_mean_t1_cent"))->Fill(centrality, evSel, zdcBC.energySectorZNA()[0], 1);
389+
registry.get<TProfile2D>(HIST("CutAnalysis/hZNA_mean_t2_cent"))->Fill(centrality, evSel, zdcBC.energySectorZNA()[1], 1);
390+
registry.get<TProfile2D>(HIST("CutAnalysis/hZNA_mean_t3_cent"))->Fill(centrality, evSel, zdcBC.energySectorZNA()[2], 1);
391+
registry.get<TProfile2D>(HIST("CutAnalysis/hZNA_mean_t4_cent"))->Fill(centrality, evSel, zdcBC.energySectorZNA()[3], 1);
392+
registry.get<TProfile2D>(HIST("CutAnalysis/hZNC_mean_t0_cent"))->Fill(centrality, evSel, zdcBC.energyCommonZNC(), 1);
393+
registry.get<TProfile2D>(HIST("CutAnalysis/hZNC_mean_t1_cent"))->Fill(centrality, evSel, zdcBC.energySectorZNC()[0], 1);
394+
registry.get<TProfile2D>(HIST("CutAnalysis/hZNC_mean_t2_cent"))->Fill(centrality, evSel, zdcBC.energySectorZNC()[1], 1);
395+
registry.get<TProfile2D>(HIST("CutAnalysis/hZNC_mean_t3_cent"))->Fill(centrality, evSel, zdcBC.energySectorZNC()[2], 1);
396+
registry.get<TProfile2D>(HIST("CutAnalysis/hZNC_mean_t4_cent"))->Fill(centrality, evSel, zdcBC.energySectorZNC()[3], 1);
420397
}
421398

422399
template <typename TCollision, typename TBunchCrossing>
@@ -677,17 +654,36 @@ struct ZdcQVectors {
677654

678655
isSelected = true;
679656

657+
std::vector<float> centralities;
658+
680659
auto cent = collision.centFT0C();
681-
if (cfgFT0Cvariant1)
682-
cent = collision.centFT0CVariant1();
683-
if (cfgFT0M)
684-
cent = collision.centFT0M();
685-
if (cfgFV0A)
686-
cent = collision.centFV0A();
687-
if (cfgNGlobal)
688-
cent = collision.centNGlobal();
660+
centrality = cent;
661+
662+
centralities.push_back(collision.centFT0C());
663+
664+
if (cfgFT0Cvariant1) {
665+
centralities.push_back(collision.centFT0CVariant1());
666+
if (cfgUseSecondCent)
667+
cent = collision.centFT0CVariant1();
668+
}
669+
if (cfgFT0M) {
670+
centralities.push_back(collision.centFT0M());
671+
if (cfgUseSecondCent)
672+
cent = collision.centFT0M();
673+
}
674+
if (cfgFV0A) {
675+
centralities.push_back(collision.centFV0A());
676+
if (cfgUseSecondCent)
677+
cent = collision.centFV0A();
678+
}
679+
if (cfgNGlobal) {
680+
centralities.push_back(collision.centNGlobal());
681+
if (cfgUseSecondCent)
682+
cent = collision.centNGlobal();
683+
}
689684

690685
v = {collision.posX(), collision.posY(), collision.posZ()};
686+
cents = centralities;
691687

692688
const auto& foundBC = collision.foundBC_as<BCsRun3>();
693689
runnumber = foundBC.runNumber();

PWGCF/MultiparticleCorrelations/Tasks/threeParticleCorrelations.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ struct ThreeParticleCorrelations {
204204
rQARegistry.get<TH1>(HIST("hNEvents"))->GetXaxis()->SetBinLabel(1, "All");
205205
rQARegistry.get<TH1>(HIST("hNEvents"))->GetXaxis()->SetBinLabel(2, "kIsGoodZvtxFT0vsPV");
206206
rQARegistry.get<TH1>(HIST("hNEvents"))->GetXaxis()->SetBinLabel(3, "kNoSameBunchPileup");
207-
rQARegistry.get<TH1>(HIST("hNEvents"))->GetXaxis()->SetBinLabel(4, "Occupancy window");
207+
rQARegistry.get<TH1>(HIST("hNEvents"))->GetXaxis()->SetBinLabel(4, Form("%i < Occupancy < %i", static_cast<int>(evSelGroup.occupMin), static_cast<int>(evSelGroup.occupMax)));
208208
rQARegistry.get<TH1>(HIST("hNEvents"))->GetXaxis()->SetBinLabel(5, "kNoCollInTimeRangeStandard");
209209

210210
rQARegistry.add("hEventCentrality", "hEventCentrality", {HistType::kTH1D, {{fineCentralityAxis}}});

PWGJE/Core/JetBkgSubUtils.cxx

Lines changed: 1 addition & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ JetBkgSubUtils::JetBkgSubUtils(float jetBkgR_out, float bkgEtaMin_out, float bkg
4848

4949
void JetBkgSubUtils::initialise()
5050
{
51-
// Note: if you are using the PerpCone method you should jetBkgR to be the same as the anit_kt jets R, otherwise use R=0.2
51+
// Note: recommended to use R=0.2
5252
jetDefBkg = fastjet::JetDefinition(algorithmBkg, jetBkgR, recombSchemeBkg, fastjet::Best);
5353
areaDefBkg = fastjet::AreaDefinition(fastjet::active_area_explicit_ghosts, ghostAreaSpec);
5454
selRho = fastjet::SelectorRapRange(bkgEtaMin, bkgEtaMax) && fastjet::SelectorPhiRange(bkgPhiMin, bkgPhiMax) && !fastjet::SelectorNHardest(nHardReject); // here we have to put rap range, to be checked!
@@ -104,62 +104,6 @@ std::tuple<double, double> JetBkgSubUtils::estimateRhoAreaMedian(const std::vect
104104
return std::make_tuple(rho, rhoM);
105105
}
106106

107-
std::tuple<double, double> JetBkgSubUtils::estimateRhoPerpCone(const std::vector<fastjet::PseudoJet>& inputParticles, const std::vector<fastjet::PseudoJet>& jets)
108-
{
109-
110-
JetBkgSubUtils::initialise();
111-
if (inputParticles.size() == 0 || jets.size() == 0) {
112-
return std::make_tuple(0.0, 0.0);
113-
}
114-
115-
double perpPtDensity1 = 0;
116-
double perpPtDensity2 = 0;
117-
double perpMdDensity1 = 0;
118-
double perpMdDensity2 = 0;
119-
120-
fastjet::Selector selectJet = fastjet::SelectorEtaRange(bkgEtaMin, bkgEtaMax) && fastjet::SelectorPhiRange(bkgPhiMin, bkgPhiMax);
121-
122-
std::vector<fastjet::PseudoJet> selectedJets = fastjet::sorted_by_pt(selectJet(jets));
123-
124-
if (selectedJets.size() == 0) {
125-
return std::make_tuple(0.0, 0.0);
126-
}
127-
128-
fastjet::PseudoJet leadingJet = selectedJets[0];
129-
130-
double dPhi1 = 999.;
131-
double dPhi2 = 999.;
132-
double dEta = 999.;
133-
double PerpendicularConeAxisPhi1 = 999., PerpendicularConeAxisPhi2 = 999.;
134-
// build 2 perp cones in phi around the leading jet (right and left of the jet)
135-
PerpendicularConeAxisPhi1 = RecoDecay::constrainAngle<double, double>(leadingJet.phi() + (M_PI / 2.)); // This will contrain the angel between 0-2Pi
136-
PerpendicularConeAxisPhi2 = RecoDecay::constrainAngle<double, double>(leadingJet.phi() - (M_PI / 2.)); // This will contrain the angel between 0-2Pi
137-
138-
for (auto& particle : inputParticles) {
139-
// sum the momentum of all paricles that fill the two cones
140-
dPhi1 = particle.phi() - PerpendicularConeAxisPhi1;
141-
dPhi1 = RecoDecay::constrainAngle<double, double>(dPhi1, -M_PI); // This will contrain the angel between -pi & Pi
142-
dPhi2 = particle.phi() - PerpendicularConeAxisPhi2;
143-
dPhi2 = RecoDecay::constrainAngle<double, double>(dPhi2, -M_PI); // This will contrain the angel between -pi & Pi
144-
dEta = leadingJet.eta() - particle.eta(); // The perp cone eta is the same as the leading jet since the cones are perpendicular only in phi
145-
if (TMath::Sqrt(dPhi1 * dPhi1 + dEta * dEta) <= jetBkgR) {
146-
perpPtDensity1 += particle.perp();
147-
perpMdDensity1 += TMath::Sqrt(particle.m() * particle.m() + particle.pt() * particle.pt()) - particle.pt();
148-
}
149-
150-
if (TMath::Sqrt(dPhi2 * dPhi2 + dEta * dEta) <= jetBkgR) {
151-
perpPtDensity2 += particle.perp();
152-
perpMdDensity2 += TMath::Sqrt(particle.m() * particle.m() + particle.pt() * particle.pt()) - particle.pt();
153-
}
154-
}
155-
156-
// Caculate rho as the ratio of average pT of the two cones / the cone area
157-
double perpPtDensity = (perpPtDensity1 + perpPtDensity2) / (2 * M_PI * jetBkgR * jetBkgR);
158-
double perpMdDensity = (perpMdDensity1 + perpMdDensity2) / (2 * M_PI * jetBkgR * jetBkgR);
159-
160-
return std::make_tuple(perpPtDensity, perpMdDensity);
161-
}
162-
163107
fastjet::PseudoJet JetBkgSubUtils::doRhoAreaSub(const fastjet::PseudoJet& jet, double rhoParam, double rhoMParam)
164108
{
165109

PWGJE/Core/JetBkgSubUtils.h

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@
3030

3131
enum class BkgSubEstimator { none = 0,
3232
medianRho = 1,
33-
medianRhoSparse = 2,
34-
perpCone = 3
33+
medianRhoSparse = 2
34+
// perpendicular cone method is in JetUtilities
3535
};
3636

3737
enum class BkgSubMode { none = 0,
@@ -68,12 +68,6 @@ class JetBkgSubUtils
6868
/// @return Rho, RhoM the underlying event density
6969
std::tuple<double, double> estimateRhoAreaMedian(const std::vector<fastjet::PseudoJet>& inputParticles, bool doSparseSub);
7070

71-
/// @brief Background estimator using the perpendicular cone method
72-
/// @param inputParticles
73-
/// @param jets (all jets in the event)
74-
/// @return Rho, RhoM the underlying event density
75-
std::tuple<double, double> estimateRhoPerpCone(const std::vector<fastjet::PseudoJet>& inputParticles, const std::vector<fastjet::PseudoJet>& jets);
76-
7771
/// @brief method that subtracts the background from jets using the area method
7872
/// @param jet input jet to be background subtracted
7973
/// @param rhoParam the underlying evvent density vs pT (to be set)

0 commit comments

Comments
 (0)