@@ -77,7 +77,7 @@ struct dielectronQC {
7777 struct : ConfigurableGroup {
7878 std::string prefix = " dileptoncut_group" ;
7979 Configurable<float > cfg_min_mass{" cfg_min_mass" , 0.0 , " min mass" };
80- Configurable<float > cfg_max_mass{" cfg_max_mass" , 0.5 , " max mass" };
80+ Configurable<float > cfg_max_mass{" cfg_max_mass" , 1e+10 , " max mass" };
8181 Configurable<float > cfg_min_pair_dca3d{" cfg_min_pair_dca3d" , 0.0 , " min pair dca3d in sigma" };
8282 Configurable<float > cfg_max_pair_dca3d{" cfg_max_pair_dca3d" , 1e+10 , " max pair dca3d in sigma" };
8383 Configurable<bool > cfg_apply_phiv{" cfg_apply_phiv" , true , " flag to apply phiv cut" };
@@ -142,8 +142,8 @@ struct dielectronQC {
142142 ep_bin_edges = std::vector<float >(ConfEPBins.value .begin (), ConfEPBins.value .end ());
143143 ep_bin_edges.erase (ep_bin_edges.begin ());
144144
145- emh_pos = new o2::aod::pwgem::photonmeson::utils::EventMixingHandler<std::tuple<int , int , int >, std::pair<int , int64_t >, EMTrack>(ndepth);
146- emh_ele = new o2::aod::pwgem::photonmeson::utils::EventMixingHandler<std::tuple<int , int , int >, std::pair<int , int64_t >, EMTrack>(ndepth);
145+ emh_pos = new o2::aod::pwgem::photonmeson::utils::EventMixingHandler<std::tuple<int , int , int >, std::pair<int , int >, EMTrack>(ndepth);
146+ emh_ele = new o2::aod::pwgem::photonmeson::utils::EventMixingHandler<std::tuple<int , int , int >, std::pair<int , int >, EMTrack>(ndepth);
147147
148148 DefineEMEventCut ();
149149 DefineDileptonCut ();
@@ -317,7 +317,8 @@ struct dielectronQC {
317317 template <int ev_id, typename TCollision, typename TTrack1, typename TTrack2>
318318 bool fillPairInfo (TCollision const & collision, TTrack1 const & t1, TTrack2 const & t2)
319319 {
320- if (t1.trackId () == t2.trackId ()) { // this is protection against pairing identical 2 tracks. This happens, when TTCA is used. TTCA can assign a track to several possible collisions.
320+ if (t1.trackId () == t2.trackId ()) { // this is protection against pairing 2 identical tracks. This happens, when TTCA is used. TTCA can assign a track to several possible collisions.
321+ // LOGF(info, "event id = %d , same track is found. t1.trackId() = %d, t1.collisionId() = %d, t1.pt() = %f, t1.eta() = %f, t1.phi() = %f, t2.trackId() = %d, t2.collisionId() = %d, t2.pt() = %f, t2.eta() = %f, t2.phi() = %f", ev_id, t1.trackId(), t1.collisionId(), t1.pt(), t1.eta(), t1.phi(), t2.trackId(), t2.collisionId(), t2.pt(), t2.eta(), t2.phi());
321322 return false ;
322323 }
323324
@@ -341,6 +342,10 @@ struct dielectronQC {
341342 ROOT ::Math::PtEtaPhiMVector v2 (t2.pt (), t2.eta (), t2.phi (), o2::constants::physics::MassElectron);
342343 ROOT ::Math::PtEtaPhiMVector v12 = v1 + v2;
343344
345+ if (abs (v12.Rapidity ()) > maxY) {
346+ return false ;
347+ }
348+
344349 float dca_t1_3d = t1.dca3DinSigma ();
345350 float dca_t2_3d = t2.dca3DinSigma ();
346351 float dca_ee_3d = std::sqrt ((dca_t1_3d * dca_t1_3d + dca_t2_3d * dca_t2_3d) / 2 .);
@@ -383,34 +388,34 @@ struct dielectronQC {
383388 epbin = static_cast <int >(ep_bin_edges.size ()) - 2 ;
384389 }
385390
386- std::pair<int , int64_t > key_df_collision = std::make_pair (ndf, collision.globalIndex ());
391+ std::pair<int , int > key_df_collision = std::make_pair (ndf, collision.globalIndex ());
387392
388- std::tuple <int , int , int > tuple_tmp_id1 = std::make_tuple (ndf, collision. globalIndex (), t1.trackId ());
389- std::tuple <int , int , int > tuple_tmp_id2 = std::make_tuple (ndf, collision. globalIndex (), t2.trackId ());
393+ std::pair <int , int > pair_tmp_id1 = std::make_pair (ndf, t1.globalIndex ());
394+ std::pair <int , int > pair_tmp_id2 = std::make_pair (ndf, t2.globalIndex ());
390395
391396 if (t1.sign () > 0 ) {
392- if (std::find (used_trackIds.begin (), used_trackIds.end (), tuple_tmp_id1 ) == used_trackIds.end ()) {
397+ if (std::find (used_trackIds.begin (), used_trackIds.end (), pair_tmp_id1 ) == used_trackIds.end ()) {
393398 emh_pos->AddTrackToEventPool (key_df_collision, EMTrack (collision.globalIndex (), t1.trackId (), t1.pt (), t1.eta (), t1.phi (), o2::constants::physics::MassElectron, t1.sign (), t1.dca3DinSigma ()));
394- used_trackIds.emplace_back (tuple_tmp_id1 );
399+ used_trackIds.emplace_back (pair_tmp_id1 );
395400 fillTrackInfo (t1);
396401 }
397402 } else {
398- if (std::find (used_trackIds.begin (), used_trackIds.end (), tuple_tmp_id1 ) == used_trackIds.end ()) {
403+ if (std::find (used_trackIds.begin (), used_trackIds.end (), pair_tmp_id1 ) == used_trackIds.end ()) {
399404 emh_ele->AddTrackToEventPool (key_df_collision, EMTrack (collision.globalIndex (), t1.trackId (), t1.pt (), t1.eta (), t1.phi (), o2::constants::physics::MassElectron, t1.sign (), t1.dca3DinSigma ()));
400- used_trackIds.emplace_back (tuple_tmp_id1 );
405+ used_trackIds.emplace_back (pair_tmp_id1 );
401406 fillTrackInfo (t1);
402407 }
403408 }
404409 if (t2.sign () > 0 ) {
405- if (std::find (used_trackIds.begin (), used_trackIds.end (), tuple_tmp_id2 ) == used_trackIds.end ()) {
410+ if (std::find (used_trackIds.begin (), used_trackIds.end (), pair_tmp_id2 ) == used_trackIds.end ()) {
406411 emh_pos->AddTrackToEventPool (key_df_collision, EMTrack (collision.globalIndex (), t2.trackId (), t2.pt (), t2.eta (), t2.phi (), o2::constants::physics::MassElectron, t2.sign (), t2.dca3DinSigma ()));
407- used_trackIds.emplace_back (tuple_tmp_id2 );
412+ used_trackIds.emplace_back (pair_tmp_id2 );
408413 fillTrackInfo (t2);
409414 }
410415 } else {
411- if (std::find (used_trackIds.begin (), used_trackIds.end (), tuple_tmp_id2 ) == used_trackIds.end ()) {
416+ if (std::find (used_trackIds.begin (), used_trackIds.end (), pair_tmp_id2 ) == used_trackIds.end ()) {
412417 emh_ele->AddTrackToEventPool (key_df_collision, EMTrack (collision.globalIndex (), t2.trackId (), t2.pt (), t2.eta (), t2.phi (), o2::constants::physics::MassElectron, t2.sign (), t2.dca3DinSigma ()));
413- used_trackIds.emplace_back (tuple_tmp_id2 );
418+ used_trackIds.emplace_back (pair_tmp_id2 );
414419 fillTrackInfo (t2);
415420 }
416421 }
@@ -451,8 +456,8 @@ struct dielectronQC {
451456 fRegistry .fill (HIST (" Track/hTOFNsigmaPr" ), track.tpcInnerParam (), track.tofNSigmaPr ());
452457 }
453458
454- o2::aod::pwgem::photonmeson::utils::EventMixingHandler<std::tuple<int , int , int >, std::pair<int , int64_t >, EMTrack>* emh_pos = nullptr ;
455- o2::aod::pwgem::photonmeson::utils::EventMixingHandler<std::tuple<int , int , int >, std::pair<int , int64_t >, EMTrack>* emh_ele = nullptr ;
459+ o2::aod::pwgem::photonmeson::utils::EventMixingHandler<std::tuple<int , int , int >, std::pair<int , int >, EMTrack>* emh_pos = nullptr ;
460+ o2::aod::pwgem::photonmeson::utils::EventMixingHandler<std::tuple<int , int , int >, std::pair<int , int >, EMTrack>* emh_ele = nullptr ;
456461
457462 Filter collisionFilter_centrality = (cfgCentMin < o2::aod::cent::centFT0M && o2::aod::cent::centFT0M < cfgCentMax) || (cfgCentMin < o2::aod::cent::centFT0A && o2::aod::cent::centFT0A < cfgCentMax) || (cfgCentMin < o2::aod::cent::centFT0C && o2::aod::cent::centFT0C < cfgCentMax);
458463 using FilteredMyCollisions = soa::Filtered<MyCollisions>;
@@ -465,7 +470,7 @@ struct dielectronQC {
465470 Partition<FilteredMyTracks> posTracks = o2::aod::emprimaryelectron::sign > int8_t (0 );
466471 Partition<FilteredMyTracks> negTracks = o2::aod::emprimaryelectron::sign < int8_t (0 );
467472
468- std::vector<std::tuple< int , int , int >> used_trackIds;
473+ std::vector<std::pair< int , int >> used_trackIds;
469474 int ndf = 0 ;
470475 void processQC (FilteredMyCollisions const & collisions, FilteredMyTracks const & tracks)
471476 {
@@ -485,7 +490,7 @@ struct dielectronQC {
485490
486491 auto posTracks_per_coll = posTracks->sliceByCached (o2::aod::emprimaryelectron::emeventId, collision.globalIndex (), cache);
487492 auto negTracks_per_coll = negTracks->sliceByCached (o2::aod::emprimaryelectron::emeventId, collision.globalIndex (), cache);
488- // LOGF(info, "centrality = %f , posTracks_per_coll.size() = %d, negTracks_per_coll.size() = %d", centralities[cfgCentEstimator], posTracks_per_coll.size(), negTracks_per_coll.size());
493+ // LOGF(info, "collision.globalIndex() = %d , collision.posZ() = %f , collision.numContrib() = %d, centrality = %f , posTracks_per_coll.size() = %d, negTracks_per_coll.size() = %d", collision.globalIndex(), collision.posZ(), collision.numContrib() , centralities[cfgCentEstimator], posTracks_per_coll.size(), negTracks_per_coll.size());
489494
490495 int nuls = 0 , nlspp = 0 , nlsmm = 0 ;
491496 for (auto & [pos, ele] : combinations (CombinationsFullIndexPolicy (posTracks_per_coll, negTracks_per_coll))) { // ULS
@@ -536,18 +541,18 @@ struct dielectronQC {
536541 }
537542
538543 std::tuple<int , int , int > key_bin = std::make_tuple (zbin, centbin, epbin);
539- std::pair<int , int64_t > key_df_collision = std::make_pair (ndf, collision.globalIndex ());
544+ std::pair<int , int > key_df_collision = std::make_pair (ndf, collision.globalIndex ());
540545
541546 // make a vector of selected photons in this collision.
542547 auto selected_posTracks_in_this_event = emh_pos->GetTracksPerCollision (key_df_collision);
543548 auto selected_negTracks_in_this_event = emh_ele->GetTracksPerCollision (key_df_collision);
544- // LOGF(info, "N selected tracks in current event (%d, %d), npos = %d , nele = %d", ndf, collision.globalIndex(), selected_posTracks_in_this_event.size(), selected_negTracks_in_this_event.size());
549+ // LOGF(info, "N selected tracks in current event (%d, %d), zvtx = %f, centrality = %f , npos = %d , nele = %d, nuls = %d , nlspp = %d, nlsmm = %d ", ndf, collision.globalIndex(), collision.posZ(), centralities[cfgCentEstimator], selected_posTracks_in_this_event.size(), selected_negTracks_in_this_event.size(), nuls, nlspp, nlsmm );
545550
546551 auto collisionIds_in_mixing_pool = emh_pos->GetCollisionIdsFromEventPool (key_bin); // pos/ele does not matter.
547552
548553 for (auto & mix_dfId_collisionId : collisionIds_in_mixing_pool) {
549554 int mix_dfId = mix_dfId_collisionId.first ;
550- int64_t mix_collisionId = mix_dfId_collisionId.second ;
555+ int mix_collisionId = mix_dfId_collisionId.second ;
551556
552557 if (collision.globalIndex () == mix_collisionId && ndf == mix_dfId) { // this never happens. only protection.
553558 continue ;
0 commit comments