X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=TRD%2FAliTRDPreprocessor.cxx;h=7707000ad33110b8b499525417c79b4252511a9a;hp=ff8b3352a4df817c1764d74a1073f3fb32a8c870;hb=5ebd79a85bb4d972ed19f200c05765fc7e342afb;hpb=79b38efde50042883056a1fc0a8d70b8a5edb927 diff --git a/TRD/AliTRDPreprocessor.cxx b/TRD/AliTRDPreprocessor.cxx index ff8b3352a4d..7707000ad33 100644 --- a/TRD/AliTRDPreprocessor.cxx +++ b/TRD/AliTRDPreprocessor.cxx @@ -27,6 +27,7 @@ // // // Authors: // // R. Bailhache (R.Bailhache@gsi.de) // +// J. Book (jbook@ikf.uni-frankfurt.de) // // W. Monange (w.monange@gsi.de) // // F. Kramer (kramer@ikf.uni-frankfurt.de) // // // @@ -51,10 +52,12 @@ #include "AliTRDCalibPadStatus.h" #include "AliTRDSaxHandler.h" #include "AliTRDgeometry.h" +#include "AliTRDCalibChamberStatus.h" #include "Cal/AliTRDCalPad.h" #include "Cal/AliTRDCalPadStatus.h" -#include "Cal/AliTRDCalDCS.h" +#include "Cal/AliTRDCalDCSv2.h" #include "Cal/AliTRDCalSingleChamberStatus.h" +#include "Cal/AliTRDCalChamberStatus.h" #include "Cal/AliTRDCalROC.h" ClassImp(AliTRDPreprocessor) @@ -62,19 +65,33 @@ ClassImp(AliTRDPreprocessor) //______________________________________________________________________________________________ AliTRDPreprocessor::AliTRDPreprocessor(AliShuttleInterface *shuttle) :AliPreprocessor("TRD", shuttle) + ,fCalDCSObjSOR(0) + ,fCalDCSObjEOR(0) ,fVdriftHLT(0) { // // Constructor // + AddRunType("PHYSICS"); AddRunType("STANDALONE"); AddRunType("PEDESTAL"); AddRunType("DAQ"); + +} +//______________________________________________________________________________________________ + AliTRDPreprocessor::AliTRDPreprocessor(const AliTRDPreprocessor& ) : + AliPreprocessor("TRD",0), + fCalDCSObjSOR(0), + fCalDCSObjEOR(0), + fVdriftHLT(0) +{ + + Fatal("AliTRDPreprocessor", "copy constructor not implemented"); + } - //______________________________________________________________________________________________ AliTRDPreprocessor::~AliTRDPreprocessor() { @@ -82,8 +99,22 @@ AliTRDPreprocessor::~AliTRDPreprocessor() // Destructor // -} + if (fCalDCSObjSOR != NULL) { + delete fCalDCSObjSOR; + fCalDCSObjSOR =0; + } + if (fCalDCSObjEOR != NULL) { + delete fCalDCSObjEOR; + fCalDCSObjEOR =0; + } +} +//______________________________________________________________________________________________ +AliTRDPreprocessor& AliTRDPreprocessor::operator = (const AliTRDPreprocessor& ) +{ + Fatal("operator =", "assignment operator not implemented"); + return *this; +} //______________________________________________________________________________________________ void AliTRDPreprocessor::Initialize(Int_t run, UInt_t startTime, UInt_t endTime) { @@ -92,7 +123,7 @@ void AliTRDPreprocessor::Initialize(Int_t run, UInt_t startTime, UInt_t endTime) // AliPreprocessor::Initialize(run,startTime,endTime); - + } //______________________________________________________________________________________________ @@ -108,7 +139,7 @@ UInt_t AliTRDPreprocessor::Process(TMap* dcsAliasMap) // always process the configuration data Int_t DCSConfigReturn = ProcessDCSConfigData(); if(DCSConfigReturn) return DCSConfigReturn; - + if (runType=="PEDESTAL"){ if(ExtractPedestals()) return 1; return 0; @@ -116,7 +147,7 @@ UInt_t AliTRDPreprocessor::Process(TMap* dcsAliasMap) if ((runType=="PHYSICS") || (runType=="STANDALONE") || (runType=="DAQ")){ // DCS - if(ProcessDCS(dcsAliasMap)) return 1; + if(ProcessDCS(dcsAliasMap)) return 1; if(runType=="PHYSICS"){ // HLT if On //TString runPar = GetRunParameter("HLTStatus"); @@ -131,6 +162,9 @@ UInt_t AliTRDPreprocessor::Process(TMap* dcsAliasMap) ExtractDriftVelocityDAQ(); // for testing! } } + //if((runType=="PHYSICS") || (runType=="STANDALONE")) { + // if(ExtractHalfChamberStatusDAQ()) return 1; + //} } return 0; @@ -167,7 +201,7 @@ Bool_t AliTRDPreprocessor::ProcessDCS(TMap *dcsAliasMap) Log("****** DCS ******\n"); - TObjArray * list=AliTRDSensorArray::GetList (); + TObjArray * list=AliTRDSensorArray::GetList(); if (list == 0x0) { Log ("Error during AliTRDSensorArray::GetList"); @@ -269,13 +303,104 @@ Bool_t AliTRDPreprocessor::ProcessDCS(TMap *dcsAliasMap) } Log ("*********** End of DCS **********"); - delete results; - delete nGraph; + delete [] results; + delete [] nGraph; return error; } +//______________________________________________________________________________________________ +Bool_t AliTRDPreprocessor::ExtractHalfChamberStatusDAQ() +{ + // + // Half chamber status algorithm running on DAQ + // + + Bool_t error = kFALSE; + + AliCDBMetaData metaData; + metaData.SetBeamPeriod(0); + metaData.SetResponsible("Raphaelle Bailhache"); + metaData.SetComment("TRD calib test"); + + // Take the output of the DA on DAQ + TList * listpad = GetFileSources(kDAQ,"HALFCHAMBERSTATUS"); + if (!listpad) { + Log("No list found for the HalfChamberStatus"); + return kTRUE; + } + + AliTRDCalibChamberStatus *calPed = 0x0; + + // loop through all files (only one normally) + UInt_t index = 0; + while (listpad->At(index)!=NULL) { + TObjString* fileNameEntry = (TObjString*) listpad->At(index); + if (fileNameEntry != NULL) + { + TString fileName = GetFile(kDAQ, "HALFCHAMBERSTATUS", + fileNameEntry->GetString().Data()); + if(fileName.Length() ==0){ + Log(Form("Error by retrieving the file %d for the halfchamberstatus",(Int_t)index)); + delete listpad; + return kTRUE; + } + + TFile *f = TFile::Open(fileName); + f->GetObject("calibchamberstatus",calPed); + + if(calPed) { + + // store as reference data + TString name("HalfChamberStatus"); + if(!StoreReferenceData("DAQData",(const char *)name,(TObject *) calPed,&metaData)){ + Log(Form("Error storing AliTRDCalibPadStatus object %d as reference data",(Int_t)index)); + error = kTRUE; + } + } // calPed + else Log(Form("Error getting AliTRDCalibChamberStatus onject from file")); + + } // fileNameEntry + ++index; + }// while (list) + + Log(Form("%d elements found in the list for the halfchamberstatus",(Int_t)index)); + if(index!=1){ + delete listpad; + return kTRUE; + } + // + // Produce the AliTRDCalChamberStatus name calHalfChamberStatus + // + AliTRDCalChamberStatus *calHalfChamberStatus = 0x0; + if(calPed) { + //calPed->AnalyseHisto(); // check number of events, create calHalfChamberStatus (done on DAQ) + if(fCalDCSObjEOR) { + calPed->CheckEORStatus((AliTRDCalDCSv2 *)fCalDCSObjEOR); + } + calHalfChamberStatus=(AliTRDCalChamberStatus *)calPed->GetCalChamberStatus(); + } + + // + // Store + // + + AliCDBMetaData md3; + md3.SetObjectClassName("AliTRDCalChamberStatus"); + md3.SetResponsible("Raphaelle Bailhache"); + md3.SetBeamPeriod(1); + md3.SetComment("TRD calib test"); + if(!Store("Calib","ChamberStatus" ,(TObject *)calHalfChamberStatus, &md3, 0, kTRUE)){ + Log("Error storing the pedestal"); + delete listpad; + return kTRUE; + } + + delete listpad; + return error; + +} //______________________________________________________________________________________________ Bool_t AliTRDPreprocessor::ExtractPedestals() { @@ -328,8 +453,6 @@ Bool_t AliTRDPreprocessor::ExtractPedestals() if(calPed){ - Int_t ldc = 0; - // analyse //calPed->AnalyseHisto(); @@ -338,7 +461,6 @@ Bool_t AliTRDPreprocessor::ExtractPedestals() AliTRDCalROC *rocMean = calPed->GetCalRocMean(idet, kFALSE); if ( rocMean ) { calPedSum.SetCalRocMean(rocMean,idet); - ldc = (Int_t) (idet / 30); } AliTRDCalROC *rocRMS = calPed->GetCalRocRMS(idet, kFALSE); if ( rocRMS ) { @@ -354,16 +476,9 @@ Bool_t AliTRDPreprocessor::ExtractPedestals() } }// det loop - if((ldc==0) || (ldc==1) || (ldc==2)) ldc = 1; - if((ldc==3) || (ldc==4) || (ldc==5)) ldc = 2; - if((ldc==6) || (ldc==7) || (ldc==8)) ldc = 3; - if((ldc==9) || (ldc==10) || (ldc==11)) ldc = 4; - if((ldc==12) || (ldc==13) || (ldc==14)) ldc = 5; - if((ldc==15) || (ldc==16) || (ldc==17)) ldc = 6; - // store as reference data TString name("PadStatus"); - name += ldc; + name += index; if(!StoreReferenceData("DAQData",(const char *)name,(TObject *) calPed,&metaData)){ Log(Form("Error storing AliTRDCalibPadStatus object %d as reference data",(Int_t)index)); error = kTRUE; @@ -694,28 +809,28 @@ Bool_t AliTRDPreprocessor::ExtractDriftVelocityDAQ() calibra->PutMeanValueOtherVectorFit2(1,kTRUE); TObjArray object = calibra->GetVectorFit(); AliTRDCalDet *objdriftvelocitydet = calibra->CreateDetObjectVdrift(&object,kTRUE); - //TObject *objdriftvelocitypad = calibra->CreatePadObjectVdrift(); + // TObject *objdriftvelocitypad = calibra->CreatePadObjectVdrift(); object = calibra->GetVectorFit2(); AliTRDCalDet *objtime0det = calibra->CreateDetObjectT0(&object,kTRUE); - //TObject *objtime0pad = calibra->CreatePadObjectT0(); + // TObject *objtime0pad = calibra->CreatePadObjectT0(); calibra->ResetVectorFit(); // store - if(!Store("Calib","ChamberVdrift" ,(TObject *) objdriftvelocitydet,&md1,0,kTRUE)){ - Log("Error storing the calibration object for the chamber vdrift (DAQ)"); - error = kTRUE; - } - if(!Store("Calib","ChamberT0" ,(TObject *) objtime0det ,&md1,0,kTRUE)){ - Log("Error storing the calibration object for the chamber t0 (DAQ)"); - error = kTRUE; - } - //if(!Store("Calib","LocalVdrift" ,(TObject *) objdriftvelocitypad,&md2,0,kTRUE)){ - // Log("Error storing the calibration object for the local drift velocity (DAQ)"); - // error = kTRUE; - //} - //if(!Store("Calib","LocalT0" ,(TObject *) objtime0pad ,&md2,0,kTRUE)){ - // Log("Error storing the calibration object for the local time0 (DAQ)"); - // error = kTRUE; - //} + if(!Store("Calib","ChamberVdrift" ,(TObject *) objdriftvelocitydet,&md1,0,kTRUE)){ + Log("Error storing the calibration object for the chamber vdrift (DAQ)"); + error = kTRUE; + } + if(!Store("Calib","ChamberT0" ,(TObject *) objtime0det ,&md1,0,kTRUE)){ + Log("Error storing the calibration object for the chamber t0 (DAQ)"); + error = kTRUE; + } + // if(!Store("Calib","LocalVdrift" ,(TObject *) objdriftvelocitypad,&md2,0,kTRUE)){ + // Log("Error storing the calibration object for the local drift velocity (DAQ)"); + // error = kTRUE; + // } + // if(!Store("Calib","LocalT0" ,(TObject *) objtime0pad ,&md2,0,kTRUE)){ + // Log("Error storing the calibration object for the local time0 (DAQ)"); + // error = kTRUE; + // } } else{ Log("Not enough statistics for the average pulse height (DAQ)"); @@ -806,16 +921,16 @@ Bool_t AliTRDPreprocessor::ExtractHLT() calibra->PutMeanValueOtherVectorFit(1,kTRUE); TObjArray object = calibra->GetVectorFit(); AliTRDCalDet *objgaindet = calibra->CreateDetObjectGain(&object); - //TObject *objgainpad = calibra->CreatePadObjectGain(); + // TObject *objgainpad = calibra->CreatePadObjectGain(); // store them if(!Store("Calib","ChamberGainFactor",(TObject *) objgaindet ,&md1,0,kTRUE)){ Log("Error storing the calibration object for the chamber gain"); error = kTRUE; } - //if(!Store("Calib","LocalGainFactor" ,(TObject *) objgainpad ,&md2,0,kTRUE)){ - // Log("Error storing the calibration object for the local gain factor"); - // error = kTRUE; - //} + // if(!Store("Calib","LocalGainFactor" ,(TObject *) objgainpad ,&md2,0,kTRUE)){ + // Log("Error storing the calibration object for the local gain factor"); + // error = kTRUE; + // } } calibra->ResetVectorFit(); }// if histogain @@ -849,7 +964,7 @@ Bool_t AliTRDPreprocessor::ExtractHLT() calibra->PutMeanValueOtherVectorFit2(1,kTRUE); TObjArray object = calibra->GetVectorFit(); AliTRDCalDet *objdriftvelocitydet = calibra->CreateDetObjectVdrift(&object,kTRUE); - //TObject *objdriftvelocitypad = calibra->CreatePadObjectVdrift(); + // TObject *objdriftvelocitypad = calibra->CreatePadObjectVdrift(); object = calibra->GetVectorFit2(); AliTRDCalDet *objtime0det = calibra->CreateDetObjectT0(&object,kTRUE); //TObject *objtime0pad = calibra->CreatePadObjectT0(); @@ -862,20 +977,21 @@ Bool_t AliTRDPreprocessor::ExtractHLT() Log("Error storing the calibration object for the chamber t0 (HLT)"); error = kTRUE; } - //if(!Store("Calib","LocalVdrift" ,(TObject *) objdriftvelocitypad,&md2,0,kTRUE)){ - // Log("Error storing the calibration object for the local drift velocity (HLT)"); - // error = kTRUE; - //} - //if(!Store("Calib","LocalT0" ,(TObject *) objtime0pad ,&md2,0,kTRUE)){ - // Log("Error storing the calibration object for the local time0 (HLT)"); - // error = kTRUE; - //} + // if(!Store("Calib","LocalVdrift" ,(TObject *) objdriftvelocitypad,&md2,0,kTRUE)){ + // Log("Error storing the calibration object for the local drift velocity (HLT)"); + // error = kTRUE; + // } + // if(!Store("Calib","LocalT0" ,(TObject *) objtime0pad ,&md2,0,kTRUE)){ + // Log("Error storing the calibration object for the local time0 (HLT)"); + // error = kTRUE; + // } fVdriftHLT = kTRUE; } calibra->ResetVectorFit(); }// if TProfile2D // prf + /* TProfile2D *histoprf = (TProfile2D *) filehlt->Get("PRF2d"); if (histoprf) { histoprf->SetDirectory(0); @@ -906,6 +1022,7 @@ Bool_t AliTRDPreprocessor::ExtractHLT() } calibra->ResetVectorFit(); }// if PRF + */ }// if fileNameEntry delete listhlt; @@ -916,157 +1033,97 @@ Bool_t AliTRDPreprocessor::ExtractHLT() //_____________________________________________________________________________ UInt_t AliTRDPreprocessor::ProcessDCSConfigData() { - // // process the configuration of FEE, PTR and GTU // reteive XML filei(s) from the DCS FXS // parse it/them and store TObjArrays in the CDB - // - // return 0 for success, otherwise: - // 5 : Could not get the (SOR and EOR) or SOR file from the FXS - // 8 : Both files are not valid - // 10 : SOR XML is not well-formed - // 11 : EOR XML is not well-formed - // 12 : ERROR in SOR XML SAX validation: something wrong with the content - // 12 : ERROR in EOR XML SAX validation: something wrong with the content - // 14 : ERROR while creating SOR calibration objects in the handler - // 15 : ERROR while creating EOR calibration objects in the handler - // 16 : ERROR while storing data in the CDB - // Log("Processing the DCS config summary files."); + if(fCalDCSObjSOR) delete fCalDCSObjSOR; + if(fCalDCSObjEOR) delete fCalDCSObjEOR; + + TString xmlFile[2]; + TString esor[2] = {"SOR", "EOR"}; // get the XML files - Log("Requesting the 2 summaryfiles from the FXS.."); - TString xmlFileS = GetFile(kDCS,"CONFIGSUMMARYSOR",""); - TString xmlFileE = GetFile(kDCS,"CONFIGSUMMARYEOR",""); - // Request EOR and SOR files from the fxs, if both are not found exit - - Bool_t fileExistE = kTRUE, fileExistS = kTRUE; - - // check if the files are there - if (xmlFileS.IsNull()) { - Log(Form("Warning: SOR file %s not found!", xmlFileS.Data())); - fileExistS = kFALSE; - } else Log(Form("SOR file found: %s", xmlFileS.Data())); - - if (xmlFileE.IsNull()) { - Log(Form("Warning: EOR file %s not found!", xmlFileE.Data())); - fileExistE = kFALSE; - } else Log(Form("EOR file found: %s", xmlFileE.Data())); - - if (fileExistS==0 && fileExistE==0) { - Log(Form("ERROR: SOR and EOR files not found: %s and %s", xmlFileS.Data(), xmlFileE.Data())); - return 5; - } + xmlFile[0] = GetFile(kDCS,"CONFIGSUMMARYSOR",""); + xmlFile[1] = GetFile(kDCS,"CONFIGSUMMARYEOR",""); - // test the files - if (fileExistS) { - Log("Checking if SOR file is valid."); - std::ifstream fileTestS; - fileTestS.open(xmlFileS.Data(), std::ios_base::binary | std::ios_base::in); - if (!fileTestS.good() || fileTestS.eof() || !fileTestS.is_open()) { - Log(Form("Warning: File %s not valid!",xmlFileS.Data())); - fileExistS = kFALSE; - return 5; - } - Log("Checking if SOR file is not empty."); - fileTestS.seekg(0, std::ios_base::end); - if (static_cast(fileTestS.tellg()) < 2) { - Log(Form("Warning: File %s is empty!",xmlFileS.Data())); - fileExistS = kFALSE; - return 5; - } - } + // check both files + for (Int_t iFile=0; iFile<2; iFile++) { - if (fileExistE) { - Log("Checking if EOR file is valid."); - std::ifstream fileTestE; - fileTestE.open(xmlFileE.Data(), std::ios_base::binary | std::ios_base::in); - if (!fileTestE.good() || fileTestE.eof() || !fileTestE.is_open()) { - Log(Form("Warning: File %s not valid!",xmlFileE.Data())); - fileExistE = kFALSE; + // check if the file are there + if (xmlFile[iFile].IsNull()) { + Log(Form("Warning: %s file not found!", esor[iFile].Data())); + continue; } - Log("Checking if EOR file is not empty."); - fileTestE.seekg(0, std::ios_base::end); - if (static_cast(fileTestE.tellg()) < 2) { - Log(Form("Warning: File %s is empty!",xmlFileE.Data())); - fileExistE = kFALSE; + Log(Form("%s file found: %s", esor[iFile].Data(), xmlFile[iFile].Data())); + + // test the file + std::ifstream fileTest; + fileTest.open(xmlFile[iFile].Data(), std::ios_base::binary | std::ios_base::in); + if (!fileTest.good() || fileTest.eof() || !fileTest.is_open()) { + Log(Form("Warning: %s file not valid!", esor[iFile].Data())); + continue; + } + // check if the file is empty + fileTest.seekg(0, std::ios_base::end); + if (static_cast(fileTest.tellg()) < 2) { + Log(Form("Warning: %s file empty!", esor[iFile].Data())); + continue; } - } + Log(Form("%s file is valid.", esor[iFile].Data())); - if (fileExistS==0 && fileExistE==0) { - Log("ERROR: Both files (SOR/EOR) are not valid!"); - return 8; - } + // make a robust XML validation + TSAXParser testParser; + if (testParser.ParseFile(xmlFile[iFile].Data()) < 0 ) { + Log(Form("Warning: %s XML content is not well-formed!", esor[iFile].Data())); + continue; + } + Log(Form("%s XML content is well-formed.", esor[iFile].Data())); - Log("One or both of the tested files are valid."); + // create parser and parse + TSAXParser saxParser; + AliTRDSaxHandler saxHandler; + saxParser.ConnectToHandler("AliTRDSaxHandler", &saxHandler); + saxParser.ParseFile(xmlFile[iFile].Data()); - // make a robust XML validation - TSAXParser testParser; - if (fileExistS && testParser.ParseFile(xmlFileS.Data()) < 0 ) { - Log("ERROR: XML content (SOR) is not well-formed."); - return 10; - } else if (fileExistE && testParser.ParseFile(xmlFileE.Data()) < 0 ) { - Log("ERROR: XML content (EOR) is not well-formed."); - return 11; - } - Log("XML contents are well-formed."); - - // create parser and parse - TSAXParser saxParserS, saxParserE; - AliTRDSaxHandler saxHandlerS, saxHandlerE; - if (fileExistS) { - saxParserS.ConnectToHandler("AliTRDSaxHandler", &saxHandlerS); - saxParserS.ParseFile(xmlFileS.Data()); - } - if (fileExistE) { - saxParserE.ConnectToHandler("AliTRDSaxHandler", &saxHandlerE); - saxParserE.ParseFile(xmlFileE.Data()); - } - // report errors of the parser if present - if (fileExistS && saxParserS.GetParseCode() != 0) { - Log(Form("ERROR in XML file validation. SOR Parse Code: %s", saxParserS.GetParseCode())); - return 12; - } - if (fileExistE && saxParserE.GetParseCode() != 0) { - Log(Form("ERROR in XML file validation. EOR Parse Code: %s", saxParserE.GetParseCode())); - return 13; - } - Log("XML file validation OK."); - // report errors of the handler if present - if (fileExistS && saxHandlerS.GetHandlerStatus() != 0) { - Log(Form("ERROR while creating calibration objects. SOR Error code: %s", saxHandlerS.GetHandlerStatus())); - return 14; - } - if (fileExistE && saxHandlerE.GetHandlerStatus() != 0) { - Log(Form("ERROR while creating calibration objects. EOR Error code: %s", saxHandlerE.GetHandlerStatus())); - return 15; + // report errors of the parser if present + if (saxParser.GetParseCode() != 0) { + Log(Form("Warning: %s XML file validation failed! Parse code: %d", esor[iFile].Data(), saxParser.GetParseCode())); + continue; + } + Log(Form("%s XML validation OK.", esor[iFile].Data())); + + // report errors of the handler if present + if (saxHandler.GetHandlerStatus() != 0) { + Log(Form("Warning: Creating %s calibration object failed! Error code: %d", esor[iFile].Data(), saxHandler.GetHandlerStatus())); + continue; + } + Log(Form("%s SAX handler reports no errors.", esor[iFile].Data())); + + // get the calibration object storing the data from the handler + AliTRDCalDCSv2 *calDCSObj = (AliTRDCalDCSv2*)saxHandler.GetCalDCSObj()->Clone(); + calDCSObj->EvaluateGlobalParameters(); + calDCSObj->SetRunType(GetRunType()); + calDCSObj->SetStartTime(GetStartTimeDCSQuery()); + calDCSObj->SetEndTime(GetEndTimeDCSQuery()); + if (iFile == 0) fCalDCSObjSOR = calDCSObj; + if (iFile == 1) fCalDCSObjEOR = calDCSObj; } - Log("SAX handler reports no errors."); + + if (!fCalDCSObjSOR && !fCalDCSObjEOR) { Log("ERROR: Failed reading both files!"); return 1; } // put both objects in one TObjArray to store them - TObjArray* fCalObjArray = new TObjArray(2); - fCalObjArray->SetOwner(); - - // get the calibration object storing the data from the handler - if (fileExistS) { - AliTRDCalDCS* fCalDCSObjSOR = saxHandlerS.GetCalDCSObj(); - fCalDCSObjSOR->EvaluateGlobalParameters(); - fCalDCSObjSOR->SetRunType(GetRunType()); - fCalDCSObjSOR->SetStartTime(GetStartTimeDCSQuery()); - fCalDCSObjSOR->SetEndTime(GetEndTimeDCSQuery()); - fCalObjArray->AddAt(fCalDCSObjSOR,0); + TObjArray* calObjArray = new TObjArray(2); + calObjArray->SetOwner(); + + if (fCalDCSObjSOR) { + calObjArray->AddAt(fCalDCSObjSOR,0); Log("TRDCalDCS object for SOR created."); } - - if (fileExistE) { - AliTRDCalDCS* fCalDCSObjEOR = saxHandlerE.GetCalDCSObj(); - fCalDCSObjEOR->EvaluateGlobalParameters(); - fCalDCSObjEOR->SetRunType(GetRunType()); - fCalDCSObjEOR->SetStartTime(GetStartTimeDCSQuery()); - fCalDCSObjEOR->SetEndTime(GetEndTimeDCSQuery()); - fCalObjArray->AddAt(fCalDCSObjEOR,1); + if (fCalDCSObjEOR) { + calObjArray->AddAt(fCalDCSObjEOR,1); Log("TRDCalDCS object for EOR created."); } @@ -1074,19 +1131,12 @@ UInt_t AliTRDPreprocessor::ProcessDCSConfigData() AliCDBMetaData metaData1; metaData1.SetBeamPeriod(0); metaData1.SetResponsible("Frederick Kramer"); - metaData1.SetComment("DCS configuration data in two AliTRDCalDCS objects in one TObjArray (0:SOR, 1:EOR)."); - if (!Store("Calib", "DCS", fCalObjArray, &metaData1, 0, kTRUE)) { - Log("problems while storing DCS config data object"); - return 16; - } else { - Log("DCS config data object stored."); - } + metaData1.SetComment("DCS configuration data in two AliTRDCalDCSv2 objects in one TObjArray (0:SOR, 1:EOR)."); + if (!Store("Calib", "DCS", calObjArray, &metaData1, 0, kTRUE)) { Log("ERROR: Storing DCS config data object failed!"); return 1; } - //delete fCalObjArray; + delete calObjArray; Log("SUCCESS: Processing of the DCS config summary file DONE."); return 0; } - -