1919#ifndef PWGEM_PHOTONMESON_CORE_TAGGINGPI0_H_
2020#define PWGEM_PHOTONMESON_CORE_TAGGINGPI0_H_
2121
22+ #include " PWGEM/Dilepton/Utils/EMTrack.h"
23+ #include " PWGEM/Dilepton/Utils/EMTrackUtilities.h"
24+ #include " PWGEM/Dilepton/Utils/EventMixingHandler.h"
25+ #include " PWGEM/PhotonMeson/Core/DalitzEECut.h"
26+ #include " PWGEM/PhotonMeson/Core/EMCPhotonCut.h"
27+ #include " PWGEM/PhotonMeson/Core/EMPhotonEventCut.h"
28+ #include " PWGEM/PhotonMeson/Core/PHOSPhotonCut.h"
29+ #include " PWGEM/PhotonMeson/Core/V0PhotonCut.h"
30+ #include " PWGEM/PhotonMeson/DataModel/gammaTables.h"
31+ #include " PWGEM/PhotonMeson/Utils/EventHistograms.h"
32+ #include " PWGEM/PhotonMeson/Utils/PairUtilities.h"
33+
34+ #include " Common/Core/RecoDecay.h"
35+
36+ #include " CCDB/BasicCCDBManager.h"
37+ #include " DataFormatsParameters/GRPMagField.h"
38+ #include " DataFormatsParameters/GRPObject.h"
39+ #include " DetectorsBase/GeometryManager.h"
40+ #include " Framework/ASoAHelpers.h"
41+ #include " Framework/AnalysisDataModel.h"
42+ #include " Framework/AnalysisTask.h"
43+ #include " Framework/runDataProcessing.h"
44+
45+ #include " Math/Vector4D.h"
46+ #include " TString.h"
47+
48+ #include < algorithm>
49+ #include < array>
2250#include < cstring>
2351#include < iterator>
24- #include < string>
2552#include < map>
26- #include < vector >
53+ #include < string >
2754#include < tuple>
2855#include < utility>
29- #include < array>
30- #include < algorithm>
31-
32- #include " TString.h"
33- #include " Math/Vector4D.h"
34- #include " Framework/runDataProcessing.h"
35- #include " Framework/AnalysisTask.h"
36- #include " Framework/AnalysisDataModel.h"
37- #include " Framework/ASoAHelpers.h"
38-
39- #include " DetectorsBase/GeometryManager.h"
40- #include " DataFormatsParameters/GRPObject.h"
41- #include " DataFormatsParameters/GRPMagField.h"
42- #include " CCDB/BasicCCDBManager.h"
43-
44- #include " Common/Core/RecoDecay.h"
45- #include " PWGEM/PhotonMeson/DataModel/gammaTables.h"
46- #include " PWGEM/PhotonMeson/Core/V0PhotonCut.h"
47- #include " PWGEM/PhotonMeson/Core/DalitzEECut.h"
48- #include " PWGEM/PhotonMeson/Core/PHOSPhotonCut.h"
49- #include " PWGEM/PhotonMeson/Core/EMCPhotonCut.h"
50- #include " PWGEM/PhotonMeson/Core/EMPhotonEventCut.h"
51- #include " PWGEM/PhotonMeson/Utils/PairUtilities.h"
52- #include " PWGEM/Dilepton/Utils/EMTrack.h"
53- #include " PWGEM/Dilepton/Utils/EventMixingHandler.h"
54- #include " PWGEM/PhotonMeson/Utils/EventHistograms.h"
55- #include " PWGEM/Dilepton/Utils/EMTrackUtilities.h"
56+ #include < vector>
5657
5758using namespace o2 ;
5859using namespace o2 ::aod;
@@ -306,10 +307,10 @@ struct TaggingPi0 {
306307 delete emh2;
307308 emh2 = 0x0 ;
308309
309- used_photonIds .clear ();
310- used_photonIds .shrink_to_fit ();
311- used_dileptonIds .clear ();
312- used_dileptonIds .shrink_to_fit ();
310+ used_photonIds_per_col .clear ();
311+ used_photonIds_per_col .shrink_to_fit ();
312+ used_dileptonIds_per_col .clear ();
313+ used_dileptonIds_per_col .shrink_to_fit ();
313314 map_mixed_eventId_to_globalBC.clear ();
314315 }
315316
@@ -453,14 +454,14 @@ struct TaggingPi0 {
453454 using MyEMH = o2::aod::pwgem::dilepton::utils::EventMixingHandler<std::tuple<int , int , int , int >, std::pair<int , int >, EMTrack>;
454455 MyEMH* emh1 = nullptr ;
455456 MyEMH* emh2 = nullptr ;
456- std::vector<std::pair< int , int >> used_photonIds; // <ndf, trackId>
457- std::vector<std::tuple <int , int , int , int >> used_dileptonIds ; // <ndf, trackId>
457+ std::vector<int > used_photonIds_per_col; // <ndf, trackId>
458+ std::vector<std::pair <int , int >> used_dileptonIds_per_col ; // <ndf, trackId>
458459 std::map<std::pair<int , int >, uint64_t > map_mixed_eventId_to_globalBC;
459460
460461 template <typename TCollisions, typename TPhotons1, typename TPhotons2, typename TSubInfos1, typename TSubInfos2, typename TPreslice1, typename TPreslice2, typename TCut1, typename TCut2>
461462 void runPairing (TCollisions const & collisions,
462463 TPhotons1 const & photons1, TPhotons2 const & photons2,
463- TSubInfos1 const & /* subinfos1 */ , TSubInfos2 const & /* subinfos2 */ ,
464+ TSubInfos1 const &, TSubInfos2 const &,
464465 TPreslice1 const & perCollision1, TPreslice2 const & perCollision2,
465466 TCut1 const & cut1, TCut2 const & cut2)
466467 {
@@ -571,15 +572,14 @@ struct TaggingPi0 {
571572 ROOT::Math::PtEtaPhiMVector veeg = v_gamma + v_pos + v_ele;
572573 fRegistry .fill (HIST (" Pair/same/hMvsPt" ), veeg.M (), v_gamma.Pt (), weight);
573574
574- std::pair<int , int > pair_tmp_id1 = std::make_pair (ndf, g1.globalIndex ());
575- std::tuple<int , int , int , int > tuple_tmp_id2 = std::make_tuple (ndf, collision.globalIndex (), pos2.trackId (), ele2.trackId ());
576- if (std::find (used_photonIds.begin (), used_photonIds.end (), pair_tmp_id1) == used_photonIds.end ()) {
575+ std::pair<int , int > tuple_tmp_id2 = std::make_pair (pos2.trackId (), ele2.trackId ());
576+ if (std::find (used_photonIds_per_col.begin (), used_photonIds_per_col.end (), g1.globalIndex ()) == used_photonIds_per_col.end ()) {
577577 emh1->AddTrackToEventPool (key_df_collision, EMTrack (-1 , g1.globalIndex (), collision.globalIndex (), -1 , g1.pt (), g1.eta (), g1.phi (), 0 ));
578- used_photonIds .emplace_back (pair_tmp_id1 );
578+ used_photonIds_per_col .emplace_back (g1. globalIndex () );
579579 }
580- if (std::find (used_dileptonIds .begin (), used_dileptonIds .end (), tuple_tmp_id2) == used_dileptonIds .end ()) {
580+ if (std::find (used_dileptonIds_per_col .begin (), used_dileptonIds_per_col .end (), tuple_tmp_id2) == used_dileptonIds_per_col .end ()) {
581581 emh2->AddTrackToEventPool (key_df_collision, EMTrack (-1 , -1 , collision.globalIndex (), -1 , v_ee.Pt (), v_ee.Eta (), v_ee.Phi (), v_ee.M ()));
582- used_dileptonIds .emplace_back (tuple_tmp_id2);
582+ used_dileptonIds_per_col .emplace_back (tuple_tmp_id2);
583583 }
584584 ndiphoton++;
585585 } // end of dielectron loop
@@ -598,21 +598,23 @@ struct TaggingPi0 {
598598
599599 fRegistry .fill (HIST (" Pair/same/hMvsPt" ), v12.M (), v1.Pt (), weight);
600600
601- std::pair<int , int > pair_tmp_id1 = std::make_pair (ndf, g1.globalIndex ());
602- std::pair<int , int > pair_tmp_id2 = std::make_pair (ndf, g2.globalIndex ());
603-
604- if (std::find (used_photonIds.begin (), used_photonIds.end (), pair_tmp_id1) == used_photonIds.end ()) {
601+ if (std::find (used_photonIds_per_col.begin (), used_photonIds_per_col.end (), g1.globalIndex ()) == used_photonIds_per_col.end ()) {
605602 emh1->AddTrackToEventPool (key_df_collision, EMTrack (-1 , g1.globalIndex (), collision.globalIndex (), -1 , g1.pt (), g1.eta (), g1.phi (), 0 ));
606- used_photonIds .emplace_back (pair_tmp_id1 );
603+ used_photonIds_per_col .emplace_back (g1. globalIndex () );
607604 }
608- if (std::find (used_photonIds .begin (), used_photonIds .end (), pair_tmp_id2) == used_photonIds .end ()) {
605+ if (std::find (used_photonIds_per_col .begin (), used_photonIds_per_col .end (), g2. globalIndex ()) == used_photonIds_per_col .end ()) {
609606 emh2->AddTrackToEventPool (key_df_collision, EMTrack (-1 , g2.globalIndex (), collision.globalIndex (), -1 , g2.pt (), g2.eta (), g2.phi (), 0 ));
610- used_photonIds .emplace_back (pair_tmp_id2 );
607+ used_photonIds_per_col .emplace_back (g2. globalIndex () );
611608 }
612609 ndiphoton++;
613610 } // end of pairing loop
614611 } // end of pairing in same event
615612
613+ used_photonIds_per_col.clear ();
614+ used_photonIds_per_col.shrink_to_fit ();
615+ used_dileptonIds_per_col.clear ();
616+ used_dileptonIds_per_col.shrink_to_fit ();
617+
616618 // event mixing
617619 if (!cfgDoMix || !(ndiphoton > 0 )) {
618620 continue ;
0 commit comments