Newer
Older
<< iVal;

Pierre-Alain Loizeau
committed
return;
} // if( (*det).detId == selDet )
} // for( std::vector< EventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
LOG(warning)
<< "CbmMcbm2019TimeWinEventBuilderAlgo::SetTriggerMaxNumber => "
"Doing nothing, detector neither reference nor in selection list!"
<< selDet;

Pierre-Alain Loizeau
committed
}
void CbmMcbm2019TimeWinEventBuilderAlgo::SetTriggerWindow(ECbmModuleId selDet,
Double_t dWinBeg,
Double_t dWinEnd) {
/// Check if valid time window: end strictly after beginning
if (dWinEnd <= dWinBeg)
LOG(fatal) << "CbmMcbm2019TimeWinEventBuilderAlgo::SetTriggerWindow => "
"Invalid time window: [ "
<< dWinBeg << ", " << dWinEnd << " ]";

Pierre-Alain Loizeau
committed
Bool_t bFound = kFALSE;
/// Check first if reference detector
if (fRefDet.detId == selDet) {
fRefDet.fdTimeWinBeg = dWinBeg;
fRefDet.fdTimeWinEnd = dWinEnd;
bFound = kTRUE;
} // if( fRefDet == selDet )
/// Loop on selection detectors
for (std::vector<EventBuilderDetector>::iterator det = fvDets.begin();
det != fvDets.end();
++det) {

Pierre-Alain Loizeau
committed
if ((*det).detId == selDet) {
(*det).fdTimeWinBeg = dWinBeg;
(*det).fdTimeWinEnd = dWinEnd;

Pierre-Alain Loizeau
committed
bFound = kTRUE;
} // if( (*det).detId == selDet )
} // for( std::vector< EventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
if (kFALSE == bFound) {
LOG(warning)
<< "CbmMcbm2019TimeWinEventBuilderAlgo::SetTriggerWindow => "
"Doing nothing, detector neither reference nor in selection list!"
<< selDet;
} // if( kFALSE == bFound )
/// Update the variables storing the earliest and latest time window boundaries
UpdateTimeWinBoundariesExtrema();
/// Update the variable storing the size if widest time window for overlap detection
UpdateWidestTimeWinRange();
}
void CbmMcbm2019TimeWinEventBuilderAlgo::UpdateTimeWinBoundariesExtrema() {

Pierre-Alain Loizeau
committed
/// Initialize with reference detector
fdEarliestTimeWinBeg = fRefDet.fdTimeWinBeg;
fdLatestTimeWinEnd = fRefDet.fdTimeWinEnd;
/// Loop on selection detectors
for (std::vector<EventBuilderDetector>::iterator det = fvDets.begin();
det != fvDets.end();
++det) {
fdEarliestTimeWinBeg = std::min(fdEarliestTimeWinBeg, (*det).fdTimeWinBeg);
fdLatestTimeWinEnd = std::max(fdLatestTimeWinEnd, (*det).fdTimeWinEnd);

Pierre-Alain Loizeau
committed
} // for( std::vector< EventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
void CbmMcbm2019TimeWinEventBuilderAlgo::UpdateWidestTimeWinRange() {

Pierre-Alain Loizeau
committed
/// Initialize with reference detector
fdWidestTimeWinRange = fRefDet.fdTimeWinEnd - fRefDet.fdTimeWinBeg;
/// Loop on selection detectors
for (std::vector<EventBuilderDetector>::iterator det = fvDets.begin();
det != fvDets.end();
++det) {
fdWidestTimeWinRange =
std::max(fdWidestTimeWinRange, (*det).fdTimeWinEnd - (*det).fdTimeWinBeg);

Pierre-Alain Loizeau
committed
} // for( std::vector< EventBuilderDetector >::iterator det = fvDets.begin(); det != fvDets.end(); ++det )
}
//----------------------------------------------------------------------
ClassImp(CbmMcbm2019TimeWinEventBuilderAlgo)