@@ -118,6 +118,8 @@ struct FlowGfwOmegaXi {
118118 O2_DEFINE_CONFIGURABLE (cfgv0_ArmPodocut, float , 0 .2f , " Armenteros Podolski cut for K0" )
119119 O2_DEFINE_CONFIGURABLE (cfgv0_compmassrejLambda, float , 0 .01f , " competing mass rejection of lambda" )
120120 O2_DEFINE_CONFIGURABLE (cfgv0_compmassrejK0s, float , 0 .005f , " competing mass rejection of K0s" )
121+ O2_DEFINE_CONFIGURABLE (cfgv0_ctauK0s, float , 20 , " Max ctau cut of K0s" )
122+ O2_DEFINE_CONFIGURABLE (cfgv0_ctauLambda, float , 30 , " Max ctau cut of Lambda" )
121123 } v0BuilderOpts;
122124
123125 struct : ConfigurableGroup {
@@ -158,7 +160,8 @@ struct FlowGfwOmegaXi {
158160 O2_DEFINE_CONFIGURABLE (cfgCutPtPIDbachMin, float , 0 .15f , " Minimal pT for daughter PID" )
159161 O2_DEFINE_CONFIGURABLE (cfgCutPtPIDdauLaPrMin, float , 0 .15f , " Minimal pT for daughter PID" )
160162 O2_DEFINE_CONFIGURABLE (cfgCutPtPIDdauLaPiMin, float , 0 .15f , " Minimal pT for daughter PID" )
161- O2_DEFINE_CONFIGURABLE (cfgCutDCAz, float , 2 .0f , " Minimal pT for daughter PID" )
163+ O2_DEFINE_CONFIGURABLE (cfgCutDCAz, float , 2 .0f , " Maximal DCAz for tracks" )
164+ O2_DEFINE_CONFIGURABLE (cfgCutDCAxy, float , 0 .1f , " Maximal DCAxy for tracks" )
162165 // track quality selections for daughter track
163166 O2_DEFINE_CONFIGURABLE (cfgITSNCls, int , 3 , " check minimum number of ITS clusters" )
164167 O2_DEFINE_CONFIGURABLE (cfgChITSNCls, int , 5 , " check minimum number of ITS clusters" )
@@ -194,6 +197,7 @@ struct FlowGfwOmegaXi {
194197 O2_DEFINE_CONFIGURABLE (cfgLocDenParaK0s, std::vector<double >, (std::vector<double >{-0.00043057 , -3.2435 , -0.000385085 , -2.97687 , -0.000350298 , -2.81502 , -0.000326159 , -2.71091 , -0.000299563 , -2.65448 , -0.000294284 , -2.60865 , -0.000277938 , -2.589 , -0.000277091 , -2.56983 , -0.000272783 , -2.56825 , -0.000252706 , -2.58996 , -0.000247834 , -2.63158 , -0.00024379 , -2.76976 , -0.000286468 , -2.92484 , -0.000310149 , -3.27746 }), " Local density efficiency function parameter for K0s, exp(Ax + B)" )
195198 O2_DEFINE_CONFIGURABLE (cfgLocDenParaLambda, std::vector<double >, (std::vector<double >{-0.000510948 , -4.4846 , -0.000460629 , -4.14465 , -0.000433729 , -3.94173 , -0.000412751 , -3.81839 , -0.000411211 , -3.72502 , -0.000401511 , -3.68426 , -0.000407461 , -3.67005 , -0.000379371 , -3.71153 , -0.000392828 , -3.73214 , -0.000403996 , -3.80717 , -0.000403376 , -3.90917 , -0.000354624 , -4.34629 , -0.000477606 , -4.66307 , -0.000541139 , -4.61364 }), " Local density efficiency function parameter for Lambda, exp(Ax + B)" )
196199 O2_DEFINE_CONFIGURABLE (cfgRunNumbers, std::vector<int >, (std::vector<int >{544095 , 544098 , 544116 , 544121 , 544122 , 544123 , 544124 }), " Preconfigured run numbers" )
200+ O2_DEFINE_CONFIGURABLE (cfgEtagapEdge, std::vector<double >, (std::vector<double >{-0.8 , -0.4 , 0.4 , 0.8 }), " sub-event eta range A: ([0], [1]) and C: ([2], [3])" )
197201 // switch
198202 O2_DEFINE_CONFIGURABLE (cfgDoAccEffCorr, bool , false , " do acc and eff corr" )
199203 O2_DEFINE_CONFIGURABLE (cfgDoLocDenCorr, bool , false , " do local density corr" )
@@ -225,7 +229,7 @@ struct FlowGfwOmegaXi {
225229 AxisSpec axisMultiplicity{{0 , 5 , 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 }, " Centrality (%)" };
226230
227231 Filter collisionFilter = nabs(aod::collision::posZ) < cfgCutVertex;
228- Filter trackFilter = (nabs(aod::track::eta) < trkQualityOpts.cfgCutEta.value) && (aod::track::pt > trkQualityOpts.cfgCutPtPOIMin.value) && (aod::track::pt < trkQualityOpts.cfgCutPtPOIMax.value) && ((requireGlobalTrackInFilter()) || (aod::track::isGlobalTrackSDD == (uint8_t )true )) && (aod::track::tpcChi2NCl < cfgCutChi2prTPCcls) && (nabs(aod::track::dcaZ) < trkQualityOpts.cfgCutDCAz.value);
232+ Filter trackFilter = (nabs(aod::track::eta) < trkQualityOpts.cfgCutEta.value) && (aod::track::pt > trkQualityOpts.cfgCutPtPOIMin.value) && (aod::track::pt < trkQualityOpts.cfgCutPtPOIMax.value) && ((requireGlobalTrackInFilter()) || (aod::track::isGlobalTrackSDD == (uint8_t )true )) && (aod::track::tpcChi2NCl < cfgCutChi2prTPCcls) && (nabs(aod::track::dcaZ) < trkQualityOpts.cfgCutDCAz.value) && (nabs(aod::track::dcaXY) < trkQualityOpts.cfgCutDCAxy.value) ;
229233
230234 using TracksPID = soa::Join<aod::pidTPCPi, aod::pidTPCKa, aod::pidTPCPr, aod::pidTOFPi, aod::pidTOFKa, aod::pidTOFPr>;
231235 using AodTracks = soa::Filtered<soa::Join<aod::Tracks, aod::TrackSelection, o2::aod::TrackSelectionExtension, aod::TracksExtra, TracksPID, aod::TracksIU, aod::TracksDCA>>; // tracks filter
@@ -255,6 +259,7 @@ struct FlowGfwOmegaXi {
255259 std::vector<float > cfgMultPVCutPara;
256260 std::vector<int > cfgmassbins;
257261 std::vector<int > runNumbers;
262+ std::vector<double > EtagapEdge;
258263 std::map<int , std::vector<std::shared_ptr<TH1>>> th1sList;
259264 std::map<int , std::vector<std::shared_ptr<TH3>>> th3sList;
260265 enum OutputTH1Names {
@@ -327,6 +332,7 @@ struct FlowGfwOmegaXi {
327332 cfgNSigma = cfgNSigmapid;
328333 cfgmassbins = cfgMassBins;
329334 cfgMultPVCutPara = evtSeleOpts.cfgMultPVCut ;
335+ EtagapEdge = cfgEtagapEdge;
330336
331337 // Set the pt, mult and phi Axis;
332338 o2::framework::AxisSpec axisPt = cfgaxisPt;
@@ -541,7 +547,7 @@ struct FlowGfwOmegaXi {
541547 registry.add (" K0sc22dpt" , " ;pt ; C_{2}{2} " , {HistType::kTProfile3D , {cfgaxisPtK0s, cfgaxisK0sMassforflow, axisMultiplicity}});
542548 registry.add (" Lambdac22dpt" , " ;pt ; C_{2}{2} " , {HistType::kTProfile3D , {cfgaxisPtLambda, cfgaxisLambdaMassforflow, axisMultiplicity}});
543549 registry.add (" K0sc24dpt" , " ;pt ; C_{2}{4} " , {HistType::kTProfile3D , {cfgaxisPtK0s, cfgaxisK0sMassforflow, axisMultiplicity}});
544- registry.add (" Lambdac24dpt" , " ;pt ; C_{2}{4} " , {HistType::kTProfile3D , {cfgaxisPtK0s , cfgaxisLambdaMassforflow, axisMultiplicity}});
550+ registry.add (" Lambdac24dpt" , " ;pt ; C_{2}{4} " , {HistType::kTProfile3D , {cfgaxisPtLambda , cfgaxisLambdaMassforflow, axisMultiplicity}});
545551 registry.add (" K0sc22Fulldpt" , " ;pt ; C_{2}{2} " , {HistType::kTProfile3D , {cfgaxisPtK0s, cfgaxisK0sMassforflow, axisMultiplicity}});
546552 registry.add (" Lambdac22Fulldpt" , " ;pt ; C_{2}{2} " , {HistType::kTProfile3D , {cfgaxisPtLambda, cfgaxisLambdaMassforflow, axisMultiplicity}});
547553 // v3
@@ -625,42 +631,46 @@ struct FlowGfwOmegaXi {
625631 }
626632
627633 // Data
628- fGFW ->AddRegion (" reffull" , -0.8 , 0.8 , 1 , 1 ); // ("name", etamin, etamax, ptbinnum, bitmask)eta region -0.8 to 0.8
629- fGFW ->AddRegion (" refN10" , -0.8 , -0.4 , 1 , 1 );
630- fGFW ->AddRegion (" refP10" , 0.4 , 0.8 , 1 , 1 );
631- // POI
632- fGFW ->AddRegion (" poiN10dpt" , -0.8 , -0.4 , nPtBins, 32 );
633- fGFW ->AddRegion (" poiP10dpt" , 0.4 , 0.8 , nPtBins, 32 );
634- fGFW ->AddRegion (" poifulldpt" , -0.8 , 0.8 , nPtBins, 32 );
635- fGFW ->AddRegion (" poioldpt" , -0.8 , 0.8 , nPtBins, 1 );
636-
637- int nXiptMassBins = nXiPtBins * cfgmassbins[2 ];
638- fGFW ->AddRegion (" poiXiPdpt" , 0.4 , 0.8 , nXiptMassBins, 2 );
639- fGFW ->AddRegion (" poiXiNdpt" , -0.8 , -0.4 , nXiptMassBins, 2 );
640- fGFW ->AddRegion (" poiXifulldpt" , -0.8 , 0.8 , nXiptMassBins, 2 );
641- int nOmegaptMassBins = nXiPtBins * cfgmassbins[3 ];
642- fGFW ->AddRegion (" poiOmegaPdpt" , 0.4 , 0.8 , nOmegaptMassBins, 4 );
643- fGFW ->AddRegion (" poiOmegaNdpt" , -0.8 , -0.4 , nOmegaptMassBins, 4 );
644- fGFW ->AddRegion (" poiOmegafulldpt" , -0.8 , 0.8 , nOmegaptMassBins, 4 );
634+ fGFW ->AddRegion (" reffull" , EtagapEdge[0 ], EtagapEdge[3 ], 1 , 1 ); // ("name", etamin, etamax, ptbinnum, bitmask)eta region -0.8 to 0.8
645635 int nK0sptMassBins = nK0sPtBins * cfgmassbins[0 ];
646- fGFW ->AddRegion (" poiK0sPdpt" , 0.4 , 0.8 , nK0sptMassBins, 8 );
647- fGFW ->AddRegion (" poiK0sNdpt" , -0.8 , -0.4 , nK0sptMassBins, 8 );
648- fGFW ->AddRegion (" poiK0sfulldpt" , -0.8 , 0.8 , nK0sptMassBins, 8 );
649636 int nLambdaptMassBins = nLambdaPtBins * cfgmassbins[1 ];
650- fGFW ->AddRegion (" poiLambdaPdpt" , 0.4 , 0.8 , nLambdaptMassBins, 16 );
651- fGFW ->AddRegion (" poiLambdaNdpt" , -0.8 , -0.4 , nLambdaptMassBins, 16 );
652- fGFW ->AddRegion (" poiLambdafulldpt" , -0.8 , 0.8 , nLambdaptMassBins, 16 );
637+ int nXiptMassBins = nXiPtBins * cfgmassbins[2 ];
638+ int nOmegaptMassBins = nXiPtBins * cfgmassbins[3 ];
639+
640+ fGFW ->AddRegion (" refN10" , EtagapEdge[0 ], EtagapEdge[1 ], 1 , 1 );
641+ fGFW ->AddRegion (" refP10" , EtagapEdge[2 ], EtagapEdge[3 ], 1 , 1 );
642+
643+ fGFW ->AddRegion (" poiN10dpt" , EtagapEdge[0 ], EtagapEdge[1 ], nPtBins, 32 );
644+ fGFW ->AddRegion (" poiP10dpt" , EtagapEdge[2 ], EtagapEdge[3 ], nPtBins, 32 );
645+ fGFW ->AddRegion (" poifulldpt" , EtagapEdge[0 ], EtagapEdge[3 ], nPtBins, 32 );
646+ fGFW ->AddRegion (" poioldpt" , EtagapEdge[0 ], EtagapEdge[3 ], nPtBins, 1 );
647+
648+ fGFW ->AddRegion (" poiXiPdpt" , EtagapEdge[2 ], EtagapEdge[3 ], nXiptMassBins, 2 );
649+ fGFW ->AddRegion (" poiXiNdpt" , EtagapEdge[0 ], EtagapEdge[1 ], nXiptMassBins, 2 );
650+ fGFW ->AddRegion (" poiXifulldpt" , EtagapEdge[0 ], EtagapEdge[3 ], nXiptMassBins, 2 );
651+
652+ fGFW ->AddRegion (" poiOmegaPdpt" , EtagapEdge[2 ], EtagapEdge[3 ], nOmegaptMassBins, 4 );
653+ fGFW ->AddRegion (" poiOmegaNdpt" , EtagapEdge[0 ], EtagapEdge[1 ], nOmegaptMassBins, 4 );
654+ fGFW ->AddRegion (" poiOmegafulldpt" , EtagapEdge[0 ], EtagapEdge[3 ], nOmegaptMassBins, 4 );
655+
656+ fGFW ->AddRegion (" poiK0sPdpt" , EtagapEdge[2 ], EtagapEdge[3 ], nK0sptMassBins, 8 );
657+ fGFW ->AddRegion (" poiK0sNdpt" , EtagapEdge[0 ], EtagapEdge[1 ], nK0sptMassBins, 8 );
658+ fGFW ->AddRegion (" poiK0sfulldpt" , EtagapEdge[0 ], EtagapEdge[3 ], nK0sptMassBins, 8 );
659+
660+ fGFW ->AddRegion (" poiLambdaPdpt" , EtagapEdge[2 ], EtagapEdge[3 ], nLambdaptMassBins, 16 );
661+ fGFW ->AddRegion (" poiLambdaNdpt" , EtagapEdge[0 ], EtagapEdge[1 ], nLambdaptMassBins, 16 );
662+ fGFW ->AddRegion (" poiLambdafulldpt" , EtagapEdge[0 ], EtagapEdge[3 ], nLambdaptMassBins, 16 );
653663 // MC
654- fGFW ->AddRegion (" refN10MC" , - 0.8 , - 0.4 , 1 , 64 );
655- fGFW ->AddRegion (" refP10MC" , 0.4 , 0.8 , 1 , 64 );
656- fGFW ->AddRegion (" poiXiPdptMC" , 0.4 , 0.8 , nXiptMassBins, 128 );
657- fGFW ->AddRegion (" poiXiNdptMC" , - 0.8 , - 0.4 , nXiptMassBins, 128 );
658- fGFW ->AddRegion (" poiOmegaPdptMC" , 0.4 , 0.8 , nOmegaptMassBins, 256 );
659- fGFW ->AddRegion (" poiOmegaNdptMC" , - 0.8 , - 0.4 , nOmegaptMassBins, 256 );
660- fGFW ->AddRegion (" poiK0sPdptMC" , 0.4 , 0.8 , nK0sptMassBins, 512 );
661- fGFW ->AddRegion (" poiK0sNdptMC" , - 0.8 , - 0.4 , nK0sptMassBins, 512 );
662- fGFW ->AddRegion (" poiLambdaPdptMC" , 0.4 , 0.8 , nLambdaptMassBins, 1024 );
663- fGFW ->AddRegion (" poiLambdaNdptMC" , - 0.8 , - 0.4 , nLambdaptMassBins, 1024 );
664+ fGFW ->AddRegion (" refN10MC" , EtagapEdge[ 0 ], EtagapEdge[ 1 ] , 1 , 64 );
665+ fGFW ->AddRegion (" refP10MC" , EtagapEdge[ 2 ], EtagapEdge[ 3 ] , 1 , 64 );
666+ fGFW ->AddRegion (" poiXiPdptMC" , EtagapEdge[ 2 ], EtagapEdge[ 3 ] , nXiptMassBins, 128 );
667+ fGFW ->AddRegion (" poiXiNdptMC" , EtagapEdge[ 0 ], EtagapEdge[ 1 ] , nXiptMassBins, 128 );
668+ fGFW ->AddRegion (" poiOmegaPdptMC" , EtagapEdge[ 2 ], EtagapEdge[ 3 ] , nOmegaptMassBins, 256 );
669+ fGFW ->AddRegion (" poiOmegaNdptMC" , EtagapEdge[ 0 ], EtagapEdge[ 1 ] , nOmegaptMassBins, 256 );
670+ fGFW ->AddRegion (" poiK0sPdptMC" , EtagapEdge[ 2 ], EtagapEdge[ 3 ] , nK0sptMassBins, 512 );
671+ fGFW ->AddRegion (" poiK0sNdptMC" , EtagapEdge[ 0 ], EtagapEdge[ 1 ] , nK0sptMassBins, 512 );
672+ fGFW ->AddRegion (" poiLambdaPdptMC" , EtagapEdge[ 2 ], EtagapEdge[ 3 ] , nLambdaptMassBins, 1024 );
673+ fGFW ->AddRegion (" poiLambdaNdptMC" , EtagapEdge[ 0 ], EtagapEdge[ 1 ] , nLambdaptMassBins, 1024 );
664674 // pushback
665675 // Data
666676 // v2
@@ -1156,6 +1166,10 @@ struct FlowGfwOmegaXi {
11561166 continue ;
11571167 if (v0negdau.pt () < trkQualityOpts.cfgCutPtDauMin .value || v0negdau.pt () > trkQualityOpts.cfgCutPtDauMax .value )
11581168 continue ;
1169+ if (v0posdau.eta () < trkQualityOpts.cfgCutEta .value || v0posdau.eta () > trkQualityOpts.cfgCutEta .value )
1170+ continue ;
1171+ if (v0negdau.eta () < trkQualityOpts.cfgCutEta .value || v0negdau.eta () > trkQualityOpts.cfgCutEta .value )
1172+ continue ;
11591173
11601174 // fill QA
11611175 if (cfgOutputQA) {
@@ -1238,6 +1252,19 @@ struct FlowGfwOmegaXi {
12381252 if (!v0negdau.hasTPC () || !v0negdau.hasITS ())
12391253 continue ;
12401254 }
1255+ float ctau = 0 ;
1256+ if (isK0s) {
1257+ ctau = v0.distovertotmom (collision.posX (), collision.posY (), collision.posZ ()) * o2::constants::physics::MassK0Short;
1258+ if (ctau < v0BuilderOpts.cfgv0_ctauK0s .value )
1259+ isK0s = false ;
1260+ }
1261+ if (isLambda || isALambda) {
1262+ ctau = v0.distovertotmom (collision.posX (), collision.posY (), collision.posZ ()) * o2::constants::physics::MassLambda0;
1263+ if (ctau < v0BuilderOpts.cfgv0_ctauLambda .value ) {
1264+ isLambda = false ;
1265+ isALambda = false ;
1266+ }
1267+ }
12411268 // // topological cut
12421269 if (v0.v0radius () < v0BuilderOpts.cfgv0_radius .value )
12431270 continue ;
@@ -1367,6 +1394,12 @@ struct FlowGfwOmegaXi {
13671394 continue ;
13681395 if (negdau.pt () < trkQualityOpts.cfgCutPtDauMin .value || negdau.pt () > trkQualityOpts.cfgCutPtDauMax .value )
13691396 continue ;
1397+ if (std::fabs (bachelor.eta ()) < trkQualityOpts.cfgCutEta .value )
1398+ continue ;
1399+ if (std::fabs (posdau.eta ()) < trkQualityOpts.cfgCutEta .value )
1400+ continue ;
1401+ if (std::fabs (negdau.eta ()) < trkQualityOpts.cfgCutEta .value )
1402+ continue ;
13701403
13711404 // Omega and antiOmega
13721405 if (casc.pt () > trkQualityOpts.cfgCutPtOmegaMin .value && casc.pt () < trkQualityOpts.cfgCutPtOmegaMax .value ) {
0 commit comments