+ }
+ //
+ fclose(file);
+ }
+ else{
+ Log(Form("File %s not found", towEMDFileName));
+ return 9;
+ }
+ //towCalib->Print("");
+ //
+ AliCDBMetaData metaData;
+ metaData.SetBeamPeriod(0);
+ metaData.SetResponsible("Chiara Oppedisano");
+ metaData.SetComment("Filling AliZDCTowerCalib object");
+ //
+ resTowCal = Store("Calib","TowerCalib",towCalib, &metaData, 0, kTRUE);
+ if(resTowCal==kFALSE) return 7;
+ }
+ delete daqSourcesH; daqSourcesH = 0;
+
+
+ return 0;
+}
+
+//______________________________________________________________________________________________
+UInt_t AliZDCPreprocessor::ProcessPedestalData()
+{
+ TList* daqSources = GetFileSources(kDAQ, "PEDESTALDATA");
+ if(!daqSources){
+ Log(Form("No source for STANDALONE_PEDESTAL run %d !", fRun));
+ return 10;
+ }
+ if(daqSources->GetEntries()==0) return 10;
+ Log("\t List of DAQ sources for PEDESTALDATA id: "); daqSources->Print();
+ //
+ TIter iter(daqSources);
+ TObjString* source;
+ Int_t i=0;
+ Bool_t resPedCal=kTRUE, resPedHist=kTRUE;
+
+ while((source = dynamic_cast<TObjString*> (iter.Next()))){
+ TString stringPedFileName = GetFile(kDAQ, "PEDESTALDATA", source->GetName());
+ if(stringPedFileName.Length() <= 0){
+ Log(Form("No PEDESTALDATA file from source %s!", source->GetName()));
+ return 10;
+ }
+ const char* pedFileName = stringPedFileName.Data();
+ Log(Form("\t Getting file #%d: %s from %s\n",++i,pedFileName,source->GetName()));
+ //
+ // --- Initializing pedestal calibration object
+ AliZDCPedestals *pedCalib = new AliZDCPedestals("ZDC");
+ // --- Reading file with pedestal calibration data
+ // no. ADCch = (22 signal ch. + 2 reference PMs) * 2 gain chain = 48
+ const Int_t knZDCch = 48;
+ FILE *file;
+ if((file = fopen(pedFileName,"r")) == NULL){
+ printf("Cannot open file %s \n",pedFileName);
+ return 10;
+ }
+ Log(Form("File %s connected to process pedestal data", pedFileName));
+ Float_t pedVal[(3*knZDCch)][2];
+ for(Int_t k=0; k<(3*knZDCch); k++){
+ for(Int_t j=0; j<2; j++){
+ int aleggi = fscanf(file,"%f",&pedVal[k][j]);
+ if(aleggi==0) AliDebug(3," Failing reading data from pedestal file");
+ //if(j==1) printf("pedVal[%d] -> %f, %f \n",k,pedVal[k][0],pedVal[k][1]);
+ }
+ if(k<knZDCch){
+ pedCalib->SetMeanPed(k,pedVal[k][0]);
+ pedCalib->SetMeanPedWidth(k,pedVal[k][1]);
+ }
+ else if(k>=knZDCch && k<(2*knZDCch)){
+ pedCalib->SetOOTPed(k-knZDCch,pedVal[k][0]);
+ pedCalib->SetOOTPedWidth(k-knZDCch,pedVal[k][1]);
+ }
+ else if(k>=(2*knZDCch) && k<(3*knZDCch)){
+ pedCalib->SetPedCorrCoeff(k-(2*knZDCch),pedVal[k][0],pedVal[k][1]);
+ }
+ }
+ fclose(file);
+ //pedCalib->Print("");
+ //
+ AliCDBMetaData metaData;
+ metaData.SetBeamPeriod(0);
+ metaData.SetResponsible("Chiara Oppedisano");
+ metaData.SetComment("Filling AliZDCPedestals object");
+ //
+ resPedCal = Store("Calib","Pedestals",pedCalib, &metaData, 0, kTRUE);
+ if(resPedCal==kFALSE) return 11;
+ }
+ delete daqSources; daqSources = 0;
+
+ TList* daqSourceH = GetFileSources(kDAQ, "PEDESTALHISTOS");
+ if(!daqSourceH){
+ Log(Form("No source for PEDESTALHISTOS id run %d !", fRun));
+ return 12;
+ }
+ Log("\t List of DAQ sources for PEDESTALHISTOS id: "); daqSourceH->Print();
+ //
+ TIter iterH(daqSourceH);
+ TObjString* sourceH = 0;
+ Int_t iH=0;
+ while((sourceH = dynamic_cast<TObjString*> (iterH.Next()))){
+ TString stringPedFileName = GetFile(kDAQ, "PEDESTALHISTOS", sourceH->GetName());
+ if(stringPedFileName.Length() <= 0){
+ Log(Form("No PEDESTALHISTOS file from source %s!", sourceH->GetName()));
+ return 12;
+ }
+ const char* pedFileName = stringPedFileName.Data();
+ Log(Form("\t Getting file #%d: %s from %s\n",++iH, pedFileName, sourceH->GetName()));
+ resPedHist = StoreReferenceFile(pedFileName, "pedestalReference.root");
+ if(resPedHist==kFALSE) return 13;
+ }
+ delete daqSourceH; daqSourceH=0;
+
+ return 0;
+}
+
+//______________________________________________________________________________________________
+UInt_t AliZDCPreprocessor::ProcessLaserData()
+{
+ TList* daqSources = GetFileSources(kDAQ, "LASERDATA");
+ if(!daqSources){
+ AliError(Form("No sources for STANDALONE_LASER run %d !", fRun));
+ return 14;
+ }
+ if(daqSources->GetEntries()==0) return 14;
+ Log("\t List of DAQ sources for LASERDATA id: "); daqSources->Print();
+ //
+ TIter iter2(daqSources);
+ TObjString* source = 0;
+ Int_t i=0;
+ Bool_t resLaserCal=kTRUE, resLaserHist=kTRUE;
+
+ while((source = dynamic_cast<TObjString*> (iter2.Next()))){
+ TString stringLaserFileName = GetFile(kDAQ, "LASERDATA", source->GetName());
+ if(stringLaserFileName.Length() <= 0){
+ Log(Form("No LASER file from source %s!", source->GetName()));
+ return 14;
+ }
+ const char* laserFileName = stringLaserFileName.Data();
+ Log(Form("\t Getting file #%d: %s from %s\n",++i,laserFileName,source->GetName()));
+ //
+ // --- Initializing pedestal calibration object
+ AliZDCLaserCalib *lCalib = new AliZDCLaserCalib("ZDC");
+ // --- Reading file with pedestal calibration data
+ if(laserFileName){
+ FILE *file;
+ if((file = fopen(laserFileName,"r")) == NULL){
+ printf("Cannot open file %s \n",laserFileName);
+ return 14;