8 #include "AliRawReaderDate.h"
9 #include "AliITSHandleDaSSD.h"
13 Bool_t GetRunSettings (const char *datafilename, Long_t &eventsnumber, Long_t &stripsnumber);
15 int main( int argc, char** argv )
17 AliITSHandleDaSSD *ssddaldc;
18 ostringstream feefname;
21 Char_t *dadaqdir = NULL;
23 /* check that we got some arguments = list of files */
25 printf("Wrong number of arguments\n");
29 char *datafilename = argv[1];
32 if (!GetRunSettings (datafilename, evn, strn))
34 cout << "Error GetRunSettings (datafilename, evn, strn)!" << endl;
37 cout << "Pysics events : " << evn << "; Total strip number : " << strn
38 << "; Modules number: " << strn / AliITSModuleDaSSD::GetStripsPerModuleConst() << endl;
40 ssddaldc = new AliITSHandleDaSSD();
41 // if (!ssddaldc->SetNumberOfModules((Int_t)(strn / AliITSModuleDaSSD::GetStripsPerModuleConst())))
42 if (!ssddaldc->SetNumberOfModules(AliITSHandleDaSSD::GetNumberOfSSDModulesConst()))
44 cout << "Error ssddaldc->SetNumberOfModules" << endl;
48 if (!ssddaldc->ReadCalibrationDataFile(datafilename, evn))
50 cout << "Error !ssddaldc->ReadCalibrationDataFile" << endl;
54 daqDA_progressReport(30);
55 // if (daqDA_checkShutdown() == 1) {
56 // cout << "Shutdown has been requested!" << endl;
61 if (!ssddaldc->CalculatePedestal()) {
62 cout << "Error, ssddaldc->CalculatePedestal()";
65 daqDA_progressReport(50);
66 if (!ssddaldc->CalculateNoiseCM()) {
67 cout << "Error, ssddaldc->CalculateNoiseCM()";
70 ssddaldc->DeleteSignal();
71 daqDA_progressReport(90);
72 dadaqdir = getenv ("DAQDA_TEST_DIR");
75 if (!(ssddaldc->SaveCalibrationSSDLDC(dafname)))
76 cout << "Error saving DA data to the file! Probably $DAQDA_TEST_DIR defined incorrectly!" << endl;
77 else cout << "SSDDA data are saved in " << dafname << endl;
78 feefname << dadaqdir << "/ssddaldc.root";
79 cout << "Saving feessdda data in " << feefname.str() << endl;
80 TFile *fileRun = new TFile (feefname.str().data(),"RECREATE");
84 status = daqDA_FES_storeFile(dafname.data(),"DASSD_DB_results");
85 if (status) printf("Failed to export file : %d\n",status);
87 else cout << "Error: DAQDA_TEST_DIR is not defined, DA data are not saved!" << endl;
89 daqDA_progressReport(100);
95 Bool_t GetRunSettings (const char *datafilename, Long_t &eventsnumber, Long_t &stripsnumber)
97 Long_t physeventind = 0, strn = 0, strneq = 0;
98 AliRawReaderDate *rawreaderdate = NULL;
100 Long_t datasize = 0, eqdatasize = 0, eqbelsize = 1;
101 rawreaderdate = new AliRawReaderDate(datafilename, 0);
102 if (!rawreaderdate) {
103 cout << "GetRunSettings : Error new DARawReader(datafilename, 0);" << endl;
106 rawreaderdate->SelectEvents(-1);
107 while (rawreaderdate->NextEvent()) {
108 if ((rawreaderdate->GetType() != PHYSICS_EVENT) && (rawreaderdate->GetType() != CALIBRATION_EVENT)) continue;
112 while (rawreaderdate->ReadNextData((UChar_t*&)data)) {
113 eqdatasize = rawreaderdate->GetDataSize();
114 eqbelsize = rawreaderdate->GetEquipmentElementSize();
115 if ( (eqdatasize % eqbelsize) || (eqbelsize != sizeof(long32)) ) {
116 cout << "Error ReadCalibrationDataFile: equipment event data size " << eqdatasize
117 << " is not an integer of equipment data size " << eqbelsize << endl;
118 rawreaderdate->DumpData();
121 strneq = eqdatasize / eqbelsize;
122 datasize += eqdatasize;
125 if ((strn * eqbelsize != datasize)) {
126 if (physeventind != 1) {
127 cout << "Something is wrong with data file, strip number changes from event to event! Ev = " << physeventind << endl;
128 rawreaderdate->DumpData();
131 if ((datasize % eqbelsize)) {
132 cout << "Wrong number : (datasize % eqbelsize) != 0" << endl;
133 rawreaderdate->DumpData();
136 strneq = datasize / eqbelsize;
139 delete rawreaderdate;
140 if ((physeventind > 0) && (strn > 0))
142 eventsnumber = physeventind;