From 649fda12d822da9401adb2b4c256877c73099a5b Mon Sep 17 00:00:00 2001 From: shahoian Date: Fri, 6 Apr 2012 12:44:52 +0000 Subject: [PATCH] Converted all float (AliLHCDipValF) records to double (AliLHCDipValD) to prevent FPE if LHC DIP supplies garbage values --- STEER/STEER/AliLHCData.cxx | 34 +++++++------- STEER/STEER/AliLHCData.h | 92 +++++++++++++++++++------------------- 2 files changed, 63 insertions(+), 63 deletions(-) diff --git a/STEER/STEER/AliLHCData.cxx b/STEER/STEER/AliLHCData.cxx index 8c5e79f1ed5..c18f5887c87 100755 --- a/STEER/STEER/AliLHCData.cxx +++ b/STEER/STEER/AliLHCData.cxx @@ -355,8 +355,8 @@ Int_t AliLHCData::FillScalarRecord(int refs[2], const char* rec, const char* rec AliDCSArray *dcsVal = (AliDCSArray*) arr->At(iFirst++); double tstamp = dcsVal->GetTimeStamp(); // - AliLHCDipValF* curValF = new AliLHCDipValF(dim,tstamp); // start new period - (*curValF)[0] = ExtractDouble(dcsVal,0); // value + AliLHCDipValD* curValD = new AliLHCDipValD(dim,tstamp); // start new period + (*curValD)[0] = ExtractDouble(dcsVal,0); // value // if (recErr) { double errVal = -1; @@ -365,18 +365,18 @@ Int_t AliLHCData::FillScalarRecord(int refs[2], const char* rec, const char* rec double tstampE = dcsValE->GetTimeStamp(); int tdif = TimeDifference(tstamp,tstampE); if (!tdif) { // error matches to value - errVal = ExtractDouble(dcsValE,0); + errVal = ExtractDouble(dcsVal,0); // value iFirstE++; break; } else if (tdif>0) iFirstE++; // error time lags behind, read the next one else break; // error time is ahead of value, no error associated } - (*curValF)[dim-1] = errVal; // error - curValF->SetLastSpecial(); // lable the last entry as an error + (*curValD)[dim-1] = errVal; // error + curValD->SetLastSpecial(); // lable the last entry as an error } // - fData.Add(curValF); + fData.Add(curValD); refs[kNStor]++; // if (last) break; } @@ -531,16 +531,16 @@ Int_t AliLHCData::FillBunchInfo(int refs[2],const char* rec, int ibm, Bool_t inR continue; } double* dcsArr = dcsVal->GetDouble(); - AliLHCDipValF* curValF = new AliLHCDipValF(nbunch,tstamp); + AliLHCDipValD* curValD = new AliLHCDipValD(nbunch,tstamp); for (int i=nbunch;i--;) { int ind = inRealSlots ? (*bconf)[i]/10 : i; if (ind>nSlots) { AliError(Form("Bunch %d refers to wrong slot %d, set to -1",i,(*bconf)[i])); - (*curValF)[i] = -1; + (*curValD)[i] = -1; } - else (*curValF)[i] = dcsArr[ind]; + else (*curValD)[i] = dcsArr[ind]; } - fData.Add(curValF); + fData.Add(curValD); refs[kNStor]++; } if (fkFile2Process) delete arr; @@ -597,7 +597,7 @@ Int_t AliLHCData::FillBCLuminosities(int refs[2],const char* rec, const char* re arrE=GetDCSEntry(recErr,iFirstE,iLastE,fTMin,fTMax); dim += 1; } - AliLHCDipValF* curValF = new AliLHCDipValF(dim,tstamp); + AliLHCDipValD* curValD = new AliLHCDipValD(dim,tstamp); int cnt = 0; for (int i=0;inSlots) { AliError(Form("Bunch %d refers to wrong slot %d, set to -1",cnt,slot)); - (*curValF)[cnt] = -1; + (*curValD)[cnt] = -1; } - else (*curValF)[cnt] = dcsArr[ind]; + else (*curValD)[cnt] = dcsArr[ind]; cnt++; } // @@ -626,11 +626,11 @@ Int_t AliLHCData::FillBCLuminosities(int refs[2],const char* rec, const char* re else if (tdif>0) iFirstE++; // error time lags behind, read the next one else break; // error time is ahead of value, no error associated } - (*curValF)[dim-1] = errVal; // error - curValF->SetLastSpecial(); // lable the last entry as an error + (*curValD)[dim-1] = errVal; // error + curValD->SetLastSpecial(); // lable the last entry as an error } // - fData.Add(curValF); + fData.Add(curValD); refs[kNStor]++; } if (fkFile2Process) { @@ -971,7 +971,7 @@ Int_t AliLHCData::GetMeanIntensity(int beamID, Double_t &colliding, Double_t &no // for (int irec=0;irecGetValue(ib); if (val<0) continue; diff --git a/STEER/STEER/AliLHCData.h b/STEER/STEER/AliLHCData.h index e10fdf3d560..06a38207ecd 100755 --- a/STEER/STEER/AliLHCData.h +++ b/STEER/STEER/AliLHCData.h @@ -103,24 +103,24 @@ class AliLHCData : public TObject Int_t GetNCollimatorJawPos(int coll,int jaw) const; // AliLHCDipValI* GetBunchConfigMeasured(int bm, int i=0) const; - AliLHCDipValF* GetBunchLengths(int bm, int i=0) const; + AliLHCDipValD* GetBunchLengths(int bm, int i=0) const; AliLHCDipValI* GetBunchConfigDeclared(int bm, int i=0) const; - AliLHCDipValF* GetTotalIntensity(int bm, int i=0) const; - AliLHCDipValF* GetTotalIntensityAv(int bm, int i=0) const; - AliLHCDipValF* GetIntensityPerBunch(int bm, int i=0) const; - AliLHCDipValF* GetEmittanceH(int bm, int i=0) const; - AliLHCDipValF* GetEmittanceV(int bm, int i=0) const; - AliLHCDipValF* GetBeamSigmaH(int bm, int i=0) const; - AliLHCDipValF* GetBeamSigmaV(int bm, int i=0) const; - AliLHCDipValF* GetLuminosityTotal(int lr, int i=0) const; - AliLHCDipValF* GetLuminosityPerBunch(int lr, int i=0) const; + AliLHCDipValD* GetTotalIntensity(int bm, int i=0) const; + AliLHCDipValD* GetTotalIntensityAv(int bm, int i=0) const; + AliLHCDipValD* GetIntensityPerBunch(int bm, int i=0) const; + AliLHCDipValD* GetEmittanceH(int bm, int i=0) const; + AliLHCDipValD* GetEmittanceV(int bm, int i=0) const; + AliLHCDipValD* GetBeamSigmaH(int bm, int i=0) const; + AliLHCDipValD* GetBeamSigmaV(int bm, int i=0) const; + AliLHCDipValD* GetLuminosityTotal(int lr, int i=0) const; + AliLHCDipValD* GetLuminosityPerBunch(int lr, int i=0) const; AliLHCDipValI* GetLuminosityAcqMode(int lr, int i=0) const; - AliLHCDipValF* GetCrossAngle(int lr, int i=0) const; + AliLHCDipValD* GetCrossAngle(int lr, int i=0) const; AliLHCDipValC* GetInjectionScheme(int i=0) const; - AliLHCDipValF* GetRCBetaStar(int i=0) const; - AliLHCDipValF* GetRCAngleH(int i=0) const; - AliLHCDipValF* GetRCAngleV(int i=0) const; - AliLHCDipValF* GetCollimJawPos(int coll, int jaw, int i=0) const; + AliLHCDipValD* GetRCBetaStar(int i=0) const; + AliLHCDipValD* GetRCAngleH(int i=0) const; + AliLHCDipValD* GetRCAngleV(int i=0) const; + AliLHCDipValD* GetCollimJawPos(int coll, int jaw, int i=0) const; // void FlagInteractingBunches(const Int_t beam1[2],const Int_t beam2[2]); TObject* FindRecValidFor(int start,int nrec, double tstamp) const; @@ -227,7 +227,7 @@ class AliLHCData : public TObject const Char_t* fkFile2Process; //! name of DCS file const TMap* fkMap2Process; //! DCS map to process - ClassDef(AliLHCData,1) + ClassDef(AliLHCData,2) }; @@ -244,77 +244,77 @@ inline AliLHCDipValI* AliLHCData::GetBunchConfigMeasured(int bm, int i) const { return (GoodPairID(bm) && i>=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && i=0 && coll=0 && jaw=0 && i=0 && i