]>
Commit | Line | Data |
---|---|---|
31af5828 | 1 | // --- ROOT system |
2 | #include <TFile.h> | |
3 | #include <TTimeStamp.h> | |
64a7c78d | 4 | |
31af5828 | 5 | #include "AliZDCPreprocessor.h" |
6 | #include "AliCDBManager.h" | |
7 | #include "AliCDBEntry.h" | |
64a7c78d | 8 | #include "AliCDBMetaData.h" |
9 | #include "AliDCSValue.h" | |
10 | #include "AliLog.h" | |
11 | #include "AliZDCDataDCS.h" | |
31af5828 | 12 | #include "AliZDCCalibData.h" |
64a7c78d | 13 | |
14 | // | |
7a78280f | 15 | // Class implementing ZDC pre-processor. |
16 | // It takes data from DCS and passes it to the class AliZDCDataDCS. | |
17 | // The class is then written to the CDB. | |
64a7c78d | 18 | // |
19 | ||
20 | ClassImp(AliZDCPreprocessor) | |
21 | ||
22 | //______________________________________________________________________________________________ | |
23 | AliZDCPreprocessor::AliZDCPreprocessor(const char* detector, AliShuttleInterface* shuttle) : | |
24 | AliPreprocessor(detector, shuttle), | |
25 | fData(0) | |
26 | { | |
27 | // constructor | |
28 | } | |
29 | ||
30 | //______________________________________________________________________________________________ | |
31 | AliZDCPreprocessor::~AliZDCPreprocessor() | |
32 | { | |
33 | // destructor | |
34 | } | |
35 | ||
7a78280f | 36 | |
64a7c78d | 37 | //______________________________________________________________________________________________ |
38 | void AliZDCPreprocessor::Initialize(Int_t run, UInt_t startTime, | |
39 | UInt_t endTime) | |
40 | { | |
41 | // Creates AliZDCDataDCS object | |
42 | ||
43 | AliPreprocessor::Initialize(run, startTime, endTime); | |
44 | ||
45 | AliInfo(Form("\n\tRun %d \n\tStartTime %s \n\tEndTime %s", run, | |
46 | TTimeStamp(startTime).AsString(), | |
47 | TTimeStamp(endTime).AsString())); | |
48 | ||
49 | fData = new AliZDCDataDCS(fRun, fStartTime, fEndTime); | |
50 | } | |
51 | ||
52 | //______________________________________________________________________________________________ | |
53 | UInt_t AliZDCPreprocessor::Process(TMap* dcsAliasMap) | |
54 | { | |
55 | // Fills data into a AliZDCDataDCS object | |
31af5828 | 56 | if(!dcsAliasMap) return 0; |
64a7c78d | 57 | |
58 | // The processing of the DCS input data is forwarded to AliZDCDataDCS | |
31af5828 | 59 | Float_t DCSValues[26]; |
60 | fData->ProcessData(*dcsAliasMap, DCSValues); | |
e1ea0c63 | 61 | //dcsAliasMap->Print(""); |
31af5828 | 62 | // |
e1ea0c63 | 63 | AliZDCCalibData *calibdata = new AliZDCCalibData("ZDC"); |
31af5828 | 64 | calibdata->SetDCSCalibData(DCSValues); |
64a7c78d | 65 | |
e1ea0c63 | 66 | const char* PedFileName = GetFile(kDAQ, "PEDESTALS", "LDC0"); |
9b3bf356 | 67 | const Int_t NZDCch = 44; |
e1ea0c63 | 68 | if(PedFileName){ |
e1ea0c63 | 69 | AliInfo(Form("File %s connected to analyze pedestal events", PedFileName)); |
70 | Float_t PedVal[(3*NZDCch)][2]; | |
71 | for(Int_t i=0; i<(3*NZDCch); i++){ | |
72 | for(Int_t j=0; j<2; j++){ | |
73 | fscanf(file,"%f",&PedVal[i][j]); | |
74 | printf("PedVal[%d][%d] -> %f \n",i,j,PedVal[i][j]); | |
75 | } | |
76 | if(i<NZDCch){ | |
77 | calibdata->SetMeanPed(i,PedVal[i][0]); | |
78 | calibdata->SetMeanPedWidth(i,PedVal[i][1]); | |
79 | } | |
80 | else if(i>=NZDCch && i<(2*NZDCch)){ | |
81 | calibdata->SetOOTPed(i,PedVal[i][0]); | |
82 | calibdata->SetOOTPedWidth(i,PedVal[i][1]); | |
83 | } | |
84 | else if(i>=(2*NZDCch) && i<(3*NZDCch)){ | |
85 | calibdata->SetPedCorrCoeff(i,PedVal[i][0],PedVal[i][1]); | |
86 | } | |
87 | } | |
64a7c78d | 88 | } |
e1ea0c63 | 89 | else AliInfo(Form("File %s not found", PedFileName)); |
90 | ||
91 | const char* EMDFileName = GetFile(kDAQ, "EMDCALIB", "LDC0"); | |
92 | if(EMDFileName){ | |
e1ea0c63 | 93 | AliInfo(Form("File %s connected to analyze EM dissociation events", EMDFileName)); |
94 | Float_t EMDFitVal[2]; | |
95 | for(Int_t j=0; j<2; j++){ | |
96 | fscanf(file,"%f",&EMDFitVal[j]); | |
97 | } | |
98 | calibdata->SetEnCalib(EMDFitVal); | |
64a7c78d | 99 | } |
e1ea0c63 | 100 | else AliInfo(Form("File %s not found", EMDFileName)); |
101 | // | |
31af5828 | 102 | calibdata->Print(""); |
103 | ||
e1ea0c63 | 104 | // note that the parameters are returned as character strings! |
105 | const char* nEvents = GetRunParameter("totalEvents"); | |
106 | if (nEvents) { | |
107 | Log(Form("Number of events for run %d: %s",fRun, nEvents)); | |
108 | } else { | |
109 | Log(Form("Number of events not put in logbook!")); | |
110 | } | |
111 | ||
64a7c78d | 112 | //Now we have to store the final CDB file |
113 | AliCDBMetaData metaData; | |
31af5828 | 114 | metaData.SetBeamPeriod(0); |
115 | metaData.SetResponsible("Chiara"); | |
116 | metaData.SetComment("This preprocessor fills an AliZDCDataDCS object."); | |
64a7c78d | 117 | |
e1ea0c63 | 118 | UInt_t result = Store("SHUTTLE","Data",fData, &metaData, 0, 0); |
31af5828 | 119 | delete fData; |
120 | fData = 0; | |
64a7c78d | 121 | |
122 | return result; | |
123 | } | |
124 |