Skip to content
Draft
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
58 changes: 48 additions & 10 deletions PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackPhi.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,6 @@ struct FemtoUniversePairTaskTrackPhi {
Preslice<FemtoRecoParticles> perColMC = aod::femtouniverseparticle::fdCollisionId;

Configurable<float> confZVertexCut{"confZVertexCut", 10.f, "Event sel: Maximum z-Vertex (cm)"};
// Configurable<int> confNEventsMix{"confNEventsMix", 5, "Number of events for mixing"};
Filter collisionFilter = (nabs(aod::collision::posZ) < confZVertexCut);
using FilteredFDCollisions = soa::Filtered<o2::aod::FdCollisions>;
using FilteredFDCollision = FilteredFDCollisions::iterator;
Expand Down Expand Up @@ -557,32 +556,31 @@ struct FemtoUniversePairTaskTrackPhi {

if (confFillMinvBackground) {
// Used for better fitting of invariant mass background.

TLorentzVector part1Vec;
TLorentzVector part2Vec;

float mMassOne = o2::constants::physics::MassKPlus;
float mMassTwo = o2::constants::physics::MassKMinus;
float mMassKp = o2::constants::physics::MassKPlus;
float mMassKm = o2::constants::physics::MassKMinus;

for (auto const& [kaon1, kaon2] : combinations(CombinationsStrictlyUpperIndexPolicy(partsKaons, partsKaons))) {
if ((confFillMinvBackgroundKpKp) && (kaon1.mAntiLambda() == 1) && (kaon2.mAntiLambda() == 1)) {
part1Vec.SetPtEtaPhiM(kaon1.pt(), kaon1.eta(), kaon1.phi(), mMassOne);
part2Vec.SetPtEtaPhiM(kaon2.pt(), kaon2.eta(), kaon2.phi(), mMassOne);
part1Vec.SetPtEtaPhiM(kaon1.pt(), kaon1.eta(), kaon1.phi(), mMassKp);
part2Vec.SetPtEtaPhiM(kaon2.pt(), kaon2.eta(), kaon2.phi(), mMassKp);
TLorentzVector sumVec(part1Vec);
sumVec += part2Vec;
registryPhiMinvBackground.fill(HIST("InvariantMassKpKp"), sumVec.M());
}
if ((confFillMinvBackgroundKmKm) && (kaon1.mAntiLambda() == -1) && (kaon2.mAntiLambda() == -1)) {
part1Vec.SetPtEtaPhiM(kaon1.pt(), kaon1.eta(), kaon1.phi(), mMassTwo);
part2Vec.SetPtEtaPhiM(kaon2.pt(), kaon2.eta(), kaon2.phi(), mMassTwo);
part1Vec.SetPtEtaPhiM(kaon1.pt(), kaon1.eta(), kaon1.phi(), mMassKm);
part2Vec.SetPtEtaPhiM(kaon2.pt(), kaon2.eta(), kaon2.phi(), mMassKm);

TLorentzVector sumVec(part1Vec);
sumVec += part2Vec;
registryPhiMinvBackground.fill(HIST("InvariantMassKmKm"), sumVec.M());
}
if ((confFillMinvBackgroundKpKm) && (kaon1.mAntiLambda() == 1) && (kaon2.mAntiLambda() == -1)) {
part1Vec.SetPtEtaPhiM(kaon1.pt(), kaon1.eta(), kaon1.phi(), mMassOne);
part2Vec.SetPtEtaPhiM(kaon2.pt(), kaon2.eta(), kaon2.phi(), mMassTwo);
part1Vec.SetPtEtaPhiM(kaon1.pt(), kaon1.eta(), kaon1.phi(), mMassKp);
part2Vec.SetPtEtaPhiM(kaon2.pt(), kaon2.eta(), kaon2.phi(), mMassKm);

TLorentzVector sumVec(part1Vec);
sumVec += part2Vec;
Expand Down Expand Up @@ -784,6 +782,46 @@ struct FemtoUniversePairTaskTrackPhi {
}

PROCESS_SWITCH(FemtoUniversePairTaskTrackPhi, processMCReco, "Process MC reco data", false);

void processMinvBackground(aod::Tracks const& tracks, aod::Collisions const& collisions)
{
if (!confFillMinvBackground) {
return;
}

TLorentzVector part1Vec;
TLorentzVector part2Vec;

float mMassOne = o2::constants::physics::MassKPlus;
float mMassTwo = o2::constants::physics::MassKMinus;

for (auto const& [kaon1, kaon2] : combinations(CombinationsStrictlyUpperIndexPolicy(partsKaons, partsKaons))) {
if ((confFillMinvBackgroundKpKp) && (kaon1.mAntiLambda() == 1) && (kaon2.mAntiLambda() == 1)) {
part1Vec.SetPtEtaPhiM(kaon1.pt(), kaon1.eta(), kaon1.phi(), mMassOne);
part2Vec.SetPtEtaPhiM(kaon2.pt(), kaon2.eta(), kaon2.phi(), mMassOne);
TLorentzVector sumVec(part1Vec);
sumVec += part2Vec;
registryPhiMinvBackground.fill(HIST("InvariantMassKpKp"), sumVec.M());
}
if ((confFillMinvBackgroundKmKm) && (kaon1.mAntiLambda() == -1) && (kaon2.mAntiLambda() == -1)) {
part1Vec.SetPtEtaPhiM(kaon1.pt(), kaon1.eta(), kaon1.phi(), mMassTwo);
part2Vec.SetPtEtaPhiM(kaon2.pt(), kaon2.eta(), kaon2.phi(), mMassTwo);

TLorentzVector sumVec(part1Vec);
sumVec += part2Vec;
registryPhiMinvBackground.fill(HIST("InvariantMassKmKm"), sumVec.M());
}
if ((confFillMinvBackgroundKpKm) && (kaon1.mAntiLambda() == 1) && (kaon2.mAntiLambda() == -1)) {
part1Vec.SetPtEtaPhiM(kaon1.pt(), kaon1.eta(), kaon1.phi(), mMassOne);
part2Vec.SetPtEtaPhiM(kaon2.pt(), kaon2.eta(), kaon2.phi(), mMassTwo);

TLorentzVector sumVec(part1Vec);
sumVec += part2Vec;
registryPhiMinvBackground.fill(HIST("InvariantMassKpKm"), sumVec.M());
}
}
}
PROCESS_SWITCH(FemtoUniversePairTaskTrackPhi, processMinvBackground, "Enable processing invariant mass background for kaon pairs (K+K+, K-K-, K+K-)", false);
};

WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
Expand Down
Loading