Skip to content

Commit a294752

Browse files
abylinkinalibuild
andauthored
ZDC Reduced tables added (#4627)
* ZDC Reduced tables added * Please consider the following formatting changes --------- Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent afc5c7d commit a294752

File tree

1 file changed

+42
-11
lines changed

1 file changed

+42
-11
lines changed

PWGUD/TableProducer/SGCandProducer.cxx

Lines changed: 42 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@
99
// granted to it by virtue of its status as an Intergovernmental Organization
1010
// or submit itself to any jurisdiction.
1111

12+
#include "Framework/AnalysisDataModel.h"
13+
#include "Common/CCDB/EventSelectionParams.h"
14+
#include "Common/DataModel/EventSelection.h"
15+
#include "CommonConstants/LHCConstants.h"
16+
#include "DataFormatsFIT/Triggers.h"
17+
1218
#include "Framework/runDataProcessing.h"
1319
#include "Framework/AnalysisTask.h"
1420
#include "PWGUD/DataModel/UDTables.h"
@@ -29,10 +35,12 @@ struct SGCandProducer {
2935

3036
// data tables
3137
Produces<aod::SGCollisions> outputSGCollisions;
38+
// Produces<aod::ZDCCollisions> outputZDCCollisions;
3239
Produces<aod::UDCollisions> outputCollisions;
3340
Produces<aod::UDCollisionsSels> outputCollisionsSels;
3441
Produces<aod::UDCollsLabels> outputCollsLabels;
3542
Produces<aod::UDZdcs> outputZdcs;
43+
Produces<o2::aod::UDZdcsReduced> udZdcsReduced;
3644
Produces<aod::UDTracks> outputTracks;
3745
Produces<aod::UDTracksCov> outputTracksCov;
3846
Produces<aod::UDTracksDCA> outputTracksDCA;
@@ -51,7 +59,8 @@ struct SGCandProducer {
5159
// data inputs
5260
using CCs = soa::Join<aod::Collisions, aod::EvSels>;
5361
using CC = CCs::iterator;
54-
using BCs = soa::Join<aod::BCsWithTimestamps, aod::BcSels, aod::Run3MatchedToBCSparse>;
62+
// using BCs = soa::Join<aod::BCsWithTimestamps, aod::BcSels, aod::Run3MatchedToBCSparse>;
63+
using BCs = soa::Join<aod::BCs, aod::Timestamps, aod::BcSels, aod::Run3MatchedToBCSparse>;
5564
using BC = BCs::iterator;
5665
using TCs = soa::Join<aod::Tracks, /*aod::TracksCov,*/ aod::TracksExtra, aod::TracksDCA, aod::TrackSelection,
5766
aod::pidTPCFullEl, aod::pidTPCFullMu, aod::pidTPCFullPi, aod::pidTPCFullKa, aod::pidTPCFullPr,
@@ -105,7 +114,7 @@ struct SGCandProducer {
105114
track.tofNSigmaKa(),
106115
track.tofNSigmaPr());
107116
outputTracksExtra(track.tpcInnerParam(),
108-
track.itsClusterSizes(),
117+
track.itsClusterMap(),
109118
track.tpcNClsFindable(),
110119
track.tpcNClsFindableMinusFound(),
111120
track.tpcNClsFindableMinusCrossedRows(),
@@ -140,6 +149,7 @@ struct SGCandProducer {
140149

141150
// process function for real data
142151
void process(CC const& collision, BCs const& bcs, TCs& tracks, FWs& fwdtracks,
152+
// aod::Zdcs_000& zdcs, aod::FT0s& ft0s, aod::FV0As& fv0as, aod::FDDs& fdds)
143153
aod::Zdcs& zdcs, aod::FT0s& ft0s, aod::FV0As& fv0as, aod::FDDs& fdds)
144154
{
145155
LOGF(debug, "<SGCandProducer> collision %d", collision.globalIndex());
@@ -167,6 +177,9 @@ struct SGCandProducer {
167177
// fill FITInfo
168178
upchelpers::FITInfo fitInfo{};
169179
udhelpers::getFITinfo(fitInfo, bc.globalBC(), bcs, ft0s, fv0as, fdds);
180+
// upchelpers::ZDCInfo zdcInfo{};
181+
// udhelpers::getZDCinfo(zdcInfo, bc.globalBC(), bcs, zdcs);
182+
// udhelpers::getZDCinfo(zdcInfo, bc.globalBC(), zdcs);
170183

171184
// update SG candidates tables
172185
auto rtrwTOF = udhelpers::rPVtrwTOF<true>(tracks, collision.numContrib());
@@ -196,16 +209,34 @@ struct SGCandProducer {
196209
}
197210

198211
// fill UDZdcs
199-
if (bc.has_zdc()) {
200-
auto zdc = bc.zdc();
201-
auto enes = std::vector(zdc.energy().begin(), zdc.energy().end());
202-
auto chEs = std::vector(zdc.channelE().begin(), zdc.channelE().end());
203-
auto amps = std::vector(zdc.amplitude().begin(), zdc.amplitude().end());
204-
auto times = std::vector(zdc.time().begin(), zdc.time().end());
205-
auto chTs = std::vector(zdc.channelT().begin(), zdc.channelT().end());
206-
outputZdcs(outputCollisions.lastIndex(), enes, chEs, amps, times, chTs);
212+
// outputZDCCollisions(zdcInfo.timeZNA,zdcInfo.timeZNC,zdcInfo.multZNA,zdcInfo.multZNC);
213+
std::map<uint64_t, int32_t> mapGlobalBcWithZdc{};
214+
auto globalBC = bc.globalBC();
215+
for (const auto& zdc : zdcs) {
216+
// auto globalBC = zdc.bc_as<o2::aod::BCs>().globalBC();
217+
// auto bc = zdc.bc_as<o2::aod::BCs>().globalBC();
218+
if (std::abs(zdc.timeZNA()) > 2.f && std::abs(zdc.timeZNC()) > 2.f)
219+
continue;
220+
// mapGlobalBcWithZdc[bc.globalBC()] = zdc.globalIndex();
221+
mapGlobalBcWithZdc[globalBC] = zdc.globalIndex();
222+
// mapGlobalBcWithZdc[bc] = zdc.globalIndex();
207223
}
208-
224+
int candID = 0;
225+
auto nZdcs = mapGlobalBcWithZdc.size();
226+
if (nZdcs > 0) {
227+
// auto itZDC = mapGlobalBcWithZdc.find(bc.globalBC());
228+
auto itZDC = mapGlobalBcWithZdc.find(globalBC);
229+
// auto itZDC = mapGlobalBcWithZdc.find(bc);
230+
if (itZDC != mapGlobalBcWithZdc.end()) {
231+
const auto& zdc = zdcs.iteratorAt(itZDC->second);
232+
float timeZNA = zdc.timeZNA();
233+
float timeZNC = zdc.timeZNC();
234+
float eComZNA = zdc.energyCommonZNA();
235+
float eComZNC = zdc.energyCommonZNC();
236+
udZdcsReduced(candID, timeZNA, timeZNC, eComZNA, eComZNC);
237+
}
238+
}
239+
candID++;
209240
// produce TPC signal histograms for 2-track events
210241
LOGF(debug, "SG candidate: number of PV tracks %d", collision.numContrib());
211242
if (collision.numContrib() == 2) {

0 commit comments

Comments
 (0)