7 //#include "AliITSChannelDaSSD.h"
8 #include "AliITSHandleDaSSD.h"
12 Bool_t GetRunSettings (const char *datafilename, Long_t &eventsnumber, Long_t &stripsnumber);
14 int main( int argc, char** argv )
16 AliITSHandleDaSSD *ssddaldc;
17 ostringstream feefname;
20 Char_t *dadaqdir = NULL;
22 /* check that we got some arguments = list of files */
24 printf("Wrong number of arguments\n");
28 char *datafilename = argv[1];
31 if (!GetRunSettings (datafilename, evn, strn))
33 cout << "Error GetRunSettings (datafilename, evn, strn)!" << endl;
36 cout << "Pysics events : " << evn << "; Total strip number : " << strn
37 << "; Modules number: " << strn / AliITSModuleDaSSD::GetStripsPerModuleConst() << endl;
39 ssddaldc = new AliITSHandleDaSSD();
40 // if (!ssddaldc->SetNumberOfModules((Int_t)(strn / AliITSModuleDaSSD::GetStripsPerModuleConst())))
41 if (!ssddaldc->SetNumberOfModules(AliITSHandleDaSSD::GetNumberOfSSDModulesConst()))
43 cout << "Error ssddaldc->SetNumberOfModules" << endl;
47 if (!ssddaldc->ReadCalibrationDataFile(datafilename, evn))
49 cout << "Error !ssddaldc->ReadCalibrationDataFile" << endl;
53 daqDA_progressReport(30);
54 // if (daqDA_checkShutdown() == 1) {
55 // cout << "Shutdown has been requested!" << endl;
60 if (!ssddaldc->CalculatePedestal()) {
61 cout << "Error, ssddaldc->CalculatePedestal()";
64 daqDA_progressReport(50);
65 if (!ssddaldc->CalculateNoiseCM()) {
66 cout << "Error, ssddaldc->CalculateNoiseCM()";
69 ssddaldc->DeleteSignal();
70 daqDA_progressReport(90);
71 dadaqdir = getenv ("DAQDA_TEST_DIR");
74 if (!(ssddaldc->SaveCalibrationSSDLDC(dafname)))
75 cout << "Error saving DA data to the file! Probably $DAQDA_TEST_DIR defined incorrectly!" << endl;
76 else cout << "SSDDA data are saved in " << dafname << endl;
77 feefname << dadaqdir << "/ssddaldc.root";
78 cout << "Saving feessdda data in " << feefname.str() << endl;
79 TFile *fileRun = new TFile (feefname.str().data(),"RECREATE");
83 status = daqDA_FES_storeFile(dafname.data(),"DASSD_DB_results");
84 if (status) printf("Failed to export file : %d\n",status);
86 else cout << "Error: DAQDA_TEST_DIR is not defined, DA data are not saved!" << endl;
88 daqDA_progressReport(100);
94 Bool_t GetRunSettings (const char *datafilename, Long_t &eventsnumber, Long_t &stripsnumber)
96 Long_t physeventind = 0, strn = 0, strneq = 0;
97 AliRawReaderDate *rawreaderdate = NULL;
99 Long_t datasize = 0, eqdatasize = 0, eqbelsize = 1;
100 rawreaderdate = new AliRawReaderDate(datafilename, 0);
101 if (!rawreaderdate) {
102 cout << "GetRunSettings : Error new DARawReader(datafilename, 0);" << endl;
105 rawreaderdate->SelectEvents(PHYSICS_EVENT);
106 while (rawreaderdate->NextEvent())
111 while (rawreaderdate->ReadNextData((UChar_t*&)data)) {
112 eqdatasize = rawreaderdate->GetDataSize();
113 eqbelsize = rawreaderdate->GetEquipmentElementSize();
114 if ( (eqdatasize % eqbelsize) || (eqbelsize != sizeof(long32)) ) {
115 cout << "Error ReadCalibrationDataFile: equipment event data size " << eqdatasize
116 << " is not an integer of equipment data size " << eqbelsize << endl;
117 rawreaderdate->DumpData();
120 strneq = eqdatasize / eqbelsize;
121 datasize += eqdatasize;
124 if ((strn * eqbelsize != datasize)) {
125 if (physeventind != 1) {
126 cout << "Something is wrong with data file, strip number changes from event to event! Ev = " << physeventind << endl;
127 rawreaderdate->DumpData();
130 if ((datasize % eqbelsize)) {
131 cout << "Wrong number : (datasize % eqbelsize) != 0" << endl;
132 rawreaderdate->DumpData();
135 strneq = datasize / eqbelsize;
138 delete rawreaderdate;
139 if ((physeventind > 0) && (strn > 0))
141 eventsnumber = physeventind;