Skip to content

Commit a207396

Browse files
Update FIT extras
1 parent 5581054 commit a207396

2 files changed

Lines changed: 69 additions & 21 deletions

File tree

Common/DataModel/FITExtra.h

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,42 @@ namespace o2::aod
1919
{
2020
namespace fit
2121
{
22+
23+
// Constants
24+
// TODO: add reference channels?
25+
static constexpr int nChFT0 = 208; ///< Number of FT0 channels
26+
static constexpr int nChFT0A = 96; ///< Number of FT0A channels (-> number of FT0C channels = nChFT0 - nChFT0A)
27+
static constexpr int nChFV0 = 48; ///< Number of FV0 channels
28+
static constexpr int nChFDD = 16; ///< Number of FDD channels
29+
static constexpr int nADC = 4096; ///< Number of ADC channels
30+
2231
// Quantities copied straight from AOD
2332
// TODO: do we need them here?
2433
DECLARE_SOA_COLUMN(PV, pv, float); //! Primary vertex position in cm (o2::aod::‌collision::PosZ)
2534
DECLARE_SOA_COLUMN(NContrib, nContrib, int); //! Number of contributors to primary vertex (o2::aod::‌collision::NumContrib)
35+
2636
DECLARE_SOA_COLUMN(FT0TimeA, ft0timeA, float); //! FT0-A average time in ns (o2::aod::ft0::TimeA)
2737
DECLARE_SOA_COLUMN(FT0TimeC, ft0timeC, float); //! FT0-C average time in ns (o2::aod::ft0::TimeC)
2838
DECLARE_SOA_COLUMN(FT0TimeACorr, ft0timeACorr, float); //! FT0-A average time in ns corrected PV (o2::aod::ft0::T0ACorrected)
2939
DECLARE_SOA_COLUMN(FT0TimeCCorr, ft0timeCCorr, float); //! FT0-C average time in ns corrected PV (o2::aod::ft0::T0CCorrected)
3040
DECLARE_SOA_COLUMN(FT0Time, ft0time, float); //! FT0 collision time in ns (o2::aod::ft0::CollTime)
3141
DECLARE_SOA_COLUMN(FT0TimeRes, ft0timeRes, float); //! FT0 collision time resolution in ns (o2::aod::ft0::T0Resolution)
3242
DECLARE_SOA_COLUMN(FT0Vtx, ft0vtx, float); //! FT0 vertex in cm (o2::aod::ft0::PosZ)
43+
DECLARE_SOA_COLUMN(FT0ChAmpl, ft0chAmpl, std::vector<float>); //! FT0 channel amplitudes
44+
DECLARE_SOA_COLUMN(FT0TotAmplA, ft0totAmplA, float); //! FT0-A total amplitude (o2::aod::ft0::SumAmpA)
45+
DECLARE_SOA_COLUMN(FT0TotAmplC, ft0totAmplC, float); //! FT0-C total amplitude (o2::aod::ft0::SumAmpC)
46+
3347
DECLARE_SOA_COLUMN(FV0Time, fv0time, float); //! FV0 average time in ns (o2::aod::fv0a::Time)
48+
DECLARE_SOA_COLUMN(FV0ChAmpl, fv0chAmpl, std::vector<float>); //! FV0 channel amplitudes
49+
3450
DECLARE_SOA_COLUMN(FDDTimeA, fddtimeA, float); //! FDD-A average time in ns (o2::aod::fdd::TimeA)
3551
DECLARE_SOA_COLUMN(FDDTimeC, fddtimeC, float); //! FDD-C average time in ns (o2::aod::fdd::TimeC)
52+
DECLARE_SOA_COLUMN(FDDChAmpl, fddchAmpl, std::vector<float>); //! FDD channel amplitudes
3653

3754
// Derived quantities
55+
DECLARE_SOA_COLUMN(FV0TotAmpl, fv0totAmpl, float); //! FV0 total amplitude
56+
DECLARE_SOA_COLUMN(FDDTotAmplA, fddtotAmplA, float); //! FDD-A total amplitude
57+
DECLARE_SOA_COLUMN(FDDTotAmplC, fddtotAmplC, float); //! FDD-C total amplitude
3858

3959
// Event selection conditions straigt from AOD
4060
// TODO: do we need them here?
@@ -53,7 +73,9 @@ DECLARE_SOA_TABLE(FITExtras, "AOD", "FITEXTRA", //! Table with extra FIT informa
5373
fit::PV, fit::NContrib,
5474
fit::FT0TimeA, fit::FT0TimeC, fit::FT0TimeACorr, fit::FT0TimeCCorr,
5575
fit::FT0Time, fit::FT0TimeRes, fit::FT0Vtx,
56-
fit::FV0Time, fit::FDDTimeA, fit::FDDTimeC);
76+
fit::FT0ChAmpl, fit::FT0TotAmplA, fit::FT0TotAmplC,
77+
fit::FV0Time, fit::FV0ChAmpl, fit::FV0TotAmpl,
78+
fit::FDDTimeA, fit::FDDTimeC, fit::FDDChAmpl, fit::FDDTotAmplA, fit::FDDTotAmplC);
5779

5880
using FITExtra = FITExtras::iterator;
5981

Common/TableProducer/fitExtraTable.cxx

Lines changed: 46 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include <CommonConstants/PhysicsConstants.h>
1717
#include <Framework/AnalysisDataModel.h>
1818
#include <Framework/AnalysisTask.h>
19+
#include <string>
1920

2021
using namespace o2;
2122
using namespace o2::framework;
@@ -47,9 +48,19 @@ struct fitExtraTable {
4748
float ft0time = -200;
4849
float ft0timeRes = -200;
4950
float ft0vtx = -200;
51+
std::vector<float> ft0chAmpl(o2::aod::fit::nChFT0, 0);
52+
float ft0totAmplA = 0;
53+
float ft0totAmplC = 0;
54+
5055
float fv0time = -200;
56+
std::vector<float> fv0chAmpl(o2::aod::fit::nChFV0, 0);
57+
float fv0totAmpl = 0;
58+
5159
float fddtimeA = -200;
5260
float fddtimeC = -200;
61+
std::vector<float> fddchAmpl(o2::aod::fit::nChFDD, 0);
62+
float fddtotAmplA = 0;
63+
float fddtotAmplC = 0;
5364

5465
bool sel8, hasFT0, hasFV0, hasFDD;
5566
uint8_t ft0Triggers, fv0Triggers, fddTriggers;
@@ -66,9 +77,19 @@ struct fitExtraTable {
6677
ft0time = -200;
6778
ft0timeRes = -200;
6879
ft0vtx = -200;
80+
std::fill(ft0chAmpl.begin(), ft0chAmpl.end(), 0);
81+
ft0totAmplA = 0;
82+
ft0totAmplC = 0;
83+
6984
fv0time = -200;
85+
std::fill(fv0chAmpl.begin(), fv0chAmpl.end(), 0);
86+
fv0totAmpl = 0;
87+
7088
fddtimeA = -200;
7189
fddtimeC = -200;
90+
std::fill(fddchAmpl.begin(), fddchAmpl.end(), 0);
91+
fddtotAmplA = 0;
92+
fddtotAmplC = 0;
7293

7394
hasFT0 = collision.has_foundFT0();
7495
hasFV0 = collision.has_foundFV0();
@@ -87,44 +108,49 @@ struct fitExtraTable {
87108
ft0timeCCorr = collision.t0CCorrected();
88109
ft0timeRes = collision.t0resolution();
89110
ft0Triggers = ft0.triggerMask();
111+
for (size_t i = 0; i < ft0.amplitudeA().size(); i++) {
112+
ft0chAmpl[ft0.channelA()[i]] = ft0.amplitudeA()[i];
113+
}
114+
for (size_t i = 0; i < ft0.amplitudeC().size(); i++) {
115+
ft0chAmpl[ft0.channelC()[i] + o2::aod::fit::nChFT0A] = ft0.amplitudeC()[i]; // Channel IDs in the C-side array start from zero in AO2D (JIRA AFIT-129)
116+
}
117+
ft0totAmplA = ft0.sumAmpA();
118+
ft0totAmplC = ft0.sumAmpC();
90119
}
120+
91121
if (hasFV0) {
92122
auto fv0 = collision.foundFV0();
93123
fv0time = fv0.time();
94124
fv0Triggers = fv0.triggerMask();
125+
for (size_t i = 0; i < fv0.amplitude().size(); i++) {
126+
fv0chAmpl[fv0.channel()[i]] = fv0.amplitude()[i];
127+
fv0totAmpl += fv0.amplitude()[i];
128+
}
95129
}
130+
96131
if (hasFDD) {
97132
auto fdd = collision.foundFDD();
98133
fddtimeA = fdd.timeA();
99134
fddtimeC = fdd.timeC();
100135
fddTriggers = fdd.triggerMask();
136+
for (size_t i = 0; i < 8; i++) {
137+
fddchAmpl[i + 8] = fdd.chargeA()[i];
138+
fddtotAmplA += fdd.chargeA()[i];
139+
}
140+
for (size_t i = 0; i < 8; i++) {
141+
fddchAmpl[i] = fdd.chargeC()[i];
142+
fddtotAmplC += fdd.chargeC()[i];
143+
}
101144
}
102145

103-
// table(pv,
104-
// nContrib,
105-
// ft0timeA,
106-
// ft0timeC,
107-
// ft0timeACorr,
108-
// ft0timeCCorr,
109-
// ft0time,
110-
// ft0timeRes,
111-
// ft0vtx,
112-
// fv0time,
113-
// fddtimeA,
114-
// fddtimeC,
115-
// sel8,
116-
// hasFT0,
117-
// hasFV0,
118-
// hasFDD,
119-
// ft0Triggers,
120-
// fv0Triggers,
121-
// fddTriggers);
122146
table(sel8, hasFT0, hasFV0, hasFDD,
123147
ft0Triggers, fv0Triggers, fddTriggers,
124148
pv, nContrib,
125149
ft0timeA, ft0timeC, ft0timeACorr, ft0timeCCorr,
126150
ft0time, ft0timeRes, ft0vtx,
127-
fv0time, fddtimeA, fddtimeC);
151+
ft0chAmpl, ft0totAmplA, ft0totAmplC,
152+
fv0time, fv0chAmpl, fv0totAmpl,
153+
fddtimeA, fddtimeC, fddchAmpl, fddtotAmplA, fddtotAmplC);
128154
}
129155
}
130156
};

0 commit comments

Comments
 (0)