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