//_______________________________________________________________
AliGRPDCS::AliGRPDCS():
- TObject(), fDCSArray(new TObjArray()) {
+ TObject(), fStartTime(0), fStopTime(0), fDCSArray(new TObjArray()) {
// default constructor
}
//_______________________________________________________________
-AliGRPDCS::AliGRPDCS(TObjArray *dcsArray):
- TObject(), fDCSArray(new TObjArray()) {
+AliGRPDCS::AliGRPDCS(TObjArray *dcsArray, UInt_t fStart, UInt_t fStop):
+ TObject(), fStartTime(fStart), fStopTime(fStop), fDCSArray(new TObjArray()) {
// constructor
fDCSArray = dcsArray;
}
//_______________________________________________________________
const char* AliGRPDCS::ProcessInt() {
Float_t fFDCSArraySum = 0.0, fFDCSArrayMean = 0.0;
+ Int_t iCounts = 0;
for(Int_t i = 0; i < fDCSArray->GetEntries(); i++) {
AliDCSValue *v = (AliDCSValue *)fDCSArray->At(i);
- fFDCSArraySum += v->GetInt();
+ if((v->GetTimeStamp() >= fStartTime) &&(v->GetTimeStamp() <= fStopTime)) {
+ fFDCSArraySum += v->GetInt();
+ iCounts += 1;
+ }
}
- fFDCSArrayMean = fFDCSArraySum/fDCSArray->GetEntries();
+ if(iCounts != 0) fFDCSArrayMean = fFDCSArraySum/iCounts;
+ else fFDCSArrayMean = -10.;
+
TString fDCSDataPointValue; fDCSDataPointValue += fFDCSArrayMean;
return fDCSDataPointValue.Data();
//_______________________________________________________________
const char* AliGRPDCS::ProcessUInt() {
Float_t fFDCSArraySum = 0.0, fFDCSArrayMean = 0.0;
+ Int_t iCounts = 0;
for(Int_t i = 0; i < fDCSArray->GetEntries(); i++) {
AliDCSValue *v = (AliDCSValue *)fDCSArray->At(i);
- fFDCSArraySum += v->GetUInt();
+ if((v->GetTimeStamp() >= fStartTime) &&(v->GetTimeStamp() <= fStopTime)) {
+ fFDCSArraySum += v->GetUInt();
+ iCounts += 1;
+ }
}
- fFDCSArrayMean = fFDCSArraySum/fDCSArray->GetEntries();
+ if(iCounts != 0) fFDCSArrayMean = fFDCSArraySum/iCounts;
+ else fFDCSArrayMean = -10.;
+
TString fDCSDataPointValue; fDCSDataPointValue += fFDCSArrayMean;
return fDCSDataPointValue.Data();
//_______________________________________________________________
const char* AliGRPDCS::ProcessFloat() {
Float_t fFDCSArraySum = 0.0, fFDCSArrayMean = 0.0;
+ Int_t iCounts = 0;
for(Int_t i = 0; i < fDCSArray->GetEntries(); i++) {
AliDCSValue *v = (AliDCSValue *)fDCSArray->At(i);
- fFDCSArraySum += v->GetFloat();
+ if((v->GetTimeStamp() >= fStartTime) &&(v->GetTimeStamp() <= fStopTime)) {
+ fFDCSArraySum += v->GetFloat();
+ iCounts += 1;
+ }
}
- fFDCSArrayMean = fFDCSArraySum/fDCSArray->GetEntries();
+ if(iCounts != 0) fFDCSArrayMean = fFDCSArraySum/iCounts;
+ else fFDCSArrayMean = -10.;
+
TString fDCSDataPointValue; fDCSDataPointValue += fFDCSArrayMean;
return fDCSDataPointValue.Data();
//_______________________________________________________________
const char* AliGRPDCS::ProcessString() {
TString fDCSString, fDCSTemp;
- AliDCSValue *v = (AliDCSValue *)fDCSArray->At(0);
+ Bool_t kFound = kFALSE;
+ Int_t iCount = 0;
+
+ AliDCSValue *v = 0x0;
+ while(!kFound) {
+ v = (AliDCSValue *)fDCSArray->At(iCount);
+ iCount += 1;
+ if((v->GetTimeStamp() >= fStartTime) &&(v->GetTimeStamp() <= fStopTime)) kFound = kTRUE;
+ }
fDCSTemp = v->GetChar();
for(Int_t i = 0; i < fDCSArray->GetEntries(); i++) {
AliDCSValue *v1 = (AliDCSValue *)fDCSArray->At(i);
- fDCSString = v1->GetChar();
- if(fDCSTemp != fDCSString) AliFatal("DCS data point value changed within the run!!!");
+ if((v1->GetTimeStamp() >= fStartTime) &&(v1->GetTimeStamp() <= fStopTime)) {
+ fDCSString = v1->GetChar();
+ if(fDCSTemp != fDCSString) AliFatal("DCS data point value changed within the run!!!");
+ }
}
TString fDCSDataPointValue = fDCSString;
//_______________________________________________________________
const char* AliGRPDCS::ProcessBoolean() {
Bool_t fDCSBool = kTRUE, fDCSTemp = kTRUE;
- AliDCSValue *v = (AliDCSValue *)fDCSArray->At(0);
+ Bool_t kFound = kFALSE;
+ Int_t iCount = 0;
+
+ AliDCSValue *v = 0x0;
+ while(!kFound) {
+ v = (AliDCSValue *)fDCSArray->At(iCount);
+ iCount += 1;
+ if((v->GetTimeStamp() >= fStartTime) &&(v->GetTimeStamp() <= fStopTime)) kFound = kTRUE;
+ }
fDCSTemp = v->GetBool();
for(Int_t i = 0; i < fDCSArray->GetEntries(); i++) {
AliDCSValue *v1 = (AliDCSValue *)fDCSArray->At(i);
- fDCSBool = v1->GetBool();
- if(fDCSTemp != fDCSBool) AliFatal("DCS data point value changed within the run!!!");
+ if((v1->GetTimeStamp() >= fStartTime) &&(v1->GetTimeStamp() <= fStopTime)) {
+ fDCSBool = v1->GetBool();
+ if(fDCSTemp != fDCSBool) AliFatal("DCS data point value changed within the run!!!");
+ }
}
TString fDCSDataPointValue = fDCSBool;
class AliGRPDCS: public TObject {
public:
AliGRPDCS();
- AliGRPDCS(TObjArray *dcsArray);
+ AliGRPDCS(TObjArray *dcsArray, UInt_t fStart, UInt_t fStop);
AliGRPDCS(const AliGRPDCS& grpDcs);
+ void SetTime(UInt_t fStart, UInt_t fStop) {fStartTime = fStart; fStopTime = fStop;}
void SetObjArray(TObjArray *dcsSArray) {fDCSArray = dcsSArray;}
const char *ProcessDCS(Int_t iType);
private:
-
+ UInt_t fStartTime, fStopTime; //start and stop time of the run (DAQ lb)
TObjArray *fDCSArray; //TObjArray for a dcs data point
const char *ProcessInt();
UInt_t AliGRPPreprocessor::Process(TMap* valueMap) {
// process data retrieved by the Shuttle
const char* timeStart = GetRunParameter("time_start");
+ UInt_t iStartTime = atoi(timeStart);
const char* timeEnd = GetRunParameter("time_end");
+ UInt_t iStopTime = atoi(timeEnd);
const char* beamEnergy = GetRunParameter("beamEnergy");
const char* beamType = GetRunParameter("beamType");
const char* numberOfDetectors = GetRunParameter("numberOfDetectors");
Log(Form("LHCState not found!!!"));
return 0;
}
- AliGRPDCS *dcs1 = new AliGRPDCS(aliasLHCState);
+ AliGRPDCS *dcs1 = new AliGRPDCS(aliasLHCState,iStartTime,iStopTime);
TString sLHCState = dcs1->ProcessDCS(3);
if (sLHCState) {
Log(Form("<LHCState> for run %d: %s",fRun, sLHCState.Data()));
Log(Form("LHCPeriod not found!!!"));
return 0;
}
- AliGRPDCS *dcs2 = new AliGRPDCS(aliasLHCPeriod);
+ AliGRPDCS *dcs2 = new AliGRPDCS(aliasLHCPeriod,iStartTime,iStopTime);
TString sLHCPeriod = dcs2->ProcessDCS(3);
if (sLHCPeriod) {
Log(Form("<LHCPeriod> for run %d: %s",fRun, sLHCPeriod.Data()));
Log(Form("LHCLuminosity not found!!!"));
return 0;
}
- AliGRPDCS *dcs3 = new AliGRPDCS(aliasLHCLuminosity);
+ AliGRPDCS *dcs3 = new AliGRPDCS(aliasLHCLuminosity,iStartTime,iStopTime);
TString sMeanLHCLuminosity = dcs3->ProcessDCS(2);
if (sMeanLHCLuminosity) {
Log(Form("<LHCLuminosity> for run %d: %s",fRun, sMeanLHCLuminosity.Data()));
Log(Form("BeamIntensity not found!!!"));
return 0;
}
- AliGRPDCS *dcs4 = new AliGRPDCS(aliasBeamIntensity);
+ AliGRPDCS *dcs4 = new AliGRPDCS(aliasBeamIntensity,iStartTime,iStopTime);
TString sMeanBeamIntensity = dcs4->ProcessDCS(2);
if (sMeanBeamIntensity) {
Log(Form("<BeamIntensity> for run %d: %s",fRun, sMeanBeamIntensity.Data()));
Log(Form("L3Current not found!!!"));
return 0;
}
- AliGRPDCS *dcs5 = new AliGRPDCS(aliasL3Current);
+ AliGRPDCS *dcs5 = new AliGRPDCS(aliasL3Current,iStartTime,iStopTime);
TString sMeanL3Current = dcs5->ProcessDCS(2);
if (sMeanL3Current) {
Log(Form("<L3Current> for run %d: %s",fRun, sMeanL3Current.Data()));
Log(Form("L3Polarity not found!!!"));
return 0;
}
- AliGRPDCS *dcs6 = new AliGRPDCS(aliasL3Polarity);
+ AliGRPDCS *dcs6 = new AliGRPDCS(aliasL3Polarity,iStartTime,iStopTime);
TString sL3Polarity = dcs6->ProcessDCS(4);
if (sL3Polarity) {
Log(Form("<L3Polarity> for run %d: %s",fRun, sL3Polarity.Data()));
Log(Form("DipoleCurrent not found!!!"));
return 0;
}
- AliGRPDCS *dcs7 = new AliGRPDCS(aliasDipoleCurrent);
+ AliGRPDCS *dcs7 = new AliGRPDCS(aliasDipoleCurrent,iStartTime,iStopTime);
TString sMeanDipoleCurrent = dcs7->ProcessDCS(2);
if (sMeanDipoleCurrent) {
Log(Form("<DipoleCurrent> for run %d: %s",fRun, sMeanDipoleCurrent.Data()));
Log(Form("DipolePolarity not found!!!"));
return 0;
}
- AliGRPDCS *dcs8 = new AliGRPDCS(aliasDipolePolarity);
+ AliGRPDCS *dcs8 = new AliGRPDCS(aliasDipolePolarity,iStartTime,iStopTime);
TString sDipolePolarity = dcs8->ProcessDCS(4);
if (sDipolePolarity) {
Log(Form("<DipolePolarity> for run %d: %s",fRun, sDipolePolarity.Data()));
Log(Form("CavernTemperature not found!!!"));
return 0;
}
- AliGRPDCS *dcs9 = new AliGRPDCS(aliasCavernTemperature);
+ AliGRPDCS *dcs9 = new AliGRPDCS(aliasCavernTemperature,iStartTime,iStopTime);
TString sMeanCavernTemperature = dcs9->ProcessDCS(2);
if (sMeanCavernTemperature) {
Log(Form("<CavernTemperature> for run %d: %s",fRun, sMeanCavernTemperature.Data()));
Log(Form("CavernPressure not found!!!"));
return 0;
}
- AliGRPDCS *dcs10 = new AliGRPDCS(aliasCavernPressure);
+ AliGRPDCS *dcs10 = new AliGRPDCS(aliasCavernPressure,iStartTime,iStopTime);
TString sMeanCavernPressure = dcs10->ProcessDCS(2);
if (sMeanCavernPressure) {
Log(Form("<CavernPressure> for run %d: %s",fRun, sMeanCavernPressure.Data()));