Skip to content

Commit e1b115b

Browse files
ercolessiBarthelemy
authored andcommitted
[TOF] Add multiplicity in orbit and readout windows (#2646)
1 parent f0690a6 commit e1b115b

File tree

2 files changed

+37
-11
lines changed

2 files changed

+37
-11
lines changed

Modules/TOF/include/TOF/TaskDigits.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,11 @@ class TaskDigits final : public TaskInterface
7676
static constexpr int mBinsOrbitPerTimeFrame = mRangeMaxOrbitPerTimeFrame * 3; /// Max range in the OrbitPerTimeFrame axis. 3 orbits are recorded per time frame
7777
// Multiplicity
7878
int mBinsMultiplicity = 2000; /// Number of bins in multiplicity plot
79+
int mBinsMultiplicity2D = 2000; /// Number of bins in multiplicity plot
80+
int mBinsMultiplicityOrbit = 6000; /// Number of bins in multiplicity plot
7981
static constexpr int mRangeMinMultiplicity = 0; /// Min range in multiplicity plot
8082
int mRangeMaxMultiplicity = mBinsMultiplicity; /// Max range in multiplicity plot
83+
int mRangeMaxMultiplicityOrbit = mBinsMultiplicityOrbit; /// Max range in multiplicity plot
8184
static constexpr int mBinsBCForMultiplicity = mRangeMaxBC; /// Number of bins for the BC axis in the multiplicity vs BC plot
8285
// Time
8386
int mBinsTime = 300; /// Number of bins in time plot
@@ -125,11 +128,13 @@ class TaskDigits final : public TaskInterface
125128
std::shared_ptr<TH2S> mHistoNoisyChannels = nullptr; /// Channel flagged as noise (divided per flagged rate class)
126129

127130
// Multiplicity
128-
std::shared_ptr<TH1I> mHistoMultiplicity = nullptr; /// TOF raw hit multiplicity per event
131+
std::shared_ptr<TH1I> mHistoMultiplicity = nullptr; /// TOF raw hit multiplicity per event - all rw
129132
std::shared_ptr<TH1I> mHistoMultiplicityIA = nullptr; /// TOF raw hit multiplicity per event - I/A side
130133
std::shared_ptr<TH1I> mHistoMultiplicityOA = nullptr; /// TOF raw hit multiplicity per event - O/A side
131134
std::shared_ptr<TH1I> mHistoMultiplicityIC = nullptr; /// TOF raw hit multiplicity per event - I/C side
132135
std::shared_ptr<TH1I> mHistoMultiplicityOC = nullptr; /// TOF raw hit multiplicity per event - O/C side
136+
std::shared_ptr<TH1I> mHistoMultiplicityOrbit = nullptr; /// TOF raw hit multiplicity per event - orbit
137+
std::shared_ptr<TH1I> mHistoMultiplicityRW[3]; /// TOF raw hit multiplicity per event - RW1
133138
std::shared_ptr<TH2F> mHitMultiplicityVsCrate = nullptr; /// TOF raw hit multiplicity per event vs Crate
134139
std::shared_ptr<TProfile> mHitMultiplicityVsCratepro = nullptr; /// TOF raw hit multiplicity per event vs Crate (TProfile)
135140
std::shared_ptr<TH2F> mHitMultiplicityVsBC = nullptr; /// TOF raw hit multiplicity per event vs BC

Modules/TOF/src/TaskDigits.cxx

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,10 @@ void TaskDigits::initialize(o2::framework::InitContext& /*ctx*/)
5555
{
5656
// Define parameters
5757
utils::parseIntParameter(mCustomParameters, "NbinsMultiplicity", mBinsMultiplicity);
58+
utils::parseIntParameter(mCustomParameters, "NbinsMultiplicity2D", mBinsMultiplicity2D);
5859
utils::parseIntParameter(mCustomParameters, "RangeMaxMultiplicity", mRangeMaxMultiplicity);
60+
utils::parseIntParameter(mCustomParameters, "NbinsMultiplicityOrbit", mBinsMultiplicityOrbit);
61+
utils::parseIntParameter(mCustomParameters, "RangeMaxMultiplicityOrbit", mRangeMaxMultiplicityOrbit);
5962

6063
utils::parseIntParameter(mCustomParameters, "NbinsTime", mBinsTime);
6164
utils::parseFloatParameter(mCustomParameters, "kNbinsWidthTime", fgkNbinsWidthTime);
@@ -144,17 +147,18 @@ void TaskDigits::initialize(o2::framework::InitContext& /*ctx*/)
144147
}
145148
getObjectsManager()->startPublishing(mHistoNoisyChannels.get());
146149

147-
// if mBinsMultiplicity > 1000 limit it in TH2F
148-
int nBinsMultForTH2 = mBinsMultiplicity;
149-
if (nBinsMultForTH2 > 1000) {
150-
nBinsMultForTH2 = 1000;
151-
ILOG(Info, Support) << "Requested Nbins in multiplicity is " << mBinsMultiplicity << " but limited to 1000 ONLY for TH2 " << ENDM;
152-
}
153-
154150
// Multiplicity
155151
mHistoMultiplicity = std::make_shared<TH1I>("Multiplicity/Integrated", "TOF hit multiplicity;TOF hits;Events ", mBinsMultiplicity, mRangeMinMultiplicity, mRangeMaxMultiplicity);
156152
getObjectsManager()->startPublishing(mHistoMultiplicity.get());
157153

154+
for (int i = 0; i < 3; i++) {
155+
mHistoMultiplicityRW[i] = std::make_shared<TH1I>(Form("Multiplicity/ReadoutWindow%i", i + 1), Form("TOF hit multiplicity in rw%i;TOF hits;Events ", i + 1), mBinsMultiplicity, mRangeMinMultiplicity, mRangeMaxMultiplicity);
156+
getObjectsManager()->startPublishing(mHistoMultiplicityRW[i].get());
157+
}
158+
159+
mHistoMultiplicityOrbit = std::make_shared<TH1I>("Multiplicity/IntegratedOrbit", "TOF hit multiplicity in orbit;TOF hits;Events ", mBinsMultiplicity, mRangeMinMultiplicity, mRangeMaxMultiplicityOrbit);
160+
getObjectsManager()->startPublishing(mHistoMultiplicityOrbit.get());
161+
158162
mHistoMultiplicityIA = std::make_shared<TH1I>("Multiplicity/SectorIA", "TOF hit multiplicity - I/A side;TOF hits;Events ", mBinsMultiplicity, mRangeMinMultiplicity, mRangeMaxMultiplicity);
159163
getObjectsManager()->startPublishing(mHistoMultiplicityIA.get());
160164

@@ -167,13 +171,13 @@ void TaskDigits::initialize(o2::framework::InitContext& /*ctx*/)
167171
mHistoMultiplicityOC = std::make_shared<TH1I>("Multiplicity/SectorOC", "TOF hit multiplicity - O/C side;TOF hits;Events ", mBinsMultiplicity, mRangeMinMultiplicity, mRangeMaxMultiplicity);
168172
getObjectsManager()->startPublishing(mHistoMultiplicityOC.get());
169173

170-
mHitMultiplicityVsCrate = std::make_shared<TH2F>("Multiplicity/VsCrate", "TOF hit multiplicity vs Crate;Crate;TOF hits", RawDataDecoder::ncrates, 0, RawDataDecoder::ncrates, nBinsMultForTH2, mRangeMinMultiplicity, mRangeMaxMultiplicity);
174+
mHitMultiplicityVsCrate = std::make_shared<TH2F>("Multiplicity/VsCrate", "TOF hit multiplicity vs Crate;Crate;TOF hits", RawDataDecoder::ncrates, 0, RawDataDecoder::ncrates, mBinsMultiplicity2D, mRangeMinMultiplicity, mRangeMaxMultiplicity);
171175
getObjectsManager()->startPublishing(mHitMultiplicityVsCrate.get());
172176

173177
mHitMultiplicityVsCratepro = std::make_shared<TProfile>("Multiplicity/VsCratepro", "TOF hit multiplicity vs Crate;Crate;#LT TOF hits #GT", RawDataDecoder::ncrates, 0, RawDataDecoder::ncrates);
174178
getObjectsManager()->startPublishing(mHitMultiplicityVsCratepro.get());
175179

176-
mHitMultiplicityVsBC = std::make_shared<TH2F>("Multiplicity/VsBC", "TOF hit multiplicity vs BC;BC;#TOF hits;Events", mBinsBCForMultiplicity, 0, mRangeMaxBC, nBinsMultForTH2, mRangeMinMultiplicity, mRangeMaxMultiplicity);
180+
mHitMultiplicityVsBC = std::make_shared<TH2F>("Multiplicity/VsBC", "TOF hit multiplicity vs BC;BC;#TOF hits;Events", mBinsBCForMultiplicity, 0, mRangeMaxBC, mBinsMultiplicity2D, mRangeMinMultiplicity, mRangeMaxMultiplicity);
177181
getObjectsManager()->startPublishing(mHitMultiplicityVsBC.get());
178182

179183
mHitMultiplicityVsBCpro = std::make_shared<TProfile>("Multiplicity/VsBCpro", "TOF hit multiplicity vs BC;BC;#TOF hits;Events", mBinsBCForMultiplicity, 0, mRangeMaxBC);
@@ -279,6 +283,7 @@ void TaskDigits::monitorData(o2::framework::ProcessingContext& ctx)
279283

280284
int currentReadoutWindow = 0;
281285
int currentDiagnostics = 0;
286+
int orbitMultiplicity = 0;
282287
// Loop on readout windows
283288
for (const auto& row : rows) {
284289
const auto& digits_in_row = row.getBunchChannelData(digits); // Digits inside a readout window
@@ -345,7 +350,18 @@ void TaskDigits::monitorData(o2::framework::ProcessingContext& ctx)
345350
currentDiagnostics += nDia;
346351
}
347352
}
348-
currentReadoutWindow++;
353+
354+
int windowIndex = currentReadoutWindow % 3;
355+
int ndigits_in_row = digits_in_row.size();
356+
357+
mHistoMultiplicityRW[windowIndex]->Fill(ndigits_in_row);
358+
orbitMultiplicity += ndigits_in_row;
359+
360+
if (windowIndex == 2) { // End of readout windows, fill orbit multiplicity
361+
362+
mHistoMultiplicityOrbit->Fill(orbitMultiplicity);
363+
orbitMultiplicity = 0; // Reset
364+
}
349365

350366
// Loop on digits
351367
for (auto const& digit : digits_in_row) {
@@ -467,6 +483,7 @@ void TaskDigits::monitorData(o2::framework::ProcessingContext& ctx)
467483
ndigitsPerQuater[1] = 0;
468484
ndigitsPerQuater[2] = 0;
469485
ndigitsPerQuater[3] = 0;
486+
currentReadoutWindow++;
470487
}
471488

472489
for (int iorb = 0; iorb < nOrbits; iorb++) {
@@ -542,6 +559,10 @@ void TaskDigits::reset()
542559
mHistoMultiplicityOA->Reset();
543560
mHistoMultiplicityIC->Reset();
544561
mHistoMultiplicityOC->Reset();
562+
mHistoMultiplicityOrbit->Reset();
563+
for (int i = 0; i < 3; i++) {
564+
mHistoMultiplicityRW[i]->Reset();
565+
}
545566
mHitMultiplicityVsCrate->Reset();
546567
mHitMultiplicityVsCratepro->Reset();
547568
mHitMultiplicityVsBC->Reset();

0 commit comments

Comments
 (0)