47 mNbinsY = ic.options().get<
int>(
"number-bins");
48 mMinY = ic.options().get<
float>(
"low-edge");
49 mMaxY = ic.options().get<
float>(
"upper-edge");
52 param.printKeyValues();
67 const int nExtraSpectraSlots = 4;
68 auto digits = pc.inputs().get<gsl::span<o2::ft0::Digit>>(
"digits");
69 auto channels = pc.inputs().get<gsl::span<o2::ft0::ChannelData>>(
"channels");
71 for (
const auto& digit :
digits) {
72 const uint64_t trgWordExt = digit.mTriggers.getExtendedTrgWordFT0();
76 const auto& chan = digit.getBunchChannelData(
channels);
78 int NchanA{0}, NchanC{0};
79 for (
const auto& channel : chan) {
81 const auto result = timeSpectraInfoObject.fill(channel.ChId, channel.CFDTime);
84 timeA += channel.CFDTime;
87 timeC += channel.CFDTime;
93 const auto result = timeSpectraInfoObject.fill(kTimeA,
timeA);
97 const auto result = timeSpectraInfoObject.fill(kTimeC,
timeC);
99 const auto resultSum = timeSpectraInfoObject.fill(kSumTimeAC, (
timeA +
timeC) / 2);
100 const auto resultDiff = timeSpectraInfoObject.fill(kDiffTimeCA, (
timeC -
timeA) / 2.);
111void customize(std::vector<o2::framework::ConfigParamSpec>& workflowOptions)
113 std::vector<ConfigParamSpec> options;
114 options.push_back(
ConfigParamSpec{
"dispatcher-mode", VariantType::Bool,
false, {
"Dispatcher mode (FT0/SUB_DIGITSCH and FT0/SUB_DIGITSBC DPL channels should be applied as dispatcher output)."}});
115 options.push_back(
ConfigParamSpec{
"configKeyValues", VariantType::String,
"", {
"Semicolon separated key=value strings"}});
116 std::swap(workflowOptions, options);
124 if (cfgc.
options().
get<
bool>(
"dispatcher-mode")) {
125 inputs.push_back(
InputSpec{{
"channels"},
"FT0",
"SUB_DIGITSCH"});
126 inputs.push_back(
InputSpec{{
"digits"},
"FT0",
"SUB_DIGITSBC"});
128 inputs.push_back(
InputSpec{{
"channels"},
"FT0",
"DIGITSCH"});
129 inputs.push_back(
InputSpec{{
"digits"},
"FT0",
"DIGITSBC"});
133 "FT0TimeSpectraProcessor",
136 {{
"timeSpectra"},
"FT0",
"TIME_SPECTRA"}},
137 AlgorithmSpec{adaptFromTask<o2::ft0::FT0TimeSpectraProcessor>()},
138 Options{{
"number-bins", VariantType::Int, 400, {
"Number of bins along Y-axis"}},
139 {
"low-edge", VariantType::Float, -200.0f, {
"Lower edge of first bin along Y-axis"}},
140 {
"upper-edge", VariantType::Float, 200.0f, {
"Upper edge of last bin along Y-axis"}}}};
143 workflow.emplace_back(dataProcessorSpec);
void customize(std::vector< o2::framework::ConfigParamSpec > &workflowOptions)
WorkflowSpec defineDataProcessing(ConfigContext const &cfgc)
2D messeageable histo class
Timeframe settings Average distance in cm of events merged into Randomize distance around average distance of merged events Simulate correct bunch interactions instead of placing only the average number of events A value[n] sets TFlen for[n] collisions in Number of bunches per trainsort Number of bunch trains Instantaneous interaction rate Do not simulate border Total number of collisions to be placed in the interior of all time Do not select random but walk over array of events in stride steps h Event generator settings h configStandalone Use CPU for GPU Force usage of the specified GPU device no CPU fallback Continue processing after an error First event to Number of events to Number of iterations to Number of iterations to Number of initial iterations excluded from const char Directory with events to Events directory is and not inside events Show standalone event Run event generator maximum time bin of continuous for triggered for automatic continuous for automatic continuous triggered uint64_t
static const DigitFilterParam & Instance()
static void updateFromString(std::string const &)
ConfigParamRegistry & options() const
T get(const char *key) const
void init(o2::framework::InitContext &ic) final
static constexpr int sNCHANNELS_A
void run(o2::framework::ProcessingContext &pc) final
static constexpr int sNCHANNELS
static constexpr int NCellsA
static constexpr int Nchannels
constexpr o2::header::DataOrigin gDataOriginFT0
Defining ITS Vertex explicitly as messageable.
std::vector< DataProcessorSpec > WorkflowSpec
std::vector< InputSpec > Inputs
std::vector< OutputSpec > Outputs
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"
std::vector< ChannelData > channels
std::vector< Digit > digits