@@ -62,6 +62,7 @@ struct FlowZdcTask {
6262 Configurable<float > maxZem{" maxZem" , 3099.5 , " Max ZEM signal" };
6363 // for ZDC info and analysis
6464 Configurable<int > nBinsAmp{" nBinsAmp" , 1025 , " nbinsAmp" };
65+ Configurable<int > nBinsCent{" nBinsCent" , 90 , " nBinsCent" };
6566 Configurable<float > maxZn{" maxZn" , 125.5 , " Max ZN signal" };
6667 Configurable<float > vtxRange{" vtxRange" , 10 .0f , " Vertex Z range to consider" };
6768 Configurable<float > etaRange{" etaRange" , 1 .0f , " Eta range to consider" };
@@ -76,6 +77,7 @@ struct FlowZdcTask {
7677 Configurable<int > nBinsZP{" nBinsZP" , 160 , " N bins ZP" };
7778 Configurable<float > minNch{" minNch" , 0 , " Min Nch (|eta|<0.8)" };
7879 Configurable<float > maxNch{" maxNch" , 2500 , " Max Nch (|eta|<0.8)" };
80+ Configurable<float > oneNeutron{" oneNeutron" , 1.0 , " one neutron, energy or integer" };
7981 Configurable<int > nBinsTDC{" nBinsTDC" , 150 , " nbinsTDC" };
8082 Configurable<float > minTdc{" minTdc" , -15.0 , " minimum TDC" };
8183 Configurable<float > maxTdc{" maxTdc" , 15.0 , " maximum TDC" };
@@ -95,6 +97,7 @@ struct FlowZdcTask {
9597 Configurable<bool > applyEff{" applyEff" , true , " Apply track-by-track efficiency correction" };
9698 Configurable<bool > applyFD{" applyFD" , false , " Apply track-by-track feed down correction" };
9799 Configurable<bool > correctNch{" correctNch" , true , " Correct also Nch" };
100+ Configurable<bool > isOneNeutronFound{" isOneNeutronFound" , true , " Require at least 1 neutron in ZNA/ZNC to fill ZPA/ZPC" };
98101
99102 Configurable<float > nSigmaNchCut{" nSigmaNchCut" , 1 ., " nSigma Nch selection" };
100103 Configurable<double > minNchSel{" minNchSel" , 5 ., " min Nch Selection" };
@@ -305,6 +308,10 @@ struct FlowZdcTask {
305308 histos.add (" ZNAVsNch" , " ;#it{N}_{ch} (|#eta|<0.8);ZNA;" , kTH2F , {{{nBinsNch, minNch, maxNch}, {nBinsZDC, minNch, maxZn}}});
306309 histos.add (" ZNVsNch" , " ;#it{N}_{ch} (|#eta|<0.8);ZNA+ZNC;" , kTH2F , {{{nBinsNch, minNch, maxNch}, {nBinsZDC, minNch, maxZn}}});
307310 histos.add (" ZNDifVsNch" , " ;#it{N}_{ch} (|#eta|<0.8);ZNA-ZNC;" , kTH2F , {{{nBinsNch, minNch, maxNch}, {100 , -50 ., 50 .}}});
311+ histos.add (" ZPAvsCent" , " ;centFT0C;ZPA" , kTH2F , {{{axisCent}, {nBinsZDC, -0.5 , maxZp}}});
312+ histos.add (" ZPCvsCent" , " ;centFT0C;ZPC" , kTH2F , {{{axisCent}, {nBinsZDC, -0.5 , maxZp}}});
313+ histos.add (" pZPAvsFT0Ccent" , " ;FT0C centrality;ZPA Amplitude" , kTProfile , {{nBinsCent, minT0CcentCut, maxT0CcentCut}});
314+ histos.add (" pZPCvsFT0Ccent" , " ;FT0C centrality;ZPC Amplitude" , kTProfile , {{nBinsCent, minT0CcentCut, maxT0CcentCut}});
308315 }
309316
310317 ccdb->setURL (" http://alice-ccdb.cern.ch" );
@@ -403,6 +410,7 @@ struct FlowZdcTask {
403410 void processQA (ColEvSels::iterator const & collision, BCsRun3 const & /* bcs*/ , aod::Zdcs const & /* zdcsData*/ , aod::FV0As const & /* fv0as*/ , aod::FT0s const & /* ft0s*/ , TheFilteredTracks const & tracks)
404411 {
405412 const auto & foundBC = collision.foundBC_as <BCsRun3>();
413+ const auto cent = collision.centFT0C ();
406414 if (!isEventSelected (collision)) {
407415 return ;
408416 }
@@ -533,39 +541,56 @@ struct FlowZdcTask {
533541 }
534542 histos.fill (HIST (" zPos" ), collision.posZ ());
535543 histos.fill (HIST (" T0Ccent" ), collision.centFT0C ());
536-
537544 histos.fill (HIST (" ZNCcvsZNCsum" ), sumZNC / cfgCollisionEnergy, zdc.energyCommonZNC () / cfgCollisionEnergy);
538545 histos.fill (HIST (" ZNAcvsZNAsum" ), sumZNA / cfgCollisionEnergy, zdc.energyCommonZNA () / cfgCollisionEnergy);
539546 histos.fill (HIST (" ZPCcvsZPCsum" ), sumZPC / cfgCollisionEnergy, zdc.energyCommonZPC () / cfgCollisionEnergy);
540547 histos.fill (HIST (" ZPAcvsZPAsum" ), sumZPA / cfgCollisionEnergy, zdc.energyCommonZPA () / cfgCollisionEnergy);
541-
542548 histos.fill (HIST (" GlbTracks" ), glbTracks);
549+
550+ // Neutron ZDC
543551 histos.fill (HIST (" ZNA" ), znA);
544552 histos.fill (HIST (" ZNC" ), znC);
545- histos.fill (HIST (" ZPA" ), zpA);
546- histos.fill (HIST (" ZPC" ), zpC);
547553 histos.fill (HIST (" ZNASector" ), sumZNA / cfgCollisionEnergy);
548554 histos.fill (HIST (" ZNCSector" ), sumZNC / cfgCollisionEnergy);
549- histos.fill (HIST (" ZPASector" ), sumZPA / cfgCollisionEnergy);
550- histos.fill (HIST (" ZPCSector" ), sumZPC / cfgCollisionEnergy);
551555 histos.fill (HIST (" ZN" ), znA + znC);
552- histos.fill (HIST (" ZNAVsZNC" ), znC, znA);
553- histos.fill (HIST (" ZNAVsZPA" ), zpA, znA);
554- histos.fill (HIST (" ZNCVsZPC" ), zpC, znC);
555- histos.fill (HIST (" ZPAVsZPC" ), zpC, zpA);
556556 histos.fill (HIST (" ZNVsZEM" ), sumZEMs, sumZNs);
557557 histos.fill (HIST (" ZNCVstdc" ), tZNC, znC);
558558 histos.fill (HIST (" ZNAVstdc" ), tZNA, znA);
559559 histos.fill (HIST (" ZPCVstdc" ), tZPC, zpC);
560- histos.fill (HIST (" ZPAVstdc" ), tZPA, zpA);
561- histos.fill (HIST (" ZEM1Vstdc" ), tZEM1, aZEM1);
562- histos.fill (HIST (" ZEM2Vstdc" ), tZEM2, aZEM2);
563- histos.fill (HIST (" debunch" ), tZDCdif, tZDCsum);
564-
565560 histos.fill (HIST (" ZNVsFT0A" ), aT0A / 100 ., sumZNs);
566561 histos.fill (HIST (" ZNVsFT0C" ), aT0C / 100 ., sumZNs);
567562 histos.fill (HIST (" ZNVsFT0M" ), (aT0A + aT0C) / 100 ., sumZNs);
568563
564+ // Proton ZDC
565+ if (!isOneNeutronFound || znA >= oneNeutron) {
566+ histos.fill (HIST (" ZPA" ), zpA);
567+ histos.fill (HIST (" ZPASector" ), sumZPA / cfgCollisionEnergy);
568+ histos.fill (HIST (" ZPAVstdc" ), tZPA, zpA);
569+ histos.fill (HIST (" ZPAvsCent" ), cent, zpA);
570+ if (std::isfinite (zpA) && !std::isnan (zpA) &&
571+ cent >= minT0CcentCut && cent < maxT0CcentCut) {
572+ histos.fill (HIST (" pZPAvsFT0Ccent" ), cent, zpA);
573+ }
574+ }
575+ if (!isOneNeutronFound || znC >= oneNeutron) {
576+ histos.fill (HIST (" ZPC" ), zpC);
577+ histos.fill (HIST (" ZPCSector" ), sumZPC / cfgCollisionEnergy);
578+ histos.fill (HIST (" ZPCvsCent" ), cent, zpC);
579+ if (std::isfinite (zpC) && !std::isnan (zpC) &&
580+ cent >= minT0CcentCut && cent < maxT0CcentCut) {
581+ histos.fill (HIST (" pZPCvsFT0Ccent" ), cent, zpC);
582+ }
583+ }
584+
585+ // ZDC Correlations
586+ histos.fill (HIST (" ZNAVsZNC" ), znC, znA);
587+ histos.fill (HIST (" ZNAVsZPA" ), zpA, znA);
588+ histos.fill (HIST (" ZNCVsZPC" ), zpC, znC);
589+ histos.fill (HIST (" ZPAVsZPC" ), zpC, zpA);
590+ histos.fill (HIST (" ZEM1Vstdc" ), tZEM1, aZEM1);
591+ histos.fill (HIST (" ZEM2Vstdc" ), tZEM2, aZEM2);
592+ histos.fill (HIST (" debunch" ), tZDCdif, tZDCsum);
593+
569594 if (sumZNs > znBasedCut) {
570595 return ;
571596 }
0 commit comments