endRun(0),
startTime(0),
endTime(0),
- ocdbStorage("")
+ ocdbStorage(0),
+ fNewDArun(9999999),
+ fStatusDelay(0),
+ fStatusAdjust(0)
+
{
//constructor
}
}
//____________________________________________________
-void AliT0PreprocessorOffline::Process(TString filePhysName, Int_t ustartRun, Int_t uendRun, TString pocdbStorage)
+void AliT0PreprocessorOffline::Process(TString filePhysName, Int_t ustartRun, Int_t uendRun, AliCDBStorage* pocdbStorage)
{
- CalibOffsetChannels(filePhysName, ustartRun, uendRun, pocdbStorage);
+ if ( ustartRun < fNewDArun)
+ CalibOffsetChannels(filePhysName, ustartRun, uendRun, pocdbStorage);
CalibT0sPosition(filePhysName, ustartRun, uendRun, pocdbStorage);
}
//____________________________________________________
-void AliT0PreprocessorOffline::CalibOffsetChannels(TString filePhysName, Int_t ustartRun, Int_t uendRun, TString pocdbStorage)
+void AliT0PreprocessorOffline::CalibOffsetChannels(TString filePhysName, Int_t ustartRun, Int_t uendRun, AliCDBStorage* pocdbStorage)
{
Float_t zero_timecdb[24]={0};
Float_t *timecdb = zero_timecdb;
Float_t *cfdvalue = zero_timecdb;
+ Float_t cfd[24][5];
+ for(Int_t i=0; i<24; i++)
+ for (Int_t i0=0; i0<5; i0++)
+ cfd[i][i0] = 0;
Int_t badpmt=-1;
//Processing data from DAQ Physics run
AliInfo("Processing Time Offset between channels");
- if (pocdbStorage.Length()>0) ocdbStorage=pocdbStorage;
+ if (pocdbStorage) ocdbStorage=pocdbStorage;
+ else {
+ TString localStorage = "local://"+gSystem->GetFromPipe("pwd")+"/OCDB";
+ ocdbStorage= AliCDBManager::Instance()->GetStorage(localStorage.Data());
+ }
+ AliCDBEntry *entryCalib = AliCDBManager::Instance()->Get("T0/Calib/TimeDelay");
+ if(!entryCalib) {
+ AliWarning(Form("Cannot find any AliCDBEntry for [Calib, TimeDelay]!"));
+ }
else
- ocdbStorage="local://"+gSystem->GetFromPipe("pwd")+"/OCDB";
-
+ {
+ AliT0CalibTimeEq *clb = (AliT0CalibTimeEq*)entryCalib->GetObject();
+ timecdb = clb->GetTimeEq();
+ for(Int_t i=0; i<24; i++)
+ for (Int_t i0=0; i0<5; i0++) cfd[i][i0] = clb->GetCFDvalue(i, i0);
+
+ }
+ for(Int_t i=0; i<24; i++)cfdvalue[i]=cfd[i][0];
+
AliT0CalibTimeEq *offline = new AliT0CalibTimeEq();
Int_t writeok = offline->ComputeOfflineParams(filePhysName.Data(), timecdb, cfdvalue, badpmt);
printf(" AliT0PreprocessorOffline::CalibOffsetChannels :: writeok %i \n", writeok);
metaData.SetBeamPeriod(1);
metaData.SetResponsible("Alla Maevskaya");
metaData.SetComment("Time equalizing result with slew");
- if (writeok<=0) {
+ fStatusDelay = writeok;
+ if (writeok==0) {
AliCDBId* id1=NULL;
id1=new AliCDBId("T0/Calib/TimeDelay", ustartRun, uendRun );
- AliCDBStorage* gStorage = AliCDBManager::Instance()->GetStorage(ocdbStorage);
- gStorage->Put(offline, (*id1), &metaData);
+ ocdbStorage->Put(offline, (*id1), &metaData);
}
else {
}
//-------------------------------------------------------------------------------------
-void AliT0PreprocessorOffline::CalibT0sPosition(TString filePhysName, Int_t ustartRun, Int_t uendRun, TString pocdbStorage)
+void AliT0PreprocessorOffline::CalibT0sPosition(TString filePhysName, Int_t ustartRun, Int_t uendRun, AliCDBStorage* pocdbStorage)
{
+ printf(" AliT0PreprocessorOffline::CalibT0sPosition \n");
Float_t zero_timecdb[4]={0};
Float_t *timecdb = zero_timecdb;
- if (pocdbStorage.Length()>0) ocdbStorage=pocdbStorage;
- else
- ocdbStorage="local://"+gSystem->GetFromPipe("pwd")+"/OCDB";
+ if (pocdbStorage) ocdbStorage=pocdbStorage;
+ else {
+ TString localStorage = "local://"+gSystem->GetFromPipe("pwd")+"/OCDB";
+ ocdbStorage=AliCDBManager::Instance()->GetStorage(localStorage.Data());
+ }
AliT0CalibSeasonTimeShift *offline = new AliT0CalibSeasonTimeShift();
Int_t writeok = offline->SetT0Par(filePhysName.Data(), timecdb);
metaData.SetBeamPeriod(1);
metaData.SetResponsible("Alla Maevskaya");
metaData.SetComment("Time equalizing result with slew");
-
- if (writeok <= 0) {
+ fStatusAdjust = writeok;
+ if (writeok == 0) {
AliCDBId* id1=NULL;
id1=new AliCDBId("T0/Calib/TimeAdjust", ustartRun, uendRun);
- AliCDBStorage* gStorage = AliCDBManager::Instance()->GetStorage(ocdbStorage);
- gStorage->Put(offline, (*id1), &metaData);
+ ocdbStorage->Put(offline, (*id1), &metaData);
}
}
+//_____________________________________________________________________________
+Int_t AliT0PreprocessorOffline::GetStatus() const
+{
+ //
+ // Checks the status
+ // fStatusPos: errors
+ // fStatusNeg: only info
+ //
+ printf("!!!! GetStatus %i delay %i adjust %i \n",fStatusAdjust+ fStatusDelay, fStatusDelay, fStatusAdjust);
+ return fStatusAdjust+ fStatusDelay;
+}