@@ -77,22 +77,25 @@ struct highmasslambda {
7777 double bz{0 .};
7878
7979 Configurable<std::string> ccdburl{" ccdb-url" , " http://alice-ccdb.cern.ch" , " url of the ccdb repository" };
80- Configurable<std::string> ccdbPathLut{" ccdbPathLut" , " GLO/Param/MatLUT" , " Path for LUT parametrization" };
81- Configurable<std::string> ccdbPathGrp{" ccdbPathGrp" , " GLO/GRP/GRP" , " Path of the grp file (Run 2)" };
80+ // Configurable<std::string> ccdbPathLut{"ccdbPathLut", "GLO/Param/MatLUT", "Path for LUT parametrization"};
81+ // Configurable<std::string> ccdbPathGrp{"ccdbPathGrp", "GLO/GRP/GRP", "Path of the grp file (Run 2)"};
8282 Configurable<std::string> ccdbPathGrpMag{" ccdbPathGrpMag" , " GLO/Config/GRPMagField" , " CCDB path of the GRPMagField object (Run 3)" };
83- Configurable<bool > isRun2{" isRun2" , false , " enable Run 2 or Run 3 GRP objects for magnetic field" };
83+ // Configurable<bool> isRun2{"isRun2", false, "enable Run 2 or Run 3 GRP objects for magnetic field"};
8484 Configurable<bool > cnfabsdca{" cnfabsdca" , false , " Use Abs DCA for secondary vertex fitting" };
8585
8686 // fill output
8787 Configurable<int > cfgOccupancyCut{" cfgOccupancyCut" , 2500 , " Occupancy cut" };
8888 Configurable<bool > fillRotation{" fillRotation" , false , " fill rotation" };
8989 Configurable<bool > useSP{" useSP" , false , " useSP" };
90+ Configurable<int > useKshortOpti{" useKshortOpti" , 1 , " useKshortOpti" };
9091 // events
9192 Configurable<float > cfgCutVertex{" cfgCutVertex" , 10 .0f , " Accepted z-vertex range" };
9293 Configurable<float > cfgCutCentralityMax{" cfgCutCentralityMax" , 50 .0f , " Accepted maximum Centrality" };
9394 Configurable<float > cfgCutCentralityMin{" cfgCutCentralityMin" , 30 .0f , " Accepted minimum Centrality" };
9495 Configurable<bool > additionalEvSel{" additionalEvSel" , true , " additionalEvSel" };
9596 // proton track cut
97+ Configurable<float > confMinDCAProtonV0{" confMinDCAProtonV0" , -5.0 , " Minimum DCA between Proton and V0" };
98+ Configurable<float > confMaxDCAProtonV0{" confMaxDCAProtonV0" , 5.0 , " Maximum DCA between Proton and V0" };
9699 Configurable<float > confMinRot{" confMinRot" , 5.0 * TMath::Pi () / 6.0 , " Minimum of rotation" };
97100 Configurable<float > confMaxRot{" confMaxRot" , 7.0 * TMath::Pi () / 6.0 , " Maximum of rotation" };
98101 Configurable<float > confRapidity{" confRapidity" , 0.8 , " cut on Rapidity" };
@@ -173,9 +176,16 @@ struct highmasslambda {
173176 // std::vector<double> ptLambdaBinning = {2.0, 3.0, 4.0, 5.0, 6.0};
174177
175178 std::vector<double > occupancyBinning = {-0.5 , 500.0 , 1000.0 , 1500.0 , 2000.0 , 3000.0 , 4000.0 , 5000.0 , 50000.0 };
179+ std::vector<double > dcaV0toPVBinning = {0.0 , 0.01 , 0.02 , 0.03 , 0.04 , 0.05 , 0.06 , 0.08 , 0.1 , 0.15 , 0.2 , 0.3 , 0.5 , 1.0 };
180+ std::vector<double > cpaV0Binning = {0.995 , 0.996 , 0.997 , 0.998 , 0.999 , 0.9995 , 0.9997 , 0.9999 , 1.005 };
181+ std::vector<double > ptV0Binning = {0.0 , 0.2 , 0.3 , 0.4 , 0.5 , 0.6 , 0.8 , 1.0 , 1.5 , 100.0 };
182+ std::vector<double > dcaBetweenV0 = {0.0 , 0.05 , 0.1 , 0.15 , 0.2 , 0.3 , 0.4 , 0.5 , 0.6 , 0.8 , 1.0 };
183+ std::vector<double > dcaBetweenProtonV0 = {-0.05 , -0.04 , -0.03 , -0.025 , -0.02 , -0.01 , -0.005 , -0.004 , -0.003 , -0.003 , -0.002 , -0.001 , 0.0 , 0.001 , 0.002 , 0.003 , 0.004 , 0.005 , 0.006 , 0.007 , 0.008 , 0.01 , 0.012 , 0.014 , 0.016 , 0.018 , 0.02 , 0.025 , 0.03 , 0.04 , 0.05 , 0.06 , 0.08 , 0.1 , 0.12 , 0.14 , 0.16 , 0.18 , 0.2 , 0.3 , 0.4 , 0.5 , 1.0 };
184+
176185 AxisSpec resAxis = {1600 , -30 , 30 , " Res" };
177186 AxisSpec phiAxis = {500 , -6.28 , 6.28 , " phi" };
178187 AxisSpec centAxis = {8 , 0 , 80 , " V0M (%)" };
188+ AxisSpec dcaV0toPVAxis = {dcaV0toPVBinning, " dcaV0toPV" };
179189 const AxisSpec thnAxisInvMass{configThnAxisInvMass, " #it{M} (GeV/#it{c}^{2})" };
180190 const AxisSpec thnAxisPt{configThnAxisPt, " #it{p}_{T} (GeV/#it{c})" };
181191 const AxisSpec thnAxisV2{configThnAxisV2, " V2" };
@@ -215,14 +225,21 @@ struct highmasslambda {
215225 histos.add (" hImpactPar0" , " hImpactPar0" , kTH1F , {{500 , 0 .0f , 0 .1f }});
216226 histos.add (" hImpactPar1" , " hImpactPar1" , kTH1F , {{500 , 0 .0f , 0 .1f }});
217227 histos.add (" hCPA" , " hCPA" , kTH1F , {{220 , -1 .1f , 1 .1f }});
218-
219- histos.add (" hSparseV2SASameEvent_V2" , " hSparseV2SASameEvent_V2" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisV2, thnAxisDCA, thnAxisPtProton});
220- histos.add (" hSparseV2SASameEventRotational_V2" , " hSparseV2SASameEventRotational" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisV2, thnAxisDCA, thnAxisPtProton});
221- histos.add (" hSparseV2SAMixedEvent_V2" , " hSparseV2SAMixedEvent_V2" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisV2, thnAxisDCA, thnAxisPtProton});
222-
223228 histos.add (" hSparseV2SASameEvent_V2_SVX" , " hSparseV2SASameEvent_V2_SVX" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisV2, thnAxisDecayLength, thnAxisCPA});
224229 histos.add (" hSparseV2SASameEventRotational_V2_SVX" , " hSparseV2SASameEventRotational_SVX" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisV2, thnAxisDecayLength, thnAxisCPA});
225-
230+ histos.add (" hSparseV2SASameEventRotational_V2" , " hSparseV2SASameEventRotational" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisV2});
231+ if (useKshortOpti == 0 ) {
232+ histos.add (" hSparseV2SASameEvent_V2" , " hSparseV2SASameEvent_V2" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisDCA, thnAxisPtProton});
233+ histos.add (" hSparseV2SAMixedEvent_V2" , " hSparseV2SAMixedEvent_V2" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisDCA, thnAxisPtProton});
234+ }
235+ if (useKshortOpti == 1 ) {
236+ histos.add (" hSparseV2SASameEvent_V2" , " hSparseV2SASameEvent_V2" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, dcaV0toPVBinning, cpaV0Binning, ptV0Binning, dcaBetweenV0, dcaBetweenProtonV0});
237+ histos.add (" hSparseV2SAMixedEvent_V2" , " hSparseV2SAMixedEvent_V2" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, dcaV0toPVBinning, cpaV0Binning, ptV0Binning, dcaBetweenV0, dcaBetweenProtonV0});
238+ }
239+ if (useKshortOpti == 2 ) {
240+ histos.add (" hSparseV2SASameEvent_V2" , " hSparseV2SASameEvent_V2" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisV2});
241+ histos.add (" hSparseV2SAMixedEvent_V2" , " hSparseV2SAMixedEvent_V2" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisV2});
242+ }
226243 // histogram for resolution
227244 histos.add (" ResFT0CTPC" , " ResFT0CTPC" , kTH2F , {centAxis, resAxis});
228245 histos.add (" ResFT0CTPCR" , " ResFT0CTPCR" , kTH2F , {centAxis, resAxis});
@@ -249,7 +266,7 @@ struct highmasslambda {
249266 template <typename T>
250267 bool selectionTrack (const T& candidate)
251268 {
252- if (!(candidate.isGlobalTrackWoDCA () && candidate.itsNCls () > cfgITScluster && candidate.tpcNClsFound () > cfgTPCcluster)) {
269+ if (!(candidate.isGlobalTrackWoDCA () && candidate.itsNCls () > cfgITScluster && candidate.tpcNClsCrossedRows () > cfgTPCcluster)) {
253270 return false ;
254271 }
255272 if (candidate.pt () > 0.0 && candidate.pt () < 0.5 && std::abs (candidate.dcaXY ()) < cfgCutDCAxymin1) {
@@ -531,7 +548,7 @@ struct highmasslambda {
531548 {
532549 const auto eta = track.eta ();
533550 const auto pt = track.pt ();
534- const auto tpcNClsF = track.tpcNClsFound ();
551+ const auto tpcNClsF = track.tpcNClsCrossedRows ();
535552 const auto dcaXY = track.dcaXY ();
536553 const auto sign = track.sign ();
537554 if (charge < 0 && sign > 0 ) {
@@ -546,7 +563,7 @@ struct highmasslambda {
546563 if (std::abs (pt) < 0.15 ) {
547564 return false ;
548565 }
549- if (tpcNClsF < 50 ) {
566+ if (tpcNClsF < 70 ) {
550567 return false ;
551568 }
552569 if (std::abs (dcaXY) < ConfDaughDCAMin) {
@@ -687,8 +704,21 @@ struct highmasslambda {
687704 if (useSP) {
688705 v2 = TMath::Cos (2.0 * phiminuspsi);
689706 }
690- if (Lambdac.M () > cMinLambdaMass && Lambdac.M () <= cMaxLambdaMass && std::abs (Lambdac.Rapidity ()) < confRapidity && Lambdac.Pt () > 1.0 && Lambdac.Pt () <= 6.0 ) {
691- histos.fill (HIST (" hSparseV2SASameEvent_V2" ), Lambdac.M (), Lambdac.Pt (), v2, std::abs (track1.dcaXY ()), Proton.Pt ());
707+ auto dcaV0toPV = std::abs (v0.dcav0topv ());
708+ auto cpaV0 = v0.v0cosPA ();
709+ auto ptV0 = v0.pt ();
710+ auto dcaV0Daughters = std::abs (v0.dcaV0daughters ());
711+ auto dcaProtonV0 = v0.dcav0topv () - track1.dcaXY ();
712+ if (Lambdac.M () > cMinLambdaMass && Lambdac.M () <= cMaxLambdaMass && std::abs (Lambdac.Rapidity ()) < confRapidity && Lambdac.Pt () > 1.0 && Lambdac.Pt () <= 6.0 && dcaProtonV0 > confMinDCAProtonV0 && dcaProtonV0 < confMaxDCAProtonV0) {
713+ if (useKshortOpti == 0 ) {
714+ histos.fill (HIST (" hSparseV2SASameEvent_V2" ), Lambdac.M (), Lambdac.Pt (), std::abs (track1.dcaXY ()), Proton.Pt ());
715+ }
716+ if (useKshortOpti == 1 ) {
717+ histos.fill (HIST (" hSparseV2SASameEvent_V2" ), Lambdac.M (), Lambdac.Pt (), dcaV0toPV, cpaV0, ptV0, dcaV0Daughters, dcaProtonV0);
718+ }
719+ if (useKshortOpti == 2 ) {
720+ histos.fill (HIST (" hSparseV2SASameEvent_V2" ), Lambdac.M (), Lambdac.Pt (), v2);
721+ }
692722 }
693723 if (fillRotation) {
694724 for (int nrotbkg = 0 ; nrotbkg < nBkgRotations; nrotbkg++) {
@@ -706,8 +736,8 @@ struct highmasslambda {
706736 if (useSP) {
707737 v2Rot = TMath::Cos (2.0 * phiminuspsiRot);
708738 }
709- if (LambdacRot.M () > cMinLambdaMass && LambdacRot.M () <= cMaxLambdaMass && std::abs (LambdacRot.Rapidity ()) < confRapidity && LambdacRot.Pt () > 1.0 && LambdacRot.Pt () <= 6.0 ) {
710- histos.fill (HIST (" hSparseV2SASameEventRotational_V2" ), LambdacRot.M (), LambdacRot.Pt (), v2Rot, std::abs (track1. dcaXY ()), Proton. Pt () );
739+ if (LambdacRot.M () > cMinLambdaMass && LambdacRot.M () <= cMaxLambdaMass && std::abs (LambdacRot.Rapidity ()) < confRapidity && LambdacRot.Pt () > 1.0 && LambdacRot.Pt () <= 6.0 && dcaProtonV0 > confMinDCAProtonV0 && dcaProtonV0 < confMaxDCAProtonV0 ) {
740+ histos.fill (HIST (" hSparseV2SASameEventRotational_V2" ), LambdacRot.M (), LambdacRot.Pt (), v2Rot);
711741 }
712742 }
713743 }
@@ -807,8 +837,21 @@ struct highmasslambda {
807837 if (useSP) {
808838 v2 = TMath::Cos (2.0 * phiminuspsi);
809839 }
810- if (occupancy1 < cfgOccupancyCut && occupancy2 < cfgOccupancyCut && Lambdac.M () > cMinLambdaMass && Lambdac.M () <= cMaxLambdaMass && std::abs (Lambdac.Rapidity ()) < confRapidity && Lambdac.Pt () > 1.0 && Lambdac.Pt () <= 6.0 ) {
811- histos.fill (HIST (" hSparseV2SAMixedEvent_V2" ), Lambdac.M (), Lambdac.Pt (), v2, std::abs (track1.dcaXY ()), Proton.Pt ());
840+ auto dcaV0toPV = std::abs (v0.dcav0topv ());
841+ auto cpaV0 = v0.v0cosPA ();
842+ auto ptV0 = v0.pt ();
843+ auto dcaV0Daughters = std::abs (v0.dcaV0daughters ());
844+ auto dcaProtonV0 = v0.dcav0topv () - track1.dcaXY ();
845+ if (Lambdac.M () > cMinLambdaMass && Lambdac.M () <= cMaxLambdaMass && std::abs (Lambdac.Rapidity ()) < confRapidity && Lambdac.Pt () > 1.0 && Lambdac.Pt () <= 6.0 && dcaProtonV0 > confMinDCAProtonV0 && dcaProtonV0 < confMaxDCAProtonV0) {
846+ if (useKshortOpti == 0 ) {
847+ histos.fill (HIST (" hSparseV2SAMixedEvent_V2" ), Lambdac.M (), Lambdac.Pt (), std::abs (track1.dcaXY ()), Proton.Pt ());
848+ }
849+ if (useKshortOpti == 1 ) {
850+ histos.fill (HIST (" hSparseV2SAMixedEvent_V2" ), Lambdac.M (), Lambdac.Pt (), dcaV0toPV, cpaV0, ptV0, dcaV0Daughters, dcaProtonV0);
851+ }
852+ if (useKshortOpti == 2 ) {
853+ histos.fill (HIST (" hSparseV2SAMixedEvent_V2" ), Lambdac.M (), Lambdac.Pt (), v2);
854+ }
812855 }
813856 }
814857 }
0 commit comments