@@ -42,7 +42,7 @@ using namespace o2;
4242using namespace o2 ::framework;
4343using namespace o2 ::framework::expressions;
4444using CollisionsFull = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0As, aod::CentFT0Cs, aod::CentFT0Ms, aod::CentFV0As>;
45- using TracksFull = soa::Join<aod::TracksIU, aod::TracksExtra, aod::TracksCovIU, o2::aod::TracksDCA, aod::pidTPCPi, aod::pidTPCPr, aod::pidTPCDe, aod::pidTPCTr, aod::pidTPCHe, aod::pidTPCAl, aod::pidTOFmass>;
45+ using TracksFull = soa::Join<aod::TracksIU, aod::TracksExtra, aod::TracksCovIU, o2::aod::TracksDCA, aod::TrackSelectionExtension, aod:: pidTPCPi, aod::pidTPCPr, aod::pidTPCDe, aod::pidTPCTr, aod::pidTPCHe, aod::pidTPCAl, aod::pidTOFmass>;
4646// ---------------------------------------------------------------------------------------------------------------------------------
4747namespace
4848{
@@ -97,12 +97,16 @@ struct NucleitpcPbPb {
9797 Configurable<bool > cfgRigidityCorrection{" cfgRigidityCorrection" , false , " apply rigidity correction" };
9898 Configurable<float > cfgCutEta{" cfgCutEta" , 0 .9f , " Eta range for tracks" };
9999 Configurable<bool > cfgUsePVcontributors{" cfgUsePVcontributors" , true , " use tracks that are PV contibutors" };
100+ Configurable<bool > cfgITSrequire{" cfgITSrequire" , true , " Additional cut on ITS require" };
101+ Configurable<bool > cfgTPCrequire{" cfgTPCrequire" , true , " Additional cut on TPC require" };
102+ Configurable<bool > cfgPassedITSRefit{" cfgPassedITSRefit" , true , " Require ITS refit" };
103+ Configurable<bool > cfgPassedTPCRefit{" cfgPassedTPCRefit" , true , " Require TPC refit" };
100104 Configurable<LabeledArray<double >> cfgBetheBlochParams{" cfgBetheBlochParams" , {betheBlochDefault[0 ], nParticles, nBetheParams, particleNames, betheBlochParNames}, " TPC Bethe-Bloch parameterisation for light nuclei" };
101105 Configurable<LabeledArray<double >> cfgTrackPIDsettings{" cfgTrackPIDsettings" , {trackPIDsettings[0 ], nParticles, nTrkSettings, particleNames, trackPIDsettingsNames}, " track selection and PID criteria" };
102106 Configurable<bool > cfgFillDeDxWithoutCut{" cfgFillDeDxWithoutCut" , false , " Fill without cut beth bloch" };
103107 Configurable<bool > cfgFillDeDxWithCut{" cfgFillDeDxWithCut" , false , " Fill with cut beth bloch" };
104- Configurable<bool > cfgFillnsigma{" cfgFillnsigma" , false , " Fill n-sigma histograms" };
105- Configurable<bool > cfgFillmass{" cfgFillmass" , true , " Fill mass histograms" };
108+ Configurable<bool > cfgFillnsigma{" cfgFillnsigma" , true , " Fill n-sigma histograms" };
109+ Configurable<bool > cfgFillmass{" cfgFillmass" , false , " Fill mass histograms" };
106110 Configurable<float > centcut{" centcut" , 80 .0f , " centrality cut" };
107111 Configurable<float > cfgCutRapidity{" cfgCutRapidity" , 0 .5f , " Rapidity range" };
108112 Configurable<float > cfgZvertex{" cfgZvertex" , 10 , " Min Z Vertex" };
@@ -193,23 +197,21 @@ struct NucleitpcPbPb {
193197 for (const auto & trackId : tracksByColl) {
194198 const auto & track = tracks.rawIteratorAt (trackId.trackId ());
195199 filldedx (track, nParticles);
200+ if (!track.isPVContributor () && cfgUsePVcontributors)
201+ continue ;
202+ if (!track.hasITS () && cfgITSrequire)
203+ continue ;
204+ if (!track.hasTPC () && cfgTPCrequire)
205+ continue ;
206+ if (!track.passedITSRefit () && cfgPassedITSRefit)
207+ continue ;
208+ if (!track.passedTPCRefit () && cfgPassedTPCRefit)
209+ continue ;
196210 if (std::abs (track.eta ()) > cfgCutEta)
197211 continue ;
198- histos.fill (HIST (" histeta" ), track.eta ());
199212 for (size_t i = 0 ; i < primaryParticles.size (); i++) {
200213 if (std::abs (getRapidity (track, i)) > cfgCutRapidity)
201214 continue ;
202- bool insideDCAxy = (std::abs (track.dcaXY ()) <= (cfgTrackPIDsettings->get (i, " maxDcaXY" ) * (0 .0105f + 0 .0350f / std::pow (track.pt (), 1 .1f ))));
203- if (!(insideDCAxy) || std::abs (track.dcaZ ()) > cfgTrackPIDsettings->get (i, " maxDcaZ" ))
204- continue ;
205- if (track.sign () > 0 ) {
206- histos.fill (HIST (" histDcaZVsPtData_particle" ), track.pt (), track.dcaZ ());
207- histos.fill (HIST (" histDcaXYVsPtData_particle" ), track.pt (), track.dcaXY ());
208- }
209- if (track.sign () < 0 ) {
210- histos.fill (HIST (" histDcaZVsPtData_antiparticle" ), track.pt (), track.dcaZ ());
211- histos.fill (HIST (" histDcaXYVsPtData_antiparticle" ), track.pt (), track.dcaXY ());
212- }
213215 if (track.tpcNClsFound () < cfgTrackPIDsettings->get (i, " minTPCnCls" ))
214216 continue ;
215217 if (track.tpcChi2NCl () > cfgTrackPIDsettings->get (i, " maxTPCchi2" ))
@@ -231,7 +233,19 @@ struct NucleitpcPbPb {
231233 continue ;
232234 if (cfgTrackPIDsettings->get (i, " TOFrequiredabove" ) >= 0 && getRigidity (track) > cfgTrackPIDsettings->get (i, " TOFrequiredabove" ) && (track.mass () < cfgTrackPIDsettings->get (i, " minTOFmass" ) || track.mass () > cfgTrackPIDsettings->get (i, " maxTOFmass" )))
233235 continue ;
236+ bool insideDCAxy = (std::abs (track.dcaXY ()) <= (cfgTrackPIDsettings->get (i, " maxDcaXY" ) * (0 .0105f + 0 .0350f / std::pow (track.pt (), 1 .1f ))));
237+ if (!(insideDCAxy) || std::abs (track.dcaZ ()) > cfgTrackPIDsettings->get (i, " maxDcaZ" ))
238+ continue ;
239+ if (track.sign () > 0 ) {
240+ histos.fill (HIST (" histDcaZVsPtData_particle" ), track.pt (), track.dcaZ ());
241+ histos.fill (HIST (" histDcaXYVsPtData_particle" ), track.pt (), track.dcaXY ());
242+ }
243+ if (track.sign () < 0 ) {
244+ histos.fill (HIST (" histDcaZVsPtData_antiparticle" ), track.pt (), track.dcaZ ());
245+ histos.fill (HIST (" histDcaXYVsPtData_antiparticle" ), track.pt (), track.dcaXY ());
246+ }
234247 }
248+ histos.fill (HIST (" histeta" ), track.eta ());
235249 } // track loop
236250 }
237251 // ----------------------------------------------------------------------------------------------------------------
0 commit comments