#include "AliCDBMetaData.h"
#include "AliDCSValue.h"
+#include "AliCDBEntry.h"
#include "AliLog.h"
#include <TTimeStamp.h>
#include <TObjString.h>
#include <TNamed.h>
#include "AliT0Dqclass.h"
+#include "TClass.h"
+
+#include "iostream"
ClassImp(AliT0Preprocessor)
//constructor
AddRunType("PHYSICS");
AddRunType("STANDALONE");
+ AddRunType("LASER");
}
//____________________________________________________
// Creates AliT0DataDCS object
AliPreprocessor::Initialize(run, startTime, endTime);
AliInfo(Form("\n\tRun %d \n\tStartTime %s \n\tEndTime %s", run, TTimeStamp(startTime).AsString(), TTimeStamp(endTime).AsString()));
- fData = new AliT0DataDCS(fRun, fStartTime, fEndTime);
+ fData = new AliT0DataDCS(fRun, fStartTime, fEndTime, GetStartTimeDCSQuery(), GetEndTimeDCSQuery());
}
//____________________________________________________
TString runType = GetRunType();
Log(Form("ProcessDCS - RunType: %s",runType.Data()));
- if((runType == "STANDALONE")||(runType == "PHYSICS")){
- // return kFALSE;
- return kTRUE;
+ if((runType == "STANDALONE")||
+ (runType == "PHYSICS")||
+ (runType == "LASER")){
+ return kFALSE;
+ // return kTRUE;
}else{
return kFALSE;
}
UInt_t AliT0Preprocessor::ProcessLaser(){
// Processing data from DAQ Standalone run
- Log("Processing Laser calibration - Walk Correction");
-
- Bool_t resultLaser=kFALSE;
- //processing DAQ
- TList* list = GetFileSources(kDAQ, "LASER");
- if (list)
- {
- TIter iter(list);
- TObjString *source;
- while ((source = dynamic_cast<TObjString *> (iter.Next())))
- {
- const char *laserFile = GetFile(kDAQ, "LASER", source->GetName());
- if (laserFile)
+ Log("Processing Laser calibration - Walk Correction");
+
+ //Retrieve the last T0 calibration object
+
+ Float_t parqtcold[24][2], parledold[24][2],parqtcnew[24][2], parlednew[24][2] , goodled[24][2], goodqtc[24][2];
+
+ // std::cout<<"sizeof "<<sizeof(parqtcold)<<std::endl;
+ memset(parqtcold, 0, sizeof(parqtcold));
+ memset(parqtcnew, 0, sizeof(parqtcnew));
+ memset(parledold, 0, sizeof(parledold));
+ memset(parlednew, 0, sizeof(parlednew));
+ Int_t iStore=0;
+ Bool_t clbold = true;
+
+ AliT0CalibWalk* clb=0;
+ AliCDBEntry* entryCalib = GetFromOCDB("Calib", "Slewing_Walk");
+ if(!entryCalib)
+ Log(Form("Cannot find any AliCDBEntry for [Calib, SlewingWalk]!"));
+ else {
+ clb =dynamic_cast<AliT0CalibWalk*>(entryCalib->GetObject());
+ for(Int_t i=0; i<24; i++)
+ {
+ for(Int_t ipar=0; ipar<2; ipar++)
+ {
+ // std::cout<<"parqtcold "<<parqtcold[i][ipar]<<std::endl;
+ parqtcold[i][ipar] = clb->GetQTCpar(i,ipar);
+ parledold[i][ipar] = clb->GetLEDpar(i, ipar);
+ goodqtc[i][ipar] = 999;
+ goodled[i][ipar] = 999;
+ // cout<<" old "<<i<<" "<<ipar<<" qtc "<< parqtcold[i][ipar]<<" led "<<parledold[i][ipar]<<endl;
+ }
+ }
+ }
+
+
+ Bool_t resultLaser=kFALSE;
+ //processing DAQ
+ TList* list = GetFileSources(kDAQ, "LASER");
+ if (list)
+ {
+ TIter iter(list);
+ TObjString *source;
+ while ((source = dynamic_cast<TObjString *> (iter.Next())))
+ {
+ const char *laserFile = GetFile(kDAQ, "LASER", source->GetName());
+ if (laserFile)
{
Log(Form("File with Id LASER found in source %s!", source->GetName()));
AliT0CalibWalk *laser = new AliT0CalibWalk();
laser->MakeWalkCorrGraph(laserFile);
- AliCDBMetaData metaData;
- metaData.SetBeamPeriod(0);
+ //check difference with what was before
+ if(laser && clb ){
+ iStore = 1;
+ for(Int_t i=0; i<24; i++)
+ {
+ for(Int_t ifit=0; ifit<2; ifit++)
+ {
+ parqtcnew[i][ifit] = laser->GetQTCpar(i,ifit);
+ if( parqtcold[i][ifit] != 0 && parqtcnew[i][ifit] !=0)
+ {
+ goodqtc[i][ifit] =
+ (parqtcnew[i][ifit] - parqtcold[i][ifit])/parqtcold[i][ifit];
+ // cout<<"qtc "<<i<<" "<<ifit<<" "<< goodqtc[i][ifit]<<endl;
+ }
+ parlednew[i][ifit] = laser->GetLEDpar(i,ifit);
+ if(parledold[i][ifit] != 0 && parlednew[i][ifit]!= 0 )
+ {
+ goodled[i][ifit]=
+ (parlednew[i][ifit] - parledold[i][ifit])/parledold[i][ifit];
+ // cout<<"led "<<i<<" "<<ifit<<" "<< goodled[i][ifit]<<endl;
+ }
+ if(TMath::Abs(goodqtc[i][ifit])>0.1 ||
+ TMath::Abs(goodled[i][ifit])>0.1)
+ iStore = 0;
+ }
+ }
+ }
+
+ AliCDBMetaData metaData;
+ metaData.SetBeamPeriod(0);
metaData.SetResponsible("Tomek&Michal");
metaData.SetComment("Walk correction from laser runs.");
- resultLaser=Store("Calib","Slewing_Walk", laser, &metaData, 0, 1);
+ if( iStore>0)
+ resultLaser=Store("Calib","Slewing_Walk", laser, &metaData, 0, 1);
delete laser;
Log(Form("resultLaser = %d",resultLaser));
}
Log(Form("RunType: %s",runType.Data()));
//processing
if(runType == "STANDALONE"){
- Int_t iresultLaser = ProcessLaser();
- if(dcsDP==1){
- Int_t iresultDCS = ProcessDCSDataPoints(dcsAliasMap);
- return iresultDCS;
- }
- Log(Form("iresultLaser = %d",iresultLaser));
- return iresultLaser;
+ if(dcsDP==1){
+ Int_t iresultDCS = ProcessDCSDataPoints(dcsAliasMap);
+ return iresultDCS;
+ }
}
- else if(runType == "PHYSICS"){
- Int_t iresultPhysics = ProcessPhysics();
- // Int_t iresultCosmic = ProcessCosmic();
- if(dcsDP==1){
- Int_t iresultDCS = ProcessDCSDataPoints(dcsAliasMap);
- return iresultDCS;
- }
- Log(Form("iresultPhysics = %d",iresultPhysics));
- return iresultPhysics;
- }
-
- return 0;
+ if(runType == "LASER"){
+ Int_t iresultLaser = ProcessLaser();
+ if(dcsDP==1){
+ Int_t iresultDCS = ProcessDCSDataPoints(dcsAliasMap);
+ return iresultDCS;
+ }
+ Log(Form("iresultLaser = %d",iresultLaser));
+ return iresultLaser;
+ }
+ else if(runType == "PHYSICS"){
+ Int_t iresultPhysics = ProcessPhysics();
+ // Int_t iresultCosmic = ProcessCosmic();
+ if(dcsDP==1){
+ Int_t iresultDCS = ProcessDCSDataPoints(dcsAliasMap);
+ return iresultDCS;
+ }
+ Log(Form("iresultPhysics = %d",iresultPhysics));
+ return iresultPhysics;
+ // Log(Form("iresultPhysics =iresultCosmic %d",iresultCosmic));
+ // return iresultCosmic;
+ }
+
+ return 0;
}