Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Merged
Show file tree
Hide file tree
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
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
namespace o2::ft0
{
struct EventsPerBcContainer {
EventsPerBcContainer(int32_t minAmplitudeSideA, int32_t minAmplitudeSideC) : mMinAmplitudeSideA(minAmplitudeSideA), mMinAmplitudeSideC(minAmplitudeSideC) {}
EventsPerBcContainer(int32_t minAmplitudeSideA, int32_t minAmplitudeSideC, int32_t minSumOfAmplitude) : mMinAmplitudeSideA(minAmplitudeSideA), mMinAmplitudeSideC(minAmplitudeSideC), mMinSumOfAmplitude(minSumOfAmplitude) {}

size_t getEntries() const { return entries; }
void print() const;
Expand All @@ -40,6 +40,7 @@ struct EventsPerBcContainer {

const int32_t mMinAmplitudeSideA;
const int32_t mMinAmplitudeSideC;
const int32_t mMinSumOfAmplitude;

std::array<double, o2::constants::lhc::LHCMaxBunches> mTvx{0.0};
size_t entries{0};
Expand All @@ -56,7 +57,7 @@ class EventsPerBcCalibrator final : public o2::calibration::TimeSlotCalibration<
using EventsHistogram = std::array<double, o2::constants::lhc::LHCMaxBunches>;

public:
EventsPerBcCalibrator(uint32_t minNumberOfEntries, int32_t minAmplitudeSideA, int32_t minAmplitudeSideC);
EventsPerBcCalibrator(uint32_t minNumberOfEntries, int32_t minAmplitudeSideA, int32_t minAmplitudeSideC, int32_t minSumOfAmplitude);

bool hasEnoughData(const Slot& slot) const override;
void initOutput() override;
Expand All @@ -70,6 +71,7 @@ class EventsPerBcCalibrator final : public o2::calibration::TimeSlotCalibration<
const uint32_t mMinNumberOfEntries;
const int32_t mMinAmplitudeSideA;
const int32_t mMinAmplitudeSideC;
const int32_t mMinSumOfAmplitude;

std::vector<EventsPerBc> mTvxPerBcs;
std::vector<std::unique_ptr<o2::ccdb::CcdbObjectInfo>> mTvxPerBcInfos;
Expand Down
6 changes: 3 additions & 3 deletions 6 Detectors/FIT/FT0/calibration/src/EventsPerBcCalibrator.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ void EventsPerBcContainer::fill(const o2::dataformats::TFIDInfo& ti, const gsl::
{
size_t oldEntries = entries;
for (const auto& digit : data) {
if (digit.mTriggers.getVertex() && digit.mTriggers.getAmplA() >= mMinAmplitudeSideA && digit.mTriggers.getAmplC() >= mMinAmplitudeSideC) {
if (digit.mTriggers.getVertex() && digit.mTriggers.getAmplA() >= mMinAmplitudeSideA && digit.mTriggers.getAmplC() >= mMinAmplitudeSideC && (digit.mTriggers.getAmplA() + digit.mTriggers.getAmplC()) >= mMinSumOfAmplitude) {
mTvx[digit.mIntRecord.bc]++;
entries++;
}
Expand All @@ -45,7 +45,7 @@ void EventsPerBcCalibrator::initOutput()
mTvxPerBcInfos.clear();
}

EventsPerBcCalibrator::EventsPerBcCalibrator(uint32_t minNumberOfEntries, int32_t minAmplitudeSideA, int32_t minAmplitudeSideC) : mMinNumberOfEntries(minNumberOfEntries), mMinAmplitudeSideA(minAmplitudeSideA), mMinAmplitudeSideC(minAmplitudeSideC)
EventsPerBcCalibrator::EventsPerBcCalibrator(uint32_t minNumberOfEntries, int32_t minAmplitudeSideA, int32_t minAmplitudeSideC, int32_t minSumOfAmplitude) : mMinNumberOfEntries(minNumberOfEntries), mMinAmplitudeSideA(minAmplitudeSideA), mMinAmplitudeSideC(minAmplitudeSideC), mMinSumOfAmplitude(minSumOfAmplitude)
{
LOG(info) << "Defined threshold for number of entires per slot: " << mMinNumberOfEntries;
LOG(info) << "Defined threshold for side A amplitude for event: " << mMinAmplitudeSideA;
Expand Down Expand Up @@ -75,7 +75,7 @@ EventsPerBcCalibrator::Slot& EventsPerBcCalibrator::emplaceNewSlot(bool front, T
{
auto& cont = getSlots();
auto& slot = front ? cont.emplace_front(tstart, tend) : cont.emplace_back(tstart, tend);
slot.setContainer(std::make_unique<EventsPerBcContainer>(mMinAmplitudeSideA, mMinAmplitudeSideC));
slot.setContainer(std::make_unique<EventsPerBcContainer>(mMinAmplitudeSideA, mMinAmplitudeSideC, mMinSumOfAmplitude));
return slot;
}
} // namespace o2::ft0
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ o2::framework::WorkflowSpec defineDataProcessing(o2::framework::ConfigContext co
{"one-object-per-run", VariantType::Bool, false, {"If set, workflow creates only one calibration object per run"}},
{"min-entries-number", VariantType::UInt32, 5000u, {"Minimum number of entries required for a slot to be valid"}},
{"min-ampl-side-a", VariantType::Int, 0, {"Amplitude threshold for Side A events"}},
{"min-ampl-side-c", VariantType::Int, 0, {"Amplitude threshold for Side C events"}}}};
{"min-ampl-side-c", VariantType::Int, 0, {"Amplitude threshold for Side C events"}},
{"min-sum-of-ampl", VariantType::Int, 0, {"Amplitude threshold for sum of A-side and C-side amplitudes"}}}};

WorkflowSpec workflow;
workflow.emplace_back(dataProcessorSpec);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,11 @@ class FT0EventsPerBcProcessor final : public o2::framework::Task
if (ic.options().hasOption("min-ampl-side-c")) {
mMinAmplitudeSideC = ic.options().get<int32_t>("min-ampl-side-c");
}
if (ic.options().hasOption("min-sum-of-ampl")) {
mMinSumOfAmplitude = ic.options().get<int32_t>("min-sum-of-ampl");
}

mCalibrator = std::make_unique<o2::ft0::EventsPerBcCalibrator>(mMinNumberOfEntries, mMinAmplitudeSideA, mMinAmplitudeSideC);
mCalibrator = std::make_unique<o2::ft0::EventsPerBcCalibrator>(mMinNumberOfEntries, mMinAmplitudeSideA, mMinAmplitudeSideC, mMinSumOfAmplitude);

if (mOneObjectPerRun) {
LOG(info) << "Only one object will be created at the end of run";
Expand Down Expand Up @@ -119,6 +122,7 @@ class FT0EventsPerBcProcessor final : public o2::framework::Task
uint32_t mMinNumberOfEntries;
int32_t mMinAmplitudeSideA;
int32_t mMinAmplitudeSideC;
int32_t mMinSumOfAmplitude;
};
} // namespace o2::calibration
#endif
Morty Proxy This is a proxified and sanitized view of the page, visit original site.