Skip to content

Commit bf8606d

Browse files
committed
TrackBasedCalib sends output for every TF
1 parent 3b0bccb commit bf8606d

File tree

1 file changed

+10
-19
lines changed

1 file changed

+10
-19
lines changed

Detectors/TRD/workflow/src/TrackBasedCalibSpec.cxx

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include "DataFormatsParameters/GRPObject.h"
2525
#include "Headers/DataHeader.h"
2626
#include "DataFormatsGlobalTracking/RecoContainer.h"
27+
#include "TStopwatch.h"
2728

2829
using namespace o2::framework;
2930
using 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

5756
void 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

6667
void 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

8680
void TRDTrackBasedCalibDevice::updateTimeDependentParams(ProcessingContext& pc)
@@ -98,11 +92,8 @@ void TRDTrackBasedCalibDevice::finaliseCCDB(ConcreteDataMatcher& matcher, void*
9892

9993
void 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

10899
DataProcessorSpec getTRDTrackBasedCalibSpec(o2::dataformats::GlobalTrackID::mask_t src)

0 commit comments

Comments
 (0)