Skip to content

Commit 30963ec

Browse files
Update FIT extras
1 parent a207396 commit 30963ec

2 files changed

Lines changed: 56 additions & 7 deletions

File tree

Common/DataModel/FITExtra.h

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
#include "Framework/ASoA.h"
1616
#include "Framework/AnalysisDataModel.h"
17+
#include <cstdint>
1718

1819
namespace o2::aod
1920
{
@@ -30,8 +31,19 @@ static constexpr int nADC = 4096; ///< Number of ADC channels
3031

3132
// Quantities copied straight from AOD
3233
// TODO: do we need them here?
33-
DECLARE_SOA_COLUMN(PV, pv, float); //! Primary vertex position in cm (o2::aod::‌collision::PosZ)
34+
DECLARE_SOA_COLUMN(RunNumber, runNumber, int);
35+
DECLARE_SOA_COLUMN(GlobalBC, globalBC, uint64_t);
36+
DECLARE_SOA_COLUMN(CTPtriggerMask, ctpTriggerMask, uint64_t);
37+
DECLARE_SOA_COLUMN(CTPinputMask, ctpInputMask, uint64_t);
38+
39+
DECLARE_SOA_COLUMN(BCId, bcId, int32_t); //! BC ID (o2::aod::collision::BCId)
40+
DECLARE_SOA_COLUMN(PosX, posX, float);
41+
DECLARE_SOA_COLUMN(PosY, posY, float);
42+
DECLARE_SOA_COLUMN(PosZ, posZ, float); //! Primary vertex position in cm (o2::aod::‌collision::PosZ)
43+
DECLARE_SOA_COLUMN(Flags, flags, uint16_t); //! Collision flags (o2::aod::collision::Flags)
3444
DECLARE_SOA_COLUMN(NContrib, nContrib, int); //! Number of contributors to primary vertex (o2::aod::‌collision::NumContrib)
45+
DECLARE_SOA_COLUMN(CollisionTime, collisionTime, float); //! Collision time (o2::aod::collision::CollisionTime)
46+
DECLARE_SOA_COLUMN(CollisionTimeRes, collisionTimeRes, float); //! Collision time resolution (o2::aod::collision::CollisionTimeRes)
3547

3648
DECLARE_SOA_COLUMN(FT0TimeA, ft0timeA, float); //! FT0-A average time in ns (o2::aod::ft0::TimeA)
3749
DECLARE_SOA_COLUMN(FT0TimeC, ft0timeC, float); //! FT0-C average time in ns (o2::aod::ft0::TimeC)
@@ -43,6 +55,8 @@ DECLARE_SOA_COLUMN(FT0Vtx, ft0vtx, float); //! FT0 vertex in cm (o2:
4355
DECLARE_SOA_COLUMN(FT0ChAmpl, ft0chAmpl, std::vector<float>); //! FT0 channel amplitudes
4456
DECLARE_SOA_COLUMN(FT0TotAmplA, ft0totAmplA, float); //! FT0-A total amplitude (o2::aod::ft0::SumAmpA)
4557
DECLARE_SOA_COLUMN(FT0TotAmplC, ft0totAmplC, float); //! FT0-C total amplitude (o2::aod::ft0::SumAmpC)
58+
DECLARE_SOA_COLUMN(FT0TotAmplACheck, ft0totabletAmplACheck, float); //! FT0-A total amplitude computed from channel amplitudes (for cross check)
59+
DECLARE_SOA_COLUMN(FT0TotAmplCCheck, ft0totAmplCCheck, float); //! FT0-C total amplitude computed from channel amplitudes (for cross check)
4660

4761
DECLARE_SOA_COLUMN(FV0Time, fv0time, float); //! FV0 average time in ns (o2::aod::fv0a::Time)
4862
DECLARE_SOA_COLUMN(FV0ChAmpl, fv0chAmpl, std::vector<float>); //! FV0 channel amplitudes
@@ -70,10 +84,11 @@ DECLARE_SOA_COLUMN(FDDTriggers, fddTriggers, uint8_t); //! FDD trigger mask (o2:
7084
DECLARE_SOA_TABLE(FITExtras, "AOD", "FITEXTRA", //! Table with extra FIT information
7185
fit::Sel8, fit::HasFT0, fit::HasFV0, fit::HasFDD,
7286
fit::FT0Triggers, fit::FV0Triggers, fit::FDDTriggers,
73-
fit::PV, fit::NContrib,
87+
fit::RunNumber, fit::GlobalBC, fit::CTPtriggerMask, fit::CTPinputMask,
88+
fit::BCId, fit::PosX, fit::PosY, fit::PosZ, fit::Flags, fit::NContrib, fit::CollisionTime, fit::CollisionTimeRes,
7489
fit::FT0TimeA, fit::FT0TimeC, fit::FT0TimeACorr, fit::FT0TimeCCorr,
7590
fit::FT0Time, fit::FT0TimeRes, fit::FT0Vtx,
76-
fit::FT0ChAmpl, fit::FT0TotAmplA, fit::FT0TotAmplC,
91+
fit::FT0ChAmpl, fit::FT0TotAmplA, fit::FT0TotAmplC, fit::FT0TotAmplACheck, fit::FT0TotAmplCCheck,
7792
fit::FV0Time, fit::FV0ChAmpl, fit::FV0TotAmpl,
7893
fit::FDDTimeA, fit::FDDTimeC, fit::FDDChAmpl, fit::FDDTotAmplA, fit::FDDTotAmplC);
7994

Common/TableProducer/fitExtraTable.cxx

Lines changed: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ using namespace o2::framework;
2323

2424
#include "Framework/runDataProcessing.h"
2525

26+
using BCsWithTimestamps = soa::Join<aod::BCs, aod::Timestamps>;
27+
2628
struct fitExtraTable {
2729
// Producer
2830
Produces<o2::aod::FITExtra> table;
@@ -35,11 +37,23 @@ struct fitExtraTable {
3537
}
3638

3739
void process(soa::Join<aod::Collisions, aod::EvSels, aod::FT0sCorrected> const& collisions,
40+
aod::BCsWithTimestamps const&,
3841
aod::FT0s const&, aod::FV0As const&, aod::FDDs const&) {
3942
table.reserve(collisions.size());
4043

41-
float pv = -200;
44+
int runnumber = -1;
45+
uint64_t globalBC = 0;
46+
uint64_t ctpTriggerMask = 0;
47+
uint64_t ctpInputMask = 0;
48+
49+
int32_t bcId = -1;
50+
float posX = -200;
51+
float posY = -200;
52+
float posZ = -200;
53+
uint16_t flags = 0;
4254
int nContrib = -1;
55+
float collisionTime = -200;
56+
float collisionTimeRes = -200;
4357

4458
float ft0timeA = -200;
4559
float ft0timeC = -200;
@@ -51,6 +65,8 @@ struct fitExtraTable {
5165
std::vector<float> ft0chAmpl(o2::aod::fit::nChFT0, 0);
5266
float ft0totAmplA = 0;
5367
float ft0totAmplC = 0;
68+
float ft0totAmplACheck = 0;
69+
float ft0totAmplCCheck = 0;
5470

5571
float fv0time = -200;
5672
std::vector<float> fv0chAmpl(o2::aod::fit::nChFV0, 0);
@@ -66,8 +82,21 @@ struct fitExtraTable {
6682
uint8_t ft0Triggers, fv0Triggers, fddTriggers;
6783

6884
for (const auto& collision : collisions) {
69-
pv = collision.posZ();
85+
auto bc = collision.bc_as<aod::BCsWithTimestamps>();
86+
runnumber = bc.runNumber();
87+
globalBC = bc.globalBC();
88+
ctpTriggerMask = bc.triggerMask();
89+
ctpInputMask = bc.inputMask();
90+
91+
bcId = collision.bcId();
92+
posX = collision.posX();
93+
posY = collision.posY();
94+
posZ = collision.posZ();
95+
flags = collision.flags();
7096
nContrib = collision.numContrib();
97+
collisionTime = collision.collisionTime();
98+
collisionTimeRes = collision.collisionTimeRes();
99+
71100
sel8 = collision.sel8();
72101

73102
ft0timeA = -200;
@@ -80,6 +109,8 @@ struct fitExtraTable {
80109
std::fill(ft0chAmpl.begin(), ft0chAmpl.end(), 0);
81110
ft0totAmplA = 0;
82111
ft0totAmplC = 0;
112+
ft0totAmplACheck = 0;
113+
ft0totAmplCCheck = 0;
83114

84115
fv0time = -200;
85116
std::fill(fv0chAmpl.begin(), fv0chAmpl.end(), 0);
@@ -110,9 +141,11 @@ struct fitExtraTable {
110141
ft0Triggers = ft0.triggerMask();
111142
for (size_t i = 0; i < ft0.amplitudeA().size(); i++) {
112143
ft0chAmpl[ft0.channelA()[i]] = ft0.amplitudeA()[i];
144+
ft0totAmplA += ft0.amplitudeA()[i];
113145
}
114146
for (size_t i = 0; i < ft0.amplitudeC().size(); i++) {
115147
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)
148+
ft0totAmplC += ft0.amplitudeC()[i];
116149
}
117150
ft0totAmplA = ft0.sumAmpA();
118151
ft0totAmplC = ft0.sumAmpC();
@@ -145,10 +178,11 @@ struct fitExtraTable {
145178

146179
table(sel8, hasFT0, hasFV0, hasFDD,
147180
ft0Triggers, fv0Triggers, fddTriggers,
148-
pv, nContrib,
181+
runnumber, globalBC, ctpTriggerMask, ctpInputMask,
182+
bcId, posX, posY, posZ, flags, nContrib, collisionTime, collisionTimeRes,
149183
ft0timeA, ft0timeC, ft0timeACorr, ft0timeCCorr,
150184
ft0time, ft0timeRes, ft0vtx,
151-
ft0chAmpl, ft0totAmplA, ft0totAmplC,
185+
ft0chAmpl, ft0totAmplA, ft0totAmplC, ft0totAmplACheck, ft0totAmplCCheck,
152186
fv0time, fv0chAmpl, fv0totAmpl,
153187
fddtimeA, fddtimeC, fddchAmpl, fddtotAmplA, fddtotAmplC);
154188
}

0 commit comments

Comments
 (0)