*/
+// 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"
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)
//---------------------------------------------------------------
fRun(0),
fStartTime(0),
fEndTime(0),
+ fStartTimeDCSQuery(0),
+ fEndTimeDCSQuery(0),
fIsProcessed(kFALSE),
fFDR(kFALSE)
{
}
//---------------------------------------------------------------
-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();
//---------------------------------------------------------------
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];
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);
}
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));
TObjArray *aliasArr;
AliDCSValue* aValue;
+ AliDCSValue* aValue0;
AliDCSValue* aValue1;
// starting loop on aliases
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;
}
//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;
//---------------------------------------------------------------
void AliTOFDataDCS::Draw(const Option_t* /*option*/)
{
-// Draw all histos and graphs
+ // Draw all histos and graphs
if(!fIsProcessed) return;