@@ -97,7 +97,6 @@ struct FemtoUniversePairTaskTrackPhi {
9797 Preslice<FemtoRecoParticles> perColMC = aod::femtouniverseparticle::fdCollisionId;
9898
9999 Configurable<float > confZVertexCut{" confZVertexCut" , 10 .f , " Event sel: Maximum z-Vertex (cm)" };
100- // Configurable<int> confNEventsMix{"confNEventsMix", 5, "Number of events for mixing"};
101100 Filter collisionFilter = (nabs(aod::collision::posZ) < confZVertexCut);
102101 using FilteredFDCollisions = soa::Filtered<o2::aod::FdCollisions>;
103102 using FilteredFDCollision = FilteredFDCollisions::iterator;
@@ -557,32 +556,31 @@ struct FemtoUniversePairTaskTrackPhi {
557556
558557 if (confFillMinvBackground) {
559558 // Used for better fitting of invariant mass background.
560-
561559 TLorentzVector part1Vec;
562560 TLorentzVector part2Vec;
563561
564- float mMassOne = o2::constants::physics::MassKPlus;
565- float mMassTwo = o2::constants::physics::MassKMinus;
562+ float mMassKp = o2::constants::physics::MassKPlus;
563+ float mMassKm = o2::constants::physics::MassKMinus;
566564
567565 for (auto const & [kaon1, kaon2] : combinations (CombinationsStrictlyUpperIndexPolicy (partsKaons, partsKaons))) {
568566 if ((confFillMinvBackgroundKpKp) && (kaon1.mAntiLambda () == 1 ) && (kaon2.mAntiLambda () == 1 )) {
569- part1Vec.SetPtEtaPhiM (kaon1.pt (), kaon1.eta (), kaon1.phi (), mMassOne );
570- part2Vec.SetPtEtaPhiM (kaon2.pt (), kaon2.eta (), kaon2.phi (), mMassOne );
567+ part1Vec.SetPtEtaPhiM (kaon1.pt (), kaon1.eta (), kaon1.phi (), mMassKp );
568+ part2Vec.SetPtEtaPhiM (kaon2.pt (), kaon2.eta (), kaon2.phi (), mMassKp );
571569 TLorentzVector sumVec (part1Vec);
572570 sumVec += part2Vec;
573571 registryPhiMinvBackground.fill (HIST (" InvariantMassKpKp" ), sumVec.M ());
574572 }
575573 if ((confFillMinvBackgroundKmKm) && (kaon1.mAntiLambda () == -1 ) && (kaon2.mAntiLambda () == -1 )) {
576- part1Vec.SetPtEtaPhiM (kaon1.pt (), kaon1.eta (), kaon1.phi (), mMassTwo );
577- part2Vec.SetPtEtaPhiM (kaon2.pt (), kaon2.eta (), kaon2.phi (), mMassTwo );
574+ part1Vec.SetPtEtaPhiM (kaon1.pt (), kaon1.eta (), kaon1.phi (), mMassKm );
575+ part2Vec.SetPtEtaPhiM (kaon2.pt (), kaon2.eta (), kaon2.phi (), mMassKm );
578576
579577 TLorentzVector sumVec (part1Vec);
580578 sumVec += part2Vec;
581579 registryPhiMinvBackground.fill (HIST (" InvariantMassKmKm" ), sumVec.M ());
582580 }
583581 if ((confFillMinvBackgroundKpKm) && (kaon1.mAntiLambda () == 1 ) && (kaon2.mAntiLambda () == -1 )) {
584- part1Vec.SetPtEtaPhiM (kaon1.pt (), kaon1.eta (), kaon1.phi (), mMassOne );
585- part2Vec.SetPtEtaPhiM (kaon2.pt (), kaon2.eta (), kaon2.phi (), mMassTwo );
582+ part1Vec.SetPtEtaPhiM (kaon1.pt (), kaon1.eta (), kaon1.phi (), mMassKp );
583+ part2Vec.SetPtEtaPhiM (kaon2.pt (), kaon2.eta (), kaon2.phi (), mMassKm );
586584
587585 TLorentzVector sumVec (part1Vec);
588586 sumVec += part2Vec;
@@ -622,7 +620,42 @@ struct FemtoUniversePairTaskTrackPhi {
622620 auto thegroupPartsTrack = partsTrack->sliceByCached (aod::femtouniverseparticle::fdCollisionId, col.globalIndex (), cache);
623621 auto thegroupPartsPhi = partsPhi->sliceByCached (aod::femtouniverseparticle::fdCollisionId, col.globalIndex (), cache);
624622 eventHisto.fillQA (col);
625- doSameEvent<false >(thegroupPartsTrack, thegroupPartsPhi, parts, col.magField (), col.multNtr ());
623+ if (!confFillMinvBackground) {
624+ doSameEvent<false >(thegroupPartsTrack, thegroupPartsPhi, parts, col.magField (), col.multNtr ());
625+ } else {
626+ // K+K+, K-K-, K+K- invariant mass background filling
627+ TLorentzVector part1Vec;
628+ TLorentzVector part2Vec;
629+
630+ float mMassOne = o2::constants::physics::MassKPlus;
631+ float mMassTwo = o2::constants::physics::MassKMinus;
632+
633+ for (auto const & [kaon1, kaon2] : combinations (CombinationsStrictlyUpperIndexPolicy (partsKaons, partsKaons))) {
634+ if ((confFillMinvBackgroundKpKp) && (kaon1.mAntiLambda () == 1 ) && (kaon2.mAntiLambda () == 1 )) {
635+ part1Vec.SetPtEtaPhiM (kaon1.pt (), kaon1.eta (), kaon1.phi (), mMassOne );
636+ part2Vec.SetPtEtaPhiM (kaon2.pt (), kaon2.eta (), kaon2.phi (), mMassOne );
637+ TLorentzVector sumVec (part1Vec);
638+ sumVec += part2Vec;
639+ registryPhiMinvBackground.fill (HIST (" InvariantMassKpKp" ), sumVec.M ());
640+ }
641+ if ((confFillMinvBackgroundKmKm) && (kaon1.mAntiLambda () == -1 ) && (kaon2.mAntiLambda () == -1 )) {
642+ part1Vec.SetPtEtaPhiM (kaon1.pt (), kaon1.eta (), kaon1.phi (), mMassTwo );
643+ part2Vec.SetPtEtaPhiM (kaon2.pt (), kaon2.eta (), kaon2.phi (), mMassTwo );
644+
645+ TLorentzVector sumVec (part1Vec);
646+ sumVec += part2Vec;
647+ registryPhiMinvBackground.fill (HIST (" InvariantMassKmKm" ), sumVec.M ());
648+ }
649+ if ((confFillMinvBackgroundKpKm) && (kaon1.mAntiLambda () == 1 ) && (kaon2.mAntiLambda () == -1 )) {
650+ part1Vec.SetPtEtaPhiM (kaon1.pt (), kaon1.eta (), kaon1.phi (), mMassOne );
651+ part2Vec.SetPtEtaPhiM (kaon2.pt (), kaon2.eta (), kaon2.phi (), mMassTwo );
652+
653+ TLorentzVector sumVec (part1Vec);
654+ sumVec += part2Vec;
655+ registryPhiMinvBackground.fill (HIST (" InvariantMassKpKm" ), sumVec.M ());
656+ }
657+ }
658+ }
626659 }
627660 PROCESS_SWITCH (FemtoUniversePairTaskTrackPhi, processSameEvent, " Enable processing same event" , true );
628661
0 commit comments