@@ -139,7 +139,7 @@ struct ResonanceInitializer {
139139
140140 // Pre-selection cuts
141141 Configurable<float > cfgCutEta{" cfgCutEta" , 0 .8f , " Eta range for tracks" };
142- Configurable<float > pidnSigmaPreSelectionCut{" pidnSigmaPreSelectionCut" , 5 .0f , " TPC and TOF PID cut (loose, improve performance)" };
142+ Configurable<float > pidnSigmaPreSelectionCut{" pidnSigmaPreSelectionCut" , 5 .0f , " TPC PID cut (loose, improve performance)" };
143143 Configurable<int > mincrossedrows{" mincrossedrows" , 70 , " min crossed rows" };
144144
145145 // / DCA Selections for V0
@@ -181,6 +181,8 @@ struct ResonanceInitializer {
181181 Configurable<bool > cfgFillLambda0{" cfgFillLambda0" , false , " Fill Lambda0" };
182182 Configurable<bool > cfgFillXi0{" cfgFillXi0" , false , " Fill Xi0" };
183183 Configurable<bool > cfgFillOmega0{" cfgFillOmega0" , false , " Fill Omega0" };
184+ Configurable<bool > cfgBypassNoPairCascades{" cfgBypassNoPairCascades" , true , " Bypass track fill if no pair cascade with track" };
185+ Configurable<bool > cfgBypassNoPairV0s{" cfgBypassNoPairV0s" , false , " Bypass if no pair V0 with track" };
184186 } FilterForDerivedTables;
185187
186188 // Secondary cuts
@@ -221,7 +223,8 @@ struct ResonanceInitializer {
221223 ConfigurableAxis impactParameterAxis{" impactParameterAxis" , {500 , 0 , 50 }, " IP (fm)" };
222224
223225 Configurable<bool > isDaughterCheck{" isDaughterCheck" , 1 , " Check if the mother has the correct daughters when it is considered" };
224- Configurable<float > cfgRapidityCutGen{" cfgRapidityCutGen" , 0.5 , " Rapidity cut for the truth particle" };
226+ Configurable<float > cfgRapidityCutMinGen{" cfgRapidityCutMinGen" , -0.5 , " Rapidity cut for the truth particle" };
227+ Configurable<float > cfgRapidityCutMaxGen{" cfgRapidityCutMaxGen" , 0.5 , " Rapidity cut for the truth particle" };
225228 Configurable<int > pdgTruthMother{" pdgTruthMother" , 3324 , " pdgcode for the truth mother e.g. Xi(1530) (3324)" };
226229 Configurable<int > pdgTruthDaughter1{" pdgTruthDaughter1" , 3312 , " pdgcode for the daughter 1, e.g. Xi- 3312" };
227230 Configurable<int > pdgTruthDaughter2{" pdgTruthDaughter2" , 211 , " pdgcode for the daughter 2, e.g. pi+ 211" };
@@ -267,8 +270,8 @@ struct ResonanceInitializer {
267270 || (nabs(aod::mcparticle::pdgCode) == 123314 ) // Xi(1820)0
268271 || (nabs(aod::mcparticle::pdgCode) == 123324 ); // Xi(1820)-0
269272
270- using ResoEvents = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Ms, aod::CentFT0Cs, aod::CentFT0As, aod::Mults>;
271- using ResoEvents001 = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Ms, aod::CentFT0Cs, aod::CentFT0As, aod::Mults, aod::MultsExtra, aod::PVMults>;
273+ using ResoEvents = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Ms, aod::CentFT0Cs, aod::CentFT0As, aod::CentFV0As, aod:: Mults>;
274+ using ResoEvents001 = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Ms, aod::CentFT0Cs, aod::CentFT0As, aod::CentFV0As, aod:: Mults, aod::MultsExtra, aod::PVMults>;
272275 using ResoRun2Events = soa::Join<aod::Collisions, aod::EvSels, aod::CentRun2V0Ms>;
273276 using ResoEventsMC = soa::Join<ResoEvents, aod::McCollisionLabels>;
274277 using ResoRun2EventsMC = soa::Join<ResoEvents, aod::McCollisionLabels>;
@@ -381,7 +384,7 @@ struct ResonanceInitializer {
381384 return false ;
382385 if (v0.qtarm () < SecondaryCuts.cfgSecondaryparamArmenterosCut * std::abs (v0.alpha ()))
383386 return false ;
384- if (std::fabs (v0.mLambda () - MassLambda0) < SecondaryCuts.cfgSecondaryMassWindow )
387+ if (std::fabs (v0.mLambda () - MassLambda0) > SecondaryCuts.cfgSecondaryMassWindow )
385388 return false ;
386389 if (SecondaryCuts.cfgSecondaryCrossMassHypothesisCut && (std::fabs (v0.mK0Short () - MassK0Short) < SecondaryCuts.cfgSecondaryCrossMassCutWindow ))
387390 return false ;
@@ -592,6 +595,9 @@ struct ResonanceInitializer {
592595 case 2 :
593596 returnValue = ResoEvents.centFT0A ();
594597 break ;
598+ case 3 :
599+ returnValue = ResoEvents.centFV0A ();
600+ break ;
595601 default :
596602 returnValue = ResoEvents.centFT0M ();
597603 break ;
@@ -1192,7 +1198,9 @@ struct ResonanceInitializer {
11921198 {
11931199 for (auto const & mcPart : mcParticles) {
11941200
1195- if (std::abs (mcPart.pdgCode ()) != GenCuts.pdgTruthMother || std::abs (mcPart.y ()) >= GenCuts.cfgRapidityCutGen )
1201+ if (std::abs (mcPart.pdgCode ()) != GenCuts.pdgTruthMother )
1202+ continue ;
1203+ if ((mcPart.y () >= GenCuts.cfgRapidityCutMaxGen ) || (mcPart.y () <= GenCuts.cfgRapidityCutMinGen ))
11961204 continue ;
11971205 std::vector<int > daughterPDGs;
11981206 if (mcPart.has_daughters ()) {
@@ -1279,15 +1287,15 @@ struct ResonanceInitializer {
12791287 {
12801288 mRunNumber = 0 ;
12811289 dBz = 0 ;
1282- // Multiplicity estimator selection (0: FT0M, 1: FT0C, 2: FT0A, 99 : FV0A)
1290+ // Multiplicity estimator selection (0: FT0M, 1: FT0C, 2: FT0A, 3 : FV0A)
12831291 if (cfgMultName.value == " FT0M" ) {
12841292 multEstimator = 0 ;
12851293 } else if (cfgMultName.value == " FT0C" ) {
12861294 multEstimator = 1 ;
12871295 } else if (cfgMultName.value == " FT0A" ) {
12881296 multEstimator = 2 ;
12891297 } else if (cfgMultName.value == " FV0A" ) {
1290- multEstimator = 99 ;
1298+ multEstimator = 3 ;
12911299 } else {
12921300 multEstimator = 0 ;
12931301 }
@@ -1337,6 +1345,7 @@ struct ResonanceInitializer {
13371345 AxisSpec idxMCAxis = {26 , -0.5 , 25.5 , " Index" };
13381346 qaRegistry.add (" Event/hMCEventIndices" , " hMCEventIndices" , kTH2D , {centAxis, idxMCAxis});
13391347 }
1348+ qaRegistry.add (" Event/CentFV0A" , " ; FV0A Percentile; Entries" , o2::framework::kTH1F , {{110 , 0 , 110 }});
13401349 AxisSpec idxAxis = {8 , 0 , 8 , " Index" };
13411350 if (cfgFillQA) {
13421351 qaRegistry.add (" hGoodTrackIndices" , " hGoodTrackIndices" , kTH1F , {idxAxis});
@@ -1346,6 +1355,7 @@ struct ResonanceInitializer {
13461355 qaRegistry.add (" hGoodCascIndices" , " hGoodCascIndices" , kTH1F , {idxAxis});
13471356 qaRegistry.add (" hGoodMCCascIndices" , " hGoodMCCascIndices" , kTH1F , {idxAxis});
13481357 qaRegistry.add (" Phi" , " #phi distribution" , kTH1F , {{65 , -0.1 , 6.4 }});
1358+
13491359 }
13501360
13511361 TString hNEventsMCLabels[4 ] = {" All" , " z vrtx" , " INEL" , " INEL>0" };
@@ -1513,6 +1523,9 @@ struct ResonanceInitializer {
15131523 }
15141524 resoSpheroCollisions (computeSpherocity (tracks, trackSphMin, trackSphDef));
15151525 resoEvtPlCollisions (0 , 0 , 0 , 0 );
1526+ if (FilterForDerivedTables.cfgBypassNoPairV0s && (V0s.size () <1 )){
1527+ return ;
1528+ }
15161529
15171530 fillTracks<false >(collision, tracks);
15181531 if (cfgFillMicroTracks) {
@@ -1572,6 +1585,14 @@ struct ResonanceInitializer {
15721585 }
15731586 resoSpheroCollisions (computeSpherocity (tracks, trackSphMin, trackSphDef));
15741587 resoEvtPlCollisions (0 , 0 , 0 , 0 );
1588+ if (cfgMultName.value == " FV0A" )
1589+ qaRegistry.fill (HIST (" Event/CentFV0A" ),centEst (collision));
1590+ if (FilterForDerivedTables.cfgBypassNoPairV0s && (V0s.size () <1 )){
1591+ return ;
1592+ }
1593+ if (FilterForDerivedTables.cfgBypassNoPairCascades && (Cascades.size () <1 )){
1594+ return ;
1595+ }
15751596 fillTracks<false >(collision, tracks);
15761597 if (cfgFillMicroTracks) {
15771598 fillMicroTracks<false >(collision, tracks);
@@ -1718,6 +1739,9 @@ struct ResonanceInitializer {
17181739 fillMCCollision<false >(collision, mcParticles);
17191740
17201741 // Loop over tracks
1742+ if (FilterForDerivedTables.cfgBypassNoPairV0s && (V0s.size () <1 )){
1743+ return ;
1744+ }
17211745 fillTracks<true >(collision, tracks);
17221746 if (cfgFillMicroTracks) {
17231747 fillMicroTracks<true >(collision, tracks);
@@ -1782,6 +1806,8 @@ struct ResonanceInitializer {
17821806 Cent = mcCollision.centFT0M ();
17831807 else
17841808 Cent = centEst (collision);
1809+ if (cfgMultName.value == " FV0A" )
1810+ qaRegistry.fill (HIST (" Event/CentFV0A" ),centEst (collision));
17851811
17861812 bool isRecINELgt0 = 0 ;
17871813 if (checkIsRecINELgt0)
@@ -1802,6 +1828,12 @@ struct ResonanceInitializer {
18021828 fillMCCollision<false >(collision, mcParticles, impactpar, mult);
18031829
18041830 // Loop over tracks
1831+ if (FilterForDerivedTables.cfgBypassNoPairV0s && (V0s.size () <1 )){
1832+ return ;
1833+ }
1834+ if (FilterForDerivedTables.cfgBypassNoPairCascades && (Cascades.size () <1 )){
1835+ return ;
1836+ }
18051837 fillTracks<true >(collision, tracks);
18061838 if (cfgFillMicroTracks) {
18071839 fillMicroTracks<true >(collision, tracks);
@@ -1839,6 +1871,8 @@ struct ResonanceInitializer {
18391871 return col.centFT0C ();
18401872 } else if (cfgMultName.value == " FT0A" ) {
18411873 return col.centFT0A ();
1874+ } else if (cfgMultName.value == " FV0A" ) {
1875+ return col.centFV0A ();
18421876 }
18431877 return 100 .5f ;
18441878 };
@@ -1875,7 +1909,7 @@ struct ResonanceInitializer {
18751909 for (const auto & collision : collisions) {
18761910 if (EventCuts.cfgEvtUseRCTFlagChecker && !rctChecker (collision))
18771911 continue ;
1878- if (!colCuts.isSelected (collision)) // Bug is appeared in colCuts-> double counting in event QA histo, will be fixed later
1912+ if (!colCuts.isSelected (collision, false )) // Bug is appeared in colCuts-> double counting in event QA histo, will be fixed later
18791913 continue ;
18801914 if (biggestNContribs < collision.multPVTotalContributors ()) {
18811915 biggestNContribs = collision.multPVTotalContributors ();
0 commit comments