Skip to content

Commit 0bc24ed

Browse files
authored
PWGJE: Adding rho area subtraction and random cone estimation for mcd in jet finder QA (#6885)
1 parent f5272c6 commit 0bc24ed

2 files changed

Lines changed: 162 additions & 101 deletions

File tree

PWGJE/Tasks/jetfinderQA.cxx

Lines changed: 77 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ struct JetFinderQATask {
117117
registry.add("h_jet_phat_weighted", "jet #hat{p};#hat{p} (GeV/#it{c});entries", {HistType::kTH1F, {{350, 0, 350}}});
118118
}
119119

120-
if (doprocessJetsRhoAreaSubData) {
120+
if (doprocessJetsRhoAreaSubData || doprocessJetsRhoAreaSubMCD) {
121121

122122
registry.add("h_jet_pt_rhoareasubtracted", "jet pT;#it{p}_{T,jet} (GeV/#it{c});entries", {HistType::kTH1F, {{400, -200., 200.}}});
123123
registry.add("h_jet_eta_rhoareasubtracted", "jet #eta;#eta_{jet};entries", {HistType::kTH1F, {{100, -1.0, 1.0}}});
@@ -167,7 +167,7 @@ struct JetFinderQATask {
167167
registry.add("h2_centrality_rhom", ";centrality; #it{rho}_{m} (GeV/area)", {HistType::kTH2F, {{1100, 0., 110.}, {100, 0., 100.0}}});
168168
}
169169

170-
if (doprocessRandomCone) {
170+
if (doprocessRandomConeData || doprocessRandomConeMCD) {
171171
registry.add("h2_centrality_rhorandomcone", "; centrality; #it{p}_{T,random cone} - #it{area, random cone} * #it{rho} (GeV/c);", {HistType::kTH2F, {{1100, 0., 110.}, {800, -400.0, 400.0}}});
172172
registry.add("h2_centrality_rhorandomconewithoutleadingjet", "; centrality; #it{p}_{T,random cone} - #it{area, random cone} * #it{rho} (GeV/c);", {HistType::kTH2F, {{1100, 0., 110.}, {800, -400.0, 400.0}}});
173173
}
@@ -530,6 +530,57 @@ struct JetFinderQATask {
530530
}
531531
}
532532

533+
template <typename T, typename U, typename V>
534+
void randomCone(T const& collision, U const& jets, V const& tracks)
535+
{
536+
if (!jetderiveddatautilities::selectCollision(collision, eventSelection)) {
537+
return;
538+
}
539+
TRandom3 randomNumber(0);
540+
float randomConeEta = randomNumber.Uniform(trackEtaMin + randomConeR, trackEtaMax - randomConeR);
541+
float randomConePhi = randomNumber.Uniform(0.0, 2 * M_PI);
542+
float randomConePt = 0;
543+
for (auto const& track : tracks) {
544+
if (jetderiveddatautilities::selectTrack(track, trackSelection)) {
545+
float dPhi = RecoDecay::constrainAngle(track.phi() - randomConePhi, static_cast<float>(-M_PI));
546+
float dEta = track.eta() - randomConeEta;
547+
if (TMath::Sqrt(dEta * dEta + dPhi * dPhi) < randomConeR) {
548+
randomConePt += track.pt();
549+
}
550+
}
551+
}
552+
registry.fill(HIST("h2_centrality_rhorandomcone"), collision.centrality(), randomConePt - M_PI * randomConeR * randomConeR * collision.rho());
553+
554+
// removing the leading jet from the random cone
555+
if (jets.size() > 0) { // if there are no jets in the acceptance (from the jetfinder cuts) then there can be no leading jet
556+
float dPhiLeadingJet = RecoDecay::constrainAngle(jets.iteratorAt(0).phi() - randomConePhi, static_cast<float>(-M_PI));
557+
float dEtaLeadingJet = jets.iteratorAt(0).eta() - randomConeEta;
558+
559+
bool jetWasInCone = false;
560+
while (TMath::Sqrt(dEtaLeadingJet * dEtaLeadingJet + dPhiLeadingJet * dPhiLeadingJet) < jets.iteratorAt(0).r() / 100.0 + randomConeR) {
561+
jetWasInCone = true;
562+
randomConeEta = randomNumber.Uniform(trackEtaMin + randomConeR, trackEtaMax - randomConeR);
563+
randomConePhi = randomNumber.Uniform(0.0, 2 * M_PI);
564+
dPhiLeadingJet = RecoDecay::constrainAngle(jets.iteratorAt(0).phi() - randomConePhi, static_cast<float>(-M_PI));
565+
dEtaLeadingJet = jets.iteratorAt(0).eta() - randomConeEta;
566+
}
567+
if (jetWasInCone) {
568+
randomConePt = 0.0;
569+
for (auto const& track : tracks) {
570+
if (jetderiveddatautilities::selectTrack(track, trackSelection)) { // if track selection is uniformTrack, dcaXY and dcaZ cuts need to be added as they aren't in the selection so that they can be studied here
571+
float dPhi = RecoDecay::constrainAngle(track.phi() - randomConePhi, static_cast<float>(-M_PI));
572+
float dEta = track.eta() - randomConeEta;
573+
if (TMath::Sqrt(dEta * dEta + dPhi * dPhi) < randomConeR) {
574+
randomConePt += track.pt();
575+
}
576+
}
577+
}
578+
}
579+
}
580+
581+
registry.fill(HIST("h2_centrality_rhorandomconewithoutleadingjet"), collision.centrality(), randomConePt - M_PI * randomConeR * randomConeR * collision.rho());
582+
}
583+
533584
void processJetsData(soa::Filtered<JetCollisions>::iterator const& collision, soa::Join<aod::ChargedJets, aod::ChargedJetConstituents> const& jets, JetTracks const&)
534585
{
535586
for (auto const& jet : jets) {
@@ -560,6 +611,22 @@ struct JetFinderQATask {
560611
}
561612
PROCESS_SWITCH(JetFinderQATask, processJetsRhoAreaSubData, "jet finder QA for rho-area subtracted jets", false);
562613

614+
void processJetsRhoAreaSubMCD(soa::Filtered<soa::Join<JetCollisions, aod::BkgChargedRhos>>::iterator const& collision,
615+
soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents> const& jets,
616+
JetTracks const&)
617+
{
618+
for (auto jet : jets) {
619+
if (!jetfindingutilities::isInEtaAcceptance(jet, jetEtaMin, jetEtaMax, trackEtaMin, trackEtaMax)) {
620+
continue;
621+
}
622+
if (!isAcceptedJet<JetTracks>(jet)) {
623+
continue;
624+
}
625+
fillRhoAreaSubtractedHistograms(jet, collision.centrality(), collision.rho());
626+
}
627+
}
628+
PROCESS_SWITCH(JetFinderQATask, processJetsRhoAreaSubMCD, "jet finder QA for rho-area subtracted mcd jets", false);
629+
563630
void processEvtWiseConstSubJetsData(soa::Filtered<JetCollisions>::iterator const& collision, soa::Join<aod::ChargedEventWiseSubtractedJets, aod::ChargedEventWiseSubtractedJetConstituents> const& jets, JetTracksSub const&)
564631
{
565632
for (auto const& jet : jets) {
@@ -899,56 +966,17 @@ struct JetFinderQATask {
899966
}
900967
PROCESS_SWITCH(JetFinderQATask, processRho, "QA for rho-area subtracted jets", false);
901968

902-
void processRandomCone(soa::Filtered<soa::Join<JetCollisions, aod::BkgChargedRhos>>::iterator const& collision, soa::Join<aod::ChargedJets, aod::ChargedJetConstituents> const& jets, soa::Filtered<JetTracks> const& tracks)
969+
void processRandomConeData(soa::Filtered<soa::Join<JetCollisions, aod::BkgChargedRhos>>::iterator const& collision, soa::Join<aod::ChargedJets, aod::ChargedJetConstituents> const& jets, soa::Filtered<JetTracks> const& tracks)
903970
{
904-
if (!jetderiveddatautilities::selectCollision(collision, eventSelection)) {
905-
return;
906-
}
907-
TRandom3 randomNumber(0);
908-
float randomConeEta = randomNumber.Uniform(trackEtaMin + randomConeR, trackEtaMax - randomConeR);
909-
float randomConePhi = randomNumber.Uniform(0.0, 2 * M_PI);
910-
float randomConePt = 0;
911-
for (auto const& track : tracks) {
912-
if (jetderiveddatautilities::selectTrack(track, trackSelection)) {
913-
float dPhi = RecoDecay::constrainAngle(track.phi() - randomConePhi, static_cast<float>(-M_PI));
914-
float dEta = track.eta() - randomConeEta;
915-
if (TMath::Sqrt(dEta * dEta + dPhi * dPhi) < randomConeR) {
916-
randomConePt += track.pt();
917-
}
918-
}
919-
}
920-
registry.fill(HIST("h2_centrality_rhorandomcone"), collision.centrality(), randomConePt - M_PI * randomConeR * randomConeR * collision.rho());
921-
922-
// removing the leading jet from the random cone
923-
if (jets.size() > 0) { // if there are no jets in the acceptance (from the jetfinder cuts) then there can be no leading jet
924-
float dPhiLeadingJet = RecoDecay::constrainAngle(jets.iteratorAt(0).phi() - randomConePhi, static_cast<float>(-M_PI));
925-
float dEtaLeadingJet = jets.iteratorAt(0).eta() - randomConeEta;
926-
927-
bool jetWasInCone = false;
928-
while (TMath::Sqrt(dEtaLeadingJet * dEtaLeadingJet + dPhiLeadingJet * dPhiLeadingJet) < jets.iteratorAt(0).r() / 100.0 + randomConeR) {
929-
jetWasInCone = true;
930-
randomConeEta = randomNumber.Uniform(trackEtaMin + randomConeR, trackEtaMax - randomConeR);
931-
randomConePhi = randomNumber.Uniform(0.0, 2 * M_PI);
932-
dPhiLeadingJet = RecoDecay::constrainAngle(jets.iteratorAt(0).phi() - randomConePhi, static_cast<float>(-M_PI));
933-
dEtaLeadingJet = jets.iteratorAt(0).eta() - randomConeEta;
934-
}
935-
if (jetWasInCone) {
936-
randomConePt = 0.0;
937-
for (auto const& track : tracks) {
938-
if (jetderiveddatautilities::selectTrack(track, trackSelection)) { // if track selection is uniformTrack, dcaXY and dcaZ cuts need to be added as they aren't in the selection so that they can be studied here
939-
float dPhi = RecoDecay::constrainAngle(track.phi() - randomConePhi, static_cast<float>(-M_PI));
940-
float dEta = track.eta() - randomConeEta;
941-
if (TMath::Sqrt(dEta * dEta + dPhi * dPhi) < randomConeR) {
942-
randomConePt += track.pt();
943-
}
944-
}
945-
}
946-
}
947-
}
971+
randomCone(collision, jets, tracks);
972+
}
973+
PROCESS_SWITCH(JetFinderQATask, processRandomConeData, "QA for random cone estimation of background fluctuations in data", false);
948974

949-
registry.fill(HIST("h2_centrality_rhorandomconewithoutleadingjet"), collision.centrality(), randomConePt - M_PI * randomConeR * randomConeR * collision.rho());
975+
void processRandomConeMCD(soa::Filtered<soa::Join<JetCollisions, aod::BkgChargedRhos>>::iterator const& collision, soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents> const& jets, soa::Filtered<JetTracks> const& tracks)
976+
{
977+
randomCone(collision, jets, tracks);
950978
}
951-
PROCESS_SWITCH(JetFinderQATask, processRandomCone, "QA for random cone estimation of background fluctuations", false);
979+
PROCESS_SWITCH(JetFinderQATask, processRandomConeMCD, "QA for random cone estimation of background fluctuations in mcd", false);
952980
};
953981

954982
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) { return WorkflowSpec{adaptAnalysisTask<JetFinderQATask>(cfgc, TaskName{"jet-finder-charged-qa"})}; }

PWGJE/Tasks/jetfinderhfQA.cxx

Lines changed: 85 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ struct JetFinderHFQATask {
130130
registry.add("h_jet_phat_weighted", "jet #hat{p};#hat{p} (GeV/#it{c});entries", {HistType::kTH1F, {{350, 0, 350}}});
131131
}
132132

133-
if (doprocessJetsRhoAreaSubData) {
133+
if (doprocessJetsRhoAreaSubData || doprocessJetsRhoAreaSubMCD) {
134134

135135
registry.add("h_jet_pt_rhoareasubtracted", "jet pT;#it{p}_{T,jet} (GeV/#it{c});entries", {HistType::kTH1F, {{400, -200., 200.}}});
136136
registry.add("h_jet_eta_rhoareasubtracted", "jet #eta;#eta_{jet};entries", {HistType::kTH1F, {{100, -1.0, 1.0}}});
@@ -188,7 +188,7 @@ struct JetFinderHFQATask {
188188
registry.add("h2_centrality_rhom", ";centrality; #it{rho}_{m} (GeV/area)", {HistType::kTH2F, {{1100, 0., 110.}, {100, 0., 100.0}}});
189189
}
190190

191-
if (doprocessRandomCone) {
191+
if (doprocessRandomConeData || doprocessRandomConeMCD) {
192192
registry.add("h2_centrality_rhorandomcone", "; centrality; #it{p}_{T,random cone} - #it{area, random cone} * #it{rho} (GeV/c);", {HistType::kTH2F, {{1100, 0., 110.}, {800, -400.0, 400.0}}});
193193
registry.add("h2_centrality_rhorandomconewithoutleadingjet", "; centrality; #it{p}_{T,random cone} - #it{area, random cone} * #it{rho} (GeV/c);", {HistType::kTH2F, {{1100, 0., 110.}, {800, -400.0, 400.0}}});
194194
}
@@ -918,6 +918,61 @@ struct JetFinderHFQATask {
918918
}
919919
}
920920

921+
template <typename T, typename U, typename V, typename M, typename N>
922+
void randomCone(T const& collision, U const& jets, V const& candidates, M const& bkgRhos, N const& tracks)
923+
{
924+
925+
if (!jetderiveddatautilities::selectCollision(collision, eventSelection)) {
926+
return;
927+
}
928+
for (auto const& candidate : candidates) {
929+
auto bkgRho = jetcandidateutilities::slicedPerCandidate(bkgRhos, candidate, perD0CandidateRhos, perLcCandidateRhos, perBplusCandidateRhos, perDielectronCandidateRhos).iteratorAt(0);
930+
TRandom3 randomNumber(0);
931+
float randomConeEta = randomNumber.Uniform(trackEtaMin + randomConeR, trackEtaMax - randomConeR);
932+
float randomConePhi = randomNumber.Uniform(0.0, 2 * M_PI);
933+
float randomConePt = 0;
934+
for (auto const& track : tracks) {
935+
if (jetderiveddatautilities::selectTrack(track, trackSelection)) {
936+
float dPhi = RecoDecay::constrainAngle(track.phi() - randomConePhi, static_cast<float>(-M_PI));
937+
float dEta = track.eta() - randomConeEta;
938+
if (TMath::Sqrt(dEta * dEta + dPhi * dPhi) < randomConeR) {
939+
randomConePt += track.pt();
940+
}
941+
}
942+
}
943+
registry.fill(HIST("h2_centrality_rhorandomcone"), collision.centrality(), randomConePt - M_PI * randomConeR * randomConeR * bkgRho.rho());
944+
945+
// removing the leading jet from the random cone
946+
if (jets.size() > 0) { // if there are no jets in the acceptance (from the jetfinder cuts) then there can be no leading jet
947+
float dPhiLeadingJet = RecoDecay::constrainAngle(jets.iteratorAt(0).phi() - randomConePhi, static_cast<float>(-M_PI));
948+
float dEtaLeadingJet = jets.iteratorAt(0).eta() - randomConeEta;
949+
950+
bool jetWasInCone = false;
951+
while (TMath::Sqrt(dEtaLeadingJet * dEtaLeadingJet + dPhiLeadingJet * dPhiLeadingJet) < jets.iteratorAt(0).r() / 100.0 + randomConeR) {
952+
jetWasInCone = true;
953+
randomConeEta = randomNumber.Uniform(trackEtaMin + randomConeR, trackEtaMax - randomConeR);
954+
randomConePhi = randomNumber.Uniform(0.0, 2 * M_PI);
955+
dPhiLeadingJet = RecoDecay::constrainAngle(jets.iteratorAt(0).phi() - randomConePhi, static_cast<float>(-M_PI));
956+
dEtaLeadingJet = jets.iteratorAt(0).eta() - randomConeEta;
957+
}
958+
if (jetWasInCone) {
959+
randomConePt = 0.0;
960+
for (auto const& track : tracks) {
961+
if (jetderiveddatautilities::selectTrack(track, trackSelection)) {
962+
float dPhi = RecoDecay::constrainAngle(track.phi() - randomConePhi, static_cast<float>(-M_PI));
963+
float dEta = track.eta() - randomConeEta;
964+
if (TMath::Sqrt(dEta * dEta + dPhi * dPhi) < randomConeR) {
965+
randomConePt += track.pt();
966+
}
967+
}
968+
}
969+
}
970+
}
971+
registry.fill(HIST("h2_centrality_rhorandomconewithoutleadingjet"), collision.centrality(), randomConePt - M_PI * randomConeR * randomConeR * bkgRho.rho());
972+
break; // currently only fills it for the first candidate in the event (not pT ordered). Jet is pT ordered so results for excluding leading jet might not be as expected
973+
}
974+
}
975+
921976
void processDummy(JetCollisions const&)
922977
{
923978
}
@@ -957,6 +1012,26 @@ struct JetFinderHFQATask {
9571012
}
9581013
PROCESS_SWITCH(JetFinderHFQATask, processJetsRhoAreaSubData, "jet finder HF QA for rho-area subtracted jets", false);
9591014

1015+
void processJetsRhoAreaSubMCD(soa::Filtered<JetCollisions>::iterator const& collision,
1016+
BkgRhoTable const& bkgRhos,
1017+
JetTableMCDJoined const& jets,
1018+
CandidateTableMCD const&,
1019+
JetTracks const&)
1020+
{
1021+
for (auto const& jet : jets) {
1022+
if (!jetfindingutilities::isInEtaAcceptance(jet, jetEtaMin, jetEtaMax, trackEtaMin, trackEtaMax)) {
1023+
continue;
1024+
}
1025+
if (!isAcceptedJet<JetTracks, CandidateTableMCD>(jet)) {
1026+
continue;
1027+
}
1028+
auto const jetCandidate = jet.template candidates_first_as<CandidateTableMCD>();
1029+
auto bkgRho = jetcandidateutilities::slicedPerCandidate(bkgRhos, jetCandidate, perD0CandidateRhos, perLcCandidateRhos, perBplusCandidateRhos, perDielectronCandidateRhos).iteratorAt(0);
1030+
fillRhoAreaSubtractedHistograms<typename JetTableMCDJoined::iterator, CandidateTableMCD>(jet, collision.centrality(), bkgRho.rho());
1031+
}
1032+
}
1033+
PROCESS_SWITCH(JetFinderHFQATask, processJetsRhoAreaSubMCD, "jet finder HF QA for rho-area subtracted mcd jets", false);
1034+
9601035
void processEvtWiseConstSubJetsData(soa::Filtered<JetCollisions>::iterator const& collision, JetTableDataSubJoined const& jets, CandidateTableData const&, JetTracksDataSub const&)
9611036
{
9621037
for (auto const& jet : jets) {
@@ -1442,59 +1517,17 @@ struct JetFinderHFQATask {
14421517
}
14431518
PROCESS_SWITCH(JetFinderHFQATask, processRho, "QA for rho-area subtracted jets", false);
14441519

1445-
void processRandomCone(soa::Filtered<JetCollisions>::iterator const& collision, JetTableDataSubJoined const& jets, CandidateTableData const& candidates, BkgRhoTable const& bkgRhos, soa::Filtered<JetTracks> const& tracks)
1520+
void processRandomConeData(soa::Filtered<JetCollisions>::iterator const& collision, JetTableDataJoined const& jets, CandidateTableData const& candidates, BkgRhoTable const& bkgRhos, soa::Filtered<JetTracks> const& tracks)
14461521
{
1447-
if (!jetderiveddatautilities::selectCollision(collision, eventSelection)) {
1448-
return;
1449-
}
1450-
for (auto const& candidate : candidates) {
1451-
auto bkgRho = jetcandidateutilities::slicedPerCandidate(bkgRhos, candidate, perD0CandidateRhos, perLcCandidateRhos, perBplusCandidateRhos, perDielectronCandidateRhos).iteratorAt(0);
1452-
TRandom3 randomNumber(0);
1453-
float randomConeEta = randomNumber.Uniform(trackEtaMin + randomConeR, trackEtaMax - randomConeR);
1454-
float randomConePhi = randomNumber.Uniform(0.0, 2 * M_PI);
1455-
float randomConePt = 0;
1456-
for (auto const& track : tracks) {
1457-
if (jetderiveddatautilities::selectTrack(track, trackSelection)) {
1458-
float dPhi = RecoDecay::constrainAngle(track.phi() - randomConePhi, static_cast<float>(-M_PI));
1459-
float dEta = track.eta() - randomConeEta;
1460-
if (TMath::Sqrt(dEta * dEta + dPhi * dPhi) < randomConeR) {
1461-
randomConePt += track.pt();
1462-
}
1463-
}
1464-
}
1465-
registry.fill(HIST("h2_centrality_rhorandomcone"), collision.centrality(), randomConePt - M_PI * randomConeR * randomConeR * bkgRho.rho());
1466-
1467-
// removing the leading jet from the random cone
1468-
if (jets.size() > 0) { // if there are no jets in the acceptance (from the jetfinder cuts) then there can be no leading jet
1469-
float dPhiLeadingJet = RecoDecay::constrainAngle(jets.iteratorAt(0).phi() - randomConePhi, static_cast<float>(-M_PI));
1470-
float dEtaLeadingJet = jets.iteratorAt(0).eta() - randomConeEta;
1522+
randomCone(collision, jets, candidates, bkgRhos, tracks);
1523+
}
1524+
PROCESS_SWITCH(JetFinderHFQATask, processRandomConeData, "QA for random cone estimation of background fluctuations in data", false);
14711525

1472-
bool jetWasInCone = false;
1473-
while (TMath::Sqrt(dEtaLeadingJet * dEtaLeadingJet + dPhiLeadingJet * dPhiLeadingJet) < jets.iteratorAt(0).r() / 100.0 + randomConeR) {
1474-
jetWasInCone = true;
1475-
randomConeEta = randomNumber.Uniform(trackEtaMin + randomConeR, trackEtaMax - randomConeR);
1476-
randomConePhi = randomNumber.Uniform(0.0, 2 * M_PI);
1477-
dPhiLeadingJet = RecoDecay::constrainAngle(jets.iteratorAt(0).phi() - randomConePhi, static_cast<float>(-M_PI));
1478-
dEtaLeadingJet = jets.iteratorAt(0).eta() - randomConeEta;
1479-
}
1480-
if (jetWasInCone) {
1481-
randomConePt = 0.0;
1482-
for (auto const& track : tracks) {
1483-
if (jetderiveddatautilities::selectTrack(track, trackSelection)) {
1484-
float dPhi = RecoDecay::constrainAngle(track.phi() - randomConePhi, static_cast<float>(-M_PI));
1485-
float dEta = track.eta() - randomConeEta;
1486-
if (TMath::Sqrt(dEta * dEta + dPhi * dPhi) < randomConeR) {
1487-
randomConePt += track.pt();
1488-
}
1489-
}
1490-
}
1491-
}
1492-
}
1493-
registry.fill(HIST("h2_centrality_rhorandomconewithoutleadingjet"), collision.centrality(), randomConePt - M_PI * randomConeR * randomConeR * bkgRho.rho());
1494-
break; // currently only fills it for the first candidate in the event (not pT ordered). Jet is pT ordered so results for excluding leading jet might not be as expected
1495-
}
1526+
void processRandomConeMCD(soa::Filtered<JetCollisions>::iterator const& collision, JetTableMCDJoined const& jets, CandidateTableMCD const& candidates, BkgRhoTable const& bkgRhos, soa::Filtered<JetTracks> const& tracks)
1527+
{
1528+
randomCone(collision, jets, candidates, bkgRhos, tracks);
14961529
}
1497-
PROCESS_SWITCH(JetFinderHFQATask, processRandomCone, "QA for random cone estimation of background fluctuations", false);
1530+
PROCESS_SWITCH(JetFinderHFQATask, processRandomConeMCD, "QA for random cone estimation of background fluctuations in mcd", false);
14981531

14991532
void processCandidates(soa::Filtered<JetCollisions>::iterator const& collision, CandidateTableData const& candidates)
15001533
{

0 commit comments

Comments
 (0)