@@ -158,32 +158,35 @@ struct LambdaCorrTableProducer {
158158
159159 // Tracks
160160 Configurable<float > cTrackMinPt{" cTrackMinPt" , 0.2 , " p_{T} minimum" };
161- Configurable<float > cTrackMaxPt{" cTrackMaxPt" , 4 .0 , " p_{T} minimum" };
161+ Configurable<float > cTrackMaxPt{" cTrackMaxPt" , 999 .0 , " p_{T} minimum" };
162162 Configurable<float > cTrackEtaCut{" cTrackEtaCut" , 0.8 , " Pseudorapidity cut" };
163163 Configurable<int > cMinTpcCrossedRows{" cMinTpcCrossedRows" , 70 , " min crossed rows" };
164164 Configurable<double > cTpcNsigmaCut{" cTpcNsigmaCut" , 2.0 , " TPC NSigma Selection Cut" };
165165 Configurable<double > cTrackMinDcaXY{" cTrackMinDcaXY" , 0.05 , " Minimum DcaXY of Daughter Tracks" };
166+ Configurable<bool > cIsGlobalTrackWoDca{" cIsGlobalTrackWoDca" , true , " Check for Global Track" };
166167
167168 // V0s
168- Configurable<double > cMinV0DcaDaughters{" cMinV0DcaDaughters" , 1.4 , " min DCA between V0 daughters" };
169+ Configurable<double > cMinV0DcaDaughters{" cMinV0DcaDaughters" , 0 ., " Minimum DCA between V0 daughters" };
170+ Configurable<double > cMaxV0DcaDaughters{" cMaxV0DcaDaughters" , 1.4 , " Maximum DCA between V0 daughters" };
169171 Configurable<double > cMinDcaPosToPV{" cMinDcaPosToPV" , 0.1 , " Minimum V0 Positive Track DCAr cut to PV" };
170172 Configurable<double > cMinDcaNegToPV{" cMinDcaNegToPV" , 0.1 , " Minimum V0 Negative Track DCAr cut to PV" };
171- Configurable<double > cMinDcaV0ToPV{" cMinDcaV0ToPV" , 3.0 , " Minimum DCA V0 to PV" };
173+ Configurable<double > cMinDcaV0ToPV{" cMinDcaV0ToPV" , 0.0 , " Minimum DCA V0 to PV" };
174+ Configurable<double > cMaxDcaV0ToPV{" cMaxDcaV0ToPV" , 999.0 , " Maximum DCA V0 to PV" };
172175 Configurable<double > cMinV0TransRadius{" cMinV0TransRadius" , 0.2 , " Minimum V0 radius from PV" };
173- Configurable<double > cMaxV0TransRadius{" cMaxV0TransRadius" , 200 .0 , " Maximum V0 radius from PV" };
176+ Configurable<double > cMaxV0TransRadius{" cMaxV0TransRadius" , 100 .0 , " Maximum V0 radius from PV" };
174177 Configurable<double > cMinV0CTau{" cMinV0CTau" , 0.0 , " Minimum ctau" };
175178 Configurable<double > cMaxV0CTau{" cMaxV0CTau" , 30.0 , " Maximum ctau" };
176179 Configurable<double > cMinV0CosPA{" cMinV0CosPA" , 0.998 , " Minimum V0 CosPA to PV" };
177- Configurable<double > cLambdaMassWindow{" cLambdaMassWindow" , 0.007 , " Mass Window to select Lambda" };
178- Configurable<double > cKshortRejMassWindow{" cKshortRejMassWindow" , 0.005 , " Reject K0Short Candidates" };
180+ Configurable<double > cLambdaMassWindow{" cLambdaMassWindow" , 0.005 , " Mass Window to select Lambda" };
181+ Configurable<double > cKshortRejMassWindow{" cKshortRejMassWindow" , 0.017 , " Reject K0Short Candidates" };
179182 Configurable<bool > cKshortRejFlag{" cKshortRejFlag" , false , " K0short Mass Rej Flag" };
180183 Configurable<double > cArmPodCutValue{" cArmPodCutValue" , 0.5 , " Armentros-Podolanski Slope Parameter" };
181184 Configurable<bool > cArmPodCutFlag{" cArmPodCutFlag" , true , " Armentros-Podolanski Cut Flag" };
182185
183186 // V0s kinmatic acceptance
184187 Configurable<float > cMinV0Pt{" cMinV0Pt" , 0.8 , " Minimum V0 pT" };
185188 Configurable<float > cMaxV0Pt{" cMaxV0Pt" , 3.2 , " Minimum V0 pT" };
186- Configurable<float > cMaxV0Rap{" cMaxV0Rap" , 0.8 , " |rap| cut" };
189+ Configurable<float > cMaxV0Rap{" cMaxV0Rap" , 0.6 , " |rap| cut" };
187190
188191 // V0s MC
189192 Configurable<bool > cHasMcFlag{" cHasMcFlag" , true , " Has Mc Tag" };
@@ -218,7 +221,7 @@ struct LambdaCorrTableProducer {
218221 ccdb->setCaching (true );
219222
220223 // initialize axis specifications
221- const AxisSpec axisCol (20 , 0 , 20 , " " );
224+ const AxisSpec axisCol (25 , 0 , 25 , " " );
222225 const AxisSpec axisCent (105 , 0 , 105 , " FT0M (%)" );
223226 const AxisSpec axisMult (10 , 0 , 10 , " N_{#Lambda}" );
224227 const AxisSpec axisVz (220 , -11 , 11 , " V_{z} (cm)" );
@@ -308,7 +311,7 @@ struct LambdaCorrTableProducer {
308311 template <typename C>
309312 bool selCollision (C const & col)
310313 {
311- if (col.posZ () < cMinZVtx || col.posZ () >= cMaxZVtx) {
314+ if (col.posZ () <= cMinZVtx || col.posZ () >= cMaxZVtx) {
312315 return false ;
313316 }
314317
@@ -346,19 +349,23 @@ struct LambdaCorrTableProducer {
346349 template <typename T>
347350 bool selDaughterTracks (T const & track)
348351 {
349- if (track.pt () < cTrackMinPt || track.pt () > cTrackMaxPt) {
352+ if (track.pt () <= cTrackMinPt || track.pt () >= cTrackMaxPt) {
350353 return false ;
351354 }
352355
353356 if (std::abs (track.eta ()) >= cTrackEtaCut) {
354357 return false ;
355358 }
356359
357- if (track.tpcNClsCrossedRows () < cMinTpcCrossedRows) {
360+ if (track.tpcNClsCrossedRows () <= cMinTpcCrossedRows) {
358361 return false ;
359362 }
360363
361- if (std::abs (track.dcaXY ()) < cTrackMinDcaXY) {
364+ if (std::abs (track.dcaXY ()) <= cTrackMinDcaXY) {
365+ return false ;
366+ }
367+
368+ if (cIsGlobalTrackWoDca && !track.isGlobalTrackWoDCA ()) {
362369 return false ;
363370 }
364371
@@ -377,7 +384,7 @@ struct LambdaCorrTableProducer {
377384
378385 histos.fill (HIST (" Tracks/h1f_tracks_info" ), 2.5 );
379386
380- if (v0.dcaV0daughters () > cMinV0DcaDaughters) {
387+ if (v0.dcaV0daughters () <= cMinV0DcaDaughters || v0. dcaV0daughters () >= cMaxV0DcaDaughters ) {
381388 return false ;
382389 }
383390
@@ -389,22 +396,22 @@ struct LambdaCorrTableProducer {
389396 return false ;
390397 }
391398
392- if (v0.dcav0topv () > cMinDcaV0ToPV) {
399+ if (v0.dcav0topv () <= cMinDcaV0ToPV || v0. dcav0topv () >= cMaxDcaV0ToPV ) {
393400 return false ;
394401 }
395402
396- if (( v0.v0radius () > cMaxV0TransRadius) || ( v0.v0radius () < cMinV0TransRadius) ) {
403+ if (v0.v0radius () <= cMinV0TransRadius || v0.v0radius () >= cMaxV0TransRadius ) {
397404 return false ;
398405 }
399406
400407 // ctau
401408 float ctau = v0.distovertotmom (col.posX (), col.posY (), col.posZ ()) * MassLambda0;
402- if (ctau < cMinV0CTau || ctau > cMaxV0CTau) {
409+ if (ctau <= cMinV0CTau || ctau >= cMaxV0CTau) {
403410 return false ;
404411 }
405412
406413 // cosine of pointing angle
407- if (v0.v0cosPA () < cMinV0CosPA) {
414+ if (v0.v0cosPA () <= cMinV0CosPA) {
408415 return false ;
409416 }
410417
@@ -581,12 +588,16 @@ struct LambdaCorrTableProducer {
581588 float retVal = 0 .;
582589
583590 if (std::string (obj->ClassName ()) == " TH1F" ) {
591+ histos.fill (HIST (" Tracks/h1f_tracks_info" ), 21.5 );
584592 retVal = hist->GetBinContent (hist->FindBin (v0.pt ()));
585593 } else if (std::string (obj->ClassName ()) == " TH2F" ) {
594+ histos.fill (HIST (" Tracks/h1f_tracks_info" ), 22.5 );
586595 retVal = hist->GetBinContent (hist->FindBin (v0.pt (), v0.yLambda ()));
587596 } else if (std::string (obj->ClassName ()) == " TH3F" ) {
597+ histos.fill (HIST (" Tracks/h1f_tracks_info" ), 23.5 );
588598 retVal = hist->GetBinContent (hist->FindBin (v0.pt (), v0.yLambda (), col.posZ ()));
589599 } else {
600+ histos.fill (HIST (" Tracks/h1f_tracks_info" ), 24.5 );
590601 LOGF (warning, " CCDB OBJECT IS NOT A HISTOGRAM !!!" );
591602 retVal = 1 .;
592603 }
@@ -674,7 +685,7 @@ struct LambdaCorrTableProducer {
674685 // check for corresponding MCGen Particle
675686 if constexpr (dmc == kMC ) {
676687 histos.fill (HIST (" Tracks/h1f_tracks_info" ), 0.5 );
677- if (!v0.has_mcParticle ()) {
688+ if (!v0.has_mcParticle () || !v0. template posTrack_as <T>(). has_mcParticle () || !v0. template negTrack_as <T>(). has_mcParticle () ) {
678689 continue ;
679690 }
680691 }
@@ -757,7 +768,7 @@ struct LambdaCorrTableProducer {
757768 histos.fill (HIST (" McGen/h1f_collisions_info" ), 1.5 );
758769
759770 // apply collision cuts
760- if (mcCollision.posZ () < cMinZVtx || mcCollision.posZ () > cMaxZVtx) {
771+ if (mcCollision.posZ () <= cMinZVtx || mcCollision.posZ () >= cMaxZVtx) {
761772 return ;
762773 }
763774
@@ -800,6 +811,16 @@ struct LambdaCorrTableProducer {
800811 continue ;
801812 }
802813
814+ if (v0type == kLambda ) {
815+ histos.fill (HIST (" McGen/h1f_lambda_daughter_PDG" ), daughterPDGs[0 ], mcpart.pt ());
816+ histos.fill (HIST (" McGen/h1f_lambda_daughter_PDG" ), daughterPDGs[1 ], mcpart.pt ());
817+ histos.fill (HIST (" McGen/h1f_lambda_daughter_PDG" ), mcpart.pdgCode (), mcpart.pt ());
818+ } else {
819+ histos.fill (HIST (" McGen/h1f_antilambda_daughter_PDG" ), daughterPDGs[0 ], mcpart.pt ());
820+ histos.fill (HIST (" McGen/h1f_antilambda_daughter_PDG" ), daughterPDGs[1 ], mcpart.pt ());
821+ histos.fill (HIST (" McGen/h1f_antilambda_daughter_PDG" ), mcpart.pdgCode (), mcpart.pt ());
822+ }
823+
803824 lambdaMCGenTrackTable (lambdaMCGenCollisionTable.lastIndex (), mcpart.px (), mcpart.py (), mcpart.pz (),
804825 mcpart.pt (), mcpart.eta (), mcpart.phi (), mcpart.y (), RecoDecay::m (mcpart.p (), mcpart.e ()),
805826 daughterIDs[0 ], daughterIDs[1 ], (int8_t )v0type, -999 ., -999 ., 1 .);
@@ -854,7 +875,7 @@ struct LambdaR2Correlation {
854875 const AxisSpec axisCent (105 , 0 , 105 , " FT0M (%)" );
855876 const AxisSpec axisMult (10 , 0 , 10 , " N_{#Lambda}" );
856877 const AxisSpec axisMass (100 , 1.06 , 1.16 , " Inv Mass (GeV/#it{c}^{2})" );
857- const AxisSpec axisPt (64 , 0.2 , 3.4 , " p_{T} (GeV/#it{c})" );
878+ const AxisSpec axisPt (32 , 0.2 , 3.4 , " p_{T} (GeV/#it{c})" );
858879 const AxisSpec axisEta (24 , -1.2 , 1.2 , " #eta" );
859880 const AxisSpec axisCPA (100 , 0.99 , 1.0 , " cos(#theta_{PA})" );
860881 const AxisSpec axisDcaDau (75 , 0 ., 1.5 , " Daug DCA (#sigma)" );
@@ -900,12 +921,14 @@ struct LambdaR2Correlation {
900921
901922 // single and two particle densities
902923 // 1D Histograms
924+ histos.add (" Reco/h1d_n1_mass_LaP" , " #rho_{1}^{#Lambda}" , kTH1D , {axisMass});
925+ histos.add (" Reco/h1d_n1_mass_LaM" , " #rho_{1}^{#bar{#Lambda}}" , kTH1D , {axisMass});
903926 histos.add (" Reco/h1d_n1_pt_LaP" , " #rho_{1}^{#Lambda}" , kTH1D , {axisPt});
904927 histos.add (" Reco/h1d_n1_pt_LaM" , " #rho_{1}^{#bar{#Lambda}}" , kTH1D , {axisPt});
905928 histos.add (" Reco/h1d_n1_eta_LaP" , " #rho_{1}^{#Lambda}" , kTH1D , {axisEta});
906929 histos.add (" Reco/h1d_n1_eta_LaM" , " #rho_{1}^{#bar{#Lambda}}" , kTH1D , {axisEta});
907- histos.add (" Reco/h1d_n1_rap_LaP" , " #rho_{1}^{#Lambda}" , kTH1D , {axisEta });
908- histos.add (" Reco/h1d_n1_rap_LaM" , " #rho_{1}^{#bar{#Lambda}}" , kTH1D , {axisEta });
930+ histos.add (" Reco/h1d_n1_rap_LaP" , " #rho_{1}^{#Lambda}" , kTH1D , {axisRap });
931+ histos.add (" Reco/h1d_n1_rap_LaM" , " #rho_{1}^{#bar{#Lambda}}" , kTH1D , {axisRap });
909932 histos.add (" Reco/h1d_n1_phi_LaP" , " #rho_{1}^{#Lambda}" , kTH1D , {axisPhi});
910933 histos.add (" Reco/h1d_n1_phi_LaM" , " #rho_{1}^{#bar{#Lambda}}" , kTH1D , {axisPhi});
911934
@@ -1041,6 +1064,7 @@ struct LambdaR2Correlation {
10411064 ++ntrk3;
10421065
10431066 // QA Plots
1067+ histos.fill (HIST (SubDirRecGen[rec_gen]) + HIST (" h1d_n1_mass_" ) + HIST (SubDirHist[part]), track.mass ());
10441068 histos.fill (HIST (SubDirRecGen[rec_gen]) + HIST (" h1d_n1_pt_" ) + HIST (SubDirHist[part]), track.pt (), track.corrFact ());
10451069 histos.fill (HIST (SubDirRecGen[rec_gen]) + HIST (" h1d_n1_eta_" ) + HIST (SubDirHist[part]), track.eta (), track.corrFact ());
10461070 histos.fill (HIST (SubDirRecGen[rec_gen]) + HIST (" h1d_n1_phi_" ) + HIST (SubDirHist[part]), track.phi (), track.corrFact ());
0 commit comments