@@ -127,7 +127,7 @@ struct DileptonHadronMPC {
127127
128128 ConfigurableAxis ConfPtHadronBins{" ConfPtHadronBins" , {VARIABLE_WIDTH, 0.00 , 0.15 , 0.2 , 0.3 , 0.4 , 0.50 , 1.00 , 2.00 , 3.00 , 4.00 , 5.00 }, " pT,h bins for output histograms" };
129129 ConfigurableAxis ConfRapidityBins{" ConfRapidityBins" , {20 , -1 , 1 }, " rapidity bins for output histograms" };
130- ConfigurableAxis ConfDEtaBins{" ConfDEtaBins" , {60 , -3 , 3 }, " deta bins for output histograms" };
130+ ConfigurableAxis ConfDEtaBins{" ConfDEtaBins" , {120 , -6 , 6 }, " deta bins for output histograms" };
131131 Configurable<int > cfgNbinsDPhi{" cfgNbinsDPhi" , 36 , " nbins in dphi for output histograms" };
132132 Configurable<int > cfgNbinsCosNDPhi{" cfgNbinsCosNDPhi" , 200 , " nbins in cos(n(dphi)) for output histograms" };
133133 Configurable<int > cfgNmod{" cfgNmod" , 2 , " n-th harmonics" };
@@ -463,7 +463,7 @@ struct DileptonHadronMPC {
463463 o2::aod::pwgem::dilepton::utils::eventhistogram::addEventHistograms<-1 >(&fRegistry );
464464
465465 std::string mass_axis_title = " m_{ll} (GeV/c^{2})" ;
466- std::string pair_pt_axis_title = " p_{T,ll}^{trg} (GeV/c)" ;
466+ std::string pair_pt_axis_title = " p_{T,ll} (GeV/c)" ;
467467 std::string pair_dca_axis_title = " DCA_{ll} (#sigma)" ;
468468 std::string pair_rapidity_axis_title = " y_{ll}" ;
469469 std::string deta_axis_title = " #Delta#eta = #eta_{ll} - #eta_{h}" ;
@@ -539,7 +539,7 @@ struct DileptonHadronMPC {
539539 fRegistry .addClone (" DileptonHadron/same/" , " DileptonHadron/mix/" );
540540
541541 // hadron-hadron
542- const AxisSpec axis_cosndphi_hh{cfgNbinsCosNDPhi, -1 , +1 , std::format (" cos({0:d}(#varphi_{{h}}^{{trg }} - #varphi_{{h}}^{{ref }}))" , cfgNmod.value )};
542+ const AxisSpec axis_cosndphi_hh{cfgNbinsCosNDPhi, -1 , +1 , std::format (" cos({0:d}(#varphi_{{h}}^{{ref1 }} - #varphi_{{h}}^{{ref2 }}))" , cfgNmod.value )};
543543 fRegistry .add (" HadronHadron/same/hDEtaCosNDPhi" , " hadron-hadron 2PC" , kTH2D , {axis_cosndphi_hh, axis_deta_hh}, true );
544544 }
545545 fRegistry .add (" Dilepton/mix/hDiffBC" , " diff. global BC in mixed event;|BC_{current} - BC_{mixed}|" , kTH1D , {{10001 , -0.5 , 10000.5 }}, true );
@@ -1014,24 +1014,6 @@ struct DileptonHadronMPC {
10141014 float cosndphi = std::cos (cfgNmod * dphi);
10151015 fRegistry .fill (HIST (" HadronHadron/" ) + HIST (event_pair_types[ev_id]) + HIST (" hDEtaCosNDPhi" ), cosndphi, deta, weight);
10161016 }
1017-
1018- // store ref tracks for mixed event in case of kAzimuthalCorrelation
1019- if constexpr (ev_id == 0 ) {
1020- if (cfgDoMix && cfgAnalysisType == static_cast <int >(o2::aod::pwgem::dilepton::utils::pairutil::DileptonHadronAnalysisType::kAzimuthalCorrelation )) {
1021- std::pair<int , int > key_df_collision = std::make_pair (ndf, collision.globalIndex ());
1022- std::pair<int , int > pair_tmp_id1 = std::make_pair (ndf, t1.globalIndex ());
1023- std::pair<int , int > pair_tmp_id2 = std::make_pair (ndf, t2.globalIndex ());
1024- if (std::find (used_refTrackIds.begin (), used_refTrackIds.end (), pair_tmp_id1) == used_refTrackIds.end ()) {
1025- used_refTrackIds.emplace_back (pair_tmp_id1);
1026- emh_ref->AddTrackToEventPool (key_df_collision, EMTrack (ndf, t1.globalIndex (), collision.globalIndex (), t1.trackId (), t1.pt (), t1.eta (), t1.phi (), 0.139 ));
1027- } // store t1
1028- if (std::find (used_refTrackIds.begin (), used_refTrackIds.end (), pair_tmp_id2) == used_refTrackIds.end ()) {
1029- used_refTrackIds.emplace_back (pair_tmp_id2);
1030- emh_ref->AddTrackToEventPool (key_df_collision, EMTrack (ndf, t2.globalIndex (), collision.globalIndex (), t2.trackId (), t2.pt (), t2.eta (), t2.phi (), 0.139 ));
1031- } // store t2
1032- }
1033- }
1034-
10351017 return true ;
10361018 }
10371019
@@ -1149,15 +1131,27 @@ struct DileptonHadronMPC {
11491131 }
11501132 }
11511133
1134+ std::pair<int , int > key_df_collision = std::make_pair (ndf, collision.globalIndex ());
1135+
11521136 if (nuls > 0 || nlspp > 0 || nlsmm > 0 ) { // at least 1 pair exists.
1137+ emh_ref->ReserveNTracksPerCollision (key_df_collision, refTracks_per_coll.size ());
11531138 for (const auto & track : refTracks_per_coll) {
11541139 if (fEMTrackCut .IsSelected (track)) {
11551140 fRegistry .fill (HIST (" Hadron/hs" ), track.pt (), track.eta (), track.phi ());
11561141 fRegistry .fill (HIST (" Hadron/hTrackBit" ), track.trackBit ());
1142+
1143+ // store ref tracks for mixed event in case of kAzimuthalCorrelation
1144+ if (cfgDoMix && cfgAnalysisType == static_cast <int >(o2::aod::pwgem::dilepton::utils::pairutil::DileptonHadronAnalysisType::kAzimuthalCorrelation )) {
1145+ std::pair<int , int > pair_tmp_refTrack = std::make_pair (ndf, track.globalIndex ());
1146+ if (std::find (used_refTrackIds.begin (), used_refTrackIds.end (), pair_tmp_refTrack) == used_refTrackIds.end ()) {
1147+ used_refTrackIds.emplace_back (pair_tmp_refTrack);
1148+ emh_ref->AddTrackToEventPool (key_df_collision, EMTrack (ndf, track.globalIndex (), collision.globalIndex (), track.trackId (), track.pt (), track.eta (), track.phi (), 0.139 ));
1149+ } // store ref tracks
1150+ }
11571151 }
11581152 }
1159- for (const auto & [trg, ref ] : combinations (CombinationsStrictlyUpperIndexPolicy (refTracks_per_coll, refTracks_per_coll))) {
1160- fillHadronHadron<0 >(collision, trg, ref , posTracks_per_coll, negTracks_per_coll, cut);
1153+ for (const auto & [ref1, ref2 ] : combinations (CombinationsStrictlyUpperIndexPolicy (refTracks_per_coll, refTracks_per_coll))) {
1154+ fillHadronHadron<0 >(collision, ref1, ref2 , posTracks_per_coll, negTracks_per_coll, cut);
11611155 }
11621156 }
11631157
@@ -1198,7 +1192,6 @@ struct DileptonHadronMPC {
11981192 }
11991193
12001194 std::tuple<int , int , int , int > key_bin = std::make_tuple (zbin, centbin, epbin, occbin);
1201- std::pair<int , int > key_df_collision = std::make_pair (ndf, collision.globalIndex ());
12021195
12031196 // make a vector of selected electrons in this collision.
12041197 auto selected_posTracks_in_this_event = emh_pos->GetTracksPerCollision (key_df_collision);
@@ -1256,7 +1249,6 @@ struct DileptonHadronMPC {
12561249 if (cfgAnalysisType == static_cast <int >(o2::aod::pwgem::dilepton::utils::pairutil::DileptonHadronAnalysisType::kAzimuthalCorrelation )) {
12571250 auto selected_refTracks_in_this_event = emh_ref->GetTracksPerCollision (key_df_collision);
12581251 auto collisionIds_in_mixing_pool_hadron = emh_ref->GetCollisionIdsFromEventPool (key_bin);
1259- // LOGF(info, "selected_refTracks_in_this_event.size() = %d, collisionIds_in_mixing_pool_hadron.size() = %d", selected_refTracks_in_this_event.size(), collisionIds_in_mixing_pool_hadron.size());
12601252
12611253 for (const auto & mix_dfId_collisionId : collisionIds_in_mixing_pool_hadron) {
12621254 int mix_dfId = mix_dfId_collisionId.first ;
@@ -1273,13 +1265,14 @@ struct DileptonHadronMPC {
12731265 }
12741266
12751267 auto refTracks_from_event_pool = emh_ref->GetTracksPerCollision (mix_dfId_collisionId);
1276- // LOGF(info, "refTracks_from_event_pool.size() = %d", refTracks_from_event_pool.size());
1268+ // LOGF(info, "selected_refTracks_in_this_event.size() = %d, collisionIds_in_mixing_pool_hadron.size() = %d, refTracks_from_event_pool.size() = %d", selected_refTracks_in_this_event.size(), collisionIds_in_mixing_pool_hadron.size() , refTracks_from_event_pool.size());
12771269 for (const auto & ref1 : selected_refTracks_in_this_event) { // ref-ref mix
12781270 for (const auto & ref2 : refTracks_from_event_pool) {
1271+ // LOGF(info, "ref1.pt() = %f, ref2.pt() = %f", ref1.pt(), ref2.pt());
12791272 fillHadronHadron<1 >(collision, ref1, ref2, nullptr , nullptr , nullptr );
12801273 }
12811274 }
1282- } // end of loop over mixed event pool for lepton-lepton
1275+ } // end of loop over mixed event pool for hadron-hadron
12831276 }
12841277
12851278 if (nuls > 0 || nlspp > 0 || nlsmm > 0 ) {
0 commit comments