|
81 | 81 | using MyCollisions = o2::soa::Join<o2::aod::EMEvents, o2::aod::EMEventsMult, o2::aod::EMEventsCent, o2::aod::EMEventsQvec2>; |
82 | 82 | using MyCollision = MyCollisions::iterator; |
83 | 83 |
|
| 84 | +using MyCollisionsSWT = o2::soa::Join<o2::aod::EMEvents, o2::aod::EMEventsMult, o2::aod::EMEventsCent, o2::aod::EMEventsQvec2, o2::aod::EMEventsQvec3, o2::aod::EMSWTriggerBits>; |
| 85 | +using MyCollisionSWT = MyCollisionsSWT::iterator; |
| 86 | + |
84 | 87 | using MyElectrons = o2::soa::Join<o2::aod::EMPrimaryElectrons, o2::aod::EMPrimaryElectronEMEventIds, o2::aod::EMAmbiguousElectronSelfIds, o2::aod::EMPrimaryElectronsPrefilterBit, o2::aod::EMPrimaryElectronsPrefilterBitDerived>; |
85 | 88 | using MyElectron = MyElectrons::iterator; |
86 | 89 | using FilteredMyElectrons = o2::soa::Filtered<MyElectrons>; |
87 | 90 | using FilteredMyElectron = FilteredMyElectrons::iterator; |
88 | 91 |
|
89 | | -using MyMuons = o2::soa::Join<o2::aod::EMPrimaryMuons, o2::aod::EMPrimaryMuonEMEventIds, o2::aod::EMAmbiguousMuonSelfIds, o2::aod::EMGlobalMuonSelfIds, o2::aod::EMPrimaryMuonsPrefilterBitDerived>; |
| 92 | +using MyMuons = o2::soa::Join<o2::aod::EMPrimaryMuons, o2::aod::EMPrimaryMuonEMEventIds, o2::aod::EMAmbiguousMuonSelfIds, o2::aod::EMGlobalMuonSelfIds>; |
90 | 93 | using MyMuon = MyMuons::iterator; |
91 | 94 | using FilteredMyMuons = o2::soa::Filtered<MyMuons>; |
92 | 95 | using FilteredMyMuon = FilteredMyMuons::iterator; |
@@ -429,12 +432,12 @@ struct DileptonHadronMPC { |
429 | 432 |
|
430 | 433 | if (doprocessTriggerAnalysis) { |
431 | 434 | LOGF(info, "Trigger analysis is enabled. Desired trigger name = %s", zorroGroup.cfg_swt_name.value); |
432 | | - fRegistry.add("NormTrigger/hInspectedTVX", "inspected TVX;run number;N_{TVX}", o2::framework::HistType::kTProfile, {{80000, 520000.5, 600000.5}}, true); |
433 | | - fRegistry.add("NormTrigger/hScalers", "trigger counter before DS;run number;counter", o2::framework::HistType::kTProfile, {{80000, 520000.5, 600000.5}}, true); |
434 | | - fRegistry.add("NormTrigger/hSelections", "trigger counter after DS;run number;counter", o2::framework::HistType::kTProfile, {{80000, 520000.5, 600000.5}}, true); |
435 | | - auto hTriggerCounter = fRegistry.add<TH2>("NormTrigger/hTriggerCounter", Form("trigger counter of %s;run number;", zorroGroup.cfg_swt_name.value.data()), o2::framework::HistType::kTH2D, {{80000, 520000.5, 600000.5}, {2, -0.5, 1.5}}, false); |
436 | | - hTriggerCounter->GetYaxis()->SetBinLabel(1, "Analyzed Trigger"); |
437 | | - hTriggerCounter->GetYaxis()->SetBinLabel(2, "Analyzed TOI"); |
| 435 | + // fRegistry.add("NormTrigger/hInspectedTVX", "inspected TVX;run number;N_{TVX}", o2::framework::HistType::kTProfile, {{80000, 520000.5, 600000.5}}, true); |
| 436 | + // fRegistry.add("NormTrigger/hScalers", "trigger counter before DS;run number;counter", o2::framework::HistType::kTProfile, {{80000, 520000.5, 600000.5}}, true); |
| 437 | + // fRegistry.add("NormTrigger/hSelections", "trigger counter after DS;run number;counter", o2::framework::HistType::kTProfile, {{80000, 520000.5, 600000.5}}, true); |
| 438 | + // auto hTriggerCounter = fRegistry.add<TH2>("NormTrigger/hTriggerCounter", Form("trigger counter of %s;run number;", zorroGroup.cfg_swt_name.value.data()), o2::framework::HistType::kTH2D, {{80000, 520000.5, 600000.5}, {2, -0.5, 1.5}}, false); |
| 439 | + // hTriggerCounter->GetYaxis()->SetBinLabel(1, "Analyzed Trigger"); |
| 440 | + // hTriggerCounter->GetYaxis()->SetBinLabel(2, "Analyzed TOI"); |
438 | 441 | } |
439 | 442 | } |
440 | 443 |
|
@@ -976,6 +979,7 @@ struct DileptonHadronMPC { |
976 | 979 | o2::framework::expressions::Filter collisionFilter_occupancy_track = eventcuts.cfgTrackOccupancyMin <= o2::aod::evsel::trackOccupancyInTimeRange && o2::aod::evsel::trackOccupancyInTimeRange < eventcuts.cfgTrackOccupancyMax; |
977 | 980 | o2::framework::expressions::Filter collisionFilter_occupancy_ft0c = eventcuts.cfgFT0COccupancyMin <= o2::aod::evsel::ft0cOccupancyInTimeRange && o2::aod::evsel::ft0cOccupancyInTimeRange < eventcuts.cfgFT0COccupancyMax; |
978 | 981 | using FilteredMyCollisions = o2::soa::Filtered<MyCollisions>; |
| 982 | + using FilteredMyCollisionsSWT = o2::soa::Filtered<MyCollisionsSWT>; |
979 | 983 |
|
980 | 984 | o2::framework::SliceCache cache; |
981 | 985 | o2::framework::Preslice<MyElectrons> perCollision_electron = o2::aod::emprimaryelectron::emeventId; |
@@ -1005,10 +1009,6 @@ struct DileptonHadronMPC { |
1005 | 1009 | o2::framework::Preslice<MyMuons> perCollision_muon = o2::aod::emprimarymuon::emeventId; |
1006 | 1010 | o2::framework::expressions::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; |
1007 | 1011 | o2::framework::expressions::Filter ttcaFilter_muon = ifnode(dimuoncuts.enableTTCA.node(), true, o2::aod::emprimarymuon::isAssociatedToMPC == true); |
1008 | | - o2::framework::expressions::Filter prefilter_derived_muon = ifnode(dimuoncuts.cfg_apply_cuts_from_prefilter_derived.node() && dimuoncuts.cfg_prefilter_bits_derived.node() >= static_cast<uint16_t>(1), |
1009 | | - ifnode((dimuoncuts.cfg_prefilter_bits_derived.node() & static_cast<uint16_t>(1 << int(o2::aod::pwgem::dilepton::utils::pairutil::DileptonPrefilterBitDerived::kSplitOrMergedTrackLS))) > static_cast<uint16_t>(0), (o2::aod::emprimarymuon::pfbderived & static_cast<uint16_t>(1 << int(o2::aod::pwgem::dilepton::utils::pairutil::DileptonPrefilterBitDerived::kSplitOrMergedTrackLS))) <= static_cast<uint16_t>(0), true) && |
1010 | | - ifnode((dimuoncuts.cfg_prefilter_bits_derived.node() & static_cast<uint16_t>(1 << int(o2::aod::pwgem::dilepton::utils::pairutil::DileptonPrefilterBitDerived::kSplitOrMergedTrackULS))) > static_cast<uint16_t>(0), (o2::aod::emprimarymuon::pfbderived & static_cast<uint16_t>(1 << int(o2::aod::pwgem::dilepton::utils::pairutil::DileptonPrefilterBitDerived::kSplitOrMergedTrackULS))) <= static_cast<uint16_t>(0), true), |
1011 | | - o2::aod::emprimarymuon::pfbderived >= static_cast<uint16_t>(0)); |
1012 | 1012 |
|
1013 | 1013 | o2::framework::Partition<FilteredMyMuons> positive_muons = o2::aod::emprimarymuon::sign > int8_t(0); |
1014 | 1014 | o2::framework::Partition<FilteredMyMuons> negative_muons = o2::aod::emprimarymuon::sign < int8_t(0); |
@@ -1054,7 +1054,11 @@ struct DileptonHadronMPC { |
1054 | 1054 | } |
1055 | 1055 |
|
1056 | 1056 | if constexpr (isTriggerAnalysis) { |
1057 | | - if (!zorro.isSelected(collision.globalBC(), zorroGroup.bcMarginForSoftwareTrigger)) { // triggered event |
| 1057 | + // if (!zorro.isSelected(collision.globalBC(), zorroGroup.bcMarginForSoftwareTrigger)) { // triggered event |
| 1058 | + // continue; |
| 1059 | + // } |
| 1060 | + int emswtId = o2::aod::pwgem::dilepton::swt::aliasLabels.at(zorroGroup.cfg_swt_name.value); |
| 1061 | + if (!collision.triggerMask_bit(emswtId)) { |
1058 | 1062 | continue; |
1059 | 1063 | } |
1060 | 1064 | } |
@@ -1496,10 +1500,11 @@ struct DileptonHadronMPC { |
1496 | 1500 | map_weight.clear(); |
1497 | 1501 | map_best_match_globalmuon.clear(); |
1498 | 1502 | ndf++; |
| 1503 | + // correlation analyses does not require normalization by the number of events. |
1499 | 1504 | } |
1500 | 1505 | PROCESS_SWITCH(DileptonHadronMPC, processAnalysis, "run dilepton analysis", true); |
1501 | 1506 |
|
1502 | | - void processTriggerAnalysis(FilteredMyCollisions const& collisions, FilteredRefTracks const& refTracks, Types const&... args) |
| 1507 | + void processTriggerAnalysis(FilteredMyCollisionsSWT const& collisions, FilteredRefTracks const& refTracks, Types const&... args) |
1503 | 1508 | { |
1504 | 1509 | if constexpr (pairtype == o2::aod::pwgem::dilepton::utils::pairutil::DileptonPairType::kDielectron) { |
1505 | 1510 | auto electrons = std::get<0>(std::tie(args...)); |
|
0 commit comments