@@ -87,9 +87,6 @@ using MyMuon = MyMuons::iterator;
8787using FilteredMyMuons = soa::Filtered<MyMuons>;
8888using FilteredMyMuon = FilteredMyMuons::iterator;
8989
90- using MyTracks = soa::Join<aod::EMPrimaryTracks, aod::EMPrimaryTrackEMEventIds>;
91- using MyTrack = MyTracks::iterator;
92-
9390using MyEMH_electron = o2::aod::pwgem::dilepton::utils::EventMixingHandler<std::tuple<int , int , int , int >, std::pair<int , int >, EMTrack>;
9491using MyEMH_muon = o2::aod::pwgem::dilepton::utils::EventMixingHandler<std::tuple<int , int , int , int >, std::pair<int , int >, EMFwdTrack>;
9592using MyEMH_track = o2::aod::pwgem::dilepton::utils::EventMixingHandler<std::tuple<int , int , int , int >, std::pair<int , int >, EMTrack>; // for charged track
@@ -114,15 +111,15 @@ struct DileptonHadronMPC {
114111 Configurable<int > ndepth_hadron{" ndepth_hadron" , 1 , " depth for event mixing between hadron-hadron" };
115112 Configurable<uint64_t > ndiff_bc_mix{" ndiff_bc_mix" , 594 , " difference in global BC required in mixed events" };
116113 ConfigurableAxis ConfVtxBins{" ConfVtxBins" , {VARIABLE_WIDTH, -10 .0f , -8 .f , -6 .f , -4 .f , -2 .f , 0 .f , 2 .f , 4 .f , 6 .f , 8 .f , 10 .f }, " Mixing bins - z-vertex" };
117- ConfigurableAxis ConfCentBins{" ConfCentBins" , {VARIABLE_WIDTH, 0 .0f , 0.1 , 1 , 5 .0f , 10 .0f , 20 .0f , 30 .0f , 40 .0f , 50 .0f , 60 .0f , 70 .0f , 80 .0f , 90 .0f , 100 .f , 999 .f }, " Mixing bins - centrality" };
114+ ConfigurableAxis ConfCentBins{" ConfCentBins" , {VARIABLE_WIDTH, 0 .0f , 5 .0f , 10 .0f , 20 .0f , 30 .0f , 40 .0f , 50 .0f , 60 .0f , 70 .0f , 80 .0f , 90 .0f , 100 .f , 999 .f }, " Mixing bins - centrality" };
118115 ConfigurableAxis ConfOccupancyBins{" ConfOccupancyBins" , {VARIABLE_WIDTH, -1 , 1e+10 }, " Mixing bins - occupancy" };
119116 Configurable<std::string> cfg_swt_name{" cfg_swt_name" , " fHighTrackMult" , " desired software trigger name" }; // 1 trigger name per 1 task. fHighTrackMult, fHighFt0Mult
120117 // Configurable<int> cfgNtracksPV08Min{"cfgNtracksPV08Min", -1, "min. multNTracksPV"};
121118 // Configurable<int> cfgNtracksPV08Max{"cfgNtracksPV08Max", static_cast<int>(1e+9), "max. multNTracksPV"};
122119 Configurable<bool > cfgApplyWeightTTCA{" cfgApplyWeightTTCA" , false , " flag to apply weighting by 1/N" };
123120 Configurable<uint> cfgDCAType{" cfgDCAType" , 0 , " type of DCA for output. 0:3D, 1:XY, 2:Z, else:3D" };
124121
125- ConfigurableAxis ConfMllBins{" ConfMllBins" , {VARIABLE_WIDTH, 0.00 , 0.01 , 0.02 , 0.03 , 0.04 , 0.05 , 0.06 , 0.07 , 0.08 , 0.09 , 0.10 , 0.11 , 0.12 , 0.13 , 0.14 , 0.20 , 0.30 , 0.40 , 0.50 , 0.51 , 0.52 , 0.53 , 0.54 , 0.55 , 0.56 , 0.57 , 0.58 , 0.59 , 0.60 , 0.61 , 0.62 , 0.63 , 0.64 , 0.65 , 0.66 , 0.67 , 0.68 , 0.69 , 0.70 , 0.71 , 0.72 , 0.73 , 0.74 , 0.75 , 0.76 , 0.77 , 0.78 , 0.79 , 0.80 , 0.81 , 0.82 , 0.83 , 0.84 , 0.85 , 0.86 , 0.87 , 0.88 , 0.89 , 0.90 , 0.91 , 0.92 , 0.93 , 0.94 , 0.95 , 0.96 , 0.97 , 0.98 , 0.99 , 1.00 , 1.01 , 1.02 , 1.03 , 1.04 , 1.05 , 1.06 , 1.07 , 1.08 , 1.09 , 1.10 , 1.11 , 1.12 , 1.13 , 1.14 , 1.15 , 1.16 , 1.17 , 1.18 , 1.19 , 1.20 , 1.30 , 1.40 , 1.50 , 1.60 , 1.70 , 1.80 , 1.90 , 2.00 , 2.10 , 2.20 , 2.30 , 2.40 , 2.50 , 2.60 , 2.70 , 2.75 , 2.80 , 2.85 , 2.90 , 2.95 , 3.00 , 3.05 , 3.10 , 3.15 , 3.20 , 3.25 , 3.30 , 3.35 , 3.40 , 3.45 , 3.50 , 3.55 , 3.60 , 3.65 , 3.70 , 3.75 , 3.80 , 3.85 , 3.90 , 3.95 , 4.00 }, " mll bins for output histograms" };
122+ ConfigurableAxis ConfMllBins{"ConfMllBins", {VARIABLE_WIDTH, 0.00, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.10, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.20, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 0.28, 0.29, 0.30, 0.31, 0.32, 0.33, 0.34, 0.35, 0.36, 0.37, 0.38, 0.39, 0.40, 0.41, 0.42, 0.43, 0.44, 0.45, 0.46, 0.47, 0.48, 0.49, 0.50, 0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.57, 0.58, 0.59, 0.60, 0.61, 0.62, 0.63, 0.64, 0.65, 0.66, 0.67, 0.68, 0.69, 0.70, 0.71, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.80, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.88, 0.89, 0.90, 0.91, 0.92, 0.93, 0.94, 0.95, 0.96, 0.97, 0.98, 0.99, 1.00, 1.01, 1.02, 1.03, 1.04, 1.05, 1.06, 1.07, 1.08, 1.09, 1.10, 1.11, 1.12, 1.13, 1.14, 1.15, 1.16, 1.17, 1.18, 1.19, 1.20, 1.30, 1.40, 1.50, 1.60, 1.70, 1.80, 1.90, 2.00, 2.10, 2.20, 2.30, 2.40, 2.50, 2.60, 2.70, 2.75, 2.80, 2.85, 2.90, 2.95, 3.00, 3.05, 3.10, 3.15, 3.20, 3.25, 3.30, 3.35, 3.40, 3.45, 3.50, 3.55, 3.60, 3.65, 3.70, 3.75, 3.80, 3.85, 3.90, 3.95, 4.00}, "mll bins for output histograms"};
126123 ConfigurableAxis ConfPtllBins{" ConfPtllBins" , {VARIABLE_WIDTH, 0.00 , 0.15 , 0.50 , 1.00 , 1.50 , 2.00 , 2.50 , 3.00 , 3.50 , 4.00 , 4.50 , 5.00 , 6.00 , 7.00 , 8.00 , 9.00 , 10.00 }, " pTll bins for output histograms" };
127124 ConfigurableAxis ConfDCAllBins{" ConfDCAllBins" , {VARIABLE_WIDTH, 0.0 , 0.5 , 1.0 , 1.5 , 2.0 , 2.5 , 3.0 , 3.5 , 4.0 , 4.5 , 5.0 , 6.0 , 7.0 , 8.0 , 9.0 , 10.0 }, " DCAll bins for output histograms" };
128125
@@ -289,7 +286,7 @@ struct DileptonHadronMPC {
289286 // Configurable<float> cfg_max_phi_track{"cfg_max_phi_track", 6.3, "max phi for ref. track"};
290287 // Configurable<float> cfg_max_dcaxy{"cfg_max_dcaxy", 0.5, "max dca XY for single track in cm"};
291288 // Configurable<float> cfg_max_dcaz{"cfg_max_dcaz", 0.5, "max dca Z for single track in cm"};
292- Configurable<uint16_t > cfg_track_bits{" cfg_track_bits" , 645 , " required track bits" }; // default:645, loose:0, tight:778
289+ Configurable<uint16_t > cfg_track_bits{" cfg_track_bits" , 5765 , " required track bits" }; // default:645, loose:0, tight:778
293290 } trackcuts;
294291
295292 o2::aod::rctsel::RCTFlagsChecker rctChecker;
@@ -511,7 +508,9 @@ struct DileptonHadronMPC {
511508 const AxisSpec axis_pt_trg{ConfPtHadronBins, " p_{T,h} (GeV/c)" };
512509 const AxisSpec axis_eta_trg{40 , -2 , +2 , " #eta_{h}" };
513510 const AxisSpec axis_phi_trg{36 , 0 , 2 * M_PI, " #varphi_{h} (rad.)" };
514- fRegistry .add (" Hadron/hs" , " hadron" , kTHnSparseD , {axis_pt_trg, axis_eta_trg, axis_phi_trg}, true );
511+ fRegistry .add (" Hadron/hs" , " hadron" , kTHnSparseD , {axis_pt_trg, axis_eta_trg, axis_phi_trg}, false );
512+ fRegistry .add (" Hadron/hTrackBit" , " track bit" , kTH1D , {{65536 , -0.5 , 65535.5 }}, false );
513+
515514 fRegistry .add (" Dilepton/same/uls/hs" , " dilepton" , kTHnSparseD , {axis_mass, axis_pt, axis_dca, axis_y}, true );
516515 fRegistry .addClone (" Dilepton/same/uls/" , " Dilepton/same/lspp/" );
517516 fRegistry .addClone (" Dilepton/same/uls/" , " Dilepton/same/lsmm/" );
@@ -1063,14 +1062,19 @@ struct DileptonHadronMPC {
10631062 Partition<FilteredMyElectrons> positive_electrons = o2::aod::emprimaryelectron::sign > int8_t (0 );
10641063 Partition<FilteredMyElectrons> negative_electrons = o2::aod::emprimaryelectron::sign < int8_t (0 );
10651064
1066- Preslice<MyTracks> perCollision_track = aod::emprimarytrack::emeventId;
1067-
10681065 Preslice<MyMuons> perCollision_muon = aod::emprimarymuon::emeventId;
10691066 Filter trackFilter_muon = o2::aod::fwdtrack::trackType == dimuoncuts.cfg_track_type && dimuoncuts.cfg_min_pt_track < o2::aod::fwdtrack::pt && o2::aod::fwdtrack::pt < dimuoncuts.cfg_max_pt_track && dimuoncuts.cfg_min_eta_track < o2::aod::fwdtrack::eta && o2::aod::fwdtrack::eta < dimuoncuts.cfg_max_eta_track && dimuoncuts.cfg_min_phi_track < o2::aod::fwdtrack::phi && o2::aod::fwdtrack::phi < dimuoncuts.cfg_max_phi_track;
10701067 Filter ttcaFilter_muon = ifnode(dimuoncuts.enableTTCA.node(), o2::aod::emprimarymuon::isAssociatedToMPC == true || o2::aod::emprimarymuon::isAssociatedToMPC == false , o2::aod::emprimarymuon::isAssociatedToMPC == true );
10711068 Partition<FilteredMyMuons> positive_muons = o2::aod::emprimarymuon::sign > int8_t (0 );
10721069 Partition<FilteredMyMuons> negative_muons = o2::aod::emprimarymuon::sign < int8_t (0 );
10731070
1071+ using RefTracks = soa::Join<aod::EMPrimaryTracks, aod::EMPrimaryTrackEMEventIds>;
1072+ using RefTrack = RefTracks::iterator;
1073+ Preslice<RefTracks> perCollision_track = aod::emprimarytrack::emeventId;
1074+ Filter refTrackFilter = trackcuts.cfg_min_pt_track < 1 / nabs(o2::aod::emprimarytrack::signed1Pt) && 1 / nabs(o2::aod::emprimarytrack::signed1Pt) < trackcuts.cfg_max_pt_track && trackcuts.cfg_min_eta_track < o2::aod::emprimarytrack::eta && o2::aod::emprimarytrack::eta < trackcuts.cfg_max_eta_track;
1075+ using FilteredRefTracks = soa::Filtered<RefTracks>;
1076+ using FilteredRefTrack = FilteredRefTracks::iterator;
1077+
10741078 TEMH* emh_pos = nullptr ;
10751079 TEMH* emh_neg = nullptr ;
10761080 MyEMH_track* emh_ref = nullptr ; // for reference flow
@@ -1149,6 +1153,7 @@ struct DileptonHadronMPC {
11491153 for (const auto & track : refTracks_per_coll) {
11501154 if (fEMTrackCut .IsSelected (track)) {
11511155 fRegistry .fill (HIST (" Hadron/hs" ), track.pt (), track.eta (), track.phi ());
1156+ fRegistry .fill (HIST (" Hadron/hTrackBit" ), track.trackBit ());
11521157 }
11531158 }
11541159 for (const auto & [trg, ref] : combinations (CombinationsStrictlyUpperIndexPolicy (refTracks_per_coll, refTracks_per_coll))) {
@@ -1408,7 +1413,7 @@ struct DileptonHadronMPC {
14081413 passed_pairIds.shrink_to_fit ();
14091414 }
14101415
1411- void processAnalysis (FilteredMyCollisions const & collisions, MyTracks const & refTracks, Types const &... args)
1416+ void processAnalysis (FilteredMyCollisions const & collisions, FilteredRefTracks const & refTracks, Types const &... args)
14121417 {
14131418 if constexpr (pairtype == o2::aod::pwgem::dilepton::utils::pairutil::DileptonPairType::kDielectron ) {
14141419 auto electrons = std::get<0 >(std::tie (args...));
@@ -1429,7 +1434,7 @@ struct DileptonHadronMPC {
14291434 PROCESS_SWITCH (DileptonHadronMPC, processAnalysis, " run dilepton analysis" , true );
14301435
14311436 using FilteredMyCollisionsWithSWT = soa::Filtered<MyCollisionsWithSWT>;
1432- void processTriggerAnalysis (FilteredMyCollisionsWithSWT const & collisions, MyTracks const & refTracks, Types const &... args)
1437+ void processTriggerAnalysis (FilteredMyCollisionsWithSWT const & collisions, FilteredRefTracks const & refTracks, Types const &... args)
14331438 {
14341439 if constexpr (pairtype == o2::aod::pwgem::dilepton::utils::pairutil::DileptonPairType::kDielectron ) {
14351440 auto electrons = std::get<0 >(std::tie (args...));
0 commit comments