X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=T0%2FAliT0Preprocessor.cxx;h=d19dc2ca74b7026de36e7e805f07c17fc2a48453;hb=61bd03f63002c4b0ea2202a0d2764ae5ff12e73c;hp=4c5d582f25e20bfc2bd48768f9b094156d87ce1e;hpb=67b67126b8c963f7e2adb1a69404d449cb756b3e;p=u%2Fmrichter%2FAliRoot.git diff --git a/T0/AliT0Preprocessor.cxx b/T0/AliT0Preprocessor.cxx index 4c5d582f25e..d19dc2ca74b 100644 --- a/T0/AliT0Preprocessor.cxx +++ b/T0/AliT0Preprocessor.cxx @@ -14,7 +14,10 @@ **************************************************************************/ /* -$Log$ +$Log: AliT0Preprocessor.cxx,v $ +Revision 1.8 2007/12/07 15:22:51 alla +bug fixed by Alberto + Revision 1.7 2007/12/06 16:35:24 alla new bugs fixed by Tomek @@ -27,10 +30,12 @@ Preprocessor storing data to OCDB (T.Malkiewicz) Version 1.1 2006/10 Preliminary test version (T.Malkiewicz) */ - // T0 preprocessor: -// 1) takes data from DCS and passes it to the class AliTOFDataDCS for processing and writes the result to the Reference DB. -// 2) takes data form DAQ (both from Laser Calibration and Physics runs), processes it, and stores either to OCDB or to Reference DB. +// 1) takes data from DCS and passes it to the class AliTOFDataDCS +// for processing and writes the result to the Reference DB. +// 2) takes data form DAQ (both from Laser Calibration and Physics runs), +// processes it, and stores either to OCDB or to Reference DB. + #include "AliT0Preprocessor.h" #include "AliT0DataDCS.h" @@ -39,6 +44,7 @@ Preliminary test version (T.Malkiewicz) #include "AliCDBMetaData.h" #include "AliDCSValue.h" +#include "AliCDBEntry.h" #include "AliLog.h" #include @@ -46,19 +52,26 @@ Preliminary test version (T.Malkiewicz) #include #include #include "AliT0Dqclass.h" +#include "TClass.h" ClassImp(AliT0Preprocessor) //____________________________________________________ -AliT0Preprocessor::AliT0Preprocessor(AliShuttleInterface* shuttle) : AliPreprocessor("T00", shuttle), fData(0) +AliT0Preprocessor::AliT0Preprocessor(AliShuttleInterface* shuttle) : + AliPreprocessor("T00", shuttle), + fData(0) { //constructor + AddRunType("PHYSICS"); + AddRunType("STANDALONE"); + AddRunType("AMPLITUDE_CALIBRATION"); } //____________________________________________________ AliT0Preprocessor::~AliT0Preprocessor() { + //destructor delete fData; fData = 0; } @@ -66,29 +79,32 @@ AliT0Preprocessor::~AliT0Preprocessor() void AliT0Preprocessor::Initialize(Int_t run, UInt_t startTime, UInt_t endTime) { + // 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()); } //____________________________________________________ -UInt_t AliT0Preprocessor::Process(TMap* dcsAliasMap ) -{ - // T0 preprocessor return codes: - // return=0 : all ok - // return=1 : no DCS input data - // return=2 : failed to store DCS data - // return=3 : no Laser data (Walk correction) - // return=4 : failed to store OCDB time equalized data - // return=5 : no DAQ input for OCDB - // return=6 : failed to retrieve DAQ data from OCDB - // return=7 : failed to store T0 OCDB data +Bool_t AliT0Preprocessor::ProcessDCS(){ + // Check whether DCS should be processed or not... + TString runType = GetRunType(); + Log(Form("ProcessDCS - RunType: %s",runType.Data())); + if(runType == "PHYSICS" ) + return kTRUE; + else + return kFALSE; + +} +//____________________________________________________ + +UInt_t AliT0Preprocessor::ProcessDCSDataPoints(TMap* dcsAliasMap){ + // Fills data into AliT0DataDCS object + Log("Processing DCS DP"); Bool_t resultDCSMap=kFALSE; Bool_t resultDCSStore=kFALSE; - Bool_t resultLaser=kFALSE; - Bool_t resultOnline=kFALSE; - + if(!dcsAliasMap) { Log("No DCS input data"); @@ -96,7 +112,6 @@ UInt_t AliT0Preprocessor::Process(TMap* dcsAliasMap ) } else { - /* resultDCSMap=fData->ProcessData(*dcsAliasMap); if(!resultDCSMap) { @@ -105,71 +120,83 @@ UInt_t AliT0Preprocessor::Process(TMap* dcsAliasMap ) } else { - Float_t *meanScaler[24] = fData->GetScalerMean(); - AliCDBMetaData metaDataDCS; metaDataDCS.SetBeamPeriod(0); metaDataDCS.SetResponsible("Tomasz Malkiewicz"); metaDataDCS.SetComment("This preprocessor fills an AliTODataDCS object."); AliInfo("Storing DCS Data"); - resultDCSStore = Store("Calib","DCSData",meanScaler, &metaDataDCS); + resultDCSStore = StoreReferenceData("Calib","DCSData",fData, &metaDataDCS); if (!resultDCSStore) { Log("Some problems occurred while storing DCS data results in ReferenceDB"); return 2;// return error Code for processed DCS data not stored } - } - */ } + return 0; +} +//____________________________________________________ - // processing DAQ +UInt_t AliT0Preprocessor::ProcessLaser() +{ + // Processing data from DAQ Standalone run + Log("Processing Laser calibration - Walk Correction"); + Bool_t resultLaser = kFALSE; + Bool_t writeok = kFALSE; + //processing DAQ + TList* list = GetFileSources(kDAQ, "AMPLITUDE_CALIBRATION"); + AliT0CalibWalk *laser = new AliT0CalibWalk(); + TObjString *source; + if (list) + { + TIter iter(list); + while ((source = dynamic_cast (iter.Next()))) + { + const char *laserFile = GetFile(kDAQ, "AMPLITUDE_CALIBRATION", source->GetName()); + if (laserFile) + { + Log(Form("File with Id AMPLITUDE_CALIBRAION found in source %s!", source->GetName())); + writeok = laser->MakeWalkCorrGraph(laserFile); + + } + } + + AliCDBMetaData metaData; + metaData.SetBeamPeriod(0); + metaData.SetResponsible("Tomek&Michal"); + metaData.SetComment("Walk correction from laser runs."); + if (writeok) resultLaser=Store("Calib","Slewing_Walk", laser, &metaData, 0, 1); + else { + + Log(Form("writeok = %d no peaks in CFD spectra",writeok)); + return 0; + } + Log(Form("resultLaser = %d",resultLaser)); + if (!resultLaser) + { + Log("No Laser Data stored"); + return 3;//return error code for failure in storing Laser Data + } + } + else + { + Log(Form("Could not find file with Id AMPLITUDE_CALIBRAION ")); + return 1; + } + + return 0; +} - TString runType = GetRunType(); +//____________________________________________________ - if(runType == "T0_STANDALONE_LASER") - { - TList* list = GetFileSources(kDAQ, "LASER"); - if (list) - { - TIter iter(list); - TObjString *source; - while ((source = dynamic_cast (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); - metaData.SetResponsible("Tomek&Michal"); - metaData.SetComment("Walk correction from laser runs."); - //TObjArray* arrLaser = laser->GetfWalk(); - resultLaser=Store("Calib","Slewing_Walk", laser, &metaData, 0, 1); - delete laser; - } - else - { - Log(Form("Could not find file with Id LASER in source %s!", source->GetName())); - return 1; - } - } - if (!resultLaser) - { - Log("No Laser Data stored"); - return 3;//return error code for failure in storing Laser Data - } - } else { - Log("No sources found for id LASER!"); - return 1; - } - } - else if(runType == "PHYSICS") - { - TList* listPhys = GetFileSources(kDAQ, "PHYSICS"); - if (listPhys) +UInt_t AliT0Preprocessor::ProcessPhysics(){ + //Processing data from DAQ Physics run + Log("Processing Physics"); + + Bool_t resultOnline=kFALSE; + //processing DAQ + TList* listPhys = GetFileSources(kDAQ, "PHYSICS"); + if (listPhys) { TIter iter(listPhys); TObjString *sourcePhys; @@ -180,31 +207,87 @@ UInt_t AliT0Preprocessor::Process(TMap* dcsAliasMap ) { AliT0CalibTimeEq *online = new AliT0CalibTimeEq(); online->Reset(); - online->ComputeOnlineParams("CFD", 20, 4., filePhys); + Bool_t writeok = online->ComputeOnlineParams(filePhys); AliCDBMetaData metaData; metaData.SetBeamPeriod(0); - metaData.SetResponsible("Tomek&Michal"); + metaData.SetResponsible("Alla Maevskaya"); metaData.SetComment("Time equalizing result."); - resultOnline = Store("Calib","TimeDelay", online, &metaData, 0, 1); + + if (writeok) resultOnline = Store("Calib","TimeDelay", online, &metaData, 0, 1); + else { + + Log(Form("writeok = %d not enough data for equalizing",resultOnline)); + return 0; + } + Log(Form("resultOnline = %d",resultOnline)); delete online; } - else + else { Log(Form("Could not find file with Id PHYSICS in source %s!", sourcePhys->GetName())); return 1; } + } if (!resultOnline) { - Log("No Laser Data stored"); + Log("No Data stored"); return 4;//return error code for failure in storing OCDB Data } } else { Log("No sources found for id PHYSICS!"); return 1; } - } - - return 0; + return 0; } +//____________________________________________________ +UInt_t AliT0Preprocessor::Process(TMap* dcsAliasMap ) +{ + // T0 preprocessor return codes: + // return=0 : all ok + // return=1 : no DCS input data + // return=2 : failed to store DCS data + // return=3 : no Laser data (Walk correction) + // return=4 : failed to store OCDB time equalized data + // return=5 : no DAQ input for OCDB + // return=6 : failed to retrieve DAQ data from OCDB + // return=7 : failed to store T0 OCDB data + // return=8 : not enough data for equalizing + Bool_t dcsDP = ProcessDCS(); + Log(Form("dcsDP = %d",dcsDP)); + TString runType = GetRunType(); + Log(Form("RunType: %s",runType.Data())); + //processing + if(runType == "STANDALONE"){ + if(dcsDP==1){ + Int_t iresultDCS = ProcessDCSDataPoints(dcsAliasMap); + return iresultDCS; + } + } + + if(runType == "AMPLITUDE_CALIBRATION"){ + 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(); + if(dcsDP==1){ + Int_t iresultDCS = ProcessDCSDataPoints(dcsAliasMap); + return iresultDCS; + } + Log(Form("iresultPhysics = %d",iresultPhysics)); + return iresultPhysics; + } + + + + return 0; +}