Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 22 additions & 5 deletions PWGJE/Tasks/jetOutlierQA.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@

Preslice<aod::JetTracks> perColTrack = aod::jtrack::collisionId;
Preslice<soa::Join<aod::JetMcCollisions, aod::JMcCollisionPIs>> perColParticle = aod::jmccollision::mcCollisionId;
Preslice<soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents, aod::ChargedMCDetectorLevelJetEventWeights>> perColJets = aod::jet::collisionId;
Preslice<soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents, aod::ChargedMCDetectorLevelJetsMatchedToChargedMCParticleLevelJets, aod::ChargedMCDetectorLevelJetEventWeights>> perColJetsMatched = aod::jet::collisionId;
Preslice<soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents>> perColJets = aod::jet::collisionId;
Preslice<soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents, aod::ChargedMCDetectorLevelJetsMatchedToChargedMCParticleLevelJets>> perColJetsMatched = aod::jet::collisionId;

Configurable<std::string> eventSelections{"eventSelections", "sel8", "choose event selection"};
Configurable<float> vertexZCut{"vertexZCut", 10.0f, "Accepted z-vertex range"};
Expand Down Expand Up @@ -102,10 +102,10 @@
auto jetPtTemp = 0.0;
jetPtBins.push_back(jetPtTemp);
while (jetPtTemp < jetPtMax) {
if (jetPtTemp < 100.0) {

Check failure on line 105 in PWGJE/Tasks/jetOutlierQA.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
jetPtTemp += 1.0;
jetPtBins.push_back(jetPtTemp);
} else if (jetPtTemp < 200.0) {

Check failure on line 108 in PWGJE/Tasks/jetOutlierQA.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
jetPtTemp += 5.0;
jetPtBins.push_back(jetPtTemp);
} else {
Expand Down Expand Up @@ -239,10 +239,16 @@
registry.add("h_track_pt_eta_same_collision", "track pt vs eta from same collision or different MB collision;p_{T,track} (GeV/#it{c});#eta_{track};entries", {HistType::kTH2F, {{200, 0, 200}, {100, -5, 5}}});
registry.add("h_track_pt_phi_same_collision", "track pt vs phi from same collision or different MB collision;p_{T,track} (GeV/#it{c});#varphi_{track} (rad);entries", {HistType::kTH2F, {{200, 0, 200}, {160, -1.0, 7.0}}});
registry.add("h2_collision_ID_difference_same_collision", "difference in collision ID between outlier collision and analysed collision", {HistType::kTH2F, {{600, 0, 600}, {200, -100, 100}}});
registry.add("h_pt_hard_track_pt_same_collision", "Tracks vs pThard;#frac{p_{T}}{#hat{p}};p_{T}", {HistType::kTH2F, {pThatAxis, {200, 0, 200}}});
registry.add("h_track_pt_same_collision_cut_particle", "track pt from same collision or different MB collision;p_{T,track} (GeV/#it{c});entries", {HistType::kTH1F, {{200, 0, 200}}});
registry.add("h_pt_hard_track_pt_same_collision_cut_particle", "Tracks vs pThard;#frac{p_{T}}{#hat{p}};p_{T}", {HistType::kTH2F, {pThatAxis, {200, 0, 200}}});
registry.add("h_track_pt_same_collision_rejected", "rejected track pt from same collision or different MB collision;p_{T,track} (GeV/#it{c});entries", {HistType::kTH1F, {{200, 0, 200}}});

registry.add("h_track_pt_no_JJ_different", "track pt from same collision or different MB collision;p_{T,track} (GeV/#it{c});entries", {HistType::kTH1F, {{200, 0, 200}}});
registry.add("h_track_pt_eta_no_JJ_different", "track pt vs eta from same collision or different MB collision;p_{T,track} (GeV/#it{c});#eta_{track};entries", {HistType::kTH2F, {{200, 0, 200}, {100, -5, 5}}});
registry.add("h_track_pt_phi_no_JJ_different", "track pt vs phi from same collision or different MB collision;p_{T,track} (GeV/#it{c});#varphi_{track} (rad);entries", {HistType::kTH2F, {{200, 0, 200}, {160, -1.0, 7.0}}});
registry.add("h2_collision_ID_difference_no_JJ_different", "difference in collision ID between outlier collision and analysed collision", {HistType::kTH2F, {{600, 0, 600}, {200, -100, 100}}});
registry.add("h_track_pt_no_JJ_different_rejected", "rejected track pt from same collision or different MB collision;p_{T,track} (GeV/#it{c});entries", {HistType::kTH1F, {{200, 0, 200}}});
}
}

Expand All @@ -253,13 +259,13 @@
bool isAcceptedJet(U const& jet)
{

if (jetAreaFractionMin > -98.0) {

Check failure on line 262 in PWGJE/Tasks/jetOutlierQA.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
if (jet.area() < jetAreaFractionMin * M_PI * (jet.r() / 100.0) * (jet.r() / 100.0)) {
return false;
}
}
bool checkConstituentPt = true;
bool checkConstituentMinPt = (leadingConstituentPtMin > -98.0);

Check failure on line 268 in PWGJE/Tasks/jetOutlierQA.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
bool checkConstituentMaxPt = (leadingConstituentPtMax < 9998.0);
if (!checkConstituentMinPt && !checkConstituentMaxPt) {
checkConstituentPt = false;
Expand All @@ -285,7 +291,7 @@
return true;
}

void fillHistogramsAmbiguous(soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents, aod::ChargedMCDetectorLevelJetEventWeights>::iterator const& jet,
void fillHistogramsAmbiguous(soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents>::iterator const& jet,
float weight,
aod::AmbiguousTracks const& tracksAmbiguous)
{
Expand All @@ -302,7 +308,7 @@
registry.fill(HIST("h3_pthat_jet_pt_jet_ntracks_all"), pTHat, jet.pt(), jet.tracksIds().size(), weight);
registry.fill(HIST("h3_pthat_jet_pt_jet_ntracks_all_noweight"), pTHat, jet.pt(), jet.tracksIds().size());
}
for (auto& constituent : jet.template tracks_as<aod::JetTracksMCD>()) {

Check failure on line 311 in PWGJE/Tasks/jetOutlierQA.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
if (jet.pt() > pTHatMaxMCDOutlier * pTHat) {
registry.fill(HIST("h3_jet_pt_track_dEta_track_dPhi_outliers"), jet.pt(), jet.eta() - constituent.eta(), jet.phi() - constituent.phi(), weight);
registry.fill(HIST("h3_jet_pt_track_dEta_track_dPhi_outliers_noweight"), jet.pt(), jet.eta() - constituent.eta(), jet.phi() - constituent.phi());
Expand All @@ -321,7 +327,7 @@
double pt_total = 0;
double pt_amb = 0;
double pt_unmatched = 0;
for (auto& constituent : jet.template tracks_as<aod::JetTracksMCD>()) {

Check failure on line 330 in PWGJE/Tasks/jetOutlierQA.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
pt_total += constituent.pt();
bool has_MCparticle = constituent.has_mcParticle();
if (!has_MCparticle) {
Expand Down Expand Up @@ -363,7 +369,7 @@

void processJetsAmbiguous(soa::Filtered<soa::Join<aod::JetCollisions, aod::JMcCollisionLbs>>::iterator const& collision,
aod::JetMcCollisions const&,
soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents, aod::ChargedMCDetectorLevelJetEventWeights> const& jets,
soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents> const& jets,
aod::JetTracksMCD const&,
const aod::AmbiguousTracks& tracksAmbiguous)
{
Expand All @@ -386,7 +392,7 @@
if (!isAcceptedJet<aod::JetTracks>(jet)) {
continue;
}
fillHistogramsAmbiguous(jet, jet.eventWeight(), tracksAmbiguous);
fillHistogramsAmbiguous(jet, collision.weight(), tracksAmbiguous);
nTracksJet += jet.tracksIds().size();
if (jet.pt() > pTHatMaxMCDOutlier * pTHat) {
isOutlierEvent = true;
Expand Down Expand Up @@ -475,10 +481,10 @@
auto bc2Events = bc2It->second;

// loop over events in the first BC
for (auto ev1It : bc1Events) {

Check failure on line 484 in PWGJE/Tasks/jetOutlierQA.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
auto ev1 = collisions.rawIteratorAt(ev1It);
// loop over events in the second BC
for (auto ev2It : bc2Events) {

Check failure on line 487 in PWGJE/Tasks/jetOutlierQA.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
auto ev2 = collisions.rawIteratorAt(ev2It);
// compute 2-event quantities and mark the candidate split collisions
float deltaZ = ev1.posZ() - ev2.posZ();
Expand Down Expand Up @@ -601,7 +607,7 @@
registry.fill(HIST("h2_pt_hat_track_pt_outlier"), pTHat, track.pt());
for (auto const& collisionOutlier : collisions) { // find collisions closeby
int diffColl = collision.globalIndex() - collisionOutlier.globalIndex();
if (abs(diffColl) < 6) {

Check failure on line 610 in PWGJE/Tasks/jetOutlierQA.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[std-prefix]

Use std:: prefix for names from the std namespace.
float eventWeightOutlier = collisionOutlier.mcCollision().weight();
double pTHatOutlier = collisionOutlier.mcCollision().ptHard();
registry.fill(HIST("h2_neighbour_pt_hat_outlier"), float(diffColl + 0.1), pTHatOutlier, eventWeightOutlier);
Expand Down Expand Up @@ -681,13 +687,24 @@
registry.fill(HIST("h_track_pt_eta_same_collision"), track.pt(), track.eta(), weight);
registry.fill(HIST("h_track_pt_phi_same_collision"), track.pt(), track.phi(), weight);
registry.fill(HIST("h2_collision_ID_difference_same_collision"), pTHat, float(outlierCollisionIDDifference));
registry.fill(HIST("h_pt_hard_track_pt_same_collision"), pTHat != 0.0 ? track.pt() / pTHat : 0.0, track.pt(), weight);

// include selection on pThat of particle
if (mcParticleOutlier.pt() < pTHatMaxMCP * pTHat) {
registry.fill(HIST("h_track_pt_same_collision_cut_particle"), track.pt(), weight);
registry.fill(HIST("h_pt_hard_track_pt_same_collision_cut_particle"), pTHat != 0.0 ? track.pt() / pTHat : 0.0, track.pt(), weight);
}
} else {
registry.fill(HIST("h_track_pt_same_collision_rejected"), track.pt(), weight);
}
// fill tracks for events which have no JJ outlier tracks from different events
if (nJJdifferentSelected == 0) {
registry.fill(HIST("h_track_pt_no_JJ_different"), track.pt(), weight);
registry.fill(HIST("h_track_pt_eta_no_JJ_different"), track.pt(), track.eta(), weight);
registry.fill(HIST("h_track_pt_phi_no_JJ_different"), track.pt(), track.phi(), weight);
registry.fill(HIST("h2_collision_ID_difference_no_JJ_different"), pTHat, float(outlierCollisionIDDifference));
} else {
registry.fill(HIST("h_track_pt_no_JJ_different_rejected"), track.pt(), weight);
}
// collision checks for all tracks
for (auto const& collisionOutlier : collisions) { // find collisions closeby
Expand All @@ -695,7 +712,7 @@
double pTHatOutlier = collisionOutlier.mcCollision().ptHard();
int diffColl = collision.globalIndex() - collisionOutlier.globalIndex();

if (abs(diffColl) < 6) {

Check failure on line 715 in PWGJE/Tasks/jetOutlierQA.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[std-prefix]

Use std:: prefix for names from the std namespace.
// LOG(info) << "pThat = " << pTHat << "pThat neighbour = "<<pTHatOutlier;
registry.fill(HIST("h2_neighbour_pt_hat_all"), float(diffColl + 0.1), pTHatOutlier, eventWeightOutlier);
registry.fill(HIST("h2_neighbour_track_pt_all"), float(diffColl + 0.1), track.pt(), eventWeightOutlier);
Expand Down
Loading