@@ -75,12 +75,10 @@ struct highmasslambda {
7575
7676 // fill output
7777 Configurable<bool > fillPolarization{" fillPolarization" , false , " fill polarization" };
78-
7978 // events
8079 Configurable<float > cfgCutVertex{" cfgCutVertex" , 10 .0f , " Accepted z-vertex range" };
8180 Configurable<float > cfgCutCentralityMax{" cfgCutCentralityMax" , 80 .0f , " Accepted maximum Centrality" };
8281 Configurable<float > cfgCutCentralityMin{" cfgCutCentralityMin" , 20 .0f , " Accepted minimum Centrality" };
83-
8482 // proton track cut
8583 Configurable<float > confRapidity{" confRapidity" , 0.5 , " cut on Rapidity" };
8684 Configurable<float > cfgCutPT{" cfgCutPT" , 0.3 , " PT cut on daughter track" };
@@ -100,20 +98,21 @@ struct highmasslambda {
10098 Configurable<double > ConfV0CPAMin{" ConfV0CPAMin" , 0 .996f , " Minimum CPA of V0" };
10199 Configurable<float > ConfV0TranRadV0Min{" ConfV0TranRadV0Min" , 1 .5f , " Minimum transverse radius" };
102100 Configurable<float > ConfV0TranRadV0Max{" ConfV0TranRadV0Max" , 100 .f , " Maximum transverse radius" };
103- Configurable<double > cMaxV0DCA{" cMaxV0DCA" , 0.5 , " Maximum V0 DCA to PV" };
101+ Configurable<double > cMaxV0DCA{" cMaxV0DCA" , 0.3 , " Maximum V0 DCA to PV" };
104102 Configurable<float > cMaxV0LifeTime{" cMaxV0LifeTime" , 20 , " Maximum V0 life time" };
105103 Configurable<float > cSigmaMassKs0{" cSigmaMassKs0" , 0.006 , " Sigma cut on KS0 mass" };
106-
107104 // config for V0 daughters
108105 Configurable<float > ConfDaughEta{" ConfDaughEta" , 0 .8f , " V0 Daugh sel: max eta" };
109106 Configurable<float > ConfDaughPt{" ConfDaughPt" , 0 .1f , " V0 Daugh sel: min pt" };
110107 Configurable<float > ConfDaughTPCnclsMin{" ConfDaughTPCnclsMin" , 70 .f , " V0 Daugh sel: Min. nCls TPC" };
111108 Configurable<double > ConfDaughDCAMin{" ConfDaughDCAMin" , 0 .08f , " V0 Daugh sel: Max. DCA Daugh to PV (cm)" };
112109 Configurable<float > ConfDaughPIDCuts{" ConfDaughPIDCuts" , 3 , " PID selections for KS0 daughters" };
113-
110+ // Fill strategy
111+ Configurable<int > cfgFillStrategy{" cfgFillStrategy" , 1 , " Fill strategy" };
112+ // Fill strategy
113+ Configurable<int > cfgSelectDaughterTopology{" cfgSelectDaughterTopology" , 1 , " Select daughter for topology" };
114114 // Mixed event
115115 Configurable<int > cfgNoMixedEvents{" cfgNoMixedEvents" , 1 , " Number of mixed events per event" };
116-
117116 // / activate rotational background
118117 Configurable<int > nBkgRotations{" nBkgRotations" , 9 , " Number of rotated copies (background) per each original candidate" };
119118
@@ -125,6 +124,7 @@ struct highmasslambda {
125124 ConfigurableAxis configThnAxisPhiminusPsi{" configThnAxisPhiminusPsi" , {6 , 0.0 , TMath::Pi ()}, " #phi - #psi" };
126125 ConfigurableAxis configThnAxisV2{" configThnAxisV2" , {100 , -1 , 1 }, " V2" };
127126 ConfigurableAxis configThnAxisSA{" configThnAxisSA" , {100 , -1 , 1 }, " SA" };
127+ ConfigurableAxis cnfigThnAxisDecayLength{" cnfigThnAxisDecayLength" , {150 , 0.0 , 0.3 }, " SA" };
128128
129129 Filter collisionFilter = nabs(aod::collision::posZ) < cfgCutVertex;
130130 Filter centralityFilter = (nabs(aod::cent::centFT0C) < cfgCutCentralityMax && nabs(aod::cent::centFT0C) > cfgCutCentralityMin);
@@ -152,12 +152,13 @@ struct highmasslambda {
152152 const AxisSpec thnAxisCentrality{configThnAxisCentrality, " Centrality (%)" };
153153 const AxisSpec thnAxisV2{configThnAxisV2, " V2" };
154154 const AxisSpec thnAxisSA{configThnAxisSA, " SA" };
155+ const AxisSpec thnAxisDecayLength{cnfigThnAxisDecayLength, " Decay Length" };
155156
156157 AxisSpec phiAxis = {500 , -6.28 , 6.28 , " phi" };
157158 AxisSpec resAxis = {400 , -2 , 2 , " Res" };
158159 AxisSpec centAxis = {8 , 0 , 80 , " V0M (%)" };
159- AxisSpec dcaAxis = {100 , 0.0 , 0.1 , " V0M (%)" };
160- AxisSpec dcatoPVAxis = {10 , 0.0 , 0.5 , " V0M (%)" };
160+ AxisSpec dcaAxis = {150 , 0.0 , 0.3 , " V0M (%)" };
161+ AxisSpec dcatoPVAxis = {30 , 0.0 , 0.3 , " V0M (%)" };
161162
162163 histos.add (" hInvMassKs0" , " hInvMassKs0" , kTH1F , {{200 , 0 .4f , 0 .6f }});
163164 histos.add (" hV0Dca" , " hV0Dca" , kTH1F , {{2000 , -1 .0f , 1 .0f }});
@@ -177,14 +178,16 @@ struct highmasslambda {
177178 histos.add (" hPsiTPC" , " PsiTPC" , kTH2F , {centAxis, phiAxis});
178179 histos.add (" hPsiTPCR" , " PsiTPCR" , kTH2F , {centAxis, phiAxis});
179180 histos.add (" hPsiTPCL" , " PsiTPCL" , kTH2F , {centAxis, phiAxis});
180-
181- histos.add (" hSparseV2SASameEvent_V2" , " hSparseV2SASameEvent_V2" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisV2, dcaAxis, dcatoPVAxis, thnAxisCentrality});
182- histos.add (" hSparseV2SAMixedEvent_V2" , " hSparseV2SAMixedEvent_V2" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisV2, dcaAxis, dcatoPVAxis, thnAxisCentrality});
183- histos.add (" hSparseV2SASameEventRotational_V2" , " hSparseV2SASameEventRotational_V2" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisV2, dcaAxis, dcatoPVAxis, thnAxisCentrality});
184- histos.add (" hSparseV2SASameEvent_V2_new" , " hSparseV2SASameEvent_V2_new" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisV2, dcaAxis, thnAxisCentrality});
185- histos.add (" hSparseV2SASameEventRotational_V2_new" , " hSparseV2SASameEventRotational_V2_new" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisV2, dcaAxis, thnAxisCentrality});
186- histos.add (" hSparseV2SAMixedEvent_V2_new" , " hSparseV2SAMixedEvent_V2_new" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisV2, dcaAxis, thnAxisCentrality});
187-
181+ if (cfgFillStrategy == 1 ) {
182+ histos.add (" hSparseV2SASameEvent_V2_new" , " hSparseV2SASameEvent_V2_new" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisV2, thnAxisDecayLength, thnAxisDecayLength, thnAxisCentrality});
183+ histos.add (" hSparseV2SASameEventRotational_V2_new" , " hSparseV2SASameEventRotational_V2_new" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisV2, thnAxisDecayLength, thnAxisDecayLength, thnAxisCentrality});
184+ histos.add (" hSparseV2SAMixedEvent_V2_new" , " hSparseV2SAMixedEvent_V2_new" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisV2, thnAxisDecayLength, thnAxisDecayLength, thnAxisCentrality});
185+ }
186+ if (cfgFillStrategy == 2 ) {
187+ histos.add (" hSparseV2SASameEvent_V2" , " hSparseV2SASameEvent_V2" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisV2, dcaAxis, dcatoPVAxis, thnAxisCentrality});
188+ histos.add (" hSparseV2SAMixedEvent_V2" , " hSparseV2SAMixedEvent_V2" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisV2, dcaAxis, dcatoPVAxis, thnAxisCentrality});
189+ histos.add (" hSparseV2SASameEventRotational_V2" , " hSparseV2SASameEventRotational_V2" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisV2, dcaAxis, dcatoPVAxis, thnAxisCentrality});
190+ }
188191 if (fillPolarization) {
189192 histos.add (" hSparseV2SASameEventplus_SA" , " hSparseV2SASameEventplus_SA" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisSA, thnAxisPhiminusPsi, thnAxisCentrality});
190193 histos.add (" hSparseV2SASameEventplus_SA_A0" , " hSparseV2SASameEventplus_SA_A0" , HistType::kTHnSparseF , {thnAxisInvMass, thnAxisPt, thnAxisSA, thnAxisPhiminusPsi, thnAxisCentrality});
@@ -425,10 +428,16 @@ struct highmasslambda {
425428 }
426429 auto phiminuspsi = GetPhiInRange (Lambdac.Phi () - psiFT0C);
427430 auto v2 = TMath::Cos (2.0 * phiminuspsi);
431+
428432 auto diffangle = Proton.Phi () - Lambdac.Phi ();
429433 auto decaylength = std::abs (track1.dcaXY () / TMath::Sin (diffangle));
430- histos.fill (HIST (" hSparseV2SASameEvent_V2" ), Lambdac.M (), Lambdac.Pt (), v2, std::abs (track1.dcaXY ()), std::abs (v0.dcav0topv ()), centrality);
431- histos.fill (HIST (" hSparseV2SASameEvent_V2_new" ), Lambdac.M (), Lambdac.Pt (), v2, decaylength, centrality);
434+
435+ if (cfgFillStrategy == 1 ) {
436+ histos.fill (HIST (" hSparseV2SASameEvent_V2_new" ), Lambdac.M (), Lambdac.Pt (), v2, decaylength, std::abs (v0.dcav0topv ()), centrality);
437+ }
438+ if (cfgFillStrategy == 2 ) {
439+ histos.fill (HIST (" hSparseV2SASameEvent_V2" ), Lambdac.M (), Lambdac.Pt (), v2, std::abs (track1.dcaXY ()), std::abs (v0.dcav0topv ()), centrality);
440+ }
432441 for (int nrotbkg = 1 ; nrotbkg < nBkgRotations; nrotbkg++) {
433442 auto anglestep = nrotbkg * (2.0 * TMath::Pi () / nBkgRotations);
434443 auto rotProtonPx = track1.px () * std::cos (anglestep) - track1.py () * std::sin (anglestep);
@@ -439,8 +448,12 @@ struct highmasslambda {
439448 auto v2Rot = TMath::Cos (2.0 * phiminuspsiRot);
440449 auto diffangleRot = ProtonRot.Phi () - LambdacRot.Phi ();
441450 auto decaylengthRot = std::abs (track1.dcaXY () / TMath::Sin (diffangleRot));
442- histos.fill (HIST (" hSparseV2SASameEventRotational_V2" ), LambdacRot.M (), LambdacRot.Pt (), v2Rot, std::abs (track1.dcaXY ()), std::abs (v0.dcav0topv ()), centrality);
443- histos.fill (HIST (" hSparseV2SASameEventRotational_V2_new" ), LambdacRot.M (), LambdacRot.Pt (), v2Rot, decaylengthRot, centrality);
451+ if (cfgFillStrategy == 1 ) {
452+ histos.fill (HIST (" hSparseV2SASameEventRotational_V2_new" ), LambdacRot.M (), LambdacRot.Pt (), v2Rot, decaylengthRot, std::abs (v0.dcav0topv ()), centrality);
453+ }
454+ if (cfgFillStrategy == 2 ) {
455+ histos.fill (HIST (" hSparseV2SASameEventRotational_V2" ), LambdacRot.M (), LambdacRot.Pt (), v2Rot, std::abs (track1.dcaXY ()), centrality);
456+ }
444457 }
445458 ROOT ::Math::Boost boost{Lambdac.BoostToCM ()};
446459 fourVecDauCM = boost (Kshort);
@@ -511,11 +524,14 @@ struct highmasslambda {
511524 }
512525 auto phiminuspsi = GetPhiInRange (Lambdac.Phi () - psiFT0C);
513526 auto v2 = TMath::Cos (2.0 * phiminuspsi);
514- histos.fill (HIST (" hSparseV2SAMixedEvent_V2" ), Lambdac.M (), Lambdac.Pt (), v2, std::abs (track1.dcaXY ()), std::abs (v0.dcav0topv ()), centrality);
527+ if (cfgFillStrategy == 2 ) {
528+ histos.fill (HIST (" hSparseV2SAMixedEvent_V2" ), Lambdac.M (), Lambdac.Pt (), v2, std::abs (track1.dcaXY ()), std::abs (v0.dcav0topv ()), centrality);
529+ }
515530 auto diffangle = Proton.Phi () - Lambdac.Phi ();
516531 auto decaylength = std::abs (track1.dcaXY () / TMath::Sin (diffangle));
517- histos.fill (HIST (" hSparseV2SAMixedEvent_V2_new" ), Lambdac.M (), Lambdac.Pt (), v2, decaylength, centrality);
518-
532+ if (cfgFillStrategy == 1 ) {
533+ histos.fill (HIST (" hSparseV2SAMixedEvent_V2_new" ), Lambdac.M (), Lambdac.Pt (), v2, decaylength, std::abs (v0.dcav0topv ()), centrality);
534+ }
519535 ROOT ::Math::Boost boost{Lambdac.BoostToCM ()};
520536 fourVecDauCM = boost (Kshort);
521537 threeVecDauCM = fourVecDauCM.Vect ();
0 commit comments