Skip to content

Commit a23ccbc

Browse files
committed
funtioning MC gen
1 parent e192a76 commit a23ccbc

1 file changed

Lines changed: 35 additions & 24 deletions

File tree

‎PWGHF/HFC/Tasks/taskFlow.cxx‎

Lines changed: 35 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ using namespace o2::framework;
8282
using namespace o2::framework::expressions;
8383

8484
enum CorrelationCase {
85-
TpcTpc,
85+
TpcTpc = 0,
8686
TpcMft,
8787
TpcFv0a,
8888
MftFv0a,
@@ -395,9 +395,11 @@ struct HfTaskFlow {
395395
// =========================
396396

397397
using SmallGroupMcCollisions = soa::SmallGroups<soa::Join<aod::McCollisionLabels, aod::Collisions, aod::EvSel, aod::CentFT0Cs, aod::CentFT0CVariant1s, aod::CentFT0Ms, aod::CentFV0As, aod::Mults>>;
398-
using FilteredMcCollisionsWMult = soa::Filtered<soa::Join<aod::McCollisions, aod::MultMCExtras>>;
398+
// using FilteredMcCollisionsWMult = soa::Filtered<soa::Join<aod::McCollisions, aod::MultMCExtras>>;
399+
using FilteredMcCollisionsWMult = soa::Join<aod::McCollisions, aod::MultMCExtras>;
399400
using FilteredMcCollisionsWMultWCollsExtra = soa::Filtered<soa::Join<aod::McCollisions, aod::McCollsExtra, aod::MultMCExtras>>;
400-
using FilteredMcParticles = soa::Filtered<aod::McParticles>;
401+
// using FilteredMcParticles = soa::Filtered<aod::McParticles>;
402+
using FilteredMcParticles = aod::McParticles;
401403

402404
// =========================
403405
// Filters & partitions : DATA
@@ -440,10 +442,11 @@ struct HfTaskFlow {
440442
// Filters & partitions : MC
441443
// =========================
442444

443-
Filter mcParticleFilter = (((aod::mcparticle::eta > configTask.etaMcParticlesTriggerMin) && (aod::mcparticle::eta < configTask.etaMcParticlesTriggerMax)) || ((aod::mcparticle::eta > configTask.etaMcParticlesAssocMin) && (aod::mcparticle::eta < configTask.etaMcParticlesAssocMax)) || (nabs(aod::mcparticle::eta) < configCentral.etaCentralTrackMax)) && (aod::mcparticle::pt < configTask.ptMcParticlesTriggerMax);
445+
// // Filter for McParticles
446+
// Filter mcParticleFilter = (((aod::mcparticle::eta > configTask.etaMcParticlesTriggerMin) && (aod::mcparticle::eta < configTask.etaMcParticlesTriggerMax)) || ((aod::mcparticle::eta > configTask.etaMcParticlesAssocMin) && (aod::mcparticle::eta < configTask.etaMcParticlesAssocMax)) || (nabs(aod::mcparticle::eta) < configCentral.etaCentralTrackMax)) && (aod::mcparticle::pt < configTask.ptMcParticlesTriggerMax);
444447

445-
// Filter for MCcollisions
446-
Filter mcCollisionFilter = nabs(aod::mccollision::posZ) < configCollision.zVertexMax;
448+
// // Filter for MCcollisions
449+
// Filter mcCollisionFilter = nabs(aod::mccollision::posZ) < configCollision.zVertexMax;
447450

448451
// =========================
449452
// Preslice : DATA
@@ -2666,8 +2669,16 @@ struct HfTaskFlow {
26662669
target->getPairHist()->Fill(step, etaA - etaC, 0.5, 0.5, multiplicity, deltaPhi, posZ,
26672670
amplitudeA * amplitudeC * centralityWeight * triggerWeight * associatedWeight);
26682671
} else if (configTask.doEtaDependentFlow) {
2669-
target->getPairHist()->Fill(step, sampleIndex, posZ, etaC, etaA, deltaPhi, etaA - etaC,
2670-
amplitudeA * amplitudeC * centralityWeight * triggerWeight * associatedWeight);
2672+
// target->getPairHist()->Fill(step, sampleIndex, posZ, etaC, etaA, deltaPhi, etaA - etaC,
2673+
// amplitudeA * amplitudeC * centralityWeight * triggerWeight * associatedWeight);
2674+
2675+
if (!configFit.discriminateInnerOrOuter) {
2676+
target->getPairHist()->Fill(step, sampleIndex, posZ, etaC, etaA, deltaPhi, etaA - etaC,
2677+
amplitudeA * amplitudeC * centralityWeight * triggerWeight * associatedWeight);
2678+
} else {
2679+
target->getPairHist()->Fill(step, sampleIndex, posZ, isInnerOrOuter(channelIdA, isFT0A), isInnerOrOuter(channelIdC, isFT0C), deltaPhi, etaA - etaC,
2680+
amplitudeA * amplitudeC * centralityWeight * triggerWeight * associatedWeight);
2681+
}
26712682
} else {
26722683
target->getPairHist()->Fill(step, sampleIndex, posZ, 0.5, multiplicity, deltaPhi, etaA - etaC,
26732684
amplitudeA * amplitudeC * centralityWeight * triggerWeight * associatedWeight);
@@ -2689,20 +2700,8 @@ struct HfTaskFlow {
26892700
auto associatedWeight = 1.0f;
26902701
auto loopCounter = 0; // To avoid filling associated tracks QA many times, I fill it only for the first trigger track of the collision
26912702
int sampleIndex = gRandom->Uniform(0, configTask.nSamples);
2692-
bool fillQaPlots = false;
2693-
2694-
if (configTask.fillOnlyStepAll) {
2695-
if (step == CorrelationContainer::kCFStepAll) {
2696-
fillQaPlots = true;
2697-
}
2698-
} else {
2699-
if (step == CorrelationContainer::kCFStepTrackedOnlyPrim) {
2700-
fillQaPlots = true;
2701-
}
2702-
}
27032703

27042704
for (auto const& track1 : tracksTrigger) {
2705-
loopCounter++;
27062705

27072706
if (configTask.useCutNeutralParticles) {
27082707
auto pdgTriggerParticle = pdg->GetParticle(track1.pdgCode());
@@ -2729,7 +2728,7 @@ struct HfTaskFlow {
27292728
}
27302729

27312730
// FILL QA FOR TRIGGER PARTICLE
2732-
if (isSameEvent && fillQaPlots && !configTask.removeQAForSystematics) {
2731+
if (isSameEvent && !configTask.removeQAForSystematics) {
27332732
if (configTask.chooseCorrelationCase.value == static_cast<int>(CorrelationCase::TpcTpc)) {
27342733
fillTriggerQa<Mc, TpcTpc, ChPartChPart>(multiplicity, track1.eta(), track1.phi(), track1.pt());
27352734
} else if (configTask.chooseCorrelationCase.value == static_cast<int>(CorrelationCase::TpcMft)) {
@@ -2748,6 +2747,8 @@ struct HfTaskFlow {
27482747
fillTriggerQa<Mc, Ft0aFt0c, ChPartChPart>(multiplicity, track1.eta(), track1.phi(), track1.pt());
27492748
}
27502749
}
2750+
2751+
loopCounter++;
27512752

27522753
for (auto const& track2 : tracksAssoc) {
27532754

@@ -2769,8 +2770,8 @@ struct HfTaskFlow {
27692770
continue;
27702771
}
27712772

2772-
float deltaPhi = RecoDecay::constrainAngle(track2.phi() - track1.phi(), -PIHalf);
2773-
float deltaEta = track2.eta() - track1.eta();
2773+
float deltaPhi = RecoDecay::constrainAngle(track1.phi() - track2.phi(), -PIHalf);
2774+
float deltaEta = track1.eta() - track2.eta();
27742775

27752776
if (!configTask.doEtaDependentFlow && !configTask.doVariationContainers) {
27762777
target->getPairHist()->Fill(step, deltaEta, track2.pt(), track1.pt(), multiplicity, deltaPhi, posZ,
@@ -2784,7 +2785,7 @@ struct HfTaskFlow {
27842785
}
27852786

27862787
// FILL QA PLOTS for associated particle
2787-
if (isSameEvent && fillQaPlots && (loopCounter == 1) && !configTask.removeQAForSystematics) {
2788+
if (isSameEvent && (loopCounter == 1) && !configTask.removeQAForSystematics) {
27882789
if (configTask.chooseCorrelationCase.value == static_cast<int>(CorrelationCase::TpcTpc)) {
27892790
fillAssociatedQa<Mc, TpcTpc, ChPartChPart>(multiplicity, track2.eta(), track2.phi());
27902791
} else if (configTask.chooseCorrelationCase.value == static_cast<int>(CorrelationCase::TpcMft)) {
@@ -4142,6 +4143,11 @@ struct HfTaskFlow {
41424143
FilteredMcParticles const& mcParticles,
41434144
SmallGroupMcCollisions const& collisions)
41444145
{
4146+
4147+
if (mcParticles.size() == 0) { // guard against empty filtered batch
4148+
return;
4149+
}
4150+
41454151
auto multiplicity = 0;
41464152
if (configCollision.useMultiplicityFromTracks) {
41474153
for (const auto& track : mcParticles) {
@@ -4557,6 +4563,11 @@ struct HfTaskFlow {
45574563
for (auto it = pairs.begin(); it != pairs.end(); it++) {
45584564
auto& [collision1, tracks1, collision2, tracks2] = *it;
45594565

4566+
4567+
if (tracks1.size() == 0 || tracks2.size() == 0) { // guard against empty filtered batch
4568+
return;
4569+
}
4570+
45604571
auto multiplicityCollision1 = 0;
45614572
auto multiplicityCollision2 = 0;
45624573

0 commit comments

Comments
 (0)