Skip to content

Commit 5410e8f

Browse files
ddobrigkalibuild
andauthored
Add zdc converter (#2355)
* Add zdc converter * Please consider the following formatting changes (#94) * retrigger CI * Please consider the following formatting changes (#95) --------- Co-authored-by: David Dobrigkeit Chinellato <david.dobrigkeit.chinellato.cern.ch> Co-authored-by: ALICE Builder <alibuild@users.noreply.github.com>
1 parent 174e3df commit 5410e8f

2 files changed

Lines changed: 121 additions & 0 deletions

File tree

Common/TableProducer/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,3 +104,8 @@ o2physics_add_dpl_workflow(calo-label-converter
104104
SOURCES caloLabelConverter.cxx
105105
PUBLIC_LINK_LIBRARIES O2::Framework
106106
COMPONENT_NAME Analysis)
107+
108+
o2physics_add_dpl_workflow(zdc-converter
109+
SOURCES zdcConverter.cxx
110+
PUBLIC_LINK_LIBRARIES O2::Framework
111+
COMPONENT_NAME Analysis)
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2+
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3+
// All rights not expressly granted are reserved.
4+
//
5+
// This software is distributed under the terms of the GNU General Public
6+
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7+
//
8+
// In applying this license CERN does not waive the privileges and immunities
9+
// granted to it by virtue of its status as an Intergovernmental Organization
10+
// or submit itself to any jurisdiction.
11+
12+
// ZDC converter to new format
13+
// to be used with Run 2 converted data and older AO2Ds
14+
15+
#include "Framework/runDataProcessing.h"
16+
#include "Framework/AnalysisTask.h"
17+
#include "Framework/AnalysisDataModel.h"
18+
#include "ZDCBase/Constants.h"
19+
20+
using namespace o2;
21+
using namespace o2::framework;
22+
using namespace o2::zdc;
23+
24+
struct zdcConverter {
25+
Produces<aod::Zdcs_001> Zdcs_001;
26+
27+
void process(aod::Zdcs_000 const& zdcLegacy, aod::BCs const&)
28+
{
29+
for (auto& zdcData : zdcLegacy) {
30+
// Get legacy information, please
31+
auto bc = zdcData.bc();
32+
auto energyZEM1 = zdcData.energyZEM1();
33+
auto energyZEM2 = zdcData.energyZEM2();
34+
auto energyCommonZNA = zdcData.energyCommonZNA();
35+
auto energyCommonZNC = zdcData.energyCommonZNC();
36+
auto energyCommonZPA = zdcData.energyCommonZPA();
37+
auto energyCommonZPC = zdcData.energyCommonZPC();
38+
auto energySectorZNA = zdcData.energySectorZNA();
39+
auto energySectorZNC = zdcData.energySectorZNC();
40+
auto energySectorZPA = zdcData.energySectorZPA();
41+
auto energySectorZPC = zdcData.energySectorZPC();
42+
auto timeZEM1 = zdcData.timeZEM1();
43+
auto timeZEM2 = zdcData.timeZEM2();
44+
auto timeZNA = zdcData.timeZNA();
45+
auto timeZNC = zdcData.timeZNC();
46+
auto timeZPA = zdcData.timeZPA();
47+
auto timeZPC = zdcData.timeZPC();
48+
49+
// Create variables to initialize Zdcs_001 table
50+
std::vector<float> zdcEnergy, zdcAmplitudes, zdcTime;
51+
std::vector<uint8_t> zdcChannelsE, zdcChannelsT;
52+
53+
// Tie variables in such that they get read correctly later
54+
zdcEnergy.emplace_back(energyZEM1);
55+
zdcChannelsE.emplace_back(IdZEM1);
56+
zdcAmplitudes.emplace_back(energyZEM1); // WARNING: DUMMY VALUE
57+
zdcTime.emplace_back(timeZEM1);
58+
zdcChannelsT.emplace_back(IdZEM1);
59+
60+
zdcEnergy.emplace_back(energyZEM2);
61+
zdcChannelsE.emplace_back(IdZEM2);
62+
zdcAmplitudes.emplace_back(energyZEM2); // WARNING: DUMMY VALUE
63+
zdcTime.emplace_back(timeZEM2);
64+
zdcChannelsT.emplace_back(IdZEM2);
65+
66+
zdcEnergy.emplace_back(energyCommonZNA);
67+
zdcChannelsE.emplace_back(IdZNAC);
68+
zdcAmplitudes.emplace_back(energyCommonZNA); // WARNING: DUMMY VALUE
69+
zdcTime.emplace_back(timeZNA);
70+
zdcChannelsT.emplace_back(IdZNAC);
71+
72+
zdcEnergy.emplace_back(energyCommonZNC);
73+
zdcChannelsE.emplace_back(IdZNCC);
74+
zdcAmplitudes.emplace_back(energyCommonZNC); // WARNING: DUMMY VALUE
75+
zdcTime.emplace_back(timeZNC);
76+
zdcChannelsT.emplace_back(IdZNCC);
77+
78+
zdcEnergy.emplace_back(energyCommonZPA);
79+
zdcChannelsE.emplace_back(IdZPAC);
80+
zdcAmplitudes.emplace_back(energyCommonZPA); // WARNING: DUMMY VALUE
81+
zdcTime.emplace_back(timeZPA);
82+
zdcChannelsT.emplace_back(IdZPAC);
83+
84+
zdcEnergy.emplace_back(energyCommonZPC);
85+
zdcChannelsE.emplace_back(IdZPCC);
86+
zdcAmplitudes.emplace_back(energyCommonZPC); // WARNING: DUMMY VALUE
87+
zdcTime.emplace_back(timeZPC);
88+
zdcChannelsT.emplace_back(IdZPCC);
89+
90+
for (uint64_t ic = 0; ic < 4; ic++) {
91+
zdcEnergy.emplace_back(energySectorZNA[ic]);
92+
zdcChannelsE.emplace_back(IdZNA1 + ic);
93+
zdcEnergy.emplace_back(energySectorZNC[ic]);
94+
zdcChannelsE.emplace_back(IdZNC1 + ic);
95+
zdcEnergy.emplace_back(energySectorZPA[ic]);
96+
zdcChannelsE.emplace_back(IdZPA1 + ic);
97+
zdcEnergy.emplace_back(energySectorZPC[ic]);
98+
zdcChannelsE.emplace_back(IdZPC1 + ic);
99+
}
100+
101+
Zdcs_001(bc,
102+
zdcEnergy,
103+
zdcChannelsE,
104+
zdcAmplitudes,
105+
zdcTime,
106+
zdcChannelsT);
107+
}
108+
}
109+
};
110+
111+
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
112+
{
113+
return WorkflowSpec{
114+
adaptAnalysisTask<zdcConverter>(cfgc),
115+
};
116+
}

0 commit comments

Comments
 (0)