2424#include "DataFormatsParameters/GRPObject.h"
2525#include "Headers/DataHeader.h"
2626#include "DataFormatsGlobalTracking/RecoContainer.h"
27+ #include "TStopwatch.h"
2728
2829using namespace o2::framework;
2930using namespace o2::globaltracking;
@@ -49,9 +50,7 @@ class TRDTrackBasedCalibDevice : public Task
4950
5051 std::shared_ptr<DataRequest> mDataRequest;
5152 TrackBasedCalib mCalibrator; // gather input data for calibration of vD, ExB and gain
52- std::unique_ptr<Output> mOutput;
53- uint32_t mNumberOfProcessedTFs{0};
54- bool mDataHeaderSet{false};
53+ TStopwatch mTimer;
5554};
5655
5756void TRDTrackBasedCalibDevice::init(InitContext& ic)
@@ -61,26 +60,21 @@ void TRDTrackBasedCalibDevice::init(InitContext& ic)
6160 o2::base::Propagator::initFieldFromGRP();
6261 std::unique_ptr<o2::parameters::GRPObject> grp{o2::parameters::GRPObject::loadFrom()};
6362 mCalibrator.init();
63+ mTimer.Stop();
64+ mTimer.Reset();
6465}
6566
6667void TRDTrackBasedCalibDevice::run(ProcessingContext& pc)
6768{
6869 updateTimeDependentParams(pc);
69- if (!mDataHeaderSet) {
70- mOutput = std::make_unique<Output>(o2::header::gDataOriginTRD, "ANGRESHISTS", 0, Lifetime::Timeframe);
71- mDataHeaderSet = true;
72- }
70+ mTimer.Start(false);
7371 RecoContainer recoData;
7472 recoData.collectData(pc, *mDataRequest.get());
7573 mCalibrator.setInput(recoData);
7674 mCalibrator.calculateAngResHistos();
77- ++mNumberOfProcessedTFs;
78- if (mNumberOfProcessedTFs % 200 == 0) {
79- pc.outputs().snapshot(*mOutput, mCalibrator.getAngResHistos());
80- mDataHeaderSet = false;
81- mNumberOfProcessedTFs = 0;
82- mCalibrator.reset();
83- }
75+ pc.outputs().snapshot(Output{o2::header::gDataOriginTRD, "ANGRESHISTS", 0, Lifetime::Timeframe}, mCalibrator.getAngResHistos());
76+ mCalibrator.reset();
77+ mTimer.Stop();
8478}
8579
8680void TRDTrackBasedCalibDevice::updateTimeDependentParams(ProcessingContext& pc)
@@ -98,11 +92,8 @@ void TRDTrackBasedCalibDevice::finaliseCCDB(ConcreteDataMatcher& matcher, void*
9892
9993void TRDTrackBasedCalibDevice::endOfStream(EndOfStreamContext& ec)
10094{
101- if (mNumberOfProcessedTFs > 0) {
102- ec.outputs().snapshot(*mOutput, mCalibrator.getAngResHistos());
103- }
104- LOGF(info, "Added in total %i entries to angular residual histograms",
105- mCalibrator.getAngResHistos().getNEntries());
95+ LOGF(info, "TRD track-based calibration total timing: Cpu: %.3e Real: %.3e s in %d slots",
96+ mTimer.CpuTime(), mTimer.RealTime(), mTimer.Counter() - 1);
10697}
10798
10899DataProcessorSpec getTRDTrackBasedCalibSpec(o2::dataformats::GlobalTrackID::mask_t src)
0 commit comments