]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ZDC/AliZDCDataDCS.cxx
Bugs corrected thanks to C.Z. and some other changes
[u/mrichter/AliRoot.git] / ZDC / AliZDCDataDCS.cxx
index 9ff4671bb22729cb343b2e5e04af5078891a48d4..19d9a88fbe74ee2f74823118f16fb9749db8a226 100644 (file)
+///////////////////////////////////////////////////////////////////////////////
+//                                                                           //
+// Class for ZDC DCS data                                                    //
+//                                                                           //
+///////////////////////////////////////////////////////////////////////////////
+
 #include "AliZDCDataDCS.h"
 
 #include "AliCDBMetaData.h"
 #include "AliDCSValue.h"
 #include "AliLog.h"
 
-#include <TTimeStamp.h>
-#include <TObjString.h>
-#include <TGraph.h>
+#include <TCanvas.h>
 #include <TDatime.h>
+#include <TGraph.h>
+#include <TH1.h>
+#include <TObjString.h>
 #include <TStyle.h>
-#include <TCanvas.h>
+#include <TTimeStamp.h>
 
 ClassImp(AliZDCDataDCS)
 
 //---------------------------------------------------------------
 AliZDCDataDCS::AliZDCDataDCS():
-       TObject(),
-       fRun(0),
-       fStartTime(0),
-       fEndTime(0),
-       fGraphs("TGraph",kNGraphs),
-       fIsProcessed(kFALSE)
-{}
+   TObject(),
+   fRun(0),
+   fStartTime(0),
+   fEndTime(0),
+   fStartTimeDCSQuery(0),
+   fEndTimeDCSQuery(0),
+   fGraphs("TGraph",kNGraphs),
+   fIsProcessed(kFALSE)
+{
+  // Default constructor
+  for(Int_t i=0; i<kNAliases; i++){   
+     fAliasNames[i] = "";
+     fCalibData[i] = 0.; 
+     fTimeStamp[i] = 0.; 
+  }
+}
 
 //---------------------------------------------------------------
-AliZDCDataDCS::AliZDCDataDCS(Int_t nRun, UInt_t startTime, UInt_t endTime):
-       TObject(),
-       fRun(nRun),
-       fStartTime(startTime),
-       fEndTime(endTime),
-       fGraphs("TGraph",kNGraphs),
-       fIsProcessed(kFALSE)
+AliZDCDataDCS::AliZDCDataDCS(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),
+   fGraphs("TGraph",kNGraphs),
+   fIsProcessed(kFALSE)
 {
-       AliInfo(Form("\n\tRun %d \n\tStartTime %s \n\tEndTime %s", nRun,
-       TTimeStamp(startTime).AsString(),
-       TTimeStamp(endTime).AsString()));
+   // Standard constructor
+   
+   AliDebug(2,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(startTimeDCSQuery).AsString(), 
+   TTimeStamp(endTimeDCSQuery).AsString()));
 
-       Init();
+   Init();
 
 }
 
 //---------------------------------------------------------------
-AliZDCDataDCS::~AliZDCDataDCS() {
+AliZDCDataDCS::AliZDCDataDCS(const AliZDCDataDCS & data):
+  TObject(data), 
+  fRun(data.fRun),
+  fStartTime(data.fStartTime),
+  fEndTime(data.fEndTime),
+  fStartTimeDCSQuery(data.fStartTimeDCSQuery),
+  fEndTimeDCSQuery(data.fEndTimeDCSQuery),
+  fGraphs(data.fGraphs),
+  fIsProcessed(data.fIsProcessed)
+{
+
+  // copy constructor
 
-       fGraphs.Clear("C");
+  for(int i=0;i<kNAliases;i++) {
+    fAliasNames[i]=data.fAliasNames[i];
+  }
+  
+    
 }
 
 //---------------------------------------------------------------
-void AliZDCDataDCS::ProcessData(TMap& aliasMap){
-
-       TObjArray *aliasArr;
-       AliDCSValue* aValue;
-       for(int j=4; j<kNAliases; j++){
-               aliasArr = (TObjArray*) aliasMap.GetValue(fAliasNames[j].Data());
-               if(!aliasArr){
-                       AliError(Form("Alias %s not found!", fAliasNames[j].Data()));
-                       continue;
-               }
-               Introduce(j, aliasArr);
-
-               if(aliasArr->GetEntries()<2){
-                       AliError(Form("Alias %s has just %d entries!",
-                                       fAliasNames[j].Data(),aliasArr->GetEntries()));
-                       continue;
-               }
-
-               TIter iterarray(aliasArr);
+AliZDCDataDCS& AliZDCDataDCS:: operator=(const AliZDCDataDCS & data) { 
 
-               Double_t *time = new Double_t[aliasArr->GetEntries()];
-               Double_t *val = new Double_t[aliasArr->GetEntries()];
+  // assignment operator
 
-               UInt_t ne=0;
-               while((aValue = (AliDCSValue*) iterarray.Next())) {
-                 val[ne] = aValue->GetSimpleValue().GetFloat();
-                 time[ne] = (Double_t) (aValue->GetTimeStamp());
-                 ne++;
-               }
+  if (this == &data)
+    return *this;
 
-               // fill graphs 
-               CreateGraph(j, aliasArr->GetEntries(), time, val);
-               delete[] val;
-               delete[] time;
-       }
-
-
-       fIsProcessed=kTRUE;
+  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++) {
+    fAliasNames[i]=data.GetAliasName(i);
+    fCalibData[i]=data.GetCalibData(i);
+    fTimeStamp[i]=data.GetTimeStamp(i);
+  }
 
+  return *this;
 }
 
 //---------------------------------------------------------------
-void AliZDCDataDCS::Init(){
-
-       TH1::AddDirectory(kFALSE);
-
-       fGraphs.SetOwner(1);
-
-       for(int i=0;i<kNAliases;i++){
-               /*if(i<4){
-                 fAliasNames[i] = "ZDC.Position";
-               }
-               else fAliasNames[i] = "ZDC.HVValue";*/
-               fAliasNames[i] = "DCSAlias";
-               fAliasNames[i] += i;
-       }
+AliZDCDataDCS::~AliZDCDataDCS() 
+{
+  // Destructor
+  fGraphs.Clear("C");
+}
 
+//---------------------------------------------------------------
+Bool_t AliZDCDataDCS::ProcessData(TMap& aliasMap)
+{
+   // Data processing
+
+   if (fEndTime==fStartTime){
+     AliError(Form(" Run with null time length: start time = %i = end time = %i",fStartTime,fEndTime));
+     return kFALSE;
+   }
+   
+   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));
+   
+   TObjArray *aliasArr;
+   AliDCSValue* aValue;
+  
+   for(int j=0; j<kNAliases; j++){
+      aliasArr = (TObjArray*) aliasMap.GetValue(fAliasNames[j].Data());
+      if(!aliasArr){
+       AliWarning(Form("Alias %s not found!", fAliasNames[j].Data()));
+       return kFALSE;
+      }
+      Introduce(j, aliasArr);
+
+      if(aliasArr->GetEntries()<=2){
+       AliWarning(Form("Alias %s has just %d entries!",
+                       fAliasNames[j].Data(),aliasArr->GetEntries()));
+       continue;
+      }
+
+      TIter iterarray(aliasArr);
+
+      Double_t *time = new Double_t[aliasArr->GetEntries()];
+      Double_t *val = new Double_t[aliasArr->GetEntries()];
+
+      UInt_t ne=0;
+      while((aValue = (AliDCSValue*) iterarray.Next())) {
+       val[ne] = aValue->GetFloat();
+       time[ne] = (Float_t) (aValue->GetTimeStamp());
+       fCalibData[ne] = val[ne];
+       fTimeStamp[ne] = time[ne];
+       ne++;
+      }
+      
+//      if(j>=4) CreateGraph(j, aliasArr->GetEntries(), time, val); // fill graphs 
+      //
+      delete[] val;
+      delete[] time;         
+   }
+   //
+   fIsProcessed=kTRUE;
+   
+   return kTRUE;
 }
 
 //---------------------------------------------------------------
-void AliZDCDataDCS::Introduce(UInt_t numAlias, const TObjArray* aliasArr){
+void AliZDCDataDCS::Init()
+{
+   // Initialization
+   
+   TH1::AddDirectory(kFALSE);
+
+   fGraphs.SetOwner(1);
+
+   fAliasNames[0] = "ZDC_ZNA_POS.actual.position";
+   fAliasNames[1] = "ZDC_ZPA_POS.actual.position";
+   fAliasNames[2] = "ZDC_ZNC_POS.actual.position";
+   fAliasNames[3] = "ZDC_ZPC_POS.actual.position";
+   //
+   fAliasNames[4]  = "ZDC_ZNA_HV0.actual.vMon";
+   fAliasNames[5]  = "ZDC_ZNA_HV1.actual.vMon";
+   fAliasNames[6]  = "ZDC_ZNA_HV2.actual.vMon";
+   fAliasNames[7]  = "ZDC_ZNA_HV3.actual.vMon";
+   fAliasNames[8]  = "ZDC_ZNA_HV4.actual.vMon";
+   //
+   fAliasNames[9]   = "ZDC_ZPA_HV0.actual.vMon";
+   fAliasNames[10]  = "ZDC_ZPA_HV1.actual.vMon";
+   fAliasNames[11]  = "ZDC_ZPA_HV2.actual.vMon";
+   fAliasNames[12]  = "ZDC_ZPA_HV3.actual.vMon";
+   fAliasNames[13]  = "ZDC_ZPA_HV4.actual.vMon";
+   //
+   fAliasNames[14]  = "ZDC_ZNC_HV0.actual.vMon";
+   fAliasNames[15]  = "ZDC_ZNC_HV1.actual.vMon";
+   fAliasNames[16]  = "ZDC_ZNC_HV2.actual.vMon";
+   fAliasNames[17]  = "ZDC_ZNC_HV3.actual.vMon";
+   fAliasNames[18]  = "ZDC_ZNC_HV4.actual.vMon";
+   //
+   fAliasNames[19]  = "ZDC_ZPC_HV0.actual.vMon";
+   fAliasNames[20]  = "ZDC_ZPC_HV1.actual.vMon";
+   fAliasNames[21]  = "ZDC_ZPC_HV2.actual.vMon";
+   fAliasNames[22]  = "ZDC_ZPC_HV3.actual.vMon";
+   fAliasNames[23]  = "ZDC_ZPC_HV4.actual.vMon";
+   //
+   fAliasNames[24]  = "ZDC_ZEM_HV0.actual.vMon";
+   fAliasNames[25]  = "ZDC_ZEM_HV1.actual.vMon";
+   //
+   fAliasNames[26]  = "ZDC_REFA_HV.actual.vMon";
+   fAliasNames[27]  = "ZDC_REFC_HV.actual.vMon";
+}
 
-       int entries=aliasArr->GetEntries();
-       AliInfo(Form("************ Alias: %s **********",fAliasNames[numAlias].Data()));
-       AliInfo(Form("          %d DP values collected",entries));
+//---------------------------------------------------------------
+void AliZDCDataDCS::Introduce(UInt_t numAlias, const TObjArray* aliasArr)
+{
+   // Getting array of DCS aliases
+   
+   int entries = aliasArr->GetEntries();
+   AliDebug(2,Form("************ Alias: %s **********",fAliasNames[numAlias].Data()));
+   AliDebug(2,Form("      %d DP values collected",entries));
 
 }
 
@@ -121,12 +234,13 @@ void AliZDCDataDCS::Introduce(UInt_t numAlias, const TObjArray* aliasArr){
 void AliZDCDataDCS::CreateGraph(int i, int dim, const Double_t *x, const Double_t *y)
 {
 
-       TGraph *gr = new(fGraphs[fGraphs.GetEntriesFast()]) TGraph(dim, x, y);
+   // Create graphics
+   
+   TGraph *gr = new(fGraphs[fGraphs.GetEntriesFast()]) TGraph(dim, x, y);
 
-       gr->GetXaxis()->SetTimeDisplay(1);
-       gr->SetTitle(fAliasNames[i].Data());
-
-       AliInfo(Form("Array entries: %d",fGraphs.GetEntriesFast()));
+   gr->GetXaxis()->SetTimeDisplay(1);
+   gr->SetTitle(fAliasNames[i].Data());
+//   AliDebug(2,Form("Array entries: %d",fGraphs.GetEntriesFast()));
 
 
 }
@@ -134,7 +248,7 @@ void AliZDCDataDCS::CreateGraph(int i, int dim, const Double_t *x, const Double_
 //---------------------------------------------------------------
 void AliZDCDataDCS::Draw(const Option_t* /*option*/)
 {
-// Draw graphs
+  // Draw graphics
 
   fIsProcessed=1;
   if(!fIsProcessed) return;
@@ -142,17 +256,38 @@ void AliZDCDataDCS::Draw(const Option_t* /*option*/)
   if(fGraphs.GetEntries()==0)  return;
   
   TCanvas *cg1;
-  TString canvas1Name="Graphs1";
+  TString canvas1Name="ZN1_HVs";
   cg1=new TCanvas(canvas1Name,canvas1Name,40,40,600,600);
   cg1->Divide(2,2);
   cg1->cd(1);
-  ((TGraph*) fGraphs.UncheckedAt(0))->Draw("AP");
+  ((TGraph*) fGraphs.UncheckedAt(0))->SetMarkerStyle(20);
+  ((TGraph*) fGraphs.UncheckedAt(0))->Draw("ALP");
   cg1->cd(2);
-  ((TGraph*) fGraphs.UncheckedAt(1))->Draw("AP");
+  ((TGraph*) fGraphs.UncheckedAt(1))->SetMarkerStyle(20);
+  ((TGraph*) fGraphs.UncheckedAt(1))->Draw("ALP");
   cg1->cd(3);
-  ((TGraph*) fGraphs.UncheckedAt(2))->Draw("AP");
+  ((TGraph*) fGraphs.UncheckedAt(2))->SetMarkerStyle(20);
+  ((TGraph*) fGraphs.UncheckedAt(2))->Draw("ALP");
   cg1->cd(4);
-  ((TGraph*) fGraphs.UncheckedAt(3))->Draw("AP");
+  ((TGraph*) fGraphs.UncheckedAt(3))->SetMarkerStyle(20);
+  ((TGraph*) fGraphs.UncheckedAt(3))->Draw("ALP");
+  
+  TCanvas *cg2;
+  TString canvas2Name="ZP1_HVs";
+  cg2=new TCanvas(canvas2Name,canvas2Name,80,80,600,600);
+  cg2->Divide(2,2);
+  cg2->cd(1);
+  ((TGraph*) fGraphs.UncheckedAt(5))->SetMarkerStyle(20);
+  ((TGraph*) fGraphs.UncheckedAt(5))->Draw("ALP");
+  cg2->cd(2);
+  ((TGraph*) fGraphs.UncheckedAt(6))->SetMarkerStyle(20);
+  ((TGraph*) fGraphs.UncheckedAt(6))->Draw("ALP");
+  cg2->cd(3);
+  ((TGraph*) fGraphs.UncheckedAt(7))->SetMarkerStyle(20);
+  ((TGraph*) fGraphs.UncheckedAt(7))->Draw("ALP");
+  cg2->cd(4);
+  ((TGraph*) fGraphs.UncheckedAt(8))->SetMarkerStyle(20);
+  ((TGraph*) fGraphs.UncheckedAt(8))->Draw("ALP");
  
 }