From 008ef66a86191d6052b2c6f0b86ff04750a31052 Mon Sep 17 00:00:00 2001 From: hristov Date: Fri, 29 Feb 2008 22:02:41 +0000 Subject: [PATCH] Updates to handle TTimeStamp<->UInt_t conversions correctly (add 0 as second parameter). Record individual start/end times for each DCS sensor map (Haavard) --- STEER/AliDCSSensor.cxx | 2 +- STEER/AliDCSSensorArray.cxx | 35 +++++++++++++++++++++++++---------- 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/STEER/AliDCSSensor.cxx b/STEER/AliDCSSensor.cxx index 47c3e07fac7..b856049f07d 100644 --- a/STEER/AliDCSSensor.cxx +++ b/STEER/AliDCSSensor.cxx @@ -81,7 +81,7 @@ Double_t AliDCSSensor::GetValue(UInt_t timeSec) // timeSec given as offset from start-of-run measured in seconds // Bool_t inside; - return Eval(TTimeStamp((time_t)(fStartTime+timeSec)),inside); + return Eval(TTimeStamp((time_t)(fStartTime+timeSec),0),inside); } //_____________________________________________________________________________ Double_t AliDCSSensor::GetValue(TTimeStamp time) diff --git a/STEER/AliDCSSensorArray.cxx b/STEER/AliDCSSensorArray.cxx index 0bdf76eb9a3..d171c570cef 100644 --- a/STEER/AliDCSSensorArray.cxx +++ b/STEER/AliDCSSensorArray.cxx @@ -108,8 +108,8 @@ AliDCSSensorArray::AliDCSSensorArray(UInt_t startTime, UInt_t endTime, // fSensors = AliDCSSensor::ReadTree(confTree); fSensors->BypassStreamer(kFALSE); - fStartTime = TTimeStamp((time_t)startTime); - fEndTime = TTimeStamp((time_t)endTime); + fStartTime = TTimeStamp((time_t)startTime,0); + fEndTime = TTimeStamp((time_t)endTime,0); } @@ -133,8 +133,8 @@ AliDCSSensorArray::AliDCSSensorArray(UInt_t startTime, UInt_t endTime, // AliDCSSensorArray constructor for Shuttle preprocessor // (TClonesArray of AliDCSSensor objects) // - fStartTime = TTimeStamp((time_t)startTime); - fEndTime = TTimeStamp((time_t)endTime); + fStartTime = TTimeStamp((time_t)startTime,0); + fEndTime = TTimeStamp((time_t)endTime,0); } //_____________________________________________________________________________ @@ -213,7 +213,7 @@ void AliDCSSensorArray::MakeSplineFit(TMap *map, Bool_t keepMap) AliDCSSensor *entry = (AliDCSSensor*)fSensors->At(isensor); TString stringID = entry->GetStringID(); TGraph *gr = (TGraph*)map->GetValue(stringID.Data()); - if (!gr || gr->GetN() == 0 ) { + if (!gr ) { entry->SetFit(0); entry->SetGraph(0); AliWarning(Form("sensor %s: no input graph",stringID.Data())); @@ -223,8 +223,6 @@ void AliDCSSensorArray::MakeSplineFit(TMap *map, Bool_t keepMap) fit->SetMinPoints(fMinGraph); fit->InitKnots(gr,fMinPoints,fIter,fMaxDelta); fit->SplineFit(fFitReq); - entry->SetStartTime(fStartTime); - entry->SetEndTime(fEndTime); fit->Cleanup(); if (fit) { entry->SetFit(fit); @@ -270,6 +268,15 @@ TMap* AliDCSSensorArray::ExtractDCS(TMap *dcsMap) // TMap *values = new TMap; TObjArray * valueSet; + // + // Keep global start/end times + // to avoid extrapolations, the fits will only be valid from first + // measured point to last measured point. This is consistent with hardware, + // as there would be a new measured point if the value changed. + + TTimeStamp startTime=fStartTime; + TTimeStamp endTime=fEndTime; + Int_t nsensors = fSensors->GetEntries(); for ( Int_t isensor=0; isensorAt(isensor); @@ -278,10 +285,18 @@ TMap* AliDCSSensorArray::ExtractDCS(TMap *dcsMap) if ( pair ) { // only try to read values // if DCS object available valueSet = (TObjArray*)pair->Value(); - TGraph *graph = MakeGraph(valueSet); + TGraph *graph = MakeGraph(valueSet); // MakeGraph sets start/end time + // per sensor values->Add(new TObjString(stringID.Data()),graph); + entry->SetStartTime(fStartTime); + entry->SetEndTime(fEndTime); } } + // Reset global start/end time + // ..... yes, I know this won't get a prize for structured programming..:-) + + fStartTime=startTime; + fEndTime=endTime; return values; } @@ -344,8 +359,8 @@ TGraph* AliDCSSensorArray::MakeGraph(TObjArray* valueSet){ y[out] = val->GetFloat(); out++; } - SetStartTime(firstTime); - SetEndTime(lastTime); + fStartTime=firstTime; + fEndTime=lastTime; TGraph * graph = new TGraph(out,x,y); delete [] x; delete [] y; -- 2.43.0