+ //
+ //=== New CE part
+ // if it is validated this part needs to be modified again
+ // currently its only processed if there is a valid standard CE object
+ //
+ list = GetFileSources(sourceFXS,"CEnew");
+
+ if (result==0 && list && list->GetEntries()>0) {
+
+// loop through all files from LDCs
+
+ UInt_t index2 = 0;
+ while (list->At(index2)!=NULL) {
+ TObjString* fileNameEntry = (TObjString*) list->At(index2);
+ if (fileNameEntry!=NULL) {
+ TString fileName = GetFile(sourceFXS, "CEnew",
+ fileNameEntry->GetString().Data());
+ AliTPCCalibCE *calCE=AliTPCCalibCE::ReadFromFile(fileName.Data());
+
+ if (!calCE) {
+ Log ("No valid new calibCE object.");
+// result=2;
+ break;
+ }
+
+ TIter nextObj(calCE->GetArrFitGraphs());
+ TObject *obj=0x0;
+ while ( (obj=nextObj()) ){
+ arrFitGraphs->Add(obj->Clone());
+ }
+ delete calCE;
+ }
+ ++index2;
+ }
+ }
+
+//
+// Store updated pedestal entry to OCDB
+//
+ AliCDBMetaData metaData;
+ metaData.SetBeamPeriod(0);
+ metaData.SetResponsible("Haavard Helstrup");
+ metaData.SetAliRootVersion(ALIROOT_SVN_BRANCH);
+ metaData.SetComment("Preprocessor AliTPC data base entries.");
+
+ if ( result == 0 ) {
+ Bool_t storeOK = Store("Calib", "CE", ceObjects, &metaData, 0, kTRUE);
+ if ( !storeOK ) ++result;
+ } else {
+ Log ("Warning: Average time graphs not available - no OCDB entry written");
+ }
+ } else {
+ Log ("Error: no CE entries available from FXS!");
+ result = 1;
+ }
+
+ ceObjects->Delete();
+ delete ceObjects;
+
+ return result;
+}
+//______________________________________________________________________________________________
+
+UInt_t AliTPCPreprocessor::ExtractQA(Int_t sourceFXS)
+{
+ //
+ // Read Quality Assurance file from file exchage server
+ //
+
+ UInt_t result=0;
+
+ TList* list = GetFileSources(sourceFXS,"QA");
+
+ if (list && list->GetEntries()>0) {
+
+// only one QA object should be available!
+
+ AliTPCdataQA *calQA;
+
+ UInt_t nentries = list->GetEntries();
+ UInt_t index=0;
+ if ( nentries > 1) Log ( "More than one QA entry. First one processed");
+ TObjString* fileNameEntry = (TObjString*) list->At(index);
+ if (fileNameEntry!=NULL) {
+ TString fileName = GetFile(sourceFXS, "QA",
+ fileNameEntry->GetString().Data());
+ TFile *f = TFile::Open(fileName);
+ if (!f) {
+ Log ("Error opening QA file.");
+ result =2;
+ } else {
+ f->GetObject("tpcCalibQA",calQA);
+ if ( calQA ) {
+//
+// Store updated pedestal entry to OCDB
+//
+ AliCDBMetaData metaData;
+ metaData.SetBeamPeriod(0);
+ metaData.SetResponsible("Haavard Helstrup");
+ metaData.SetAliRootVersion(ALIROOT_SVN_BRANCH);
+ metaData.SetComment("Preprocessor AliTPC data base entries.");
+
+ Bool_t storeOK = Store("Calib", "QA", calQA, &metaData, 0, kFALSE);
+ if ( !storeOK ) ++result;
+
+ delete calQA;
+ }
+ }
+ } else {
+ Log ("Error: no QA files on FXS!");
+ result = 2;
+ }
+ } else {
+ Log ("Error: no QA entries in FXS list!");
+ result = 1;
+ }
+ return result;
+}
+
+//______________________________________________________________________________________________
+
+
+UInt_t AliTPCPreprocessor::ExtractAltro(Int_t sourceFXS, TMap* dcsMap)
+{
+ //
+ // Read Altro configuration file from file exchage server
+ // Keep original entry from OCDB in case no new pulser calibration is available
+ //
+ TObjArray *altroObjects=0;
+ AliTPCCalPad *acqStart=0;
+ AliTPCCalPad *zsThr=0;
+ AliTPCCalPad *acqStop=0;
+ AliTPCCalPad *FPED=0;
+ AliTPCCalPad *masked=0;
+ AliTPCCalPad *k1=0, *k2=0, *k3=0;
+ AliTPCCalPad *l1=0, *l2=0, *l3=0;
+ TMap *mapRCUconfig=0;
+
+ AliCDBEntry* entry = GetFromOCDB("Calib", "AltroConfig");
+ if (entry) altroObjects = (TObjArray*)entry->GetObject();
+ if ( altroObjects==NULL ) {
+ Log("AliTPCPreprocsessor: No previous TPC altro calibration entry available.\n");
+ altroObjects = new TObjArray;