]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TOF/AliTOFDataDCS.cxx
Fixes for coverity
[u/mrichter/AliRoot.git] / TOF / AliTOFDataDCS.cxx
index 2313453ef13f14a3854581bd809418badb637619..451cb139ee3ff370c0cb935573dd5197df09dc3e 100644 (file)
@@ -44,9 +44,13 @@ Class for handling the TOF DCS data in the Shuttle (C.Zampolli)
 
 */  
 
+// AliTOFDataDCS class
+// main aim to introduce the aliases for the TOF DCS
+// data points to be then
+// stored in the OCDB, and to process them. 
+// Process() method called by TOFPrepr
+
 #include "TString.h"
-//#include "TF1.h"
-//#include "TH1F.h"
 #include "TTimeStamp.h"
 #include "TMap.h"
 #include "TCanvas.h"
@@ -61,12 +65,6 @@ class TH2;
 class AliCDBMetaData;
 class TDatime;
 
-// AliTOFDataDCS class
-// main aim to introduce the aliases for the TOF DCS
-// data points to be then
-// stored in the OCDB, and to process them. 
-// Process() method called by TOFPrepr
-
 ClassImp(AliTOFDataDCS)
 
 //---------------------------------------------------------------
@@ -75,6 +73,8 @@ AliTOFDataDCS::AliTOFDataDCS():
        fRun(0),
        fStartTime(0),
        fEndTime(0),
+       fStartTimeDCSQuery(0),
+       fEndTimeDCSQuery(0),
        fIsProcessed(kFALSE),
        fFDR(kFALSE)
 {
@@ -92,20 +92,24 @@ AliTOFDataDCS::AliTOFDataDCS():
 }
 
 //---------------------------------------------------------------
-AliTOFDataDCS::AliTOFDataDCS(Int_t nRun, UInt_t startTime, UInt_t endTime):
+AliTOFDataDCS::AliTOFDataDCS(Int_t nRun, UInt_t startTime, UInt_t endTime, UInt_t startTimeDCSQuery, UInt_t endTimeDCSQuery):
        TObject(),
        fRun(nRun),
        fStartTime(startTime),
        fEndTime(endTime),
+       fStartTimeDCSQuery(startTimeDCSQuery),
+       fEndTimeDCSQuery(endTimeDCSQuery),
        fIsProcessed(kFALSE),
        fFDR(kFALSE)
 {
 
   // constructor with arguments
 
-       AliInfo(Form("\n\tRun %d \n\tStartTime %s \n\tEndTime %s", nRun,
+       AliInfo(Form("\n\tRun %d \n\tStartTime %s \n\tEndTime %s \n\tStartTime DCS Query %s \n\tEndTime DCS Query %s", nRun,
        TTimeStamp(startTime).AsString(),
-       TTimeStamp(endTime).AsString()));
+       TTimeStamp(endTime).AsString(), 
+       TTimeStamp(startTimeDCSQuery).AsString(), 
+        TTimeStamp(endTimeDCSQuery).AsString()));
 
        Init();
 
@@ -114,22 +118,18 @@ AliTOFDataDCS::AliTOFDataDCS(Int_t nRun, UInt_t startTime, UInt_t endTime):
 //---------------------------------------------------------------
 
 AliTOFDataDCS::AliTOFDataDCS(const AliTOFDataDCS & data):
-  TObject(), 
-  fRun(0),
-  fStartTime(0),
-  fEndTime(0),
-  fIsProcessed(kFALSE),
-  fFDR(kFALSE)
+  TObject(data), 
+  fRun(data.fRun),
+  fStartTime(data.fStartTime),
+  fEndTime(data.fEndTime),
+  fStartTimeDCSQuery(data.fStartTimeDCSQuery),
+  fEndTimeDCSQuery(data.fEndTimeDCSQuery),
+  fIsProcessed(data.fIsProcessed),
+  fFDR(data.fFDR)
 
 {
 
-// copy constructor
-
-  fRun=data.fRun;
-  fStartTime=data.fStartTime;
-  fEndTime=data.fEndTime;
-  fIsProcessed=data.fIsProcessed;
-  fFDR=data.fFDR;
+  // copy constructor
 
   for(int i=0;i<kNAliases;i++) {
     fAliasNames[i]=data.fAliasNames[i];
@@ -148,21 +148,27 @@ AliTOFDataDCS::AliTOFDataDCS(const AliTOFDataDCS & data):
 
 AliTOFDataDCS& AliTOFDataDCS:: operator=(const AliTOFDataDCS & data) { 
 
-// assignment operator
+  // assignment operator
+
+  if (this == &data)
+    return *this;
 
-  this->fRun=data.GetRun();
-  this->fStartTime=data.GetStartTime();
-  this->fEndTime=data.GetEndTime();
+  TObject::operator=(data);
+  fRun=data.GetRun();
+  fStartTime=data.GetStartTime();
+  fEndTime=data.GetEndTime();
+  fStartTimeDCSQuery=data.GetStartTimeDCSQuery();
+  fEndTimeDCSQuery=data.GetEndTimeDCSQuery();
 
   for(int i=0;i<kNAliases;i++) {
-    this->fAliasNames[i]=data.GetAliasName(i);
+    fAliasNames[i]=data.GetAliasName(i);
   }
 
   for(int i=0;i<kNHV;i++) {
-    this->fHVvp[i]=data.GetHVvp(i);
-    this->fHVvn[i]=data.GetHVvn(i);
-    this->fHVip[i]=data.GetHVip(i);
-    this->fHVin[i]=data.GetHVin(i);
+    fHVvp[i]=data.GetHVvp(i);
+    fHVvn[i]=data.GetHVvn(i);
+    fHVip[i]=data.GetHVip(i);
+    fHVin[i]=data.GetHVin(i);
   }
 
 
@@ -194,13 +200,18 @@ Bool_t AliTOFDataDCS::ProcessData(TMap& aliasMap){
   if(!(fAliasNames[0])) Init();
 
   Float_t val=0;
+  Float_t val0=0;
   Float_t val1=0;
   Float_t time=0; 
+  Float_t time0=0; 
+  Float_t time1=0; 
   Float_t delta[2];
   Float_t timedelta[2];
 
   AliInfo(Form(" Start Time = %i",fStartTime));
   AliInfo(Form(" End Time = %i",fEndTime));
+  AliInfo(Form(" Start Time DCS Query= %i",fStartTimeDCSQuery));
+  AliInfo(Form(" End Time DCS Query= %i",fEndTimeDCSQuery));
 
   if (fEndTime==fStartTime){
     AliError(Form(" Run with null time length: start time = %i = end time = %i",fStartTime,fEndTime));
@@ -209,6 +220,7 @@ Bool_t AliTOFDataDCS::ProcessData(TMap& aliasMap){
 
   TObjArray *aliasArr;
   AliDCSValue* aValue;
+  AliDCSValue* aValue0;
   AliDCSValue* aValue1;
 
   // starting loop on aliases
@@ -231,9 +243,76 @@ Bool_t AliTOFDataDCS::ProcessData(TMap& aliasMap){
 
     Introduce(j, aliasArr);
     
-    if(aliasArr->GetEntries()<3){
-      AliError(Form("Alias %s has just %d entries!",
+    if(aliasArr->GetEntries()==0){
+      AliError(Form("Alias %s has no entries! Nothing will be stored",
+                   fAliasNames[j].Data()));
+      continue;
+    }
+    if(aliasArr->GetEntries() == 1){
+      AliWarning(Form("Alias %s has just %d entries! Only first value will be stored",
+                   fAliasNames[j].Data(),aliasArr->GetEntries()));
+      aValue0 = (AliDCSValue*) aliasArr->At(0);
+      val0 = aValue0->GetFloat();
+      time0 = (Float_t) (aValue0->GetTimeStamp());
+      if (j<kNHV){
+       fHVvp[j]->SetFloat(0,val0);
+       fHVvp[j]->SetTimeStampFloat(0,time0);
+      }
+      else if (j<kNHV*2){
+       fHVvn[j-kNHV]->SetFloat(0,val0);
+       fHVvn[j-kNHV]->SetTimeStampFloat(0,time0);
+      }
+      else if (j<kNHV*3){
+       fHVip[j-2*kNHV]->SetFloat(0,val0);
+       fHVip[j-2*kNHV]->SetTimeStampFloat(0,time0);
+      }
+      else if (j<kNHV*4){
+       fHVin[j-3*kNHV]->SetFloat(0,val0);
+       fHVin[j-3*kNHV]->SetTimeStampFloat(0,time0);
+      }
+      continue;
+    }
+    if(aliasArr->GetEntries()==2){
+      AliWarning(Form("Alias %s has just %d entries! Storing first and second entry only and the delta between these two",
                    fAliasNames[j].Data(),aliasArr->GetEntries()));
+      aValue0 = (AliDCSValue*) aliasArr->At(0);
+      val0 = aValue0->GetFloat();
+      time0 = (Float_t) (aValue0->GetTimeStamp());
+      aValue1 = (AliDCSValue*) aliasArr->At(1);
+      val1 = aValue1->GetFloat();
+      time1 = (Float_t) (aValue1->GetTimeStamp());
+      if (j<kNHV){
+       fHVvp[j]->SetFloat(0,val0);
+       fHVvp[j]->SetTimeStampFloat(0,time0);
+       fHVvp[j]->SetFloat(1,val1);
+       fHVvp[j]->SetTimeStampFloat(1,time1);
+       fHVvp[j]->SetDelta(0,TMath::Abs(val1-val0));
+       fHVvp[j]->SetTimeStampDelta(0,time1-time0);
+      }
+      else if (j<kNHV*2){
+       fHVvn[j-kNHV]->SetFloat(0,val0);
+       fHVvn[j-kNHV]->SetTimeStampFloat(0,time0);
+       fHVvn[j-kNHV]->SetFloat(1,val1);
+       fHVvn[j-kNHV]->SetTimeStampFloat(1,time1);
+       fHVvn[j-kNHV]->SetDelta(0,TMath::Abs(val1-val0));
+       fHVvn[j-kNHV]->SetTimeStampDelta(0,time1-time0);
+      }
+      else if (j<kNHV*3){
+       fHVip[j-2*kNHV]->SetFloat(0,val0);
+       fHVip[j-2*kNHV]->SetTimeStampFloat(0,time0);
+       fHVip[j-2*kNHV]->SetFloat(1,val1);
+       fHVip[j-2*kNHV]->SetTimeStampFloat(1,time1);
+       fHVip[j-2*kNHV]->SetDelta(0,TMath::Abs(val1-val0));
+       fHVip[j-2*kNHV]->SetTimeStampDelta(0,time1-time0);
+      }
+      else if (j<kNHV*4){
+       fHVin[j-3*kNHV]->SetFloat(0,val0);
+       fHVin[j-3*kNHV]->SetTimeStampFloat(0,time0);
+       fHVin[j-3*kNHV]->SetFloat(1,val1);
+       fHVin[j-3*kNHV]->SetTimeStampFloat(1,time1);
+       fHVin[j-3*kNHV]->SetDelta(0,TMath::Abs(val1-val0));
+       fHVin[j-3*kNHV]->SetTimeStampDelta(0,time1-time0);
+      }
       continue;
     }
     
@@ -279,7 +358,8 @@ Bool_t AliTOFDataDCS::ProcessData(TMap& aliasMap){
   
     //computing the most significant variations
 
-    Float_t timeDiff = (Float_t)(fEndTime-fStartTime);
+    //Float_t timeDiff = (Float_t)(fEndTime-fStartTime);
+    Float_t timeDiff = (Float_t)(fEndTimeDCSQuery-fStartTimeDCSQuery);
     Int_t deltamin = (Int_t)(60/timeDiff*nentries); //sampling every minute
     Int_t klast = nentries-deltamin;
       
@@ -382,7 +462,7 @@ void AliTOFDataDCS::Introduce(UInt_t numAlias, const TObjArray* aliasArr)const
 //---------------------------------------------------------------
 void AliTOFDataDCS::Draw(const Option_t* /*option*/)
 {
-// Draw all histos and graphs
+  // Draw all histos and graphs
 
   if(!fIsProcessed) return;