@@ -152,7 +152,7 @@ static constexpr std::string_view WhatDataType[] = {"Data/", "MC/"};
152152static constexpr std::string_view WhatCorrelationCase[] = {" TpcTpc/" , " TpcMft/" , " TpcFv0a/" , " MftFv0a/" , " TpcFt0a/" , " MftFt0a/" , " TpcFt0c/" , " Ft0aFt0c/" };
153153static constexpr std::string_view WhatParticles[] = {" ChPartChPart/" , " D0ChPart/" , " LcChPart/" };
154154static constexpr std::string_view WhatMultiplicityEstimator[] = {" multNTracksPV" , " multNumContrib" , " multFT0C" , " multFT0M" };
155- auto static constexpr kMinFt0cCell = 96 ;
155+ auto static constexpr MinFt0cCell = 96 ;
156156
157157static constexpr TrackSelectionFlags::flagtype TrackSelectionIts =
158158 TrackSelectionFlags::kITSNCls | TrackSelectionFlags::kITSChi2NDF |
@@ -247,7 +247,7 @@ struct HfTaskFlow {
247247 Configurable<float > mftMaxDCAz{" mftMaxDCAz" , 2 .0f , " Cut on dcaZ for MFT tracks" };
248248 Configurable<int > nClustersMftTrack{" nClustersMftTrack" , 5 , " Minimum number of clusters for the reconstruction of MFT tracks" };
249249 Configurable<float > ptMftTrackMax{" ptMftTrackMax" , 10 .0f , " max value of MFT tracks pT when used in cut function" };
250- Configurable<float > ptMftTrackMin{" ptMftTrackMin" , 0 .2f , " min value of MFT tracks pT when used in cut function" };
250+ Configurable<float > ptMftTrackMin{" ptMftTrackMin" , 0 .f , " min value of MFT tracks pT when used in cut function" };
251251 Configurable<bool > useMftPtCut{" useMftPtCut" , false , " if true, use the Mft pt function cut" };
252252 } configMft;
253253
@@ -327,22 +327,22 @@ struct HfTaskFlow {
327327
328328 struct : ConfigurableGroup {
329329 std::string prefix = " ConfigAxis_group" ;
330- ConfigurableAxis axisMass{" axisMass" , {120 , 1.5848 , 2.1848 }, " axis of invariant mass of candidates" };
330+ ConfigurableAxis axisMass{" axisMass" , {1 , 1.5848 , 2.1848 }, " axis of invariant mass of candidates" };
331331 ConfigurableAxis binsMixingMultiplicity{" binsMixingMultiplicity" , {VARIABLE_WIDTH, 0 , 5 , 10 , 20 , 30 , 40 , 50 , 100.1 }, " multiplicity bins for event mixing" };
332- ConfigurableAxis binsMixingVertex{" binsMixingVertex" , {14 , -7 , 7 }, " vertex bins for event mixing" };
333- ConfigurableAxis axisEtaEfficiency{" axisEtaEfficiency" , {20 , -1.0 , 1.0 }, " eta axis for efficiency histograms" };
332+ ConfigurableAxis binsMixingVertex{" binsMixingVertex" , {20 , -10 , 10 }, " vertex bins for event mixing" };
333+ ConfigurableAxis axisEtaEfficiency{" axisEtaEfficiency" , {1 , -1.0 , 1.0 }, " eta axis for efficiency histograms" };
334334 ConfigurableAxis axisEtaAssociated{" axisEtaAssociated" , {48 , -4 , -2 }, " eta axis for MFT histograms" };
335335 ConfigurableAxis axisEtaTrigger{" axisEtaTrigger" , {48 , -1 , 1 }, " eta axis for TPC histograms" };
336336 ConfigurableAxis axisDeltaPhi{" axisDeltaPhi" , {72 , -PIHalf, PIHalf * 3 }, " delta phi axis for histograms" };
337337 ConfigurableAxis axisDeltaEta{" axisDeltaEta" , {48 , -2.4 , 2.4 }, " delta eta axis for histograms" };
338338 ConfigurableAxis axisMultiplicity{" axisMultiplicity" , {VARIABLE_WIDTH, 0 , 5 , 10 , 20 , 30 , 40 , 50 , 100.1 }, " multiplicity axis for histograms" };
339339 ConfigurableAxis axisPhi{" axisPhi" , {72 , 0 , TwoPI}, " phi axis for histograms" };
340340 ConfigurableAxis axisPt{" axisPt" , {72 , 0 , 36 }, " pt axis for histograms" };
341- ConfigurableAxis axisPtAssoc{" axisPtAssoc" , {VARIABLE_WIDTH, 0.5 , 1.0 , 1.5 , 2.0 , 3.0 , 4.0 , 6.0 }, " pt associated axis for histograms" };
342- ConfigurableAxis axisPtEfficiency{" axisPtEfficiency" , {VARIABLE_WIDTH, 0.5 , 0.6 , 0.7 , 0.8 , 0.9 , 1.0 , 1.25 , 1.5 , 1.75 , 2.0 , 2.25 , 2.5 , 2.75 , 3.0 , 3.25 , 3.5 , 3.75 , 4.0 , 4.5 , 5.0 , 6.0 , 7.0 , 8.0 }, " pt axis for efficiency histograms" };
343- ConfigurableAxis axisPtTrigger{" axisPtTrigger" , {VARIABLE_WIDTH, 0.5 , 1.0 , 1.5 , 2.0 , 3.0 , 4.0 , 6.0 , 8.0 }, " pt trigger axis for histograms" };
344- ConfigurableAxis axisVertex{" axisVertex" , {14 , -7 , 7 }, " vertex axis for histograms" };
345- ConfigurableAxis axisVertexEfficiency{" axisVertexEfficiency" , {10 , -10 , 10 }, " vertex axis for efficiency histograms" };
341+ ConfigurableAxis axisPtAssoc{" axisPtAssoc" , {VARIABLE_WIDTH, 0.2 , 0. 5 , 1 , 1.5 , 2 , 3 , 4 , 6 , 10 }, " pt associated axis for histograms" };
342+ ConfigurableAxis axisPtEfficiency{" axisPtEfficiency" , {VARIABLE_WIDTH, 0.2 , 10 }, " pt axis for efficiency histograms" };
343+ ConfigurableAxis axisPtTrigger{" axisPtTrigger" , {VARIABLE_WIDTH, 0.2 , 0. 5 , 1 , 1.5 , 2 , 3 , 4 , 6 , 10 }, " pt trigger axis for histograms" };
344+ ConfigurableAxis axisVertex{" axisVertex" , {20 , -10 , 10 }, " vertex axis for histograms" };
345+ ConfigurableAxis axisVertexEfficiency{" axisVertexEfficiency" , {1 , -10 , 10 }, " vertex axis for efficiency histograms" };
346346 } configAxis;
347347
348348 HistogramRegistry registry{" registry" };
@@ -500,8 +500,7 @@ struct HfTaskFlow {
500500 // Initialization of histograms and CorrelationContainers for TpcMft cases
501501 // =========================
502502
503- // if (doprocessSameTpcMftChCh || doprocessSameTpcMftChChReassociated || doprocessSameTpcMftChChReassociated3d || doprocessSameTpcMftChChNonAmbiguous) {
504- if (doprocessSameTpcMftChCh || doprocessSameTpcMftChChReassociated || doprocessSameTpcMftChChNonAmbiguous) {
503+ if (doprocessSameTpcMftChCh || doprocessSameTpcMftChChReassociated || doprocessSameTpcMftChChReassociated3d || doprocessSameTpcMftChChNonAmbiguous) {
505504 addHistograms<Data, TpcMft, ChPartChPart>();
506505 addMftHistograms ();
507506
@@ -592,7 +591,7 @@ struct HfTaskFlow {
592591 // Initialization of histograms and CorrelationContainers for MftFt0a cases
593592 // =========================
594593
595- if (doprocessSameMftFt0aChCh || doprocessSameMftFt0aChChReassociated || doprocessSameMftFt0aChChNonAmbiguous) {
594+ if (doprocessSameMftFt0aChCh || doprocessSameMftFt0aChChReassociated || doprocessSameMftFt0aChChReassociated3d || doprocessSameMftFt0aChChNonAmbiguous) {
596595 addHistograms<Data, MftFt0a, ChPartChPart>();
597596 addMftHistograms ();
598597
@@ -784,7 +783,7 @@ struct HfTaskFlow {
784783 auto x = chPos.X () + (*offsetFT0)[i].getX ();
785784 auto y = chPos.Y () + (*offsetFT0)[i].getY ();
786785 auto z = chPos.Z () + (*offsetFT0)[i].getZ ();
787- if (chno >= kMinFt0cCell ) {
786+ if (chno >= MinFt0cCell ) {
788787 z = -z;
789788 }
790789 auto r = std::sqrt (x * x + y * y);
@@ -826,7 +825,7 @@ struct HfTaskFlow {
826825 void getChannel (TFT0s const & ft0, std::size_t const & iCh, int & id, int fitType)
827826 {
828827 if (fitType == isFT0C) {
829- id = ft0.channelC ()[iCh];
828+ id = ft0.channelC ()[iCh] + MinFt0cCell ;
830829 } else if (fitType == isFT0A) {
831830 id = ft0.channelA ()[iCh];
832831 } else {
@@ -1229,7 +1228,7 @@ struct HfTaskFlow {
12291228 }
12301229
12311230 // FILL QA PLOTS for trigger particle
1232- if (sameEvent && (cutAmbiguousTracks == false ) ) {
1231+ if (sameEvent) {
12331232 if constexpr (std::is_same_v<HfCandidatesSelD0, TTracksTrig>) {
12341233 fillTriggerQa<Data, TpcMft, D0ChPart>(multiplicity, eta1, phi1, pt1);
12351234 } else if constexpr (std::is_same_v<HfCandidatesSelLc, TTracksTrig>) {
@@ -1324,7 +1323,7 @@ struct HfTaskFlow {
13241323 }
13251324
13261325 // FILL QA PLOTS for associated particle
1327- if (sameEvent && (loopCounter == 1 ) && (!cutAmbiguousTracks) ) {
1326+ if (sameEvent && (loopCounter == 1 )) {
13281327 if constexpr (std::is_same_v<HfCandidatesSelD0, TTracksTrig>) {
13291328 fillAssociatedQa<Data, TpcMft, D0ChPart>(multiplicity, eta2, phi2);
13301329 registry.fill (HIST (" Data/Mft/hPtMft" ), pt2);
@@ -1964,7 +1963,6 @@ struct HfTaskFlow {
19641963 }
19651964 PROCESS_SWITCH (HfTaskFlow, processSameTpcMftChChReassociated, " DATA : Process same-event correlations for TPC-MFT h-h case reassociated" , false );
19661965
1967- /*
19681966 void processSameTpcMftChChReassociated3d (FilteredCollisionsWSelMult::iterator const & collision,
19691967 soa::SmallGroups<aod::BestCollisionsFwd3d> const & reassociatedMftTracks,
19701968 FilteredTracksWDcaSel const & tracks,
@@ -1989,7 +1987,6 @@ struct HfTaskFlow {
19891987 fillCorrelationsReassociatedMftTracks (sameEvent, CorrelationContainer::CFStep::kCFStepReconstructed , tracks, reassociatedMftTracks, multiplicity, collision.posZ (), true , false );
19901988 }
19911989 PROCESS_SWITCH (HfTaskFlow, processSameTpcMftChChReassociated3d, " DATA : Process same-event correlations for TPC-MFT h-h case 3d reassociated" , false );
1992- */
19931990
19941991 void processSameTpcMftChChNonAmbiguous (FilteredCollisionsWSelMult::iterator const & collision,
19951992 soa::SmallGroups<aod::BestCollisionsFwd> const & reassociatedMftTracks,
@@ -2425,6 +2422,29 @@ struct HfTaskFlow {
24252422 }
24262423 PROCESS_SWITCH (HfTaskFlow, processSameMftFt0aChChReassociated, " DATA : Process same-event correlations for MFT-FT0-A h-h case reassociated" , false );
24272424
2425+ void processSameMftFt0aChChReassociated3d (FilteredCollisionsWSelMult::iterator const & collision,
2426+ soa::SmallGroups<aod::BestCollisionsFwd3d> const & reassociatedMftTracks,
2427+ FilteredMftTracks const &,
2428+ aod::FT0s const & ft0as)
2429+ {
2430+ if (!(isAcceptedCollision (collision, true ))) {
2431+ return ;
2432+ }
2433+
2434+ if (collision.has_foundFT0 ()) {
2435+ const auto & ft0 = collision.foundFT0 ();
2436+ const auto multiplicity = getMultiplicityEstimator (collision, true );
2437+
2438+ if (multiplicity < configCollision.minMultiplicity || multiplicity > configCollision.maxMultiplicity ) {
2439+ return ;
2440+ }
2441+
2442+ sameEvent->fillEvent (multiplicity, CorrelationContainer::kCFStepReconstructed );
2443+ fillCorrelationsFITReassociatedMftTracks (sameEvent, CorrelationContainer::CFStep::kCFStepReconstructed , reassociatedMftTracks, ft0, ft0as, multiplicity, collision.posZ (), true , false , isFT0A);
2444+ }
2445+ }
2446+ PROCESS_SWITCH (HfTaskFlow, processSameMftFt0aChChReassociated3d, " DATA : Process same-event correlations for MFT-FT0-A h-h case reassociated 3d" , false );
2447+
24282448 void processSameMftFt0aChChNonAmbiguous (FilteredCollisionsWSelMult::iterator const & collision,
24292449 soa::SmallGroups<aod::BestCollisionsFwd> const & reassociatedMftTracks,
24302450 FilteredMftTracks const &,
0 commit comments