Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions Common/TableProducer/multiplicityExtraTable.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
// In applying this license CERN does not waive the privileges and immunities
// granted to it by virtue of its status as an Intergovernmental Organization
// or submit itself to any jurisdiction.
#include <CCDB/BasicCCDBManager.h> // megalinter thinks this is a C header...

Check failure on line 11 in Common/TableProducer/multiplicityExtraTable.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[doc/file]

Documentation for \file is missing, incorrect or misplaced.
#include <bitset>
#include "Framework/ConfigParamSpec.h"
#include "Framework/runDataProcessing.h"
Expand Down Expand Up @@ -36,6 +36,9 @@
Produces<aod::Mults2BC> mult2bc;
Produces<aod::BC2Mults> bc2mult;

// auxiliary for MC
Produces<aod::MultHepMCHIs> multHepMCHIs;

// Allow for downscaling of BC table for less space use in derived data
Configurable<float> bcDownscaleFactor{"bcDownscaleFactor", 2, "Downscale factor for BC table (0: save nothing, 1: save all)"};
Configurable<float> minFT0CforBCTable{"minFT0CforBCTable", 25.0f, "Minimum FT0C amplitude to fill BC table to reduce data"};
Expand All @@ -45,7 +48,7 @@

float tru(float value)
{
if (bcTableFloatPrecision < 1e-4)

Check failure on line 51 in Common/TableProducer/multiplicityExtraTable.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
return value; // make sure nothing bad happens in case zero (best precision)
return bcTableFloatPrecision * std::round(value / bcTableFloatPrecision) + 0.5f * bcTableFloatPrecision;
};
Expand Down Expand Up @@ -102,7 +105,7 @@
float multFT0C = 0.f;
if (bc.has_ft0()) {
auto ft0 = bc.ft0();
for (auto amplitude : ft0.amplitudeC()) {

Check failure on line 108 in Common/TableProducer/multiplicityExtraTable.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
multFT0C += amplitude;
}
} else {
Expand Down Expand Up @@ -181,10 +184,10 @@
multFT0TriggerBits = static_cast<uint8_t>(triggers.to_ulong());

// calculate T0 charge
for (auto amplitude : ft0.amplitudeA()) {

Check failure on line 187 in Common/TableProducer/multiplicityExtraTable.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
multFT0A += amplitude;
}
for (auto amplitude : ft0.amplitudeC()) {

Check failure on line 190 in Common/TableProducer/multiplicityExtraTable.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
multFT0C += amplitude;
}
posZFT0 = ft0.posZ();
Expand All @@ -198,7 +201,7 @@
std::bitset<8> fV0Triggers = fv0.triggerMask();
multFV0TriggerBits = static_cast<uint8_t>(fV0Triggers.to_ulong());

for (auto amplitude : fv0.amplitude()) {

Check failure on line 204 in Common/TableProducer/multiplicityExtraTable.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
multFV0A += amplitude;
}
isFV0OrA = fV0Triggers[o2::fit::Triggers::bitA];
Expand All @@ -211,10 +214,10 @@
std::bitset<8> fFDDTriggers = fdd.triggerMask();
multFDDTriggerBits = static_cast<uint8_t>(fFDDTriggers.to_ulong());

for (auto amplitude : fdd.chargeA()) {

Check failure on line 217 in Common/TableProducer/multiplicityExtraTable.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
multFDDA += amplitude;
}
for (auto amplitude : fdd.chargeC()) {

Check failure on line 220 in Common/TableProducer/multiplicityExtraTable.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
multFDDC += amplitude;
}
} else {
Expand Down Expand Up @@ -266,20 +269,33 @@

if (ii - 1 >= 0)
deltaPrevious = timeArray[ii] - timeArray[ii - 1];
if (ii - 2 >= 0)

Check failure on line 272 in Common/TableProducer/multiplicityExtraTable.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
deltaPrePrevious = timeArray[ii] - timeArray[ii - 2];
if (ii + 1 < collisions.size())
deltaNext = timeArray[ii + 1] - timeArray[ii];
if (ii + 2 < collisions.size())

Check failure on line 276 in Common/TableProducer/multiplicityExtraTable.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
deltaNeNext = timeArray[ii + 2] - timeArray[ii];

multNeigh(deltaPrePrevious, deltaPrevious, deltaNext, deltaNeNext);
}
}

void processHepMCHeavyIons(aod::HepMCHeavyIons const& hepmchis)
{
for (auto const& hepmchi : hepmchis) {
multHepMCHIs(hepmchi.mcCollisionId(),
hepmchi.ncollHard(),
hepmchi.npartProj(),
hepmchi.npartTarg(),
hepmchi.ncoll(),
hepmchi.impactParameter());
}
}

// Process switches
PROCESS_SWITCH(MultiplicityExtraTable, processBCs, "Produce BC tables", true);
PROCESS_SWITCH(MultiplicityExtraTable, processCollisionNeighbors, "Produce neighbor timing tables", true);
PROCESS_SWITCH(MultiplicityExtraTable, processHepMCHeavyIons, "Produce MultHepMCHIs tables", false);
};

WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
Expand Down
Loading