@@ -95,21 +95,14 @@ struct lambdaspincorrelation {
9595 Configurable<double > cMaxV0DCA{" cMaxV0DCA" , 1.2 , " Maximum V0 DCA to PV" };
9696 Configurable<float > cMinV0DCAPr{" cMinV0DCAPr" , 0.05 , " Minimum V0 daughters DCA to PV for Pr" };
9797 Configurable<float > cMinV0DCAPi{" cMinV0DCAPi" , 0.05 , " Minimum V0 daughters DCA to PV for Pi" };
98+ Configurable<float > cMaxV0LifeTime{" cMaxV0LifeTime" , 50 , " Maximum V0 life time" };
9899
99100 // config for V0 daughters
100101 Configurable<float > confDaughEta{" confDaughEta" , 0 .8f , " V0 Daugh sel: max eta" };
101102 Configurable<float > cfgDaughPrPt{" cfgDaughPrPt" , 0.2 , " minimum daughter proton pt" };
102103 Configurable<float > cfgDaughPiPt{" cfgDaughPiPt" , 0.2 , " minimum daughter pion pt" };
103104 Configurable<float > confDaughTPCnclsMin{" confDaughTPCnclsMin" , 50 .f , " V0 Daugh sel: Min. nCls TPC" };
104-
105- struct : ConfigurableGroup {
106- std::string prefix = " v0Configuration" ;
107- Configurable<int > cfgDaughTPCCrossedRows{" cfgDaughTPCCrossedRows" , 70 , " Min. TPC crossed rows for V0 daughters" };
108-
109- Configurable<float > cMaxV0LifeTime{" cMaxV0LifeTime" , 30 , " Maximum V0 life time" };
110- Configurable<float > confDaughPIDCuts{" confDaughPIDCuts" , 4 , " PID selections for Lambda daughters" };
111-
112- } v0Configurations;
105+ Configurable<float > confDaughPIDCuts{" confDaughPIDCuts" , 3 , " PID selections for Lambda daughters" };
113106
114107 Configurable<int > iMNbins{" iMNbins" , 50 , " Number of bins in invariant mass" };
115108 Configurable<float > lbinIM{" lbinIM" , 1.09 , " lower bin value in IM histograms" };
@@ -156,10 +149,9 @@ struct lambdaspincorrelation {
156149 if (tranRad > confV0TranRadV0Max) {
157150 return false ;
158151 }
159- if (std::abs (ctauLambda) > v0Configurations. cMaxV0LifeTime ) {
152+ if (std::abs (ctauLambda) > cMaxV0LifeTime) {
160153 return false ;
161154 }
162-
163155 // if (std::abs(candidate.yLambda()) > confV0Rap) {
164156 // return false;
165157 // }
@@ -170,9 +162,10 @@ struct lambdaspincorrelation {
170162 bool isSelectedV0Daughter (V0 const & candidate, T const & track, int pid)
171163 {
172164 const auto tpcNClsF = track.tpcNClsFound ();
165+ const auto ncr = 70 ;
173166 const auto ncrfc = 0.8 ;
174167
175- if (track.tpcNClsCrossedRows () < v0Configurations. cfgDaughTPCCrossedRows ) {
168+ if (track.tpcNClsCrossedRows () < ncr ) {
176169 return false ;
177170 }
178171 if (tpcNClsF < confDaughTPCnclsMin) {
@@ -182,10 +175,10 @@ struct lambdaspincorrelation {
182175 return false ;
183176 }
184177
185- if (pid == 0 && std::abs (track.tpcNSigmaPr ()) > v0Configurations. confDaughPIDCuts ) {
178+ if (pid == 0 && std::abs (track.tpcNSigmaPr ()) > confDaughPIDCuts) {
186179 return false ;
187180 }
188- if (pid == 1 && std::abs (track.tpcNSigmaPi ()) > v0Configurations. confDaughPIDCuts ) {
181+ if (pid == 1 && std::abs (track.tpcNSigmaPi ()) > confDaughPIDCuts) {
189182 return false ;
190183 }
191184 if (pid == 0 && (candidate.positivept () < cfgDaughPrPt || candidate.negativept () < cfgDaughPiPt)) {
@@ -306,6 +299,13 @@ struct lambdaspincorrelation {
306299 std::vector<int > negativeIndex = {};
307300 std::vector<float > dcaBetweenDaughter = {};
308301 std::vector<float > dcaV0ToPV = {};
302+ std::vector<float > tpcPosNClsCrossedRows = {};
303+ std::vector<float > tpcNegNClsCrossedRows = {};
304+ std::vector<float > ctau = {};
305+ std::vector<float > tpcNsigmaPos = {};
306+ std::vector<float > tpcNsigmaNeg = {};
307+ std::vector<float > mK0Short = {};
308+
309309 int numbV0 = 0 ;
310310 // LOGF(info, "event collisions: (%d)", collision.index());
311311 auto centrality = collision.centFT0C ();
@@ -357,13 +357,26 @@ struct lambdaspincorrelation {
357357 if (aLambdaTag) {
358358 histos.fill (HIST (" hV0Info" ), 3.5 );
359359 }
360+
361+ float ctauLambda = v0.distovertotmom (collision.posX (), collision.posY (), collision.posZ ()) * (o2::constants::physics::MassLambda);
362+
360363 // LOGF(info, "v0 index2: (%d)", v0.index());
361364 auto postrack1 = v0.template posTrack_as <AllTrackCandidates>();
362365 auto negtrack1 = v0.template negTrack_as <AllTrackCandidates>();
363366 positiveIndex.push_back (postrack1.globalIndex ());
364367 negativeIndex.push_back (negtrack1.globalIndex ());
365368 v0Cospa.push_back (v0.v0cosPA ());
366369 dcaV0ToPV.push_back (std::abs (v0.dcav0topv ()));
370+
371+ tpcPosNClsCrossedRows.push_back (postrack1.tpcNClsCrossedRows ());
372+ tpcNegNClsCrossedRows.push_back (negtrack1.tpcNClsCrossedRows ());
373+ ctau.push_back (ctauLambda);
374+
375+ tpcNsigmaPos.push_back (std::abs (postrack1.tpcNSigmaPr ()));
376+ tpcNsigmaNeg.push_back (std::abs (negtrack1.tpcNSigmaPi ()));
377+
378+ mK0Short .push_back (v0.mK0Short ());
379+
367380 v0Radius.push_back (v0.v0radius ());
368381 dcaPositive.push_back (std::abs (v0.dcapostopv ()));
369382 dcaNegative.push_back (std::abs (v0.dcanegtopv ()));
@@ -400,7 +413,7 @@ struct lambdaspincorrelation {
400413 lambdaDummy = lambdaMother.at (i5);
401414 protonDummy = protonDaughter.at (i5);
402415 pionDummy = pionDaughter.at (i5);
403- lambdaPair (indexEvent, v0Status.at (i5), doubleStatus.at (i5), v0Cospa.at (i5), v0Radius.at (i5), dcaPositive.at (i5), dcaNegative.at (i5), dcaBetweenDaughter.at (i5), lambdaDummy.Pt (), lambdaDummy.Eta (), lambdaDummy.Phi (), lambdaDummy.M (), protonDummy.Pt (), protonDummy.Eta (), protonDummy.Phi (), positiveIndex.at (i5), negativeIndex.at (i5), dcaV0ToPV.at (i5));
416+ lambdaPair (indexEvent, v0Status.at (i5), doubleStatus.at (i5), v0Cospa.at (i5), v0Radius.at (i5), dcaPositive.at (i5), dcaNegative.at (i5), dcaBetweenDaughter.at (i5), lambdaDummy.Pt (), lambdaDummy.Eta (), lambdaDummy.Phi (), lambdaDummy.M (), protonDummy.Pt (), protonDummy.Eta (), protonDummy.Phi (), positiveIndex.at (i5), negativeIndex.at (i5), dcaV0ToPV.at (i5), tpcPosNClsCrossedRows. at (i5), tpcNegNClsCrossedRows. at (i5), ctau. at (i5), tpcNsigmaPos. at (i5), tpcNsigmaNeg. at (i5), mK0Short . at (i5) );
404417 }
405418 }
406419 }
0 commit comments