Skip to content

Commit b863be5

Browse files
committed
Common: Add converter for TrackQA003
1 parent d647d63 commit b863be5

File tree

2 files changed

+138
-0
lines changed

2 files changed

+138
-0
lines changed

Common/TableProducer/Converters/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,11 @@ o2physics_add_dpl_workflow(trackqa-converter-002
9494
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
9595
COMPONENT_NAME Analysis)
9696

97+
o2physics_add_dpl_workflow(trackqa-converter-003
98+
SOURCES trackQA003Converter.cxx
99+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
100+
COMPONENT_NAME Analysis)
101+
97102
o2physics_add_dpl_workflow(run2bcinfos-converter
98103
SOURCES run2bcinfosConverter.cxx
99104
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
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+
#include <limits>
12+
13+
#include "Framework/runDataProcessing.h"
14+
#include "Framework/AnalysisTask.h"
15+
#include "Framework/AnalysisDataModel.h"
16+
17+
using namespace o2;
18+
using namespace o2::framework;
19+
20+
struct TrackQAConverter003 {
21+
Produces<aod::TracksQA_003> tracksQA_003;
22+
23+
void process000(aod::TracksQA_000 const& tracksQA_000)
24+
{
25+
for (const auto& trackQA : tracksQA_000) {
26+
tracksQA_003(
27+
trackQA.trackId(),
28+
trackQA.tpcTime0(),
29+
trackQA.tpcdcaR(),
30+
trackQA.tpcdcaZ(),
31+
trackQA.tpcClusterByteMask(),
32+
trackQA.tpcdEdxMax0R(),
33+
trackQA.tpcdEdxMax1R(),
34+
trackQA.tpcdEdxMax2R(),
35+
trackQA.tpcdEdxMax3R(),
36+
trackQA.tpcdEdxTot0R(),
37+
trackQA.tpcdEdxTot1R(),
38+
trackQA.tpcdEdxTot2R(),
39+
trackQA.tpcdEdxTot3R(),
40+
0, // dummy
41+
// dummy values, not available in _000
42+
std::numeric_limits<int8_t>::min(), // deltaRefContParamY
43+
std::numeric_limits<int8_t>::min(), // deltaRefContParamZ
44+
std::numeric_limits<int8_t>::min(), // deltaRefContParamSnp
45+
std::numeric_limits<int8_t>::min(), // deltaRefContParamTgl
46+
std::numeric_limits<int8_t>::min(), // deltaRefContParamQ2Pt
47+
std::numeric_limits<int8_t>::min(), // deltaRefGloParamY
48+
std::numeric_limits<int8_t>::min(), // deltaRefGloParamZ
49+
std::numeric_limits<int8_t>::min(), // deltaRefGloParamSnp
50+
std::numeric_limits<int8_t>::min(), // deltaRefGloParamTgl
51+
std::numeric_limits<int8_t>::min(), // deltaRefGloParamQ2Pt
52+
std::numeric_limits<int8_t>::min(), // dTofdX
53+
std::numeric_limits<int8_t>::min()); // dTofdY
54+
}
55+
}
56+
PROCESS_SWITCH(TrackQAConverter003, process000, "process v000-to-v003 conversion", false);
57+
58+
void process001(aod::TracksQA_001 const& tracksQA_001)
59+
{
60+
for (const auto& trackQA : tracksQA_001) {
61+
tracksQA_003(
62+
trackQA.trackId(),
63+
trackQA.tpcTime0(),
64+
trackQA.tpcdcaR(),
65+
trackQA.tpcdcaZ(),
66+
trackQA.tpcClusterByteMask(),
67+
trackQA.tpcdEdxMax0R(),
68+
trackQA.tpcdEdxMax1R(),
69+
trackQA.tpcdEdxMax2R(),
70+
trackQA.tpcdEdxMax3R(),
71+
trackQA.tpcdEdxTot0R(),
72+
trackQA.tpcdEdxTot1R(),
73+
trackQA.tpcdEdxTot2R(),
74+
trackQA.tpcdEdxTot3R(),
75+
0, // dummy
76+
trackQA.deltaRefContParamY(),
77+
trackQA.deltaRefITSParamZ(),
78+
trackQA.deltaRefContParamSnp(),
79+
trackQA.deltaRefContParamTgl(),
80+
trackQA.deltaRefContParamQ2Pt(),
81+
trackQA.deltaRefGloParamY(),
82+
trackQA.deltaRefGloParamZ(),
83+
trackQA.deltaRefGloParamSnp(),
84+
trackQA.deltaRefGloParamTgl(),
85+
trackQA.deltaRefGloParamQ2Pt(),
86+
// dummy values, not available in _001
87+
std::numeric_limits<int8_t>::min(), // dTofdX
88+
std::numeric_limits<int8_t>::min()); // dTofdY
89+
}
90+
}
91+
PROCESS_SWITCH(TrackQAConverter003, process001, "process v001-to-v003 conversion", false);
92+
93+
void process002(aod::TracksQA_002 const& tracksQA_002)
94+
{
95+
for (const auto& trackQA : tracksQA_002) {
96+
tracksQA_003(
97+
trackQA.trackId(),
98+
trackQA.tpcTime0(),
99+
trackQA.tpcdcaR(),
100+
trackQA.tpcdcaZ(),
101+
trackQA.tpcClusterByteMask(),
102+
trackQA.tpcdEdxMax0R(),
103+
trackQA.tpcdEdxMax1R(),
104+
trackQA.tpcdEdxMax2R(),
105+
trackQA.tpcdEdxMax3R(),
106+
trackQA.tpcdEdxTot0R(),
107+
trackQA.tpcdEdxTot1R(),
108+
trackQA.tpcdEdxTot2R(),
109+
trackQA.tpcdEdxTot3R(),
110+
0, // dummy
111+
trackQA.deltaRefContParamY(),
112+
trackQA.deltaRefITSParamZ(),
113+
trackQA.deltaRefContParamSnp(),
114+
trackQA.deltaRefContParamTgl(),
115+
trackQA.deltaRefContParamQ2Pt(),
116+
trackQA.deltaRefGloParamY(),
117+
trackQA.deltaRefGloParamZ(),
118+
trackQA.deltaRefGloParamSnp(),
119+
trackQA.deltaRefGloParamTgl(),
120+
trackQA.deltaRefGloParamQ2Pt(),
121+
trackQA.deltaTOFdX(),
122+
trackQA.deltaTOFdZ());
123+
}
124+
}
125+
PROCESS_SWITCH(TrackQAConverter003, process002, "process v002-to-v003 conversion", false);
126+
};
127+
128+
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
129+
{
130+
return WorkflowSpec{
131+
adaptAnalysisTask<TrackQAConverter003>(cfgc),
132+
};
133+
}

0 commit comments

Comments
 (0)