@@ -59,7 +59,6 @@ struct FlowZdcTask {
5959 // for ZDC info and analysis
6060 Configurable<int > nBinsAmp{" nBinsAmp" , 1025 , " nbinsAmp" };
6161 Configurable<int > nBinsADC{" nBinsADC" , 1000 , " nbinsADC" };
62- Configurable<int > nBinsCent{" nBinsCent" , 90 , " nBinsCent" };
6362 Configurable<float > maxZn{" maxZn" , 125.5 , " Max ZN signal" };
6463 // configs for process QA
6564 Configurable<int > nBinsNch{" nBinsNch" , 2501 , " N bins Nch (|eta|<0.8)" };
@@ -87,12 +86,10 @@ struct FlowZdcTask {
8786 Configurable<bool > isNoCollInRofStandard{" isNoCollInRofStandard" , false , " isNoCollInRofStandard?" };
8887 Configurable<bool > isNoHighMultCollInPrevRof{" isNoHighMultCollInPrevRof" , true , " isNoHighMultCollInPrevRof?" };
8988 Configurable<bool > isNoCollInTimeRangeNarrow{" isNoCollInTimeRangeNarrow" , false , " isNoCollInTimeRangeNarrow?" };
90- Configurable<bool > isOccupancyCut{" isOccupancyCut" , true , " Occupancy cut?" };
89+ Configurable<bool > isOccupancyCut{" isOccupancyCut" , false , " Occupancy cut?" };
9190 Configurable<bool > isApplyFT0CbasedOccupancy{" isApplyFT0CbasedOccupancy" , false , " T0C Occu cut?" };
9291 Configurable<bool > isTDCcut{" isTDCcut" , false , " Use TDC cut?" };
9392 Configurable<bool > useMidRapNchSel{" useMidRapNchSel" , false , " Use mid-rapidity Nch selection" };
94- Configurable<bool > applyEff{" applyEff" , true , " Apply track-by-track efficiency correction" };
95- Configurable<bool > correctNch{" correctNch" , true , " Correct also Nch" };
9693
9794 Configurable<float > nSigmaNchCut{" nSigmaNchCut" , 1 ., " nSigma Nch selection" };
9895 Configurable<double > minNchSel{" minNchSel" , 5 ., " min Nch Selection" };
@@ -104,7 +101,6 @@ struct FlowZdcTask {
104101 Configurable<float > maxPtSpectra{" maxPtSpectra" , 50 ., " maximum pt of the tracks" };
105102 Configurable<float > zemCut{" zemCut" , 100 ., " ZEM cut" };
106103 // axis configs
107- ConfigurableAxis axisMultiplicity{" axisMultiplicity" , {3500 , 0 , 3500 }, " centrality axis for histograms" };
108104 ConfigurableAxis axisZN{" axisZN" , {5000 , 0 , 500 }, " axisZN" };
109105 ConfigurableAxis axisZP{" axisZP" , {5000 , 0 , 500 }, " axisZP" };
110106 ConfigurableAxis axisCent{" axisCent" , {10 , 0 , 100 }, " axisCent" };
@@ -167,26 +163,14 @@ struct FlowZdcTask {
167163 const AxisSpec axisZpos{48 , -12 ., 12 ., " Vtx_{z} (cm)" };
168164 const AxisSpec axisEta{40 , -1 ., +1 ., " #eta" };
169165 const AxisSpec axisPt{binsPt, " #it{p}_{T} (GeV/#it{c})" };
170- AxisSpec axisVtxZ{40 , -20 , 20 , " Vertex Z" , " VzAxis" };
171166
172167 // create histograms
173168 histos.add (" hEventCounter" , " Event counter" , kTH1F , {axisEvent});
174169 histos.add (" zPos" , " ;;Entries;" , kTH1F , {axisZpos});
175- histos.add (" hZNvsFT0Ccent" ,
176- " ZN Energy vs FT0C Centrality" ,
177- kTH2F ,
178- {axisCent, axisZN});
179- histos.add (" hZPvsFT0Ccent" ,
180- " ZP Energy vs FT0C Centrality;Centrality [%];ZP Energy" ,
181- kTH2F ,
182- {axisCent, axisZP});
183170 histos.add (" hNchvsNPV" , " ;NPVTracks (|#eta|<1);N_{ch} (|#eta|<0.8);" ,
184171 kTH2F ,
185172 {{{nBinsNch, -0.5 , maxNch}, {nBinsNch, -0.5 , maxNch}}});
186173 histos.add (" T0Ccent" , " ;;Entries" , kTH1F , {axisCent});
187- histos.add (" NchUncorrected" , " ;#it{N}_{ch} (|#eta| < 0.8);Entries;" , kTH1F , {{300 , 0 ., 3000 .}});
188- histos.add (" ZNamp" , " ;ZNA+ZNC;Entries;" , kTH1F , {{nBinsZDC, -0.5 , maxZn}});
189- histos.add (" ExcludedEvtVsFT0M" , " ;T0A+T0C (#times 1/100, -3.3 < #eta < -2.1 and 3.5 < #eta < 4.9);Entries;" , kTH1F , {{nBinsAmpFT0, 0 ., maxAmpFT0}});
190174 histos.add (" ExcludedEvtVsNch" , " ;#it{N}_{ch} (|#eta|<0.8);Entries;" , kTH1F , {{300 , 0 , 3000 }});
191175 histos.add (" Nch" , " ;#it{N}_{ch} (|#eta| < 0.8, Corrected);" , kTH1F , {{nBinsNch, minNch, maxNch}});
192176 histos.add (" EtaVsPhi" , " ;#eta;#varphi" , kTH2F , {{{axisEta}, {100 , -0.1 * PI, +2.1 * PI}}});
@@ -214,29 +198,6 @@ struct FlowZdcTask {
214198 xAxis->SetBinLabel (15 , " has T0?" );
215199 xAxis->SetBinLabel (16 , " Within TDC cut?" );
216200
217- if (doprocessZdcCollAssoc) { // Check if the process function for ZDCCollAssoc is enabled
218- histos.add (" ZNAcoll" , " ZNAcoll; ZNA amplitude; Entries" , {HistType::kTH1F , {{nBinsAmp, -0.5 , maxZn}}});
219- histos.add (" ZNCcoll" , " ZNCcoll; ZNC amplitude; Entries" , {HistType::kTH1F , {{nBinsAmp, -0.5 , maxZn}}});
220- histos.add (" ZPCcoll" , " ZPCcoll; ZPC amplitude; Entries" , {HistType::kTH1F , {{nBinsAmp, -0.5 , maxZn}}});
221- histos.add (" ZPAcoll" , " ZPAcoll; ZPA amplitude; Entries" , {HistType::kTH1F , {{nBinsAmp, -0.5 , maxZn}}});
222- histos.add (" ZEM1coll" , " ZEM1coll; ZEM1 amplitude; Entries" , {HistType::kTH1F , {{nBinsAmp, -0.5 , maxZem}}});
223- histos.add (" ZEM2coll" , " ZEM2coll; ZEM2 amplitude; Entries" , {HistType::kTH1F , {{nBinsAmp, -0.5 , maxZem}}});
224- histos.add (" ZNvsZEMcoll" , " ZNvsZEMcoll; ZEM; ZNA+ZNC" , {HistType::kTH2F , {{{nBinsAmp, -0.5 , maxZem}, {nBinsAmp, -0.5 , 2 . * maxZn}}}});
225- histos.add (" ZNAvsZNCcoll" , " ZNAvsZNCcoll; ZNC; ZNA" , {HistType::kTH2F , {{{nBinsAmp, -0.5 , maxZn}, {nBinsAmp, -0.5 , maxZn}}}});
226- histos.add (" ZDC_energy_vs_ZEM" , " ZDCvsZEM; ZEM; ZNA+ZNC+ZPA+ZPC" , {HistType::kTH2F , {{{nBinsAmp, -0.5 , maxZem}, {nBinsAmp, -0.5 , 2 . * maxZn}}}});
227- // common energies information for ZDC
228- histos.add (" ZNCenergy" , " common sum ZN energy side c" , kTH1F , {axisZN});
229- histos.add (" ZNAenergy" , " common sum ZN energy side a" , kTH1F , {axisZN});
230- histos.add (" ZPCenergy" , " common sum ZP energy side c" , kTH1F , {axisZP});
231- histos.add (" ZPAenergy" , " common sum ZP energy side a" , kTH1F , {axisZP});
232- histos.add (" ZNenergy" , " common sum zn (a + c sides) energy" , kTH1F , {axisZN});
233- histos.add (" ZPenergy" , " common sum zp energy (a + c sides)" , kTH1F , {axisZP});
234- histos.add (" hZNvsFT0CAmp" , " ZN Energy vs FT0C Amplitude" , kTH2F , {{nBinsAmpFT0, 0 ., maxAmpFT0}, axisZN});
235- histos.add (" hZPvsFT0CAmp" , " ZP Energy vs FT0C Amplitude" , kTH2F , {{nBinsAmpFT0, 0 ., maxAmpFT0}, axisZP});
236- histos.add (" hZNvsMult" , " ZN Energy vs Multiplicity" , kTH2F , {axisMultiplicity, axisZN});
237- histos.add (" hZPvsMult" , " ZP Energy vs Multiplicity" , kTH2F , {axisMultiplicity, axisZP});
238- }
239-
240201 if (doprocessQA) {
241202 histos.add (" ZNVsFT0A" , " ;T0A (#times 1/100);ZNA+ZNC Amplitude;" , kTH2F , {{{nBinsAmpFT0, 0 ., maxAmpFT0}, {nBinsZDC, -0.5 , maxZn}}});
242203 histos.add (" ZNVsFT0C" , " ;T0C (#times 1/100);ZNA+ZNC Amplitude;" , kTH2F , {{{nBinsAmpFT0, 0 ., maxAmpFT0}, {nBinsZDC, -0.5 , maxZn}}});
@@ -496,34 +457,52 @@ struct FlowZdcTask {
496457 histos.fill (HIST (" ZNA" ), znA);
497458 histos.fill (HIST (" ZNACommon" ), commonSumZna);
498459 histos.fill (HIST (" ZNASector" ), sumZNA);
460+ histos.fill (HIST (" ZNAVsFT0A" ), aT0A / 100 ., znA);
461+ histos.fill (HIST (" ZNAVsFT0C" ), aT0C / 100 ., znA);
462+ histos.fill (HIST (" ZNAVsFT0M" ), (aT0A + aT0C) / 100 ., znA);
499463 }
500464 if ((tZNC >= minTdcZn) && (tZNC <= maxTdcZn)) {
501465 histos.fill (HIST (" ZNC" ), znC);
502466 histos.fill (HIST (" ZNCCommon" ), commonSumZnc);
503467 histos.fill (HIST (" ZNCSector" ), sumZNC);
468+ histos.fill (HIST (" ZNCVsFT0A" ), aT0A / 100 ., znC);
469+ histos.fill (HIST (" ZNCVsFT0C" ), aT0C / 100 ., znC);
470+ histos.fill (HIST (" ZNCVsFT0M" ), (aT0A + aT0C) / 100 ., znC);
504471 }
505472 if ((tZPA >= minTdcZp) && (tZPA <= maxTdcZp)) {
506473 histos.fill (HIST (" ZPA" ), zpA);
507474 histos.fill (HIST (" ZPACommon" ), commonSumZpa);
508475 histos.fill (HIST (" ZPASector" ), sumZPA);
476+ histos.fill (HIST (" ZPAVsFT0A" ), aT0A / 100 ., zpA);
477+ histos.fill (HIST (" ZPAVsFT0C" ), aT0C / 100 ., zpA);
478+ histos.fill (HIST (" ZPAVsFT0M" ), (aT0A + aT0C) / 100 ., zpA);
509479 }
510480 if ((tZPC >= minTdcZp) && (tZPC <= maxTdcZp)) {
511481 histos.fill (HIST (" ZPC" ), zpC);
512482 histos.fill (HIST (" ZPCCommon" ), commonSumZpc);
513483 histos.fill (HIST (" ZPCSector" ), sumZPC);
484+ histos.fill (HIST (" ZPCVsFT0A" ), aT0A / 100 ., zpC);
485+ histos.fill (HIST (" ZPCVsFT0C" ), aT0C / 100 ., zpC);
486+ histos.fill (HIST (" ZPCVsFT0M" ), (aT0A + aT0C) / 100 ., zpC);
514487 }
515488 if (((tZNA >= minTdcZn) && (tZNA <= maxTdcZn)) && ((tZNC >= minTdcZn) && (tZNC <= maxTdcZn)))
516489 histos.fill (HIST (" ZNVsZEM" ), sumZEMs, sumZNs);
517490 if (((tZNA >= minTdcZn) && (tZNA <= maxTdcZn)) && ((tZNC >= minTdcZn) && (tZNC <= maxTdcZn))) {
518491 histos.fill (HIST (" ZNAVsZNC" ), znC, znA);
519492 histos.fill (HIST (" ZN" ), znA + znC);
493+ histos.fill (HIST (" ZNVsFT0C" ), aT0C / 100 ., znA + znC);
494+ histos.fill (HIST (" ZNVsFT0M" ), (aT0A + aT0C) / 100 ., znA + znC);
520495 }
496+ if (((tZPA >= minTdcZn) && (tZPA <= maxTdcZn)) && ((tZPC >= minTdcZn) && (tZPC <= maxTdcZn))) {
497+ histos.fill (HIST (" ZPAVsZPC" ), zpC, zpA);
498+ histos.fill (HIST (" ZPVsFT0A" ), aT0A / 100 ., zpA + zpC);
499+ histos.fill (HIST (" ZPVsFT0C" ), aT0C / 100 ., zpA + zpC);
500+ histos.fill (HIST (" ZPVsFT0M" ), (aT0A + aT0C) / 100 ., zpA + zpC);
501+ }
521502 if ((tZNA >= minTdcZn) && (tZNA <= maxTdcZn))
522503 histos.fill (HIST (" ZNAVsZPA" ), zpA, znA);
523504 if ((tZNC >= minTdcZn) && (tZNC <= maxTdcZn))
524505 histos.fill (HIST (" ZNCVsZPC" ), zpC, znC);
525- if (((tZPA >= minTdcZp) && (tZPA <= maxTdcZp)) && ((tZPC >= minTdcZp) && (tZPC <= maxTdcZp)))
526- histos.fill (HIST (" ZPAVsZPC" ), zpC, zpA);
527506 } else {
528507 histos.fill (HIST (" ZNA" ), znA);
529508 histos.fill (HIST (" ZNC" ), znC);
@@ -543,6 +522,23 @@ struct FlowZdcTask {
543522 histos.fill (HIST (" ZPCCommon" ), commonSumZpc);
544523 histos.fill (HIST (" ZPCSector" ), sumZPC);
545524 histos.fill (HIST (" ZN" ), znA + znC);
525+ histos.fill (HIST (" ZPVsFT0A" ), aT0A / 100 ., zpA + zpC);
526+ histos.fill (HIST (" ZPVsFT0C" ), aT0C / 100 ., zpA + zpC);
527+ histos.fill (HIST (" ZPVsFT0M" ), (aT0A + aT0C) / 100 ., zpA + zpC);
528+ histos.fill (HIST (" ZPAVsFT0A" ), aT0A / 100 ., zpA);
529+ histos.fill (HIST (" ZPAVsFT0C" ), aT0C / 100 ., zpA);
530+ histos.fill (HIST (" ZPAVsFT0M" ), (aT0A + aT0C) / 100 ., zpA);
531+ histos.fill (HIST (" ZNVsFT0C" ), aT0C / 100 ., znA + znC);
532+ histos.fill (HIST (" ZNVsFT0M" ), (aT0A + aT0C) / 100 ., znA + znC);
533+ histos.fill (HIST (" ZPCVsFT0A" ), aT0A / 100 ., zpC);
534+ histos.fill (HIST (" ZPCVsFT0C" ), aT0C / 100 ., zpC);
535+ histos.fill (HIST (" ZPCVsFT0M" ), (aT0A + aT0C) / 100 ., zpC);
536+ histos.fill (HIST (" ZNCVsFT0A" ), aT0A / 100 ., znC);
537+ histos.fill (HIST (" ZNCVsFT0C" ), aT0C / 100 ., znC);
538+ histos.fill (HIST (" ZNCVsFT0M" ), (aT0A + aT0C) / 100 ., znC);
539+ histos.fill (HIST (" ZNAVsFT0A" ), aT0A / 100 ., znA);
540+ histos.fill (HIST (" ZNAVsFT0C" ), aT0C / 100 ., znA);
541+ histos.fill (HIST (" ZNAVsFT0M" ), (aT0A + aT0C) / 100 ., znA);
546542 }
547543 histos.fill (HIST (" ZEM1" ), aZEM1);
548544 histos.fill (HIST (" ZEM2" ), aZEM2);
@@ -625,23 +621,6 @@ struct FlowZdcTask {
625621 histos.fill (HIST (" GlbTracks" ), glbTracks);
626622
627623 if (sumZEMs > zemCut) {
628- histos.fill (HIST (" ZNVsFT0C" ), aT0C / 100 ., znA + znC);
629- histos.fill (HIST (" ZNVsFT0M" ), (aT0A + aT0C) / 100 ., znA + znC);
630- histos.fill (HIST (" ZPVsFT0A" ), aT0A / 100 ., zpA + zpC);
631- histos.fill (HIST (" ZPVsFT0C" ), aT0C / 100 ., zpA + zpC);
632- histos.fill (HIST (" ZPVsFT0M" ), (aT0A + aT0C) / 100 ., zpA + zpC);
633- histos.fill (HIST (" ZPAVsFT0A" ), aT0A / 100 ., zpA);
634- histos.fill (HIST (" ZPAVsFT0C" ), aT0C / 100 ., zpA);
635- histos.fill (HIST (" ZPAVsFT0M" ), (aT0A + aT0C) / 100 ., zpA);
636- histos.fill (HIST (" ZPCVsFT0A" ), aT0A / 100 ., zpC);
637- histos.fill (HIST (" ZPCVsFT0C" ), aT0C / 100 ., zpC);
638- histos.fill (HIST (" ZPCVsFT0M" ), (aT0A + aT0C) / 100 ., zpC);
639- histos.fill (HIST (" ZNCVsFT0A" ), aT0A / 100 ., znC);
640- histos.fill (HIST (" ZNCVsFT0C" ), aT0C / 100 ., znC);
641- histos.fill (HIST (" ZNCVsFT0M" ), (aT0A + aT0C) / 100 ., znC);
642- histos.fill (HIST (" ZNAVsFT0A" ), aT0A / 100 ., znA);
643- histos.fill (HIST (" ZNAVsFT0C" ), aT0C / 100 ., znA);
644- histos.fill (HIST (" ZNAVsFT0M" ), (aT0A + aT0C) / 100 ., znA);
645624 histos.fill (HIST (" ZPAvsCent" ), cent, zpA);
646625 histos.fill (HIST (" ZPCvsCent" ), cent, zpC);
647626 if (std::isfinite (zpA) && !std::isnan (zpA) && cent >= minT0CcentCut && cent < maxT0CcentCut && glbTracks >= minNch && glbTracks < maxNch) {
@@ -682,178 +661,6 @@ struct FlowZdcTask {
682661 }
683662 }
684663
685- void processZdcCollAssoc (
686- AodCollisions::iterator const & collision,
687- AodTracks const & tracks,
688- BCsRun3 const & /* bcs*/ ,
689- aod::Zdcs const & /* zdcs*/ ,
690- aod::FT0s const & /* ft0s*/ )
691- {
692- if (!isEventSelected (collision)) {
693- return ;
694- }
695- const auto & foundBC = collision.foundBC_as <BCsRun3>();
696- if (!foundBC.has_zdc ()) {
697- return ;
698- }
699- int nTot = tracks.size ();
700- double ft0aAmp = 0 ;
701- double ft0cAmp = 0 ;
702- if (collision.has_foundFT0 ()) {
703- auto ft0 = collision.foundFT0 ();
704- for (const auto & amplitude : ft0.amplitudeA ()) {
705- ft0aAmp += amplitude;
706- }
707- for (const auto & amplitude : ft0.amplitudeC ()) {
708- ft0cAmp += amplitude;
709- }
710- }
711- const double normT0M{(ft0aAmp + ft0aAmp) / 100 .};
712-
713- const auto & zdcread = foundBC.zdc ();
714- const auto cent = collision.centFT0C ();
715-
716- // ZDC data and histogram filling
717- float znA = zdcread.amplitudeZNA () / cfgCollisionEnergy;
718- float znC = zdcread.amplitudeZNC () / cfgCollisionEnergy;
719- float zpA = zdcread.amplitudeZPA () / cfgCollisionEnergy;
720- float zpC = zdcread.amplitudeZPC () / cfgCollisionEnergy;
721- float tZNA{zdcread.timeZNA ()};
722- float tZNC{zdcread.timeZNC ()};
723- float tZPA{zdcread.timeZPA ()};
724- float tZPC{zdcread.timeZPC ()};
725- float tZDCdif{tZNC + tZPC - tZNA - tZPA};
726- float tZDCsum{tZNC + tZPC + tZNA + tZPA};
727- float sumZNC = ((zdcread.energySectorZNC ())[0 ] + (zdcread.energySectorZNC ())[1 ] + (zdcread.energySectorZNC ())[2 ] + (zdcread.energySectorZNC ())[3 ]) / cfgCollisionEnergy;
728- float sumZNA = ((zdcread.energySectorZNA ())[0 ] + (zdcread.energySectorZNA ())[1 ] + (zdcread.energySectorZNA ())[2 ] + (zdcread.energySectorZNA ())[3 ]) / cfgCollisionEnergy;
729- float sumZPC = ((zdcread.energySectorZPC ())[0 ] + (zdcread.energySectorZPC ())[1 ] + (zdcread.energySectorZPC ())[2 ] + (zdcread.energySectorZPC ())[3 ]) / cfgCollisionEnergy;
730- float sumZPA = ((zdcread.energySectorZPA ())[0 ] + (zdcread.energySectorZPA ())[1 ] + (zdcread.energySectorZPA ())[2 ] + (zdcread.energySectorZPA ())[3 ]) / cfgCollisionEnergy;
731- float sumZDC = sumZPA + sumZPC + sumZNA + sumZNC;
732- float sumZEM = zdcread.amplitudeZEM1 () + zdcread.amplitudeZEM2 ();
733- float sumZNs{znA + znC};
734- float sumZPs{zpA + zpC};
735- // TDC cut
736- if (isTDCcut) {
737- if (std::sqrt (std::pow (tZDCdif, 2 .) + std::pow (tZDCsum, 2 .)) > tdcCut) {
738- return ;
739- }
740- histos.fill (HIST (" hEventCounter" ), EvCutLabel::Tdc);
741- }
742- // common energies
743- float commonSumZnc = zdcread.energyCommonZNC () / cfgCollisionEnergy;
744- float commonSumZna = zdcread.energyCommonZNA () / cfgCollisionEnergy;
745- float commonSumZpc = zdcread.energyCommonZPC () / cfgCollisionEnergy;
746- float commonSumZpa = zdcread.energyCommonZPA () / cfgCollisionEnergy;
747- float sumZN = (sumZNC) + (sumZNA);
748- float sumZP = (sumZPC) + (sumZPA);
749-
750- int itsTracks = 0 , glbTracks = 0 ;
751- for (const auto & track : tracks) {
752- // Track Selection
753- if (track.hasITS ()) {
754- itsTracks++;
755- }
756- if (!track.isGlobalTrack ()) {
757- continue ;
758- }
759- if ((track.pt () < minPt) || (track.pt () > maxPt)) {
760- continue ;
761- }
762- histos.fill (HIST (" ZposVsEta" ), collision.posZ (), track.eta ());
763- histos.fill (HIST (" EtaVsPhi" ), track.eta (), track.phi ());
764- histos.fill (HIST (" dcaXYvspT" ), track.dcaXY (), track.pt ());
765- glbTracks++;
766- }
767- bool skipEvent{false };
768- if (useMidRapNchSel) {
769- auto hMeanNch = ccdb->getForTimeStamp <TH1F>(paTHmeanNch.value , foundBC.timestamp ());
770- auto hSigmaNch = ccdb->getForTimeStamp <TH1F>(paTHsigmaNch.value , foundBC.timestamp ());
771- if (!hMeanNch) {
772- LOGF (info, " hMeanNch NOT LOADED!" );
773- return ;
774- }
775- if (!hSigmaNch) {
776- LOGF (info, " hSigmaNch NOT LOADED!" );
777- return ;
778- }
779- const int binT0M{hMeanNch->FindBin (normT0M)};
780- const double meanNch{hMeanNch->GetBinContent (binT0M)};
781- const double sigmaNch{hSigmaNch->GetBinContent (binT0M)};
782- const double nSigmaSelection{nSigmaNchCut * sigmaNch};
783- const double diffMeanNch{meanNch - glbTracks};
784- if (!(std::abs (diffMeanNch) < nSigmaSelection)) {
785- histos.fill (HIST (" ExcludedEvtVsFT0M" ), normT0M);
786- histos.fill (HIST (" ExcludedEvtVsNch" ), glbTracks);
787- } else {
788- skipEvent = true ;
789- }
790- }
791- // Skip event based on number of Nch sigmas
792- if (!skipEvent) {
793- return ;
794- }
795- std::vector<float > vecOneOverEff;
796- auto efficiency = ccdb->getForTimeStamp <TH1F>(paTHEff.value , foundBC.timestamp ());
797- if (!efficiency) {
798- return ;
799- }
800- // Calculates the Nch multiplicity
801- for (const auto & track : tracks) {
802- // Track Selection
803- if (!track.isGlobalTrack ()) {
804- continue ;
805- }
806- if ((track.pt () < minPt) || (track.pt () > maxPt)) {
807- continue ;
808- }
809-
810- float pt{track.pt ()};
811- float effValue{1.0 };
812- if (applyEff) {
813- effValue = efficiency->GetBinContent (efficiency->FindBin (pt));
814- }
815- if (effValue > 0 .) {
816- vecOneOverEff.emplace_back (1 . / effValue);
817- }
818- }
819-
820- double nchMult{0 .};
821- nchMult = std::accumulate (vecOneOverEff.begin (), vecOneOverEff.end (), 0 );
822- if (!applyEff)
823- nchMult = static_cast <double >(glbTracks);
824- if (applyEff && !correctNch)
825- nchMult = static_cast <double >(glbTracks);
826- if (nchMult < minNchSel) {
827- return ;
828- }
829- histos.get <TH2>(HIST (" ZNvsZEMcoll" ))->Fill (zdcread.amplitudeZEM1 () + zdcread.amplitudeZEM2 (), zdcread.amplitudeZNA () + zdcread.amplitudeZNC ());
830- histos.get <TH2>(HIST (" ZNAvsZNCcoll" ))->Fill (zdcread.amplitudeZNC (), zdcread.amplitudeZNA ());
831- histos.get <TH1>(HIST (" ZEM1coll" ))->Fill (zdcread.amplitudeZEM1 ());
832- histos.get <TH1>(HIST (" ZEM2coll" ))->Fill (zdcread.amplitudeZEM2 ());
833- histos.fill (HIST (" ZNenergy" ), sumZN);
834- histos.fill (HIST (" ZPenergy" ), sumZP);
835- histos.fill (HIST (" ZNCenergy" ), commonSumZnc);
836- histos.fill (HIST (" ZNAenergy" ), commonSumZna);
837- histos.fill (HIST (" ZPAenergy" ), commonSumZpa);
838- histos.fill (HIST (" ZPCenergy" ), commonSumZpc);
839- histos.fill (HIST (" hZNvsFT0Ccent" ), cent, sumZN);
840- histos.fill (HIST (" hZPvsFT0Ccent" ), cent, sumZP);
841- histos.fill (HIST (" hZNvsFT0CAmp" ), ft0cAmp, sumZN);
842- histos.fill (HIST (" hZPvsFT0CAmp" ), ft0cAmp, sumZP);
843- histos.fill (HIST (" hZNvsMult" ), nTot, sumZN);
844- histos.fill (HIST (" hZPvsMult" ), nTot, sumZP);
845- histos.fill (HIST (" Nch" ), nchMult);
846- histos.fill (HIST (" ZNamp" ), sumZNs);
847- histos.fill (HIST (" NchVsZN" ), nchMult, sumZNs);
848- histos.fill (HIST (" NchVsZP" ), nchMult, sumZPs);
849- histos.fill (HIST (" NITSTacksVsZN" ), itsTracks, sumZNs);
850- histos.fill (HIST (" NITSTacksVsZP" ), itsTracks, sumZPs);
851- histos.fill (HIST (" T0MVsZN" ), normT0M, sumZNs);
852- histos.fill (HIST (" T0MVsZP" ), normT0M, sumZPs);
853- histos.fill (HIST (" NchUncorrected" ), glbTracks);
854- histos.get <TH2>(HIST (" ZDC_energy_vs_ZEM" ))->Fill (sumZEM, sumZDC);
855- }
856-
857664 void processZdc (
858665 ColEvents const & cols,
859666 BCsRun3 const & /* bcs*/ ,
@@ -929,7 +736,6 @@ struct FlowZdcTask {
929736 }
930737
931738 PROCESS_SWITCH (FlowZdcTask, processQA, " Process QA" , true );
932- PROCESS_SWITCH (FlowZdcTask, processZdcCollAssoc, " Processing ZDC w. collision association" , false );
933739 PROCESS_SWITCH (FlowZdcTask, processZdc, " Process ZDC without corrections or associations" , true );
934740
935741}; // end of struct function
@@ -938,4 +744,4 @@ WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
938744{
939745 return WorkflowSpec{
940746 adaptAnalysisTask<FlowZdcTask>(cfgc)};
941- }
747+ }
0 commit comments