47 LOG(info) <<
"FT0 dead channel map will be applied " << mUseDeadChannelMap;
61 LOG(info) <<
"Ignoring MC info";
63 if (mUseTimeOffsetCalib) {
68 if (mUseSlewingCalib) {
73 if (mUseDeadChannelMap && mUpdateDeadChannelMap) {
74 LOG(
debug) <<
"Applying dead channel map";
79 mRecPoints.reserve(
digits.size());
83 LOG(
debug) <<
"FT0 reconstruction pushes " << mRecPoints.size() <<
" RecPoints";
93 LOG(
debug) <<
"New TimeSpectraInfo is uploaded";
97 LOG(
debug) <<
"New SlewingCoef is uploaded";
98 mUseSlewingCalib =
false;
102 LOG(
debug) <<
"New DeadChannelMap is uploaded";
103 mUpdateDeadChannelMap =
false;
110 LOGF(info,
"FT0 reconstruction total timing: Cpu: %.3e Real: %.3e s in %d slots",
111 mTimer.CpuTime(), mTimer.RealTime(), mTimer.Counter() - 1);
116 std::vector<InputSpec> inputSpec;
117 std::vector<OutputSpec> outputSpec;
122 LOG(info) <<
"Currently Reconstruction does not consume and provide MC truth";
125 if (useTimeOffsetCalib) {
126 inputSpec.emplace_back(
"ft0_timespectra",
"FT0",
"TimeSpectraInfo", 0,
131 if (useSlewingCalib) {
132 inputSpec.emplace_back(
"ft0_slewing_coef",
"FT0",
"SlewingCoef", 0,
137 if (useDeadChannelMap) {
138 LOG(info) <<
"Dead channel map will be applied during reconstruction";
149 AlgorithmSpec{adaptFromTask<ReconstructionDPL>(useMC, ccdbpath, useTimeOffsetCalib, useSlewingCalib, useDeadChannelMap)},
Definition of a container to keep Monte Carlo truth external to simulation objects.
static const ChannelFilterParam & Instance()
void snapshot(const Output &spec, T const &object)
DataAllocator & outputs()
The data allocator is used to allocate memory for the output data.
InputRecord & inputs()
The inputs associated with this processing context.
void SetSlewingCalibObject(o2::ft0::SlewingCoef const *calibSlew)
void SetDeadChannelMap(const o2::fit::DeadChannelMap *deadChannelMap)
void SetTimeCalibObject(o2::ft0::TimeSpectraInfoObject const *timeCalibObject)
void processTF(const gsl::span< const o2::ft0::Digit > &digits, const gsl::span< const o2::ft0::ChannelData > &channels, std::vector< o2::ft0::RecPoints > &vecRecPoints, std::vector< o2::ft0::ChannelDataFloat > &vecChData)
void init(InitContext &ic) final
void endOfStream(framework::EndOfStreamContext &ec) final
This is invoked whenever we have an EndOfStream event.
void run(ProcessingContext &pc) final
void finaliseCCDB(ConcreteDataMatcher &matcher, void *obj) final
constexpr o2::header::DataOrigin gDataOriginFT0
Defining PrimaryVertex explicitly as messageable.
std::vector< ConfigParamSpec > ccdbParamSpec(std::string const &path, int runDependent, std::vector< CCDBMetadata > metadata={}, int qrate=0)
std::vector< ConfigParamSpec > Options
framework::DataProcessorSpec getReconstructionSpec(bool useMC=false, const std::string ccdbpath="http://alice-ccdb.cern.ch", bool useTimeOffsetCalib=true, bool useSlewingCalib=true, bool useDeadChannelMap=true)
create a processor spec
struct o2::upgrades_utils::@461 ft0
structure to keep V0C information
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"
std::vector< ChannelData > channels
std::vector< Digit > digits