@@ -78,6 +78,7 @@ struct Kstarqa {
7878 HistogramRegistry hOthers{" hOthers" , {}, OutputObjHandlingPolicy::AnalysisObject, true , true };
7979
8080 // Confugrable for QA histograms
81+ Configurable<bool > isINELgt0{" isINELgt0" , true , " INEL>0 selection" };
8182 Configurable<bool > calcLikeSign{" calcLikeSign" , true , " Calculate Like Sign" };
8283 Configurable<bool > calcRotational{" calcRotational" , false , " Calculate Rotational" };
8384 Configurable<bool > cQAplots{" cQAplots" , true , " cQAplots" };
@@ -118,7 +119,8 @@ struct Kstarqa {
118119 Configurable<float > nsigmaCutTPCKa{" nsigmaCutTPCKa" , 3.0 , " TPC Nsigma cut for kaons" };
119120 Configurable<float > nsigmaCutTOFPi{" nsigmaCutTOFPi" , 3.0 , " TOF Nsigma cut for pions" };
120121 Configurable<float > nsigmaCutTOFKa{" nsigmaCutTOFKa" , 3.0 , " TOF Nsigma cut for kaons" };
121- Configurable<float > nsigmaCutCombined{" nsigmaCutCombined" , 3.0 , " Combined Nsigma cut" };
122+ Configurable<float > nsigmaCutCombinedKa{" nsigmaCutCombinedKa" , 3.0 , " Combined Nsigma cut for kaon" };
123+ Configurable<float > nsigmaCutCombinedPi{" nsigmaCutCombinedPi" , 3.0 , " Combined Nsigma cut for pion" };
122124
123125 // Event selection configurables
124126 // Configurable<bool> timFrameEvsel{"timFrameEvsel", true, "TPC Time frame boundary cut"};
@@ -236,6 +238,9 @@ struct Kstarqa {
236238 template <typename Coll>
237239 bool selectionEvent (const Coll& collision)
238240 {
241+ if (isINELgt0 && !collision.isInelGt0 ()) {
242+ return false ;
243+ }
239244 if (std::abs (collision.posZ ()) > cutzvertex)
240245 return false ;
241246 if (!collision.sel8 ())
@@ -323,7 +328,7 @@ struct Kstarqa {
323328 return true ;
324329 }
325330 } else {
326- if (candidate.hasTOF () && (candidate.tofNSigmaPi () * candidate.tofNSigmaPi () + candidate.tpcNSigmaPi () * candidate.tpcNSigmaPi ()) < (nsigmaCutCombined * nsigmaCutCombined ) && candidate.beta () > cBetaCutTOF) {
331+ if (candidate.hasTOF () && (candidate.tofNSigmaPi () * candidate.tofNSigmaPi () + candidate.tpcNSigmaPi () * candidate.tpcNSigmaPi ()) < (nsigmaCutCombinedPi * nsigmaCutCombinedPi ) && candidate.beta () > cBetaCutTOF) {
327332 return true ;
328333 }
329334 if (!candidate.hasTOF () && std::abs (candidate.tpcNSigmaPi ()) < nsigmaCutTPCPi) {
@@ -347,7 +352,7 @@ struct Kstarqa {
347352 return true ;
348353 }
349354 } else {
350- if (candidate.hasTOF () && (candidate.tofNSigmaKa () * candidate.tofNSigmaKa () + candidate.tpcNSigmaKa () * candidate.tpcNSigmaKa ()) < (nsigmaCutCombined * nsigmaCutCombined ) && candidate.beta () > cBetaCutTOF) {
355+ if (candidate.hasTOF () && (candidate.tofNSigmaKa () * candidate.tofNSigmaKa () + candidate.tpcNSigmaKa () * candidate.tpcNSigmaKa ()) < (nsigmaCutCombinedKa * nsigmaCutCombinedKa ) && candidate.beta () > cBetaCutTOF) {
351356 return true ;
352357 }
353358 if (!candidate.hasTOF () && std::abs (candidate.tpcNSigmaKa ()) < nsigmaCutTPCKa) {
@@ -478,9 +483,9 @@ struct Kstarqa {
478483 Filter acceptanceFilter = (nabs(aod::track::eta) < cfgCutEta && nabs(aod::track::pt) > cfgCutPT);
479484 Filter fDCAcutFilter = (nabs(aod::track::dcaXY) < cfgCutDCAxy) && (nabs(aod::track::dcaZ) < cfgCutDCAz);
480485
481- using EventCandidates = soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::FT0Mults, aod::MultZeqs, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs>>;
486+ using EventCandidates = soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::FT0Mults, aod::MultZeqs, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::PVMults >>;
482487 using TrackCandidates = soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA, aod::TrackSelection, aod::pidTPCFullPi, aod::pidTOFFullPi, aod::pidTPCFullKa, aod::pidTOFFullKa, aod::pidTOFbeta>>;
483- using EventCandidatesMC = soa::Join<aod::Collisions, aod::EvSels, aod::McCollisionLabels, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs>;
488+ using EventCandidatesMC = soa::Join<aod::Collisions, aod::EvSels, aod::McCollisionLabels, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::FT0Mults, aod::PVMults >;
484489
485490 using TrackCandidatesMC = soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA, aod::TrackSelection, aod::pidTPCFullKa, aod::pidTOFFullKa, aod::pidTPCFullPi, aod::pidTOFFullPi, aod::McTrackLabels, aod::pidTOFbeta>>;
486491
@@ -863,6 +868,9 @@ struct Kstarqa {
863868 if (!collision.sel8 ()) {
864869 continue ;
865870 }
871+ if (isINELgt0 && !collision.isInelGt0 ()) {
872+ continue ;
873+ }
866874 if (ispileupGoodvtxCut && (!collision.selection_bit (aod::evsel::kNoSameBunchPileup ) || !collision.selection_bit (aod::evsel::kIsGoodZvtxFT0vsPV ))) {
867875 continue ;
868876 }
@@ -924,41 +932,41 @@ struct Kstarqa {
924932 }
925933 PROCESS_SWITCH (Kstarqa, processGen, " Process Generated" , false );
926934
927- void processEvtLossSigLossMC (aod::McCollisions::iterator const &, aod::McParticles const & mcParticles, const soa::SmallGroups<EventCandidatesMC>& recCollisions)
928- {
929-
930- bool isSel = false ;
931- // auto multiplicity1 = -999.;
932- for (const auto & RecCollision : recCollisions) {
933- if (!selectionEvent (RecCollision))
934- continue ;
935-
936- // if (cSelectMultEstimator == 0) {
937- // multiplicity1 = RecCollision.centFT0M();
938- // } else if (cSelectMultEstimator == 1) {
939- // multiplicity1 = RecCollision.centFT0A();
940- // } else if (cSelectMultEstimator == 2) {
941- // multiplicity1 = RecCollision.centFT0C();
942- // } else {
943- // multiplicity1 = RecCollision.centFT0M();
944- // }
935+ // void processEvtLossSigLossMC(aod::McCollisions::iterator const&, aod::McParticles const& mcParticles, const soa::SmallGroups<EventCandidatesMC>& recCollisions)
936+ // {
945937
946- isSel = true ;
947- }
938+ // bool isSel = false;
939+ // // auto multiplicity1 = -999.;
940+ // for (const auto& RecCollision : recCollisions) {
941+ // if (!selectionEvent(RecCollision))
942+ // continue;
943+
944+ // // if (cSelectMultEstimator == 0) {
945+ // // multiplicity1 = RecCollision.centFT0M();
946+ // // } else if (cSelectMultEstimator == 1) {
947+ // // multiplicity1 = RecCollision.centFT0A();
948+ // // } else if (cSelectMultEstimator == 2) {
949+ // // multiplicity1 = RecCollision.centFT0C();
950+ // // } else {
951+ // // multiplicity1 = RecCollision.centFT0M();
952+ // // }
953+
954+ // isSel = true;
955+ // }
948956
949- // Generated MC
950- for (const auto & mcPart : mcParticles) {
951- if (std::abs (mcPart.y ()) >= 0.5 || std::abs (mcPart.pdgCode ()) != 313 )
952- continue ;
957+ // // Generated MC
958+ // for (const auto& mcPart : mcParticles) {
959+ // if (std::abs(mcPart.y()) >= 0.5 || std::abs(mcPart.pdgCode()) != 313)
960+ // continue;
953961
954- // signal loss estimation
955- hInvMass.fill (HIST (" kstargenBeforeEvtSel" ), mcPart.pt ());
956- if (isSel) {
957- hInvMass.fill (HIST (" kstargenAfterEvtSel" ), mcPart.pt ());
958- }
959- } // end loop on gen particles
960- }
961- PROCESS_SWITCH (Kstarqa, processEvtLossSigLossMC, " Process Signal Loss, Event Loss" , false );
962+ // // signal loss estimation
963+ // hInvMass.fill(HIST("kstargenBeforeEvtSel"), mcPart.pt());
964+ // if (isSel) {
965+ // hInvMass.fill(HIST("kstargenAfterEvtSel"), mcPart.pt());
966+ // }
967+ // } // end loop on gen particles
968+ // }
969+ // PROCESS_SWITCH(Kstarqa, processEvtLossSigLossMC, "Process Signal Loss, Event Loss", false);
962970
963971 void processRec (EventCandidatesMC::iterator const & collision, TrackCandidatesMC const & tracks, aod::McParticles const &, aod::McCollisions const & /* mcCollisions*/ )
964972 {
@@ -970,6 +978,10 @@ struct Kstarqa {
970978 }
971979 rEventSelection.fill (HIST (" events_checkrec" ), 1.5 );
972980
981+ if (isINELgt0 && !collision.isInelGt0 ()) {
982+ return ;
983+ }
984+
973985 // if (std::abs(collision.mcCollision().posZ()) > cutzvertex || !collision.sel8()) {
974986 if (std::abs (collision.mcCollision ().posZ ()) > cutzvertex) {
975987 return ;
0 commit comments