Skip to content
Snippets Groups Projects

Introduced monitoring for cbm::algo::EventBuilder.

Merged Dominik Smith requested to merge d.smith/cbmroot:EventBuilderMonitoring into master
1 unresolved thread
5 files
+ 90
16
Compare changes
  • Side-by-side
  • Inline

Files

+ 28
6
@@ -14,16 +14,30 @@ namespace cbm
namespace algo
{
// --- Execution
std::vector<CbmDigiEvent> EventBuilder::operator()(const CbmDigiTimeslice& ts, const vector<double> triggers) const
EventBuilder::resultType EventBuilder::operator()(const CbmDigiTimeslice& ts, const vector<double> triggers) const
{
vector<CbmDigiEvent> eventVec(triggers.size());
std::transform(triggers.begin(), triggers.end(), eventVec.begin(),
[&ts, this](const double& trigger) { return BuildEvent(ts, trigger); });
return eventVec;
// --- Output data
resultType result = {};
result.first.resize(triggers.size());
std::transform(triggers.begin(), triggers.end(), result.first.begin(),
[&ts, &result, this](const double& trigger) { return BuildEvent(ts, result.second, trigger); });
EventBuilderMonitorData& monitor = result.second;
monitor.fSts.fNum += ts.fData.fSts.fDigis.size();
monitor.fRich.fNum += ts.fData.fRich.fDigis.size();
monitor.fMuch.fNum += ts.fData.fMuch.fDigis.size();
monitor.fTrd.fNum += ts.fData.fTrd.fDigis.size();
monitor.fTrd2d.fNum += ts.fData.fTrd2d.fDigis.size();
monitor.fTof.fNum += ts.fData.fTof.fDigis.size();
monitor.fPsd.fNum += ts.fData.fPsd.fDigis.size();
monitor.fBmon.fNum += ts.fData.fT0.fDigis.size();
return result;
}
// --- Build a single event
CbmDigiEvent EventBuilder::BuildEvent(const CbmDigiTimeslice& ts, double trigger) const
CbmDigiEvent EventBuilder::BuildEvent(const CbmDigiTimeslice& ts, EventBuilderMonitorData& monitor,
double trigger) const
{
CbmDigiEvent event;
event.fTime = trigger;
@@ -72,6 +86,14 @@ namespace cbm
default: break;
}
}
monitor.fSts.fNumInEvents += event.fData.fSts.fDigis.size();
monitor.fRich.fNumInEvents += event.fData.fRich.fDigis.size();
monitor.fMuch.fNumInEvents += event.fData.fMuch.fDigis.size();
monitor.fTrd.fNumInEvents += event.fData.fTrd.fDigis.size();
monitor.fTrd2d.fNumInEvents += event.fData.fTrd2d.fDigis.size();
monitor.fTof.fNumInEvents += event.fData.fTof.fDigis.size();
monitor.fPsd.fNumInEvents += event.fData.fPsd.fDigis.size();
monitor.fBmon.fNumInEvents += event.fData.fT0.fDigis.size();
return event;
}
} // namespace algo
Loading