Skip to content
Closed
Show file tree
Hide file tree
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
28 changes: 12 additions & 16 deletions PWGJE/Tasks/jetFinderQA.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,6 @@
Configurable<bool> doMultCutCheck{"doMultCutCheck", false, "decide to apply multCutCheck or not"};
Configurable<bool> multCutCheck_applyRCTSelections{"multCutCheck_applyRCTSelections", true, "decide to apply RCT selections"};


std::vector<bool> filledJetR_Both;
std::vector<bool> filledJetR_Low;
std::vector<bool> filledJetR_High;
Expand Down Expand Up @@ -394,7 +393,7 @@
registry.add("h2_occupancy_ntracksselptetacuts_postsel", "occupancy vs N_{tracks}; occupancy; N_{tracks}", {HistType::kTH2I, {occupancyAxis, nTracksAxis}});
}

if (doprocessQcMultCutCheck){
if (doprocessQcMultCutCheck) {
std::vector<double> centralityBinning{0., 10., 50., 70., 100};
AxisSpec centAxis = {centralityBinning, "centrality (%)"};
bool doSumw2 = true;
Expand All @@ -410,7 +409,7 @@
registry.add("h_collisions", "event status;event status;entries", {HistType::kTH1F, {{4, 0.0, 4.0}}});
registry.add("h2_centrality_collisions", "centrality vs collisions; centrality; collisions", {HistType::kTH2F, {centAxis, {4, 0.0, 4.0}}});
// registry.add("h2_mccollision_pthardfromweight_pthardfromhepmcxsection", "ptHard from weight vs ptHard from HepMCXSections; ptHard_weight; ptHard_hepmcxsections", {HistType::kTH2F, {{200, 0.0, 200.0}, {200, 0.0, 200.0}}});

registry.add("h_collisions_weighted", "event status;event status;entries", {HistType::kTH1F, {{4, 0.0, 4.0}}}, doSumw2);
registry.add("h2_centrality_collisions_weighted", "centrality vs collisions; centrality; collisions", {HistType::kTH2F, {centAxis, {4, 0.0, 4.0}}}, doSumw2);
// registry.add("h2_mccollision_pthardfromweight_pthardfromhepmcxsection_weighted", "ptHard from weight vs ptHard from HepMCXSections; ptHard_weight; ptHard_hepmcxsections", {HistType::kTH2F, {{200, 0.0, 200.0}, {200, 0.0, 200.0}}}, doSumw2);
Expand Down Expand Up @@ -446,8 +445,8 @@

Filter trackCuts = (aod::jtrack::pt >= trackPtMin && aod::jtrack::pt < trackPtMax && aod::jtrack::eta > trackEtaMin && aod::jtrack::eta < trackEtaMax);
Filter eventCuts = (nabs(aod::jcollision::posZ) < vertexZCut &&
((checkCentFT0M ? aod::jcollision::centFT0M : aod::jcollision::centFT0C) >= centralityMin) &&
((checkCentFT0M ? aod::jcollision::centFT0M : aod::jcollision::centFT0C) < centralityMax));
((checkCentFT0M ? aod::jcollision::centFT0M : aod::jcollision::centFT0C) >= centralityMin) &&
((checkCentFT0M ? aod::jcollision::centFT0M : aod::jcollision::centFT0C) < centralityMax));
PresliceUnsorted<soa::Filtered<aod::JetCollisionsMCD>> CollisionsPerMCPCollision = aod::jmccollisionlb::mcCollisionId;
PresliceUnsorted<soa::Join<aod::JetMcCollisions, aod::JMcCollisionPIs>> McCollisionsPerMCPCollision = aod::jmccollision::mcCollisionId;

Expand Down Expand Up @@ -529,7 +528,7 @@
registry.fill(HIST("h3_jet_r_jet_pt_jet_area"), jet.r() / 100.0, jet.pt(), jet.area(), weight);

float angularity = 0.;
for (auto& constituent : jet.template tracks_as<aod::JetTracks>()) {

Check failure on line 531 in PWGJE/Tasks/jetFinderQA.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.

registry.fill(HIST("h3_jet_r_jet_pt_track_pt"), jet.r() / 100.0, jet.pt(), constituent.pt(), weight);
registry.fill(HIST("h3_jet_r_jet_pt_track_eta"), jet.r() / 100.0, jet.pt(), constituent.eta(), weight);
Expand Down Expand Up @@ -566,7 +565,7 @@
registry.fill(HIST("h3_jet_r_jet_pt_jet_area_rhoareasubtracted"), jet.r() / 100.0, jet.pt() - (rho * jet.area()), jet.area(), weight);
registry.fill(HIST("h3_jet_r_jet_pt_jet_pt_rhoareasubtracted"), jet.r() / 100.0, jet.pt(), jet.pt() - (rho * jet.area()), weight);

for (auto& constituent : jet.template tracks_as<aod::JetTracks>()) {

Check failure on line 568 in PWGJE/Tasks/jetFinderQA.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.

registry.fill(HIST("h3_jet_r_jet_pt_track_pt_rhoareasubtracted"), jet.r() / 100.0, jet.pt() - (rho * jet.area()), constituent.pt(), weight);
registry.fill(HIST("h3_jet_r_jet_pt_track_eta_rhoareasubtracted"), jet.r() / 100.0, jet.pt() - (rho * jet.area()), constituent.eta(), weight);
Expand Down Expand Up @@ -596,7 +595,7 @@
registry.fill(HIST("h3_jet_r_jet_pt_jet_ntracks_eventwiseconstituentsubtracted"), jet.r() / 100.0, jet.pt(), jet.tracksIds().size(), weight);
registry.fill(HIST("h3_jet_r_jet_pt_jet_area_eventwiseconstituentsubtracted"), jet.r() / 100.0, jet.pt(), jet.area(), weight);

for (auto& constituent : jet.template tracks_as<aod::JetTracksSub>()) {

Check failure on line 598 in PWGJE/Tasks/jetFinderQA.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.

registry.fill(HIST("h3_jet_r_jet_pt_track_pt_eventwiseconstituentsubtracted"), jet.r() / 100.0, jet.pt(), constituent.pt(), weight);
registry.fill(HIST("h3_jet_r_jet_pt_track_eta_eventwiseconstituentsubtracted"), jet.r() / 100.0, jet.pt(), constituent.eta(), weight);
Expand Down Expand Up @@ -627,7 +626,7 @@
registry.fill(HIST("h3_jet_r_part_jet_pt_part_jet_ntracks_part"), jet.r() / 100.0, jet.pt(), jet.tracksIds().size(), weight);

float angularity = 0.;
for (auto& constituent : jet.template tracks_as<aod::JetParticles>()) {

Check failure on line 629 in PWGJE/Tasks/jetFinderQA.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.

registry.fill(HIST("h3_jet_r_part_jet_pt_part_track_pt_part"), jet.r() / 100.0, jet.pt(), constituent.pt(), weight);
registry.fill(HIST("h3_jet_r_part_jet_pt_part_track_eta_part"), jet.r() / 100.0, jet.pt(), constituent.eta(), weight);
Expand All @@ -646,7 +645,7 @@
}

if (jetBase.has_matchedJetGeo()) {
for (auto& jetTag : jetBase.template matchedJetGeo_as<std::decay_t<U>>()) {

Check failure on line 648 in PWGJE/Tasks/jetFinderQA.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 (jetTag.pt() > pTHatMaxMCP * pTHat) {
continue;
}
Expand All @@ -659,7 +658,7 @@
registry.fill(HIST("h3_jet_r_jet_pt_tag_jet_phi_base_diff_matchedgeo"), jetBase.r() / 100.0, jetTag.pt(), jetTag.phi() - jetBase.phi(), weight);
float leadingTrackPtTag = 0.;
float angularityTag = 0.;
for (auto& constituent : jetTag.template tracks_as<aod::JetParticles>()) {

Check failure on line 661 in PWGJE/Tasks/jetFinderQA.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 (constituent.pt() > leadingTrackPtTag) {
leadingTrackPtTag = constituent.pt();
}
Expand Down Expand Up @@ -688,7 +687,7 @@
}
}
if (jetBase.has_matchedJetPt()) {
for (auto& jetTag : jetBase.template matchedJetPt_as<std::decay_t<U>>()) {

Check failure on line 690 in PWGJE/Tasks/jetFinderQA.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 (jetTag.pt() > pTHatMaxMCP * pTHat) {
continue;
}
Expand All @@ -701,7 +700,7 @@
registry.fill(HIST("h3_jet_r_jet_pt_tag_jet_phi_base_diff_matchedpt"), jetBase.r() / 100.0, jetTag.pt(), jetTag.phi() - jetBase.phi(), weight);
float leadingTrackPtTag = 0.;
float angularityTag = 0.;
for (auto& constituent : jetTag.template tracks_as<aod::JetParticles>()) {

Check failure on line 703 in PWGJE/Tasks/jetFinderQA.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 (constituent.pt() > leadingTrackPtTag) {
leadingTrackPtTag = constituent.pt();
}
Expand All @@ -726,7 +725,7 @@

if (jetBase.has_matchedJetGeo() && jetBase.has_matchedJetPt()) {

for (auto& jetTag : jetBase.template matchedJetGeo_as<std::decay_t<U>>()) {

Check failure on line 728 in PWGJE/Tasks/jetFinderQA.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 (jetTag.pt() > pTHatMaxMCP * pTHat) {
continue;
}
Expand All @@ -741,7 +740,7 @@
registry.fill(HIST("h3_jet_r_jet_pt_tag_jet_phi_base_diff_matchedgeopt"), jetBase.r() / 100.0, jetTag.pt(), jetTag.phi() - jetBase.phi(), weight);
float leadingTrackPtTag = 0.;
float angularityTag = 0.;
for (auto& constituent : jetTag.template tracks_as<aod::JetParticles>()) {

Check failure on line 743 in PWGJE/Tasks/jetFinderQA.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 (constituent.pt() > leadingTrackPtTag) {
leadingTrackPtTag = constituent.pt();
}
Expand Down Expand Up @@ -870,7 +869,6 @@
registry.fill(HIST("h2_centrality_rhorandomconerandomtrackdirectionwithouttwoleadingjets"), collision.centFT0M(), randomConePtWithoutTwoLeadJet - M_PI * randomConeR * randomConeR * collision.rho());
}


enum JCollisionSubGeneratorId {
none = -1,
mbGap = 0
Expand Down Expand Up @@ -926,7 +924,7 @@
registry.fill(HIST("h_collisions_weighted"), 3.5, eventWeight);
}

if (multCutCheck_analyseMBGapEvents == mbGapSelectionRequirement::mbGapOnly && collision.getSubGeneratorId() != JCollisionSubGeneratorId::mbGap){
if (multCutCheck_analyseMBGapEvents == mbGapSelectionRequirement::mbGapOnly && collision.getSubGeneratorId() != JCollisionSubGeneratorId::mbGap) {
return false;
} else if (multCutCheck_analyseMBGapEvents == mbGapSelectionRequirement::mbGapSkip && collision.getSubGeneratorId() == JCollisionSubGeneratorId::mbGap) {
return false;
Expand Down Expand Up @@ -1487,13 +1485,12 @@
registry.fill(HIST("h2_occupancy_ntracksall_postsel"), occupancy, nTracksAll);
registry.fill(HIST("h2_occupancy_ntrackssel_postsel"), occupancy, nTracksAllAcceptanceAndSelected);
registry.fill(HIST("h2_occupancy_ntracksselptetacuts_postsel"), occupancy, nTracksInAcceptanceAndSelected);

}
PROCESS_SWITCH(JetFinderQATask, processOccupancyQA, "occupancy QA on jet derived data", false);

void processQcMultCutCheck(soa::Filtered<soa::Join<aod::JetCollisions, aod::BkgChargedRhos>>::iterator const& collision,
soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents> const& mcdjets,
soa::Filtered<soa::Join<aod::JetTracks, aod::JTrackExtras, aod::JTrackPIs>> const& tracks)
soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents> const& mcdjets,
soa::Filtered<soa::Join<aod::JetTracks, aod::JTrackExtras, aod::JTrackPIs>> const& tracks)
{
bool fillHistograms = true;
bool isWeighted = true;
Expand All @@ -1504,24 +1501,23 @@
registry.fill(HIST("h_collisions_zvertex"), collision.posZ(), eventWeight);

bool hasJetAboveMultCut = false;
for (auto const& mcdjet: mcdjets) {
if (mcdjet.tracksIds().size() > multCutCheck_proportionalFactor*mcdjet.pt() + multCutCheck_abscissaAtOrigin) {
for (auto const& mcdjet : mcdjets) {
if (mcdjet.tracksIds().size() > multCutCheck_proportionalFactor * mcdjet.pt() + multCutCheck_abscissaAtOrigin) {
hasJetAboveMultCut = true;
}
}
if (doMultCutCheck && hasJetAboveMultCut == false) {
return;
}


registry.fill(HIST("h_collisions_ntracks"), tracks.size(), eventWeight);
registry.fill(HIST("h2_centrality_ntracks"), collision.centFT0M(), tracks.size(), eventWeight);
registry.fill(HIST("h_collisions_njets"), mcdjets.size(), eventWeight);
registry.fill(HIST("h2_centrality_njets"), collision.centFT0M(), mcdjets.size(), eventWeight);
registry.fill(HIST("h2_ntracks_rho"), tracks.size(), collision.rho(), eventWeight);
registry.fill(HIST("h2_centrality_rho"), collision.centFT0M(), collision.rho(), eventWeight);

for (auto const& track: tracks) {
for (auto const& track : tracks) {
registry.fill(HIST("h2_centrality_track_pt"), collision.centFT0M(), track.pt(), eventWeight);
registry.fill(HIST("h2_centrality_track_eta"), collision.centFT0M(), track.eta(), eventWeight);
registry.fill(HIST("h2_track_pt_track_sigma1overpt"), track.pt(), track.sigma1Pt(), eventWeight);
Expand All @@ -1530,7 +1526,7 @@
registry.fill(HIST("h2_track_pt_high_track_sigmapt"), track.pt(), track.sigma1Pt() * track.pt(), eventWeight);
}

for (auto const& mcdjet: mcdjets) {
for (auto const& mcdjet : mcdjets) {
registry.fill(HIST("h_jet_pt"), mcdjet.pt(), eventWeight);
registry.fill(HIST("h_jet_eta"), mcdjet.eta(), eventWeight);
registry.fill(HIST("h_jet_phi"), mcdjet.phi(), eventWeight);
Expand All @@ -1543,7 +1539,7 @@
registry.fill(HIST("h2_jet_pt_jet_ntracks"), mcdjet.pt(), mcdjet.tracksIds().size(), eventWeight);
for (const auto& constituent : mcdjet.template tracks_as<soa::Filtered<soa::Join<aod::JetTracks, aod::JTrackExtras, aod::JTrackPIs>>>()) {
registry.fill(HIST("h2_jet_pt_track_pt"), mcdjet.pt(), constituent.pt(), eventWeight);
}
}
}
}
PROCESS_SWITCH(JetFinderQATask, processQcMultCutCheck, "processing QC on collision, track and jet quantities after cut on collision based on jet quantities;", false);
Expand Down
3 changes: 1 addition & 2 deletions PWGJE/Tasks/trackEfficiency.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ struct TrackEfficiency {
} else {
const auto& aodTrack = jetTrack.template track_as<soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA>>();
if (effSystMinNCrossedRowsTPCUseAlternateCut) {
customTrackSelection.SetMinNCrossedRowsTPC(120 - 5./jetTrack.pt());
customTrackSelection.SetMinNCrossedRowsTPC(120 - 5. / jetTrack.pt());
}
if (customTrackSelection.IsSelected(aodTrack)) {
return true;
Expand Down Expand Up @@ -1252,7 +1252,6 @@ struct TrackEfficiency {
}
PROCESS_SWITCH(TrackEfficiency, processTrackSelectionHistograms, "plots distributions of variables that are cut on during track selection", false);


void processOccupancyQA(soa::Filtered<aod::JetCollisions>::iterator const& collision, aod::JetTracks const& tracks)
{
float centrality = checkCentFT0M ? collision.centFT0M() : collision.centFT0C();
Expand Down
Loading