@@ -33,7 +33,9 @@ void TOFDCSinfo::print() const
3333 LOG (info) << " First Value: timestamp = " << firstValue.first << " , value = " << firstValue.second ;
3434 LOG (info) << " Last Value: timestamp = " << lastValue.first << " , value = " << lastValue.second ;
3535 LOG (info) << " Mid Value: timestamp = " << midValue.first << " , value = " << midValue.second ;
36- LOG (info) << " Max Change: timestamp = " << maxChange.first << " , value = " << maxChange.second ;
36+ LOG (info) << " Min Value: timestamp = " << minValue.first << " , value = " << minValue.second ;
37+ LOG (info) << " Max Value: timestamp = " << maxValue.first << " , value = " << maxValue.second ;
38+ LOG (info) << " Max Change: timestamp[0] = " << maxChange.first [0 ] << " , timestamp[1] = " << maxChange.first [1 ] << " , value = " << maxChange.second ;
3739 std::string updatedStr = updated ? " UPDATED" : " NOT UPDATED" ;
3840 LOG (info) << " Status = " << updatedStr;
3941}
@@ -341,6 +343,9 @@ void TOFDCSProcessor::updateDPsCCDB()
341343 if (type == o2::dcs::DPVAL_DOUBLE ) {
342344 auto & tofdcs = mTOFDCS [it.first ];
343345 if (it.second ) { // we processed the DP at least 1x
346+ if (mVerboseDP ) {
347+ LOG (info) << " Processing DP " << it.first .get_alias ();
348+ }
344349 it.second = false ; // reset for the next period
345350 tofdcs.updated = true ;
346351 auto & dpvect = mDpsdoublesmap [it.first ];
@@ -350,6 +355,17 @@ void TOFDCSProcessor::updateDPsCCDB()
350355 tofdcs.lastValue .first = dpvect.back ().get_epoch_time ();
351356 converter0.raw_data = dpvect.back ().payload_pt1 ;
352357 tofdcs.lastValue .second = converter0.double_value ;
358+ for (const auto & el : dpvect) {
359+ converter0.raw_data = el.payload_pt1 ;
360+ if (converter0.double_value < tofdcs.minValue .second ) {
361+ tofdcs.minValue .first = el.get_epoch_time ();
362+ tofdcs.minValue .second = converter0.double_value ;
363+ }
364+ if (converter0.double_value > tofdcs.maxValue .second ) {
365+ tofdcs.maxValue .first = el.get_epoch_time ();
366+ tofdcs.maxValue .second = converter0.double_value ;
367+ }
368+ }
353369 // now I will look for the max change
354370 if (dpvect.size () > 1 ) {
355371 auto deltatime = dpvect.back ().get_epoch_time () - dpvect[0 ].get_epoch_time ();
@@ -358,19 +374,22 @@ void TOFDCSProcessor::updateDPsCCDB()
358374 // max variation is defined as the difference between first and last value
359375 converter0.raw_data = dpvect[0 ].payload_pt1 ;
360376 converter1.raw_data = dpvect.back ().payload_pt1 ;
361- double delta = std::abs (converter0.double_value - converter1.double_value );
362- tofdcs.maxChange .first = deltatime; // is it ok to do like this, as in Run 2?
377+ double delta = converter0.double_value - converter1.double_value ;
378+ tofdcs.maxChange .first [0 ] = dpvect[0 ].get_epoch_time ();
379+ tofdcs.maxChange .first [1 ] = dpvect.back ().get_epoch_time ();
363380 tofdcs.maxChange .second = delta;
364381 } else {
365382 for (auto i = 0 ; i < dpvect.size () - 1 ; ++i) {
366383 for (auto j = i + 1 ; j < dpvect.size (); ++j) {
367384 auto deltatime = dpvect[j].get_epoch_time () - dpvect[i].get_epoch_time ();
368- if (deltatime >= 60000 ) { // we check every min ; epoch_time in ms
385+ if (deltatime >= 60000 ) { // we compare to values coming from at least 1 minute later ; epoch_time in ms
369386 converter0.raw_data = dpvect[i].payload_pt1 ;
370387 converter1.raw_data = dpvect[j].payload_pt1 ;
371- double delta = std::abs (converter0.double_value - converter1.double_value );
372- if (delta > tofdcs.maxChange .second ) {
373- tofdcs.maxChange .first = deltatime; // is it ok to do like this, as in Run 2?
388+ double delta = converter0.double_value - converter1.double_value ;
389+ LOG (info) << " converter0.double_value = " << converter0.double_value << " , converter1.double_value = " << converter1.double_value << " , delta = " << delta << " tofdcs.maxChange.second = " << tofdcs.maxChange .second ;
390+ if (std::abs (delta) > std::abs (tofdcs.maxChange .second )) {
391+ tofdcs.maxChange .first [0 ] = dpvect[i].get_epoch_time ();
392+ tofdcs.maxChange .first [1 ] = dpvect[j].get_epoch_time ();
374393 tofdcs.maxChange .second = delta;
375394 }
376395 }
@@ -383,7 +402,8 @@ void TOFDCSProcessor::updateDPsCCDB()
383402 converter0.raw_data = dpvect[midIdx].payload_pt1 ;
384403 tofdcs.midValue .second = converter0.double_value ;
385404 } else {
386- tofdcs.maxChange .first = dpvect[0 ].get_epoch_time ();
405+ tofdcs.maxChange .first [0 ] = dpvect[0 ].get_epoch_time ();
406+ tofdcs.maxChange .first [1 ] = dpvect[0 ].get_epoch_time ();
387407 converter0.raw_data = dpvect[0 ].payload_pt1 ;
388408 tofdcs.maxChange .second = converter0.double_value ;
389409 tofdcs.midValue .first = dpvect[0 ].get_epoch_time ();
0 commit comments