Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 8 additions & 7 deletions PWGEM/PhotonMeson/Tasks/pcmQC.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ using MyCollision = MyCollisions::iterator;
using MyV0Photons = soa::Join<aod::V0PhotonsKF, aod::V0KFEMEventIds>;
using MyV0Photon = MyV0Photons::iterator;

using MyV0PhotonsML = soa::Join<aod::V0PhotonsKF, aod::V0PhotonsPhiVPsi, aod::V0KFEMEventIds>;
using MyV0PhotonsML = soa::Join<MyV0Photons, aod::V0PhotonsPhiVPsi>;
using MyV0PhotonML = MyV0PhotonsML::iterator;

struct PCMQC {
Expand Down Expand Up @@ -476,14 +476,15 @@ struct PCMQC {
// fRegistry.fill(HIST("V0Leg/hZY"), leg.z(), leg.y());
}

o2::framework::SliceCache v0cache;
Preslice<MyV0Photons> perCollisionV0 = aod::v0photonkf::emphotoneventId;
Preslice<MyV0PhotonsML> perCollisionV0ML = aod::v0photonkf::emphotoneventId;
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);
Filter collisionFilter_occupancy_track = eventcuts.cfgTrackOccupancyMin <= o2::aod::evsel::trackOccupancyInTimeRange && o2::aod::evsel::trackOccupancyInTimeRange < eventcuts.cfgTrackOccupancyMax;
Filter collisionFilter_occupancy_ft0c = eventcuts.cfgFT0COccupancyMin <= o2::aod::evsel::ft0cOccupancyInTimeRange && o2::aod::evsel::ft0cOccupancyInTimeRange < eventcuts.cfgFT0COccupancyMax;
using FilteredMyCollisions = soa::Filtered<MyCollisions>;

template <typename TV0Photon>
void process(FilteredMyCollisions const& collisions, TV0Photon const& v0photons, aod::V0Legs const&)
template <typename TV0Photon, typename TPerCollision>
void process(FilteredMyCollisions const& collisions, TV0Photon const& v0photons, aod::V0Legs const&, TPerCollision const& perCollision)
{
for (const auto& collision : collisions) {
initCCDB(collision);
Expand All @@ -502,7 +503,7 @@ struct PCMQC {

fV0PhotonCut.SetCentrality(centralities[cfgCentEstimator]);
int nv0 = 0;
auto v0photons_coll = v0photons.sliceByCached(aod::v0photonkf::emeventId, collision.globalIndex(), v0cache);
auto v0photons_coll = v0photons.sliceBy(perCollision, collision.globalIndex());
for (const auto& v0 : v0photons_coll) {
auto pos = v0.template posTrack_as<aod::V0Legs>();
auto ele = v0.template negTrack_as<aod::V0Legs>();
Expand All @@ -525,12 +526,12 @@ struct PCMQC {
}
void processQC(FilteredMyCollisions const& collisions, MyV0Photons const& v0photons, aod::V0Legs const& v0legs)
{
process(collisions, v0photons, v0legs);
process(collisions, v0photons, v0legs, perCollisionV0);
} // end of process

void processQCML(FilteredMyCollisions const& collisions, MyV0PhotonsML const& v0photonsML, aod::V0Legs const& v0legs)
{
process(collisions, v0photonsML, v0legs);
process(collisions, v0photonsML, v0legs, perCollisionV0ML);
} // end of ML process

void processDummy(MyCollisions const&) {}
Expand Down
15 changes: 8 additions & 7 deletions PWGEM/PhotonMeson/Tasks/pcmQCMC.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ using MyMCCollision = MyMCCollisions::iterator;
using MyV0Photons = o2::soa::Join<aod::V0PhotonsKF, aod::V0KFEMEventIds>;
using MyV0Photon = MyV0Photons::iterator;

using MyV0PhotonsML = soa::Join<aod::V0PhotonsKF, aod::V0PhotonsPhiVPsi, aod::V0KFEMEventIds>;
using MyV0PhotonsML = soa::Join<MyV0Photons, aod::V0PhotonsPhiVPsi>;
using MyV0PhotonML = MyV0PhotonsML::iterator;

using MyMCV0Legs = soa::Join<aod::V0Legs, aod::V0LegMCLabels>;
Expand Down Expand Up @@ -568,14 +568,15 @@ struct PCMQCMC {
fRegistry.fill(HIST("V0Leg/") + HIST(mcphoton_types[mctype]) + HIST("hRxyGen_DeltaEta"), std::sqrt(std::pow(mcleg.vx(), 2) + std::pow(mcleg.vy(), 2)), leg.eta() - mcleg.eta());
fRegistry.fill(HIST("V0Leg/") + HIST(mcphoton_types[mctype]) + HIST("hRxyGen_DeltaPhi"), std::sqrt(std::pow(mcleg.vx(), 2) + std::pow(mcleg.vy(), 2)), leg.phi() - mcleg.phi());
}
o2::framework::SliceCache v0cache;
Preslice<MyV0Photons> perCollisionV0 = aod::v0photonkf::emphotoneventId;
Preslice<MyV0PhotonsML> perCollisionV0ML = aod::v0photonkf::emphotoneventId;
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);
Filter collisionFilter_occupancy_track = eventcuts.cfgTrackOccupancyMin <= o2::aod::evsel::trackOccupancyInTimeRange && o2::aod::evsel::trackOccupancyInTimeRange < eventcuts.cfgTrackOccupancyMax;
Filter collisionFilter_occupancy_ft0c = eventcuts.cfgFT0COccupancyMin <= o2::aod::evsel::ft0cOccupancyInTimeRange && o2::aod::evsel::ft0cOccupancyInTimeRange < eventcuts.cfgFT0COccupancyMax;
using FilteredMyCollisions = soa::Filtered<MyCollisions>;

template <typename TV0Photons>
void processMC(FilteredMyCollisions const& collisions, TV0Photons const& v0photons, aod::EMMCParticles const& mcparticles, MyMCV0Legs const&, aod::EMMCEvents const&)
template <typename TV0Photons, typename TPerCollision>
void processMC(FilteredMyCollisions const& collisions, TV0Photons const& v0photons, aod::EMMCParticles const& mcparticles, MyMCV0Legs const&, aod::EMMCEvents const&, TPerCollision const& percollision)
{
for (const auto& collision : collisions) {
initCCDB(collision);
Expand All @@ -593,7 +594,7 @@ struct PCMQCMC {
fRegistry.fill(HIST("Event/after/hCollisionCounter"), 10.0); // accepted

fV0PhotonCut.SetCentrality(centralities[cfgCentEstimator]); // set centrality for BDT response
auto V0Photons_coll = v0photons.sliceByCached(aod::v0photonkf::emeventId, collision.globalIndex(), v0cache);
auto V0Photons_coll = v0photons.sliceBy(percollision, collision.globalIndex());
int ng_primary = 0, ng_wd = 0, ng_hs = 0, nee_pi0 = 0, nee_eta = 0;
for (const auto& v0 : V0Photons_coll) {
auto pos = v0.template posTrack_as<MyMCV0Legs>();
Expand Down Expand Up @@ -683,12 +684,12 @@ struct PCMQCMC {

void processQCMC(FilteredMyCollisions const& collisions, MyV0Photons const& v0photons, aod::EMMCParticles const& mcparticles, MyMCV0Legs const& mcv0legs, aod::EMMCEvents const& mcevents)
{
processMC(collisions, v0photons, mcparticles, mcv0legs, mcevents);
processMC(collisions, v0photons, mcparticles, mcv0legs, mcevents, perCollisionV0);
} // end of QC process

void processQCMCML(FilteredMyCollisions const& collisions, MyV0PhotonsML const& v0photonsML, aod::EMMCParticles const& mcparticles, MyMCV0Legs const& mcv0legs, aod::EMMCEvents const& mcevents)
{
processMC(collisions, v0photonsML, mcparticles, mcv0legs, mcevents);
processMC(collisions, v0photonsML, mcparticles, mcv0legs, mcevents, perCollisionV0ML);
} // end of QC process with ML cuts

template <typename TBinnedData>
Expand Down
Loading