]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliDCSSensorArray.cxx
Fixing in/out tags in documentation
[u/mrichter/AliRoot.git] / STEER / AliDCSSensorArray.cxx
index 77a2499b540b87c0e9f586c94f1c860699f7ce16..64e9fa9db9991d09399f9f35e362d42623a64543 100644 (file)
@@ -23,6 +23,7 @@
 
 #include "AliDCSSensorArray.h"
 #include "AliLog.h"
+#include <TMath.h>
 
 ClassImp(AliDCSSensorArray)
 
@@ -84,8 +85,12 @@ AliDCSSensorArray::AliDCSSensorArray(Int_t run, const char* dbEntry) :
   //
 
   AliCDBEntry *entry = AliCDBManager::Instance()->Get(dbEntry,run);
-  TTree *tree = (TTree*) entry->GetObject();
-  fSensors = AliDCSSensor::ReadTree(tree);
+  if (entry) {
+    TTree *tree = (TTree*) entry->GetObject();
+    fSensors = AliDCSSensor::ReadTree(tree);
+  } else {
+    AliError("Unable to load configuration from CDB!");
+  }
 }
 //_____________________________________________________________________________
 AliDCSSensorArray::AliDCSSensorArray(UInt_t startTime, UInt_t endTime,
@@ -230,7 +235,7 @@ void AliDCSSensorArray::MakeSplineFit(TMap *map, Bool_t keepMap)
       fit->InitKnots(gr,fMinPoints,fIter,fMaxDelta);
       fit->SplineFit(fFitReq);
       fit->Cleanup();
-      if (fit) {
+      if (fit->GetKnots()>0) {
         entry->SetFit(fit);
       } else {
         AliWarning(Form("sensor %s: no fit performed, DCS graph kept.",stringID.Data()));
@@ -283,7 +288,7 @@ void AliDCSSensorArray::MakeSplineFitAddPoints(TMap *map)
     fit->InitKnots(gr,fMinPoints,fIter,fMaxDelta);
     fit->SplineFit(fFitReq);
     fit->Cleanup();
-    if (fit) {
+    if (fit->GetKnots()>0) {
       AliSplineFit *oldFit = entry->GetFit();
       if (oldFit) delete oldFit;
       entry->SetFit(fit);
@@ -383,7 +388,11 @@ TGraph* AliDCSSensorArray::MakeGraph(TObjArray* valueSet, Bool_t keepStart){
   Int_t skipped=0;
   AliDCSValue *val = (AliDCSValue *)valueSet->At(0);
   AliDCSValue::Type type = val->GetType();
-  if ( type == AliDCSValue::kInvalid || type == AliDCSValue::kBool ) return 0;
+  if ( type == AliDCSValue::kInvalid || type == AliDCSValue::kBool ) {
+     delete [] x;
+     delete [] y;
+     return 0;
+  }
   Float_t value;
   for (Int_t i=0; i<nentries; i++){
     val = (AliDCSValue *)valueSet->At(i);
@@ -451,7 +460,7 @@ void AliDCSSensorArray::RemoveGraphDuplicates(Double_t tolerance){
         for (Int_t i=npoints-1;i>0;i--) {
           graph->GetPoint(i,x,y);
           graph->GetPoint(i-1,x0,y0);
-          if ( fabs(y-y0) < fabs(tolerance*y0) ) graph->RemovePoint(i);
+          if ( TMath::Abs(y-y0) < TMath::Abs(tolerance*y0) ) graph->RemovePoint(i);
         }
       }
     }