Skip to content
Merged
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
1 change: 1 addition & 0 deletions PWGEM/Dilepton/Core/Dilepton.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,14 +60,14 @@
#include <utility>
#include <vector>

using namespace o2;

Check failure on line 63 in PWGEM/Dilepton/Core/Dilepton.h

View workflow job for this annotation

GitHub Actions / O2 linter

[using-directive]

Do not put using directives at global scope in headers.
using namespace o2::aod;

Check failure on line 64 in PWGEM/Dilepton/Core/Dilepton.h

View workflow job for this annotation

GitHub Actions / O2 linter

[using-directive]

Do not put using directives at global scope in headers.
using namespace o2::framework;

Check failure on line 65 in PWGEM/Dilepton/Core/Dilepton.h

View workflow job for this annotation

GitHub Actions / O2 linter

[using-directive]

Do not put using directives at global scope in headers.
using namespace o2::framework::expressions;

Check failure on line 66 in PWGEM/Dilepton/Core/Dilepton.h

View workflow job for this annotation

GitHub Actions / O2 linter

[using-directive]

Do not put using directives at global scope in headers.
using namespace o2::soa;

Check failure on line 67 in PWGEM/Dilepton/Core/Dilepton.h

View workflow job for this annotation

GitHub Actions / O2 linter

[using-directive]

Do not put using directives at global scope in headers.
using namespace o2::aod::pwgem::dilepton::utils;

Check failure on line 68 in PWGEM/Dilepton/Core/Dilepton.h

View workflow job for this annotation

GitHub Actions / O2 linter

[using-directive]

Do not put using directives at global scope in headers.
using namespace o2::aod::pwgem::dilepton::utils::emtrackutil;

Check failure on line 69 in PWGEM/Dilepton/Core/Dilepton.h

View workflow job for this annotation

GitHub Actions / O2 linter

[using-directive]

Do not put using directives at global scope in headers.
using namespace o2::aod::pwgem::dilepton::utils::pairutil;

Check failure on line 70 in PWGEM/Dilepton/Core/Dilepton.h

View workflow job for this annotation

GitHub Actions / O2 linter

[using-directive]

Do not put using directives at global scope in headers.

using MyCollisions = soa::Join<aod::EMEvents, aod::EMEventsMult, aod::EMEventsCent, aod::EMEventsQvec>;
using MyCollision = MyCollisions::iterator;
Expand Down Expand Up @@ -449,10 +449,10 @@
}

// In case override, don't proceed, please - no CCDB access required
if (d_bz_input > -990) {

Check failure on line 452 in PWGEM/Dilepton/Core/Dilepton.h

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.
d_bz = d_bz_input;
o2::parameters::GRPMagField grpmag;
if (std::fabs(d_bz) > 1e-5) {

Check failure on line 455 in PWGEM/Dilepton/Core/Dilepton.h

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.
grpmag.setL3Current(30000.f / (d_bz / 5.0f));
}
o2::base::Propagator::initFieldFromGRP(&grpmag);
Expand Down Expand Up @@ -512,6 +512,7 @@

used_trackIds_per_col.clear();
used_trackIds_per_col.shrink_to_fit();
map_mixed_eventId_to_globalBC.clear();

delete h2sp_resolution;
}
Expand Down
1 change: 1 addition & 0 deletions PWGEM/Dilepton/Core/DileptonHadronMPC.h
Original file line number Diff line number Diff line change
Expand Up @@ -459,6 +459,7 @@ struct DileptonHadronMPC {

used_trackIds_per_col.clear();
used_trackIds_per_col.shrink_to_fit();
map_mixed_eventId_to_globalBC.clear();
}

void addhistograms()
Expand Down
51 changes: 24 additions & 27 deletions PWGEM/PhotonMeson/Core/Pi0EtaToGammaGamma.h
Original file line number Diff line number Diff line change
Expand Up @@ -309,10 +309,10 @@ struct Pi0EtaToGammaGamma {
delete emh2;
emh2 = 0x0;

used_photonIds.clear();
used_photonIds.shrink_to_fit();
used_dileptonIds.clear();
used_dileptonIds.shrink_to_fit();
used_photonIds_per_col.clear();
used_photonIds_per_col.shrink_to_fit();
used_dileptonIds_per_col.clear();
used_dileptonIds_per_col.shrink_to_fit();
map_mixed_eventId_to_globalBC.clear();
}

Expand Down Expand Up @@ -534,11 +534,10 @@ struct Pi0EtaToGammaGamma {
o2::framework::Partition<o2::soa::Filtered<o2::soa::Join<o2::aod::EMPrimaryElectronsFromDalitz, o2::aod::EMPrimaryElectronEMEventIds, o2::aod::EMPrimaryElectronsPrefilterBitDerived>>> positrons = o2::aod::emprimaryelectron::sign > int8_t(0) && dileptoncuts.cfg_min_pt_track < o2::aod::track::pt&& nabs(o2::aod::track::eta) < dileptoncuts.cfg_max_eta_track;
o2::framework::Partition<o2::soa::Filtered<o2::soa::Join<o2::aod::EMPrimaryElectronsFromDalitz, o2::aod::EMPrimaryElectronEMEventIds, o2::aod::EMPrimaryElectronsPrefilterBitDerived>>> electrons = o2::aod::emprimaryelectron::sign < int8_t(0) && dileptoncuts.cfg_min_pt_track < o2::aod::track::pt && nabs(o2::aod::track::eta) < dileptoncuts.cfg_max_eta_track;

// using MyEMH = o2::aod::pwgem::dilepton::utils::EventMixingHandler<std::tuple<int, int, int, int>, std::pair<int, int>, o2::aod::pwgem::dilepton::utils::EMTrack>;
o2::aod::pwgem::dilepton::utils::EventMixingHandler<std::tuple<int, int, int, int>, std::pair<int, int>, o2::aod::pwgem::dilepton::utils::EMTrack>* emh1 = nullptr;
o2::aod::pwgem::dilepton::utils::EventMixingHandler<std::tuple<int, int, int, int>, std::pair<int, int>, o2::aod::pwgem::dilepton::utils::EMTrack>* emh2 = nullptr;
std::vector<std::pair<int, int>> used_photonIds; // <ndf, trackId>
std::vector<std::tuple<int, int, int, int>> used_dileptonIds; // <ndf, trackId>
std::vector<int> used_photonIds_per_col; // <ndf, trackId>
std::vector<std::pair<int, int>> used_dileptonIds_per_col; // <ndf, trackId>
std::map<std::pair<int, int>, uint64_t> map_mixed_eventId_to_globalBC;

template <typename TCollisions, typename TPhotons1, typename TPhotons2, typename TSubInfos1, typename TSubInfos2, typename TPreslice1, typename TPreslice2, typename TCut1, typename TCut2>
Expand Down Expand Up @@ -649,16 +648,13 @@ struct Pi0EtaToGammaGamma {
RotationBackground<o2::soa::Join<o2::aod::SkimEMCClusters, o2::aod::EMCEMEventIds>>(v12, v1, v2, photons2_per_collision, g1.globalIndex(), g2.globalIndex(), weight);
}

std::pair<int, int> pair_tmp_id1 = std::make_pair(ndf, g1.globalIndex());
std::pair<int, int> pair_tmp_id2 = std::make_pair(ndf, g2.globalIndex());

if (std::find(used_photonIds.begin(), used_photonIds.end(), pair_tmp_id1) == used_photonIds.end()) {
if (std::find(used_photonIds_per_col.begin(), used_photonIds_per_col.end(), g1.globalIndex()) == used_photonIds_per_col.end()) {
emh1->AddTrackToEventPool(key_df_collision, o2::aod::pwgem::dilepton::utils::EMTrack(-1, g1.globalIndex(), collision.globalIndex(), g1.globalIndex(), g1.pt(), g1.eta(), g1.phi(), 0));
used_photonIds.emplace_back(pair_tmp_id1);
used_photonIds_per_col.emplace_back(g1.globalIndex());
}
if (std::find(used_photonIds.begin(), used_photonIds.end(), pair_tmp_id2) == used_photonIds.end()) {
if (std::find(used_photonIds_per_col.begin(), used_photonIds_per_col.end(), g2.globalIndex()) == used_photonIds_per_col.end()) {
emh1->AddTrackToEventPool(key_df_collision, o2::aod::pwgem::dilepton::utils::EMTrack(-1, g2.globalIndex(), collision.globalIndex(), g2.globalIndex(), g2.pt(), g2.eta(), g2.phi(), 0));
used_photonIds.emplace_back(pair_tmp_id2);
used_photonIds_per_col.emplace_back(g2.globalIndex());
}
ndiphoton++;
} // end of pairing loop
Expand Down Expand Up @@ -702,15 +698,14 @@ struct Pi0EtaToGammaGamma {

fRegistry.fill(HIST("Pair/same/hs"), veeg.M(), veeg.Pt(), weight);

std::pair<int, int> pair_tmp_id1 = std::make_pair(ndf, g1.globalIndex());
std::tuple<int, int, int, int> tuple_tmp_id2 = std::make_tuple(ndf, collision.globalIndex(), pos2.trackId(), ele2.trackId());
if (std::find(used_photonIds.begin(), used_photonIds.end(), pair_tmp_id1) == used_photonIds.end()) {
std::pair<int, int> tuple_tmp_id2 = std::make_pair(pos2.trackId(), ele2.trackId());
if (std::find(used_photonIds_per_col.begin(), used_photonIds_per_col.end(), g1.globalIndex()) == used_photonIds_per_col.end()) {
emh1->AddTrackToEventPool(key_df_collision, o2::aod::pwgem::dilepton::utils::EMTrack(-1, g1.globalIndex(), collision.globalIndex(), -1, g1.pt(), g1.eta(), g1.phi(), 0));
used_photonIds.emplace_back(pair_tmp_id1);
used_photonIds_per_col.emplace_back(g1.globalIndex());
}
if (std::find(used_dileptonIds.begin(), used_dileptonIds.end(), tuple_tmp_id2) == used_dileptonIds.end()) {
if (std::find(used_dileptonIds_per_col.begin(), used_dileptonIds_per_col.end(), tuple_tmp_id2) == used_dileptonIds_per_col.end()) {
emh2->AddTrackToEventPool(key_df_collision, o2::aod::pwgem::dilepton::utils::EMTrack(-1, -1, collision.globalIndex(), -1, v_ee.Pt(), v_ee.Eta(), v_ee.Phi(), v_ee.M()));
used_dileptonIds.emplace_back(tuple_tmp_id2);
used_dileptonIds_per_col.emplace_back(tuple_tmp_id2);
}
ndiphoton++;
} // end of dielectron loop
Expand All @@ -732,21 +727,23 @@ struct Pi0EtaToGammaGamma {

fRegistry.fill(HIST("Pair/same/hs"), v12.M(), v12.Pt(), weight);

std::pair<int, int> pair_tmp_id1 = std::make_pair(ndf, g1.globalIndex());
std::pair<int, int> pair_tmp_id2 = std::make_pair(ndf, g2.globalIndex());

if (std::find(used_photonIds.begin(), used_photonIds.end(), pair_tmp_id1) == used_photonIds.end()) {
if (std::find(used_photonIds_per_col.begin(), used_photonIds_per_col.end(), g1.globalIndex()) == used_photonIds_per_col.end()) {
emh1->AddTrackToEventPool(key_df_collision, o2::aod::pwgem::dilepton::utils::EMTrack(-1, g1.globalIndex(), collision.globalIndex(), -1, g1.pt(), g1.eta(), g1.phi(), 0));
used_photonIds.emplace_back(pair_tmp_id1);
used_photonIds_per_col.emplace_back(g1.globalIndex());
}
if (std::find(used_photonIds.begin(), used_photonIds.end(), pair_tmp_id2) == used_photonIds.end()) {
if (std::find(used_photonIds_per_col.begin(), used_photonIds_per_col.end(), g2.globalIndex()) == used_photonIds_per_col.end()) {
emh2->AddTrackToEventPool(key_df_collision, o2::aod::pwgem::dilepton::utils::EMTrack(-1, g2.globalIndex(), collision.globalIndex(), -1, g2.pt(), g2.eta(), g2.phi(), 0));
used_photonIds.emplace_back(pair_tmp_id2);
used_photonIds_per_col.emplace_back(g2.globalIndex());
}
ndiphoton++;
} // end of pairing loop
} // end of pairing in same event

used_photonIds_per_col.clear();
used_photonIds_per_col.shrink_to_fit();
used_dileptonIds_per_col.clear();
used_dileptonIds_per_col.shrink_to_fit();

// event mixing
if (!cfgDoMix || !(ndiphoton > 0)) {
continue;
Expand Down
100 changes: 51 additions & 49 deletions PWGEM/PhotonMeson/Core/TaggingPi0.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,40 +19,41 @@
#ifndef PWGEM_PHOTONMESON_CORE_TAGGINGPI0_H_
#define PWGEM_PHOTONMESON_CORE_TAGGINGPI0_H_

#include "PWGEM/Dilepton/Utils/EMTrack.h"
#include "PWGEM/Dilepton/Utils/EMTrackUtilities.h"
#include "PWGEM/Dilepton/Utils/EventMixingHandler.h"
#include "PWGEM/PhotonMeson/Core/DalitzEECut.h"
#include "PWGEM/PhotonMeson/Core/EMCPhotonCut.h"
#include "PWGEM/PhotonMeson/Core/EMPhotonEventCut.h"
#include "PWGEM/PhotonMeson/Core/PHOSPhotonCut.h"
#include "PWGEM/PhotonMeson/Core/V0PhotonCut.h"
#include "PWGEM/PhotonMeson/DataModel/gammaTables.h"
#include "PWGEM/PhotonMeson/Utils/EventHistograms.h"
#include "PWGEM/PhotonMeson/Utils/PairUtilities.h"

#include "Common/Core/RecoDecay.h"

#include "CCDB/BasicCCDBManager.h"
#include "DataFormatsParameters/GRPMagField.h"
#include "DataFormatsParameters/GRPObject.h"
#include "DetectorsBase/GeometryManager.h"
#include "Framework/ASoAHelpers.h"
#include "Framework/AnalysisDataModel.h"
#include "Framework/AnalysisTask.h"
#include "Framework/runDataProcessing.h"

#include "Math/Vector4D.h"
#include "TString.h"

#include <algorithm>
#include <array>
#include <cstring>
#include <iterator>
#include <string>
#include <map>
#include <vector>
#include <string>
#include <tuple>
#include <utility>
#include <array>
#include <algorithm>

#include "TString.h"
#include "Math/Vector4D.h"
#include "Framework/runDataProcessing.h"
#include "Framework/AnalysisTask.h"
#include "Framework/AnalysisDataModel.h"
#include "Framework/ASoAHelpers.h"

#include "DetectorsBase/GeometryManager.h"
#include "DataFormatsParameters/GRPObject.h"
#include "DataFormatsParameters/GRPMagField.h"
#include "CCDB/BasicCCDBManager.h"

#include "Common/Core/RecoDecay.h"
#include "PWGEM/PhotonMeson/DataModel/gammaTables.h"
#include "PWGEM/PhotonMeson/Core/V0PhotonCut.h"
#include "PWGEM/PhotonMeson/Core/DalitzEECut.h"
#include "PWGEM/PhotonMeson/Core/PHOSPhotonCut.h"
#include "PWGEM/PhotonMeson/Core/EMCPhotonCut.h"
#include "PWGEM/PhotonMeson/Core/EMPhotonEventCut.h"
#include "PWGEM/PhotonMeson/Utils/PairUtilities.h"
#include "PWGEM/Dilepton/Utils/EMTrack.h"
#include "PWGEM/Dilepton/Utils/EventMixingHandler.h"
#include "PWGEM/PhotonMeson/Utils/EventHistograms.h"
#include "PWGEM/Dilepton/Utils/EMTrackUtilities.h"
#include <vector>

using namespace o2;
using namespace o2::aod;
Expand Down Expand Up @@ -306,10 +307,10 @@ struct TaggingPi0 {
delete emh2;
emh2 = 0x0;

used_photonIds.clear();
used_photonIds.shrink_to_fit();
used_dileptonIds.clear();
used_dileptonIds.shrink_to_fit();
used_photonIds_per_col.clear();
used_photonIds_per_col.shrink_to_fit();
used_dileptonIds_per_col.clear();
used_dileptonIds_per_col.shrink_to_fit();
map_mixed_eventId_to_globalBC.clear();
}

Expand Down Expand Up @@ -453,14 +454,14 @@ struct TaggingPi0 {
using MyEMH = o2::aod::pwgem::dilepton::utils::EventMixingHandler<std::tuple<int, int, int, int>, std::pair<int, int>, EMTrack>;
MyEMH* emh1 = nullptr;
MyEMH* emh2 = nullptr;
std::vector<std::pair<int, int>> used_photonIds; // <ndf, trackId>
std::vector<std::tuple<int, int, int, int>> used_dileptonIds; // <ndf, trackId>
std::vector<int> used_photonIds_per_col; // <ndf, trackId>
std::vector<std::pair<int, int>> used_dileptonIds_per_col; // <ndf, trackId>
std::map<std::pair<int, int>, uint64_t> map_mixed_eventId_to_globalBC;

template <typename TCollisions, typename TPhotons1, typename TPhotons2, typename TSubInfos1, typename TSubInfos2, typename TPreslice1, typename TPreslice2, typename TCut1, typename TCut2>
void runPairing(TCollisions const& collisions,
TPhotons1 const& photons1, TPhotons2 const& photons2,
TSubInfos1 const& /*subinfos1*/, TSubInfos2 const& /*subinfos2*/,
TSubInfos1 const&, TSubInfos2 const&,
TPreslice1 const& perCollision1, TPreslice2 const& perCollision2,
TCut1 const& cut1, TCut2 const& cut2)
{
Expand Down Expand Up @@ -571,15 +572,14 @@ struct TaggingPi0 {
ROOT::Math::PtEtaPhiMVector veeg = v_gamma + v_pos + v_ele;
fRegistry.fill(HIST("Pair/same/hMvsPt"), veeg.M(), v_gamma.Pt(), weight);

std::pair<int, int> pair_tmp_id1 = std::make_pair(ndf, g1.globalIndex());
std::tuple<int, int, int, int> tuple_tmp_id2 = std::make_tuple(ndf, collision.globalIndex(), pos2.trackId(), ele2.trackId());
if (std::find(used_photonIds.begin(), used_photonIds.end(), pair_tmp_id1) == used_photonIds.end()) {
std::pair<int, int> tuple_tmp_id2 = std::make_pair(pos2.trackId(), ele2.trackId());
if (std::find(used_photonIds_per_col.begin(), used_photonIds_per_col.end(), g1.globalIndex()) == used_photonIds_per_col.end()) {
emh1->AddTrackToEventPool(key_df_collision, EMTrack(-1, g1.globalIndex(), collision.globalIndex(), -1, g1.pt(), g1.eta(), g1.phi(), 0));
used_photonIds.emplace_back(pair_tmp_id1);
used_photonIds_per_col.emplace_back(g1.globalIndex());
}
if (std::find(used_dileptonIds.begin(), used_dileptonIds.end(), tuple_tmp_id2) == used_dileptonIds.end()) {
if (std::find(used_dileptonIds_per_col.begin(), used_dileptonIds_per_col.end(), tuple_tmp_id2) == used_dileptonIds_per_col.end()) {
emh2->AddTrackToEventPool(key_df_collision, EMTrack(-1, -1, collision.globalIndex(), -1, v_ee.Pt(), v_ee.Eta(), v_ee.Phi(), v_ee.M()));
used_dileptonIds.emplace_back(tuple_tmp_id2);
used_dileptonIds_per_col.emplace_back(tuple_tmp_id2);
}
ndiphoton++;
} // end of dielectron loop
Expand All @@ -598,21 +598,23 @@ struct TaggingPi0 {

fRegistry.fill(HIST("Pair/same/hMvsPt"), v12.M(), v1.Pt(), weight);

std::pair<int, int> pair_tmp_id1 = std::make_pair(ndf, g1.globalIndex());
std::pair<int, int> pair_tmp_id2 = std::make_pair(ndf, g2.globalIndex());

if (std::find(used_photonIds.begin(), used_photonIds.end(), pair_tmp_id1) == used_photonIds.end()) {
if (std::find(used_photonIds_per_col.begin(), used_photonIds_per_col.end(), g1.globalIndex()) == used_photonIds_per_col.end()) {
emh1->AddTrackToEventPool(key_df_collision, EMTrack(-1, g1.globalIndex(), collision.globalIndex(), -1, g1.pt(), g1.eta(), g1.phi(), 0));
used_photonIds.emplace_back(pair_tmp_id1);
used_photonIds_per_col.emplace_back(g1.globalIndex());
}
if (std::find(used_photonIds.begin(), used_photonIds.end(), pair_tmp_id2) == used_photonIds.end()) {
if (std::find(used_photonIds_per_col.begin(), used_photonIds_per_col.end(), g2.globalIndex()) == used_photonIds_per_col.end()) {
emh2->AddTrackToEventPool(key_df_collision, EMTrack(-1, g2.globalIndex(), collision.globalIndex(), -1, g2.pt(), g2.eta(), g2.phi(), 0));
used_photonIds.emplace_back(pair_tmp_id2);
used_photonIds_per_col.emplace_back(g2.globalIndex());
}
ndiphoton++;
} // end of pairing loop
} // end of pairing in same event

used_photonIds_per_col.clear();
used_photonIds_per_col.shrink_to_fit();
used_dileptonIds_per_col.clear();
used_dileptonIds_per_col.shrink_to_fit();

// event mixing
if (!cfgDoMix || !(ndiphoton > 0)) {
continue;
Expand Down
Loading