1 /**************************************************************************
2 - Contact: Oleksandr_Borysov aborysov@ts.infnf.it
3 - Link: /afs/infn.it/ts/user/efragiac/public/testCosm3125.001
6 - Number of events needed: >=500
7 - Input Files: raw_data_file_on_LDC, ssdddlmap.txt, badchannels.root
8 - Output Files: ./ssddaldc_<LDCID>.root, FXS_name=ITSSSDda_<LDCID>.root
9 local files are persistent over runs: data source
11 **************************************************************************/
18 #include "AliITSHandleDaSSD.h"
20 #include "TPluginManager.h"
25 int main( int argc, char** argv )
27 AliITSHandleDaSSD *ssddaldc;
28 TString feefname, fcdbsave, lfname;
30 Char_t *dafname = NULL;
31 const Char_t *bcfname = "badchannels.root";
32 const Char_t *ddlmfname = "ssdddlmap.txt";
35 gROOT->GetPluginManager()->AddHandler("TVirtualStreamerInfo",
43 /* check that we got some arguments = list of files */
45 fprintf(stderr, "Wrong number of arguments\n");
49 char *datafilename = argv[1];
50 ssddaldc = new AliITSHandleDaSSD(datafilename);
51 if (ssddaldc->IsZombie()) return -1;
53 lfname.Form("./%s", bcfname);
54 status = daqDA_DB_getFile(bcfname, lfname.Data());
56 if (!ssddaldc->ReadStaticBadChannelsMap(lfname.Data())) cerr << "Error reading static bad channels map " << lfname.Data() << " !\n";
57 } else fprintf(stderr, "Failed to import file %s from the detector db: %d, %s \n", bcfname, status, lfname.Data());
59 lfname.Form("./%s", ddlmfname);
60 status = daqDA_DB_getFile(ddlmfname, lfname.Data());
62 if (!ssddaldc->ReadDDLModuleMap(lfname.Data())) cerr << "Error reading DDL map from file " << lfname.Data() << " !\n";
64 fprintf(stderr, "Failed to import file %s from the detector db: %d, %s \n", bcfname, status, lfname.Data());
65 if (!ssddaldc->ReadDDLModuleMap()) cerr << "Failed to load the DDL map from AliITSRawStreamSSD!\n";
68 if (!ssddaldc->ProcessRawData())
70 cerr << "Error !ssddaldc->ProcessRawData()" << endl;
74 daqDA_progressReport(90);
77 if (ssddaldc->SaveCalibrationSSDLDC(dafname)) {
78 cout << "SSDDA data are saved in " << dafname << endl;
79 status = daqDA_FES_storeFile(dafname, "CALIBRATION");
80 if (status) fprintf(stderr, "Failed to export file : %d\n", status);
81 } else cerr << "Error saving DA data to the file! Probably $DA_TEST_DIR defined incorrectly!" << endl;
83 feefname.Form("%s/ssddaldc_%i.root", ".", ssddaldc->GetLdcId());
84 cout << "Saving feessdda data in " << feefname << endl;
85 TFile *fileRun = new TFile (feefname.Data(),"RECREATE");
86 if (fileRun->IsZombie()) {
87 cerr << "Error open file " << feefname << endl;
96 fcdbsave.Form("ssddaldc_%i.root", ssddaldc->GetLdcId());
97 status = daqDA_DB_storeFile(feefname.Data(), fcdbsave.Data());
98 if (status) fprintf(stderr, "Failed to export file %s to the detector db: %d, %s \n", feefname.Data(), status, fcdbsave.Data());
101 daqDA_progressReport(100);